viernes, 7 de septiembre de 2018

Por que merece la pena arreglar las pruebas automaticas

Cuando se hacen pruebas automaticas sobre un software tiene el GRAN (e histórico) problema de que al modificar el software se debe modificar las pruebas automaticas y eso siembre se ha visto como una perdida de tiempo y un handicap para no hacer pruebas automaticas.

El problema es el enfoque, tener que adaptar la prueba automatica implica:


  • Conocer como funciona la prueba (lo cual permite mejorar y ampliarla).
  • Probar de una manera distinta a como lo hace el programador y tener mas exito en la busqueda de errores.
  • Ya que se tiene que adaptar la prueba, se pueden crear nueva.
Se le debe dar este enfoque para que los programadores no tengan el problema de verlo inútil y aburrido. ¿Como se hace mas ameno una prueba? No haciéndola muy simple. Un ejemplo muy bueno es el siguiente:

1) Se cambia el parametro de la funciona suma de int suma (int a, int b) a int suma (int a, int b, int c).
2) Se le pide a un programador que lo cambie en 100 ficheros. 
Esto es aburrido y frustrante.

Sin embargo, si la prueba automatica tiene mas magnitud el programador lo vera de otra manera. Ejemplo,
1) Se cambia la interface web donde el usuario suma ahora 3 valores y no dos
2) Se pide al programador que cambie la petición html que prueba la pagina web que por debajo llama a la nueva funcion int suma (int a, int b, int c).
3) Ademas se le pide medir tiempos, aumentar las pruebas a 10000 iteranciones, etc..
Esto es mas desafiante y seguro que prueba mas el software que una simple prueba para llamar a un método.

El otro gran motivo es que al automatizar las pruebas siempre se descrubren errores de plantemaiento ya que te obliga a mirar el codigo desde otra perspectiva. Es decir, se pueden encontrar fallos despues de la famosa frase del programador: "yo he probado todo y funciona"

No hay comentarios: