Quanti test funzionali scrivere?

-1

È abbastanza facile coprire il tuo codice scrivendo i test prima usando TDD e sai quando fermarti una volta che hai implementato una funzione.

Per me è più difficile decidere quanti test funzionali scrivere per dire un servizio REST.

Attualmente mi trovo in una situazione in cui un servizio restituisce pochi campi in JSON e posso creare / aggiornare / recuperare / eliminare una voce. Vi sono casi in cui vengono lanciati errori se ad esempio per uno o più campi è stato assegnato un valore errato. Inoltre ci sono delle dipendenze e dato un valore per un campo renderebbe un altro non valido con un determinato valore. Quindi il servizio sta facendo qualche convalida.

Ho poche opzioni (forse vedi e suggerisci di più):

  • Scrivi test funzionali per ciascun caso per verificare che il sistema si comporti come previsto e, naturalmente, scriva insieme i test unitari. E test di integrazione se ne hai bisogno.
  • Scrivi alcuni test funzionali per verificare che il formato / il codice di stato / intestazioni di risposta siano validi ma non coprano ogni caso in quanto è possibile coprirli con test di integrazione / unità dire test al limite del servizio insieme al livello di persistenza (repository) senza controller Così potrei perdere la fiducia nel garantire che il mio servizio REST effettui il marshall dei risultati come previsto.

Ovviamente ci sono trade off. Nel primo scenario - maggiore sicurezza, più tempo per scrivere test, impiega più tempo a costruire un artefatto perché ho più test che funzionano più lentamente. Nel secondo scenario - build più veloce, abbastanza alta sicurezza ma non all'altezza dello scenario 1, meno tempo dedicato alla scrittura dei test funzionali.

Qual è la tua esperienza / vista su questo e quale pensi sia la migliore opzione?

    
posta Eds 07.07.2016 - 23:14
fonte

1 risposta

0

Questa è una domanda troppo ampia per rispondere in modo specifico. Ci sono un certo numero di approcci di libri di testo a questo e nessuno sarà in grado di dirti esattamente quanti numero di test eseguire senza analizzare i dettagli del tuo progetto. La cosa principale è che tu e il cliente siate soddisfatti.

Ecco una strategia comune che non hai menzionato nel tuo post:

  1. Crea una lista di tutti i test a cui puoi pensare senza riguardo a necessità, costi o difficoltà.
  2. Chiedere al proprietario del prodotto di classificarli in termini di opportunità. Il cliente potrebbe pensare anche ad altri test.
  3. classifica tu stesso i test in base a ciò che ritieni più importante per mitigare i rischi di difetti. Ad esempio, per affrontare parti del progetto particolarmente difficili.
  4. Combina la tua classifica e quella del cliente per stabilire la priorità di tutti i test.
  5. A partire dai test con la priorità più alta, comunica al cliente quali test possono essere eseguiti entro i limiti di tempo / costi.
  6. Focalizza i tuoi test su test ad alta priorità.

Come accennato a uno dei commentatori, capire tutto questo non è facile. Supponendo che non lo fai come un hobby, dovrai effettivamente parlare con il cliente o il proprietario del prodotto per capire il numero giusto di test.

    
risposta data 14.11.2016 - 23:49
fonte

Leggi altre domande sui tag