Automatización de pruebas
Automatización de pruebas
La automatización de pruebas consiste en el uso de software especial, diseñado con el fin u propósito de controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados. La automatización de pruebas permite incluir pruebas repetitivas y necesarias dentro de un proceso formal de pruebas ya existente o bien adicionar pruebas cuya ejecución manual resultaría difícil.
La automatización de prueba es ventajosa en situaciones en las cuales el software se modifica constantemente, dado que hasta las modificaciones menores pueden ocasionar que funcionalidad ya desarrollada deje de funcionar.
Existen dos aproximaciones a las pruebas automatizadas:
- Pruebas manejadas por el código: Se prueban las interfaces públicas de las clases, módulos o bibliotecas con una variedad amplia de argumentos de entrada y se valida que los resultados obtenidos sean los esperados.
- Pruebas de Interfaz de Usuario: Un marco de pruebas genera un conjunto de eventos de la interfaz de usuario, tales como teclear, hacer click con el ratón e interactuar de otras formas con el software y se observan los cambios resultantes en la interfaz de usuario, validando que el comportamiento observable del programa sea el correcto.
Lo interesantes de esto es como con el auge que está tomando el desarrollo ágil de software, representado en marcos de trabajo como Scrum, la Programación extrema (XP) y el Agile Testing, cada vez es más crítico contar con la posibilidad de realizar constantes refactorizaciones e integraciones de código. Ya que cada vez es más crítico ir a la par de los exigentes tiempos de entrega y cambios demandados por las áreas de negocio. Y pues para lograr esto, es necesario automatizar las pruebas funcionales y de regresión, con la finalidad que estas pruebas se puedan ejecutar de forma rápida y repetitiva.
Los principales atributos de las herramientas y la automatización son, según Ron Patton (2001):
- Velocidad: Piense en cuánto tiempo le llevaría probar manualmente unos miles de casos de prueba para la Calculadora de Windows. Puede promediar un caso de prueba cada 5 segundos más o menos. La automatización podría ejecutar 10, 100 o incluso 1000 veces más rápido.
- Eficiencia: Mientras estás ocupado ejecutando casos de prueba, no puedes estar haciendo nada más. Si tiene una herramienta de prueba que reduce el tiempo que lleva realizar las pruebas, tiene más tiempo para planificar las pruebas y pensar en nuevas pruebas.
- Exactitud y precisión: Después de probar unos cientos de casos, su capacidad de atención disminuirá y comenzará a cometer errores. Una herramienta de prueba realizará la misma prueba y verificará los resultados perfectamente, todas y cada una de las veces.
- Implacabilidad: Las herramientas de prueba y la automatización nunca se cansan ni se rinden. Son como los conejitos de anuncios de televisión que funcionan con baterías que pueden seguir y seguir
Las herramientas simplemente les facilitan el trabajo y hacen que el trabajo resultante sea de mayor calidad. Las herramientas de prueba de software operan de la misma manera. Es por eso que siempre se debe de tener como recordatorio, que las herramientas de prueba de software no son un sustituto de los probadores de software, solo ayudan a los evaluadores de software a realizar mejor su trabajo. Es importante tener en cuenta que el uso de herramientas de prueba no siempre es la respuesta correcta. A veces no hay sustituto para las pruebas manuales.
Herramientas para la automatización de pruebas de software
1. Selenium
Es un framework para pruebas de aplicaciones Web, descargable de forma gratuita desde su sitio web. Proporciona una herramienta de gabración y playback, que permite desarrollar pruebas sin necesidad de aprender un lenguaje de Scripting. Incluye características como grabación, playback, selección de campos, auto completar formularios, pruebas de recorrido (Walkthrough), debug, puntos de control, scripts ruby y otros formatos.
2. HP Quicktest Professional (QTP)
Proporciona la capacidad de automatizar pruebas funcionales y pruebas de regresión para software y ambientes de prueba. Proporciona la capacidad de definir Scripts de prueba y posee una interfaz gráfica que le permiten al usuario emular la funcionalidad que desea probar, incluyendo el uso de interfaces de usuario de las aplicaciones a probar. Incluye características como: Vista de experto, pruebas de procesos de negocio, grabado de pantalla (para captura de las evidencias de prueba), entre otras posibilidades.
3. Watir
Pronunciado “Water”, es una familia de librerías Ruby de Código Abierto (Open Source) para la automatización de navegadores web. Le permite a su usuario escribir pruebas fáciles de leer y mantener. Sencilla y flexible. Tiene la capacidad de hacer clic en enlaces, llenar formularios de pantallas con datos y presionar botones. Watir también revisa los resultados, incluyendo verificar si los textos esperados se muestran en las páginas. Tiene la capacidad de enlazarse con bases de datos, leer archivos de datos y hojas de cálculo, exportar XML y estructurar los códigos como librerías reutilizables.
4. Visual Studio Test Proffessional
Conjunto de herramientas de pruebas integradas desarrolladas por Microsoft, que proporcionan soporte a todo el ciclo de planificación, ejecución y registro de pruebas, con facilidades de colaboración entre analistas de prueba (testers) y desarrolladores en la herramienta. Proporciona capacidad de realizar pruebas manuales, reutilización de pruebas manuales, integración con el “team foundation server”, gestión de ciclo de vida de aplicaciones, entre otros.
5. Rational Functional Tester
Herramienta de automatización de pruebas funcionales y de regresión. Proporciona capacidades de pruebas de interfaz gráfica, pruebas manejadas por datos (Data Driven), pruebas funcionales y puebas de regresión. Algunas de sus características son:
- Simplificación de creación y visualización de pruebas.
- Pruebas de tipo storyboards.
- Trazabilidad en todo el ciclo de vida.
- Validación de data dinámica (por medio de un wizard).
- E inclusive capacidad de definir scripts (por medio de lenguajes de Scripting).
6. UFT (Unified Functional Testing)
Hace que tus pruebas automatizadas sean más eficientes a la vez que ayuda a los desarrolladores y responsables de pruebas a colaborar (algo muy beneficioso, y que cada vez se instaura más gracias a la filosofía Devops). Esta herramienta nos permite la importación de activos de pruebas manuales como grabaciones convirtiendo en activos de automatización de pruebas reutilizables para pruebas de regresión e integración.
Beneficios que aporta la automatización de pruebas
- Una suite de pruebas, un sistema de pruebas de regresión automatizadas que permite una ejecución de las pruebas rápida, frecuente y completa, sin necesidad de presencia continua de los equipos de QA.
- Mayor eficiencia de las herramientas de testing utilizadas dentro de su organización.
- Mejor calidad en la ejecución de pruebas. No existen dudas de si el tester ha olvidado algún caso de prueba o de si, por error, ha entrado mal los datos.
- Reducción de los costes de mantenimiento de pruebas. El mantenimiento y la flexibilidad son los dos objetivos principales a la hora de diseñar una suite de pruebas.
Los responsables del negocio pueden mantener los casos de prueba sin necesidad de conocimientos de automatización de pruebas.
- Un enfoque repetible para la automatización de pruebas. Un diseño de la suite de pruebas que incluya componentes reutilizables proporciona una base que facilita la creación más fácil y de menor coste de futuras suites.
Factores clave del éxito de la automatización de pruebas
La experiencia nos demuestra que para llevar a cabo un proyecto de automatización de pruebas éxitoso es necesario contar con:
- Compromiso.
- Test estructurado (técnicas y métodos contrastados).
- Conocimientos necesarios (test estructurado, herramientas e infraestructura).
- Desarrollo rápido de nuevos test automatizados.
- Capacidad para mantener la automatización mediante la modulación y la reutilización.
Conclusión
Actualmente la automatización es algo que se da día con día, es parte esencial de la ejecución de pruebas, ya que es de gran ayuda como lo hemos visto, pero como probar el software, lo decide cada empresa o cada uno de nosotros, ya que hoy en día estamos expuesto a una amplia gama de herramientas de prueba, claramente habrá unas a las que simplemente no podemos acceder pero habrá otras a las que si. Por lo tanto los tipos de herramientas que posiblemente usaremos se basan en el tipo de software que está probando y si está realizando pruebas de caja negra o de caja blanca.
Personalmente, las herramientas de prueba es que no siempre son necesarias, también el ser humano es capas de realizar ese tipo de tareas, aunque siendo sincero la automatización si que ayuda, pero aun así existen expertos que son mejores que este tipo de pruebas, ni haciendo cientos de pruebas de automatización pueden llegar a realizar el trabajo de estos ejecutan, claro el tiempo y los costos son mayores, pero el resultado no podría ser mejor.
Referencias Bibliográficas
Henostroza, G. (25 de febrero de 2017). Slideshare. Obtenido de Automatizacion de Pruebas: https://es.slideshare.net/guino3/automatizacion-de-pruebas
Informatica, P. (5 de noviembre de 2012). Pmo Informatica. Obtenido de 5 Herramientas para la automatización de pruebas de software: http://www.pmoinformatica.com/2012/11/5-herramientas-para-la-automatizacion.html
López, E. (s.f.). Globe. Obtenido de Automatización: ¿Cuándo implementarla?: https://www.globetesting.com/2016/02/automatizacion-cuando-implementarla-2/
Oterino, A. M. (23 de enero de 2015). Javier Garzás.com. Obtenido de “Vamos a automatizar pruebas”. ¿Qué significa esto? ¿Realmente por dónde deberíamos empezar a automatizar?: http://www.javiergarzas.com/2015/01/automatizacion-pruebas.html
Salazar, A. N. (29 de abril de 2011). Slideshare. Obtenido de Pruebas Automatizadas: https://es.slideshare.net/snahider/pruebas-automatizadas-de-software
Patton, R. (2001). Software Testing. Indianapolis, Indiana: Sams Publishing.
Comentarios
Publicar un comentario