Work smart, not hard

Es común que suceda que muchas veces nos esforzamos en trabajar en algo que al final nos hace que nos lleve mas tiempo llegar a cumplir nuestro objetivo. El fin de testear es encontrar bugs o asegurar que el producto funcione correctamente, esto lo tenemos que hacer cubriendo la mayor parte del producto en el menor tiempo posible.Con respecto a la desición de automatizar o no se pueden cometer dos errores:

  • Podemos esforzarnos en correr casos manualmente que en realidad si los automatizamos, podemos reducir notablemente el tiempo de ejecución.
  • Tomar la desición de automatizar algo que en realidad no vale la pena automatizar, ya sea porque es un test demasiado simple o porque se va a ejecutar sólo una vez.

Por eso es importante discernir cuando o no automatizar. Supongamos que tenemos un test suite que su ejecución nos llevaría 5 días y que durante el testing del producto lo debemos correr 2 veces (primer ejecución + regresión hacia el final del testing). Nos quedarían 10 días de ejecución manuales. En este caso nos conviene evaluar automatizar: dedicamos 5 días a automatizar los casos y supongamos que reducimos la ejecución de 5 días a 1 día. Terminamos usando 7 días de trabajo vs los 10 días estimados manuales, y no sólo eso, la próxima vez que haya que hacer una regresión de este feature tenemos los tests automáticos listos para correr las pruebas rápidamente, pudiendo dar una respuesta de que tan estable esta el feature o no.Por otro lado si tenemos un feature que nos lleva 1 día correr manualmente y que no se volverá a testear, en este caso nos conviene directamente correrlo manualmente. Muchas veces también puede suceder que se requiere de un ambiente demasiado complejo y es realmente necesario que una persona monitoree las pruebas, ahí si: corramos el test suite manualmente.It is common that happens that many times we put a lot of effort in working in something that at the end will make us waste our time in achieving our objective. The objective of testing is to find bugs or ensure that the product works properly, and we must do this covering the most part of the product in the less time possible.In deciding when to automatize or not we can make two different mistakes:

  •  We can effort in running the testcases manually but if we automatize we can reduce notably the time of execution.
  •  We can make the decision write automated scripts in something that it not worth it, this can be because it is a very simple test or it will be executed only once.

That’s why it is important to decide when automatize or not. Let’s suppose that we have a test suite that it’s execution take 5 days and during the testing of the product we must run it 2 times (firts execution + regression at the end of the testing). It will take us 10 days of manual testcase execution. In this situation we must automatize: we use 5 days to automatize the testcases and let’s suppose that with this automated tests we reduce the execution time from 5 days to 1 day. We will end up using 7 days of work vs 10 days estimated if we were doing all manually, and not just that, the next time that we needed to run the tests again we will have our automated scripts to give a quick answer of the stability of the feature.On the other hand, if we have a feature that will take us 1 day to run it manually and it will not be tested again in the future we must run it manually. It can also happen that a complex environment is required and it is really necessary to put a human to check the tests, in that case we need to run the test manually too.

Leave a Reply