Tengo dos reglas:
- Ninguna característica puede considerarse “terminada” hasta que haya pruebas automatizadas funcionales. La capacidad de ingeniería debe satisfacerlo. Las pruebas deben expresarse como criterios de aceptación y ejecutarse con una integración continua en cada confirmación. Las pruebas nunca se pueden enviar a otro equipo, en otra iteración de trabajo.
- Las pruebas funcionales no deben ser propiedad al 100% de los evaluadores. Las pruebas funcionales no deben ser propiedad al 100% de los desarrolladores. Los evaluadores aportan una mentalidad de “lo que se debe probar”. Los desarrolladores aportan una mentalidad de “cómo debemos implementar esta prueba”. Esa escala puede inclinarse hacia cualquier lado, dependiendo de cuán técnicos (y cercanos) sean los probadores, y cuán fuertes sean los mentes de prueba de los desarrolladores.