|
Introducció¶Fins ara, normalment els projectes de programari s'han desenvolupat seguint una metodologia de desenvolupament tradicional, com la cascada (waterfall), en la qual les fases de desenvolupament s'executen de forma seqüencial, sense possibilitat de tornar enrere i sense possibilitat de fer canvis en les fases anteriors. A més, no hi ha una retroalimentació continuada entre el client i el desenvolupador, i el client no veu el producte final fins que no s'ha acabat el projecte. Alguns d'aquests problemes es solucionen amb les metodologies àgils, com Scrum o Kanban, que es desenvolupen en xicotetes iteracions, amb una retroalimentació contínua entre el client i el desenvolupador, i amb la possibilitat de fer canvis en qualsevol moment del projecte. No obstant això, aquestes metodologies no solucionen un problema molt important: com podem assegurar-nos que el nostre codi funciona correctament?. En qualsevol de les metodologies anteriors es poden fer proves manualment, però això és molt costós i no és escalable, o fins i tot automatitzar les proves. No obstant això, normalment aquestes proves s'escriuen a posteriori, quan el codi ja està escrit, i per tant, no són tan efectives i no se'ls treu rendiment. Alguns problemes derivats d'aquesta situació són:
Desenvolupament Guiat per Proves¶El Desenvolupament Guiat per Proves o TDD (Test-Driven Development) és una metodologia de desenvolupament de programari en la qual les proves unitàries es redacten abans que la implementació del codi. Aquesta metodologia no soluciona màgicament tots els problemes exposats anteriorment, però ens proporciona una manera de treballar que ens permet evitar-los. El TDD consisteix en seguir un cicle de desenvolupament curt i repetitiu, que es pot resumir en tres passos:
Com les proves s'escriuen abans que el codi, es suposa que la prova fallarà inicialment. Si la prova no falla, és que la prova no és bona, ja que descriu un comportament que ja existeix o que s'ha implementat incorrectament i, per tant, aquestes proves s'haurien d'eliminar o refactoritzar. Recursos addicionals¶
Bibliografia¶
|