Test dalla prospettiva di uno sviluppatore [chiuso]

3

Ho un libro che menziona:

"There are many types of testing, including unit testing, integration testing, functional testing, system testing, performance testing, and acceptance testing".

Spesso si nota che molti sviluppatori eseguono solo test unitari, o nessun test. Dai tipi di test di cui sopra, quali devono essere condotti dallo sviluppatore? Quali sono le responsabilità di uno sviluppatore quando si tratta di test?

    
posta user2466019 08.06.2013 - 12:05
fonte

5 risposte

8

Tutte le lingue supportano tutti i tipi di test

Il modo in cui ha formulato la tua domanda originale , penso che ti stavi avvicinando a testare nel modo sbagliato e diventare troppo grande una distinzione tra i tipi di programmatori e i loro ruoli, e fare ipotesi sul legame tra una lingua e il test insegnato.

Tutte le lingue consentono tutti i tipi di test. Potrebbero aver costruito una cultura più intricata nei test, e potrebbero fornire più strumenti e avere alcune caratteristiche del linguaggio che lo facilitano. Ed è vero che se dovessi condurre una revisione della letteratura, i libri mainstream sui test potrebbero essere apparsi intorno all'introduzione di Java e diventare famosi, e fare affidamento su di esso per illustrare i loro punti.

Ma tutte le lingue consentono di testare tutti i tipi.

Qual è la tua responsabilità?

Quindi,ora,percercaredirisponderealletue domande originali :

What other testing does a Java Developer do from a Java Developer's Perspective?

e

As I have already mentioned every Java Developer carrys out Unit Testing. From the 1's I have described above, which 1's are done from a Java Developer's Perspective?

Tutti quelli che hai elencato in seguito nella tua risposta:

  • Test unità
  • Test di integrazione
  • Test di regressione
  • Test delle prestazioni
  • ...

Ovviamente, a seconda della compagnia, alcuni test potrebbero non richiedere necessariamente bisogno . Ad esempio, test di accpetance o test delle prestazioni vengono spesso lasciati ad altri team.

Inoltre, alcuni test possono essere eseguiti come "test black-box", nel qual caso potrebbe anche essere migliore di quello che non conosci internals (o potresti non avere una scelta da sapere affatto), e in questa situazione è ovviamente meno rilevante per gli sviluppatori originali di far parte di questo sforzo di test. Ma possono ancora aggiungere il loro contributo, ed è probabile che affrontino il problema in modi che altri potrebbero non aver pensato.

Tuttavia, raccomando vivamente che gli sviluppatori, di qualsiasi tipo, partecipino a tutti gli sforzi di test o collaborando direttamente con chiunque esegua il test in una relazione affiatata.

È una questione di cultura / filosofia, non di tecnologia

La maggior parte delle volte, i negozi di software ospitano gruppi di collaudo e sviluppo separati lo fanno per le ragioni sbagliate, o perché sono in qualche modo spinti (o si sentono coinvolti in esso) dal ciclo di vita dello sviluppo e dalla loro metodologia .

Non è una fatalità e può essere cambiato.

Inoltre, alcuni test possono a volte essere eseguiti in aggiunta agli sforzi già effettuati dai non sviluppatori. È meglio persino consigliare ai tuoi clienti di eseguire i propri test di accettazione e prestazioni per convalidare i risultati. E sicuramente dovresti insistere per essere coinvolti in questo, così puoi assicurarti che sappiano quello che vogliono e che tu sappia cosa si aspettano dai tuoi risultati finali!

Nota finale: il test è pertinente solo se sai cosa testare e come interpretare le metriche e i risultati che consegnano .

    
risposta data 08.06.2013 - 13:01
fonte
2

Boris Bezier dice questo:

"Programmers are responsible for software quality – quality in their own work, quality in the products that incorporate their work, and quality at the interfaces between components. Quality has never been and will never be tested in. The responsibility is both moral and professional."

Se sei responsabile della fornitura di software di qualità, come hai intenzione di farlo? Il software deve essere testato. Se ti trovi in un'organizzazione che non ha risorse di test dedicate, dipende da te. Anche se il tuo team ha risorse di test, sta a te assicurarti che i test avvengano. Ciò può significare test di scrittura, o può significare che segui chiunque sia responsabile della stesura dei test.

In conclusione: tu e il tuo team sono responsabili della qualità del tuo codice.

    
risposta data 08.06.2013 - 16:27
fonte
1

"Quali sono le responsabilità di uno sviluppatore quando si tratta di test?"

La responsabilità esplicita è:

  • scrivi test che esercitano il tuo codice e assicurati che restituisca l'output previsto.

Tuttavia ho trovato che le responsabilità implicite sono:

  • assicurati che i test non contengano falsi positivi - fallo prima.
  • assicurati che i titolari delle aziende sappiano "cosa" viene testato.
  • assicurati che i test coprano la piattaforma degli utenti e non solo la macchina "calda" degli sviluppatori.
  • effettua il test di una parte delle funzionalità e punta a iniziare a scrivere alcuni test prima di scrivere il codice.
  • indica al management che i test fanno parte del software.
  • indica al management che la scrittura dei test è ciò che fa uno sviluppatore professionista.
  • quando arrivano i bug, indica la mancanza di test che l'avrebbero impedito
  • trova storie di errori che riflettono la mancanza di test.
  • quando vengono trovati bug, scrivi test per riprodurre & correggili e aggiungili alla tua suite di regressione.
risposta data 08.06.2013 - 16:21
fonte
1

Il test riguarda la verifica della correttezza del tuo lavoro. Penso che sia responsabilità di ogni sviluppatore farlo.

Ho il sospetto che l'autore di quella citazione parlasse principalmente di test automatici. C'è anche un test manuale, che probabilmente è già qualcosa che stai facendo.

Quali passi esegui per verificare che il codice che hai scritto funzioni? Se questi passaggi possono essere eseguiti solo con la tua partecipazione, esegui un test manuale. Se è possibile eseguire questi passaggi mentre controlli Twitter, esegui un test automatico.

Se presumo che la tua domanda sia effettivamente:

What are the responsibilities of a developer when it comes to [automated] testing?

Quindi la mia risposta è che devi prendere quella decisione per te stesso. La regola che seguo è basata su "3 o più usi a". Sarò tollerante di eseguire un test manuale due volte, ma la terza volta che vado a eseguirlo, mi costringo a prendere il tempo per scrivere un test automatico. Consiglio di sviluppare una regola simile che puoi seguire.

    
risposta data 09.06.2013 - 02:59
fonte
-1

A seconda del tipo e della dimensione del progetto, esegui almeno un "test unitario" delle singole funzioni, quindi prova a eseguire alcuni "test di sistema", ovvero inserisci i dati di test nel database, avvia l'applicazione come se fosse eseguita in produzione e confrontare l'output con una copia salvata di ciò che ci si aspetterebbe. Tra quelle estremità c'è il "test di integrazione" in cui testate ad es. se alcune classi lavorano insieme Nonostante il nome, puoi fare ogni tipo di test con lo strumento "junit".

    
risposta data 08.06.2013 - 13:23
fonte

Leggi altre domande sui tag