Lo sviluppo dei software parte dai requisiti del cliente e degli utenti del software stesso. Il metodo Agile ha lasciato spazio a questi requisiti per permettere una maggiore adattabilità, anche durante il periodo di sviluppo, a possibili modifiche legate a nuovi requisiti ed esigenze.
Nelle prime fasi di sviluppo, il Product Manager o più in generale il Cliente, anche insieme alla consulenza del team di sviluppo, traduce le proprie necessità e quelle dell’utilizzatore finale dell’applicazione in requisiti operativi. Ciò comporta che il collaudo del software sia acquisito attraverso dei test che esplicitano che la funzionalità lavora nella maniera indicata nei requisiti. Contattaci subito e senza impegno per garantire la qualità delle tue applicazioni.
Test-Driven Development(TDD)
Il concetto di TDD nasce 20 anni fa, nell’era dei mainframe e di complesse applicazioni, servizi ed infrastrutture, quando in pratica gli sviluppatori avevano necessità di comparare i risultati di quanto fatto con quanto si aspettavano.
I test erano creati prima di scrivere il codice, nel TDD i test case sono sviluppati basandosi esclusivamente sui requisiti. Il processo del TDD può essere sintetizzato come segue:
- Realizzare un test: basandosi sui Use Case, i test vengono scritti affinchè vengano superati se e sole se la funzionalità rispetti un determinato requisito.
- Far girare il test ed osservare eventuali fallimenti: il test fallisce solo se la funzionalità non rispetta il requisito.
- Correggere l’errore in modo immediato e per far si che il test venga superato.
- Iterare i punti 2 e 3 fino a quando tutti i test vengono superati.
- Ristrutturare il codice per il migliorare l’eventuale compliance a standard o requisiti di sviluppo come modularità, astrazione, lettura documentale del codice.
Dovendo eseguire il processo suindicato per ogni requisito, appare chiaro che le funzionalità che devono essere testate debbano essere “piccole” e nel caso siano “grandi” occorre dividerle in più piccole in modo che sia semplice farne il debug.
Contattaci subito e senza impegno per integrare i test nei tuoi processi di sviluppo.
L’evoluzione del TDD: il Behaviour-Driven Development(BDD)
Seppur BDD si basi sui medesimi principi del TDD di creare i test prima dello sviluppo e di iterare in maniera continua i test per garantire le funzionalità, i test di tipo BDD si basano sui termini di comportamento desiderato di una determinata funzionalità e non sul mero corretto funzionamento.
BDD affina il TDD allineandolo ai requisiti di business più che ai requisiti tecnici in modo da adattare i test ai specifici stakeholder del progetto di sviluppo. In buona sostanza adatta i test a ciò che Agile chiama User Story.
Una User Story è l’espressione di una determinata funzionalità del prodotto software dalla prospettiva dell’utilizzatore. La User Story dettaglia come la funzionalità fornisca valore all’utente e così facendo si assicura che i requisiti di business dell’end user siano portati all’attenzione principale del team di sviluppo.
Utilizzando le User Story, BDD sintetizza nei test le idee ed i propositi frutto della collaborazione tra Product Manager, cliente o end user e sviluppatori. Inoltre mettendo in campo il linguggio del business nella costruzione dei test, riduce notevolmente e spesso elimina gli effetti dovuti alla conversione di requisiti in funzionalità, quello che viene chiamato “lost-in-translation”.
Contattaci subito e senza impegno per realizzare la tua applicazione integrando le User Story.
Conclusioni
Il BDD aiuta sia lo sviluppo sia il cliente ad avere una struttura di test che sono orientati ad ambedue e che quindi riducono possibili perdite di informazioni nei vari passaggi dal “documento dei requisiti” alla realizzazione del software. Per un approfondimento puoi leggere il precedente articolo “I 4 modi per accelerare il processo dal Design allo Sviluppo“.
Testare l’usabilità anche coinvolgendo il Cliente e formalizzando, ove necessario in base al progetto, la User Experience(UX), si traduce in minori modifiche durante l’esecuzione del progetto e quindi in migliore produttività e qualità complessiva.
Attraverso figure come l’Analista Funzionale è possibile creare applicazioni perfette per i tuoi clienti e garantire il successo di tutto il ciclo di sviluppo.
Contattaci subito e senza impegno per consulenza e assistenza nello sviluppo software.
Glue Labs, TDD e BDD
Attraverso l’adozione di processi che coinvolgono Project Manager, Analisti Funzionali, Designer e Sviluppatori e l’implementazione di piattaforme uniche e documentazione standardizzata realizziamo la tua Web Application, PWA e Mobile App garantendola 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.
Grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti forniamo formazione avanzata e assistenza e supporto per qualsiasi progetto di sviluppo. Contattaci subito e senza impegno per maggiori informazioni.