My question is: can the same be applied when it comes to testing, i.e. creating test cases and only test when necessary, or is that a bad idea?
Non penso che necessario sia una buona scelta di parole qui, sia che tu stia parlando di test o funzioni. Molto spesso, le funzionalità non vengono aggiunte al software perché sono necessarie , vengono aggiunte perché sono utili o preziose o < em> desiderabile . Le funzionalità vengono aggiunte perché rendono il prodotto migliore con alcune metriche importanti per gli stakeholder.
Lo stesso vale per i test, e in misura ancora maggiore. I test sono separati dal prodotto testato, quindi non hanno alcun impatto diretto sulla sua funzionalità e non sono certamente necessari per il funzionamento del prodotto. I test sono solo strumenti che aiutano gli sviluppatori e le altre parti interessate a mantenere un livello costante di qualità. I test possono aiutare a garantire che il prodotto soddisfi i requisiti; possono rilevare i guasti; possono risparmiare tempo e denaro; ecc. In breve, i test sono spesso utili, preziosi e desiderabili, anche se in realtà non sono necessari .
L'idea con uno sviluppo agile è quella di costruire un prodotto minimo vitale e quindi di iterare su quello per migliorarlo in qualsiasi direzione le decisioni degli stakeholder siano più importanti. Puoi applicare la stessa filosofia ai test: inizia con un set di test di base che ti dà il massimo beneficio e poi migliora iterativamente nella direzione del massimo beneficio.
Spesso i test saranno sviluppati parallelamente a nuove funzionalità, perché i test possono essere uno strumento utile durante lo sviluppo. Ad esempio, un'idea importante nello sviluppo agile è avere una comprensione comune di cosa significhi per un compito fatto , ei test sono un modo per stabilire la definizione di fatto e per dimostrare che hai soddisfatto i requisiti. Ma i test possono anche essere sviluppati in seguito, magari per dimostrare un bug o per aumentare la fiducia che il prodotto si comporta in modo coerente.