Por Michelle Hernández Sanou – Estudiante de la Maestría en Gerencia de Proyectos

“Llegar al mercado de primeros”. Esta es una frase popularizada en el ámbito del desarrollo de software, pues, en un mercado con competidores voraces y consumidores sumamente exigentes, la velocidad de producción se ha vuelto crucial y se han debido encontrar maneras más rápidas de cumplir con el ciclo de vida de desarrollo y lanzar un producto al mercado antes que otros competidores. Las pruebas de calidad automatizadas, para las cuales se crea un código que realiza los chequeos de calidad que se le indiquen de manera continua y automática, se han convertido en una solución altamente popular, pues representan justo lo que se está buscando ante el dilema descrito: velocidad y flexibilidad. Aún así, no constituyen una solución universal y su adopción indiscriminada puede causar una serie de problemas secundarios que vale la pena ponderar por sobre la promesa inicial de una ventaja competitiva.

Las pruebas de calidad en software buscan confirmar que el sistema está funcionando según lo esperado, y descubrir si existe algún fallo o defecto en el código con la finalidad de corregirlo antes del lanzamiento del producto. Si bien la reducción de error humano es un punto fuerte a favor de la utilización de tecnología y soluciones automatizadas en lugar de utilizar opciones manuales, un código automatizado será tan bueno como el desarrollador que lo cree. Es decir, que no será infalible y que en caso de que falle deberán utilizarse recursos para corregirlo. Graham y Fewster (2012) establecen que los beneficios realistas pueden apreciarse cuando el proceso de automatizar pruebas ya se encuentra bien establecido en una organización, pues en sus etapas iniciales resultará costoso tanto en términos financieros como de tiempo. Lo anterior debido a que el proceso inicial de diseñar las pruebas, su mantenimiento, el tiempo dedicado a analizar las pruebas fallidas y otras tareas relacionadas tomará más tiempo y recursos que realizar las pruebas de manera manual.

A pesar de que la automatización de procesos no es novedosa, los beneficios que se han encontrado al aplicarla a controles y pruebas de calidad en el área de software justifican su popularidad. Por un lado, el proceso automatizado puede ser más rápido que una prueba manual, pues al no depender de un recurso humano no está limitado por horarios, niveles de concentración y disponibilidad en general. Aun así, y como se mencionó antes, los códigos usualmente tienen defectos que deben ser corregidos para que la prueba llegue a ser exitosa, por lo que siempre será necesario contar con recurso humano que le pueda dar mantenimiento.

La automatización permite, además, que las pruebas puedan repetirse una multitud de veces sin implicar una extensión del tiempo del proyecto dedicado a la fase de pruebas. Sobre este último punto, Dustin et al. (2001) mencionan que los proyectos de desarrollo encontraron ampliamente beneficioso el uso de pruebas automatizadas para la realización de pruebas repetitivas sobre múltiples iteraciones de código creado en fases antes de su lanzamiento final. De esto se puede deducir que un proyecto que sea relativamente sencillo, corto o de pocas iteraciones podría no llegar a ver los beneficios de esta automatización antes de ser finalizado.

Así las cosas, resulta sensato realizar un análisis detallado sobre si cada proyecto en particular, la organización o compañía en la que se está realizando, y los recursos disponibles se verán beneficiados o no de adoptar un sistema de pruebas automatizadas. Adoptar esta estrategia por su popularidad de manera indiscriminada puede ocasionar más costos, atrasos y fallos en el proyecto.

 

MOXIE es el Canal de ULACIT (www.ulacit.ac.cr), producido por y para los estudiantes universitarios, en alianza con el medio periodístico independiente Delfino.cr, con el propósito de brindarles un espacio para generar y difundir sus ideas.  Se llama Moxie - que en inglés urbano significa tener la capacidad de enfrentar las dificultades con inteligencia, audacia y valentía - en honor a nuestros alumnos, cuyo “moxie” los caracteriza.

Referencias bibliográficas:
  • Dustin, E., Paul, J. y Rashka, J. (2001). Automated software testing. Boston, Addison-Wesley.
  • Graham, D. y Fewster, M. (2012). Experiences of test automation (1 ed). Boston, Addison-Wesley.