LA CALIDAD DEBE TRABAJAR PARA EL SOFTWARE Y NO AL CONTRARIO
LA CALIDAD
Y/O PROCESOS DEBEN TRABAJAR PARA LA ORGANIZACIÓN Y NO AL CONTRARIO
Y/O PROCESOS DEBEN TRABAJAR PARA LA ORGANIZACIÓN Y NO AL CONTRARIO
- pruebas par
- pruebas unitarias
- pruebas funcionales
- pruebas de integración
- pruebas de seguridad
- pruebas de compatibilidad
- pruebas de adaptabilidad
- pruebas de instalabilidad..
- pruebas de stress
- etc
- etc
- etc
Pero cuantas y cuales..vuelvo y lo repito LAS NECESARIAS ni una más, ni una menos.
A que se refiere esto, por ejemplo dentro de las prácticas ágiles se encuentran:
- TDD : Test driven development - desarrollo dirigido por las pruebas
- ATDD: Aceptance test driven development - desarrollo dirigido por las pruebas de aceptación
Y hablamos de cobertura (cuantas pruebas aseguran nuestro código).
Sobre lo que quiero llamar la atención es:
- NO ES NECESARIO cubrir todo el código con pruebas unitarias (ejemplos los POJO, DTO, o VO no lo requieren), solo objetos que tengan lógica de negocio (es mi humilde recomendación, ahora si a tu equipo esto le agrega valor, lo acepto y difiero respetuosamente).
- Ni es estratégico volcarse a una cobertura de 100% de pruebas sobre el código.
Nuestro objetivo es proveer software funcional, las pruebas nos ayudan a hacer software funcional pero como tal:
- Las pruebas no son un entregable que agregue valor al cliente, me explico, si hacemos pruebas o no al cliente no le interesa, a el solo le interesa que funcione y no falle..
- Las pruebas codificadas se convierten en una pieza de código más para mantener
- incluir en el servidor de integración continua
- hacerle refactor
- corregir,
- adaptar,
- etc
Por lo tanto, hagamos las pruebas suficientes para estar tranquilos y que nos aseguren ENTREGAR SOFTWARE DE CALIDAD.
LA CALIDAD NO ES NEGOCIABLE...
Pero
LA CALIDAD DEBE TRABAJAR PARA EL SOFTWARE Y el no software para cumplir con tdd del 100%, atdd del 100%, etc, etc.
Saludos ágiles
Jorge Abad