End to End testing – Día 95

Aunque sea una opinion poco popular, y la mas costosa de los tipos de prueba, en mi opinion las unicas pruebas que valen la pena, son las pruebas end to end, o de inicio a fin.

Las pruebas que representan los casos de uso, de control, y de falla, de los usuarios.

Por simple que parezca son las mejores pruebas porque son las unicas que aseguran el funcionamiento total del software donde debe funcionar.

Sin embargo son las mas costosas ya que requieren de:

1 – Automatizaciones de equipos de usuarios, estos sistemas son mas complejos y mas costosos, asi como limitados en casos de dispositivos moviles. Aunque hay un gran avance en emuladores. Se necesitan copias de datos finales, se necesitan emuladores de dispositivos, se necesitan servidores como los finales. Es mucho mas complejo, y elaborado. A su vez es mas dificil de lograr. Tambien son las mas lentas en ejecutar. En mi opinion uno de los mejores lugares para incluirlas es en el build centralizado.

2- Un juego elaborado de pruebas, como son mas dificiles de ejecutar,

Es interesante que estas son las menos nombradas en la ingenieria, siempre se delegan a los equipos de calidad. Y normalmente se ejecutan de forma manual, por los costos agregados.

Hay tecnicas que se pueden usar para delegar las pruebas a los usuarios. Las fases de Alfa, Beta, Insiders, Canarios se usan para ahorrar el costo de los testers y automatizaciones. Es una buena estrategia de mercado porque crea comunidad y ahorra gastos “adicionales”.

La estrategia es tener usuarios informados o no, que reciben primero la nueva version del software , y de ellos mediante telemetria, poder controlar los casos de uso de la aplicacion. Y encontrar fallas si fuera el caso.

Algunos sistemas de servicios web, incluyen estas funciones donde puedes tener varias versiones del sitio publicadas, y mediante un balanceador dirigir un porcentaje de visitas a una version u otra. Incluso hay versiones mas avanzadas que si falla una version, puedes reenviar la solicitud a la anterior.

Y en el caso de aplicaciones mobiles, una buena alternativa es habilitar actualizaciones menores por mercados, e ir evaluando como se comportan.

Entonces siempre las mejores pruebas son las que representan a los usuarios. Las que usan el producto completamente.

Y no las pruebas que se usan para culpar al par coorporativo o justificar el trabajo.