Recentemente, ho iniziato a leggere il libro Specifica per esempio , che si riferisce al test funzionale automatizzato e BDD (da quello che ho capito fino ad ora ).
Ho provato a usare Concordion (.Net) e mi sembra molto interessante. Ho riscontrato problemi con la conservazione di qualsiasi forma di documentazione utile per qualsiasi sistema progettato e questo potrebbe aiutare
Il mio problema è, come si potrebbe suggerire che il flusso di lavoro nella progettazione di un sistema completo è? Alcune domande che si presentano sono:
- È ideale provare a progettare l'intero sistema nel suo complesso?
- Se si progetta una panoramica di livello molto elevato del sistema e quindi si creano specifiche una caratteristica principale alla volta, creiamo specifiche dettagliate - > sviluppare - > test - > passare alla funzione principale successiva?
- Dovresti creare le specifiche in stile BDD per il ogni singolo metodo nel sistema, anche quelle insignificanti come alcune
GetProductByReferenceCode
?
Il problema è che la maggior parte delle volte in cui in realtà inizi a sviluppare, inizi a realizzare qualcosa che deve essere fatto in modo diverso rispetto a quanto inizialmente pensato, o omissioni non notate durante la progettazione iniziale. Trovo che a volte la fase di progettazione iniziale richieda molto tempo, solo che il design effettivo del sistema sarà molto diverso una volta lanciato il prodotto.
Il mio flusso di lavoro corrente per la progettazione di un sistema è:
- Inizia con l'interfaccia utente, creando prototipi di ogni schermo con cui gli utenti si occuperanno. Trovo che questo sia il metodo più visivo che gli utenti aziendali possano capire.
- Definisci la logica direttamente correlata all'interfaccia utente
- Definisci qualsiasi logica che si verifica in background , ad esempio notifiche, ecc.
Ha senso? In che modo questo potrebbe essere migliorato?