Академический Документы
Профессиональный Документы
Культура Документы
No se trata de escribir pruebas a granel como locos, sino de disear adecuadamente segn
los requisitos.
Pasamos, de pensar en implementar tareas, a pensar en ejemplos certeros que eliminen la
ambigedad creada por la prosa en lenguaje natural nuestro idioma).
Razones por la cuales usar TDD segn Kent Beck (uno de los padres de la metodologa XP)
Escribir el ejemplo (test) antes que el cdigo nos obliga a escribir el mnimo de
funcionalidad necesaria, evitando sobre disear.
Cuando revisamos un proyecto desarrollado mediante TDD, nos damos cuenta de que los
tests son la mejor documentacin tcnica que podemos consultar a la hora de entender
qu misin cumple cada pieza del puzzle.
Incrementa la productividad.
Uno se marcha a casa con la reconfortante sensacin de que el trabajo est bien hecho.
Una vez que tenemos claro cul es el requisito, lo expresamos en forma de cdigo.
Lo haremos con algn framework xUnit. Cmo escribimos un test para un cdigo que
todava no existe?
Para poder escribirlo, tenemos que pensar primero en cmo queremos que sea la API, es
decir, tenemos que trazar antes de implementar.
Tenemos que hacer el esfuerzo de imaginar cmo seria el cdigo como si ya estuviera
implementado y cmo comprobaramos que, efectivamente, hace lo que le pedimos que
haga.
Codificamos lo mnimo necesario para que se cumpla, para que el test pase.
El mnimo cdigo es el de menor nmero de caracteres porque mnimo quiere decir el que
menos tiempo nos llev escribirlo.
Refactorizar
Rastreamos el cdigo (tambin el del test) en busca de lneas duplicadas y las eliminamos
refactorizando.
Los IDE como Eclipse, Netbeans o VisualStudio, son capaces de llevar a cabo las
refactorizaciones ms comunes.
In
icial
Se hace un cambio, se ejecutan todos los tests y, si todo sigue funcionando, se hace otro
pequeo cambio.
Signifi
cado
(acrnimo)
Concepto
SRP
solo debera tener una nica responsabilidad.
Principio Abierto/Cerrado la nocin de que las entidades de software deben estar abiertas
OCP
para su extensin, pero cerradas para su modificacin.
Principio de sustitucin de Liskov la nocin de que los objetos de un programa deberan ser
LSP
reemplazables por instancias de sus subtipos sin alterar el correcto funcionamiento del programa.
Ver tambin diseo por contrato.
Principio de Segregacin de la Interface (Interface segregation principle) la nocin de que
ISP
muchas interfaces cliente especficas son mejores que una interfaz de propsito general.
DIP
ljg
Y TDD sirve para proyectos grandes?
Un proyecto grande no es sino la agrupacin de pequeos sub proyectos y es ahora cuando toca
aplicar aquello de divide y vencers.
La clave est en saber dividir, en saber priorizar.
De ah la ayuda de Scrum para gestionar adecuadamente el backlog del producto.