¿Qué son las pruebas de software automatizadas o testing automatizado?
El testing o pruebas de software automatizadas (ver acá) son la capacidad de tener una herramienta de software, o un conjunto de herramientas de software, para probar aplicaciones directamente sin intervención humana. Por lo general, la automatización de pruebas implica enviar los datos de la aplicación bajo prueba y luego comparar los resultados con lo que se esperaba cuando se creó la prueba.
¿Por qué utilizar pruebas automatizadas?
El plan de prueba promedio para una aplicación comercial tendrá de 2000 a 10,000 casos de prueba. Un equipo de pruebas de cinco personas debe ejecutar y documentar manualmente los resultados de 400 a 2000 casos de prueba. Y la fecha de lanzamiento planificada de su producto se acerca rápidamente. Puedes clonar a tu equipo y trabajar las veinticuatro horas del día, o quizás haya una forma mejor, y esto es la automatización de pruebas.
El primer paso en esta dirección es darse cuenta de que ningún plan de pruebas se puede ejecutar por completo utilizando métodos automatizados. El desafío es determinar qué componentes del plan de prueba están dentro del alcance de las pruebas manuales y qué componentes es mejor automatizar.
Se trata de establecer expectativas realistas; la automatización no puede hacer todo. No tienes que automatizar todo. Los seres humanos son más inteligentes que las máquinas (al menos por el momento), y podemos ver patrones y detectar fallas intuitivamente de formas que las computadoras no pueden.
¿Qué tipos de automatización existen?
Las pruebas unitarias es una metodología de prueba que consiste en probar unidades o componentes de software de forma individual. Estas pruebas generalmente las escriben los desarrolladores del módulo y, en una metodología de desarrollo basada en pruebas (como Agile, Scrum o XP), las cuales en realidad se escriben antes de que se cree el módulo como parte de la especificación. Cada función de una unidad es probada por una unidad de prueba de unidad específica escrita en el mismo lenguaje de programación que la unidad.
Por su parte, tenemos las pruebas de interfaz de usuario. En un mundo ideal, la capa de presentación sería muy simple, y con suficientes pruebas unitarias y otras pruebas en la capa de código (por ejemplo, probar API externos), tendría una cobertura de código completa simplemente probando las capas empresariales y las capas de datos.
Desafortunadamente, la realidad nunca es tan simple y, a menudo, deberá probar una interfaz gráfica de usuario (GUI) para cubrir todas las funciones y tener una cobertura de prueba completa. Es aquí donde se vuelven determinantes las pruebas de GUI.
Finalmente, otro tipo común de pruebas automatizadas es las pruebas API, las cuales consisten en probar las interfaces de programación de una aplicación de forma directa, así como parte de pruebas de integración, con el objetivo de poder determinar si debidamente cumplen con las expectativas de confiabilidad, funcionalidad, seguridad y rendimiento.
Dado que las API no tienen una interfaz gráfica, las pruebas de API se realizan a nivel de mensaje. Estas pruebas son fundamentales para probar la automatización, ya que las API ahora sirven como la interfaz principal para la lógica de la aplicación y también porque las pruebas de GUI son difíciles de mantener con ciclos de lanzamiento cortos y cambios frecuentes de comunicación.
Si quieres conocer otros artículos Relacionados a ¿Qué son las pruebas de software automatizadas o testing automatizado? puedes visitar la categoría Empresas.