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]

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

0 comentarios en “El testing ha muerto”

  1. Pingback: Bitacoras.com

  2. Hola,
    No creo que la sangre llegue al rio. De todas formas ya desde hace tiempo se hacía poco testing, por otras razones, por lo que en ese sentido la cosa no cambia mucho.
    Saludos

  3. ¿Cómo Google? ¿Tienes alguna referencia sobre esto?
    Porque hasta donde yo tengo entendido no es así:
    http://googletesting.blogspot.com/
    http://josepablosarco.wordpress.com/2011/04/06/¿como-es-el-proceso-de-testing-en-google/
    Google igual que tantas otras (grandes y pequeñas, software crítico, juegos, etc.) están buscando mejores formas de desarrollar software y el testing es una parte del desarrollo. Esto es la esencia de ágil, lo demás es pura cancamusa, vaya con la etiqueta Agile o la q sea.

  4. Buenas tardes a todos. La verdad es que lo mismo que se dice aquí del testing se podría decir de otros perfiles especializados (Ej: analistas). Lo que demandan los entornos de desarrollo «hiperágiles» es gente que tenga una visión completa desde la concepción del producto hasta la capacidad de convertir la idea en «software que funciona». Es decir, lo que vulgarmente se llama un desarrollador.
    Otra cosa es que no en todos los entornos tiene sentido esta forma de trabajo, del mismo modo que el modelo Open Source no ha sustituido (ni puede) al modelo de negocio basado en software con copyright (hay muchos casos en que tiene sentido y seguirá teniendo sentido) por mucho que algunos sueñen con ello, tampoco el desarrollo ágil (o hiperágil) va a sustituir al modelo de desarrollo de software tradicional en todos los casos.
    Saludos.

  5. No sé, creo que decir esto es ser demasiado catastrofista. Si es cierto que en parte los departamentos de testing puramente dichos están desapareciendo, integrándose con el de desarrollo, pero no creo que las pruebas sean realizadas en menor medida que antes.
    Quizás ahora, gracias a la automatización, no sea tan necesario tener tanta gente dedicada a probar como antes, y esos recursos se aprovechan mejor en otros trabajos.

  6. También habría que pensar que lo de perder especialización por perfiles generalistas puede llegar hasta un punto. Está claro que una persona puede saber un poco de muchas cosas (testing, analisis, etc.) pero no un mucho de muchas cosas entonces ¿perdemos ese conocimiento y especialización? Yo creo que la idea acabará en «nuesvos modelos de testing» más que gente que sepa de todo y dademás de testing.

  7. Hola a todos,
    creo que ni tanto ni tal calvo… Tampoco es que hasta ahora siempre se estuviera haciendo un testing muy profundo y esto haya cambiado de la noche a la mañana.
    En realidad, por las empresas que he podido visitar por trabajo, muy pocas son las que tienen el proceso de pruebas institucionalizado. Sí, saben que hay que hacer pruebas, en el mejor de los casos hasta quieren hacerlas, pero el problema es el mismo de siempre, el tiempo. Y cuando no hay tiempo amigos, las pruebas son como el capitan de un reciente navío, las primeras en salir por la borda…
    Ojo, también he visto empresas que por lo crítico del software que fabrican, aun siendo este en tamaño solo de unas pocas miles de líneas, disponían de un equipo especializado en pruebas que gastaba tanto o más tiempo que el propio equipo de desarrollo.
    Con esto solo quiero reflejar que no creo que el testing haya muerto, lo que sí ocurre es que tendrá que adaptarse y especializarse dependiendo del ciclo de vida de desarrollo, el sector destino del software, etc., si quiere seguir vivo en todos los proyectos software.
    Un saludo

  8. Pingback: La agilidad está muriendo. Bienvenido el postagilismo - Javier Garzás, sobre calidad software y otros temas relacionados

  9. Hola
    Javier has escrito
    «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.»
    Ni que decir tiene que durante este medio siglo han habido extraordinarios avances en HW, SW y Sistemas, Comunicaciones derivados de las correspondientes ingenierías y de las tecnologias que han propiciado,. Y rgoin embargo no hayan variado sustancialmente ciertas prácticas de desarrollo.
    Recuerdo bien que a primero de los 70´s los programadores y analístas, ahora llamados desarrolladores, desarrolladores, por ej. el equipo de trabajo nos leiamos conjuntamente las necesidades de teleproceso de la Bolsa de Madrid publicadas oficialmente e ibamos simultaneamenta diseñando registros de E/S, definiendo módulos de programa, modulos de aplicación,esqueletos de programas , ficheros y sus relaciones con los programas, esquemas de pruebas de integración, comandos de operación, etc.. acabada la lectura y discusión para aclaraciones y puesta en común el jefe de equipo repartia el trabajo , dando a cada cual según sus habilidades y experiencia y el resultado es que todos haciamos de todo desde perforarnos nuestras ichas , analizar, programar, probar, documentar, (poco o nada), directamente el código contenía lo que reAlmente funcionaba y el resto de lo que pudiera ser necesario estaba en el coco de cada uno de nosotros. lo que nos hacia cuasi imprescindibles y por tanto nos aseguraba parte importante de nuestra vida laboral.
    Así que curiosamente el «ahora» es una recuperación de las hiperágiles prácticas, herencia de nuestroa abuelos y bisabuelos que programaban en los ensambladores que correspondiran .
    Aquí cabe decir aquello de » nada nuevo bajo el Sol» excepto se nos está vendiendo como métodos superavanzados lo que no es sino una herencia de hace más de medio siglo y que algunos de los más jóvenes y otros no tanto, están muy ufanos de sus «modernos» conocimientos.
    No viene mal un poquito de humildad y del conocimiento objetivo y desinteresado de la historia profesional, en este y otros campos relacionados con nuestro trabajo.

  10. Hola,
    Totalmente de acuerdo, los mismos problemas y soluciones desde hace años… camiando el nombre.
    No se si llegaste a ver una serie de post sobre crónicas de la ingeniería del software, donde se podía leer como hace 40 los padres de la ingeniería del software hablaban de los mismos problemas de hoy.
    De hecho el tan popular hoy ciclo iterativo es de los 60.
    Gracias por el interesante comentario.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *