El testing ha muerto

Nota previa: Si trabajas en testing, y quieres seguir pensando que tu vida no puede cambiar… no leas este post.
Algunos recordaréis que hace un tiempo os recomendaba ver el video de la “keynote” de McConnell en la GTAC 2011. Pues resulta que después de ver el vídeo de McConnell me entró la curiosidad, y al final me pasé todo un domingo viendo todas las “keynotes”. Y entre todas descubrí una charla especialmente buena: “el testing ha muerto”, de Alberto Savoia. Os dejo en este post un resumen con lo más interesante de la charla.
Los comienzos del testing
Hace tiempo existía el documento de requisitos. De aquel documento de requisitos se derivaba el diseño, del diseño el código, del código los casos de test, etc. En aquellos tiempos había una clara separación entre desarrolladores y testers. Los ciclos de desarrollo eran largos. Las empresas contrataban por un lado a desarrolladores y, por otro, a los tester, y ambos perfiles incluso se ubicaban en lugares diferentes dentro de la empresa, separados físicamente. Todo lo anterior hay quien lo engloba bajo el ciclo de vida en cascada (waterfall o… waterfail)
La nueva mentalidad del test
Hoy los ciclos son muy rápidos. El software se lanza incluso antes de estar totalmente listo (prototipos). Los desarrolladores son ahora los responsables del testing, se han roto los roles y las especializaciones. A esta manera de trabajar se le suele llamar desarrollo ágil.
La era post ágil
Pero la realidad no es como la cuentan los libros y charlas sobre desarrollo ágil. Es muy diferente. Los equipos trabajan en la realidad en lo denominado “post-agile”. El post ágil es una visión mucho más liberal a la que propone el desarrollo ágil. Seguir todo lo que propone la filosofía ágil funciona bien en algunas empresas, pero no en todas (cosa en la que desde siempre este blog ha coincidido, te recomiendo aquí el post de una metodología ágil no siempre es la mejor alternativa), por lo que hay empresas que trabajan bien de otra manera, no tan ágil, pero que tampoco es en cascada.
Hoy se impone el “construir lo correcto” antes que “construirlo correctamente”. Y cuando la calidad es menos importante que la velocidad… los tester son menos importantes. Y esto es porque hoy en día la mayoría de los productos fracasan al llegar al mercado. Por ejemplo, el 95% de las aplicaciones móviles no generan dinero. Por ello las empresas deben hacer productos software y validar su utilidad lo más rápido posible (y no si están bien hechos). Los testers deberían “probar ideas”, en vez de si los productos están bien hechos.
Aparece el Pretotyping (frente al Prototyping), que se basa en probar (lo más barato y rápido posible), para asegurarte de que estás construyendo lo correcto antes de construirlo de la manera más correcta.
Todo esto está en línea con el movimiento “Lean startup” (te dejo un enlace al libro, recomendable de leer)
Síntomas del “testapocalipsis”
– La contratación de testers ha descendido.
– Los tester están siendo “comoditizados”, externalizados, etc.
– Hay un éxodo de líderes del área del testing. Y poca sangre nueva.
– Cada vez más empresas se mueven al “post agil testing”.
Futuro
Hay que ir olvidándose de la manera tradicional de hacer pruebas. Buscar nuevos modelos de testing. Una nueva filosofía de hacer pruebas. Las pruebas no van a morir literalmente, pero si la manera de hacer testing que hoy conocemos.

Una de las preguntas que se realizaron en la charla fue si esta visión aplicaba solo a las “start up”, si tenía aplicabilidad a grandes sistemas software, desarrollo de software crítico, etc. La respuesta es que, efectivamente, habrá sectores y productos en los que el testing tradicional perdurará durante años. Pero que la mayoría de las grandes compañías ya están lanzando productos siguiendo esta filosofía, como Google por ejemplo. Por lo que esta visión no es solo de pequeñas empresas, está más relacionado con cómo se hacen los negocios en el software.
 
[youtube]http://www.youtube.com/watch?v=X1jWe5rOu3g[/youtube]