Pruebas ágiles: herramientas
En proyectos ágiles, los probadores son responsables de las siguientes tareas diarias:
Apoyar a los desarrolladores en la codificación, con aclaraciones sobre el comportamiento esperado del sistema.
Ayude a los desarrolladores a crear pruebas unitarias efectivas y eficientes.
Desarrollar scripts de automatización.
Integre herramientas / scripts de pruebas de automatización con integración continua para pruebas de regresión.
Para una implementación rápida y eficaz de estas tareas, en la mayoría de los proyectos Agile se utiliza un sistema de Integración Continua (CI) que admite CI de Código y componentes de prueba.
Los probadores y los desarrolladores en proyectos ágiles pueden beneficiarse de varias herramientas para administrar las sesiones de prueba y crear y enviar informes de defectos. Además de las herramientas especializadas para pruebas ágiles, los equipos ágiles también pueden beneficiarse de la automatización de pruebas y las herramientas de gestión de pruebas.
Note - Las soluciones de grabación y reproducción, última prueba, peso pesado y automatización de pruebas no son tan ágiles como:
El flujo de trabajo de prueba final alentado por tales herramientas no funciona para equipos ágiles.
Los scripts que no se pueden mantener creados con tales herramientas se convierten en un impedimento para el cambio.
Estas herramientas especializadas crean la necesidad de especialistas en automatización de pruebas y, por lo tanto, fomentan los silos
Las herramientas que se utilizan ampliamente son:
S.No. | Herramienta y propósito |
---|---|
1 | Hudson Marco de CI |
2 | Selenium Pruebas funcionales: integradas con Hudson |
3 | CruiseControl Marco de CI |
4 | Junit Prueba unitaria de Java |
5 | Nunit Prueba de unidad .Net |
6 | Cobertura / JavaCodeCoverage / JFeature / JCover / Cobertura de prueba de Java |
7 | Jester Java - Prueba de mutación / Sembrado automático de errores |
8 | Gretel Herramienta de monitoreo de cobertura de prueba de Java |
9 | TestCocoon C / C ++ o C #: reduce la cantidad de pruebas al encontrar pruebas redundantes y encuentra código muerto |
10 | JAZZ Java: cobertura de ramas, nodos y desactivación e implementa una GUI, planificadores de pruebas, instrumentación dinámica y un analizador de pruebas |
11 | Ant Java - Compilación de automatización |
12 | Nant .Net - Compilación de automatización |
13 | Bonfire Complemento de pruebas ágiles para JIRA |
Herramientas de automatización de pruebas ágiles
Soporte eficaz de herramientas de automatización de pruebas ágiles -
Automatización temprana de pruebas utilizando un enfoque de prueba primero.
Escribir código de automatización de pruebas utilizando lenguajes reales, lenguajes específicos de dominio.
Centrándose en el comportamiento esperado del sistema.
Separar la esencia de la prueba de los detalles de implementación, lo que la hace independiente de la tecnología.
Fomento de la colaboración.
Las pruebas unitarias automatizadas (utilizando Junit o NUnit) admiten el enfoque de prueba primero para la codificación. Estas son pruebas de caja blanca y garantizan que el diseño sea sólido y que no haya defectos. Estas pruebas las crean los desarrolladores con el apoyo de los evaluadores y pueden ser independientes de la funcionalidad requerida. Esto da como resultado la entrega de un producto que puede no cumplir con los requisitos del cliente y, por lo tanto, sin valor comercial.
Esta preocupación se aborda automatizando las Pruebas de aceptación que se escriben con la colaboración del cliente, otras partes interesadas, evaluadores y desarrolladores. Las Pruebas de aceptación automatizadas son escritas por los clientes o propietarios de productos / analistas comerciales que reflejan el comportamiento esperado del producto. La participación de los desarrolladores asegura la producción de código según los requisitos. Sin embargo, si la prueba se centra solo en la aceptación, el código resultante puede permanecer no extensible.
Por lo tanto, las pruebas unitarias automatizadas y las pruebas de aceptación automatizadas son complementarias y ambas son necesarias en el desarrollo ágil.
Las herramientas y marcos ágiles que admiten las pruebas de aceptación automatizadas son:
- Fit
- Fitnesse
- Concordion
- Ruby
- Cucumber
Ajuste
Ward Cunningham desarrolló la herramienta Fit que se puede utilizar para la automatización de pruebas de aceptación. El ajuste permite -
Clientes o propietarios de productos para dar ejemplos del comportamiento del producto utilizando Microsoft Word y Microsoft Excel.
Programadores para convertir fácilmente esos ejemplos en pruebas automatizadas.
Fit 1.1 es compatible con Java y .NET.
FitNesse
FitNesse es una wiki, que es un estilo de servidor web que permite a cualquier visitante realizar modificaciones, incluido el cambio de páginas existentes y la creación de nuevas páginas. Un lenguaje de marcado simple le permite crear fácilmente títulos, poner texto en negrita, subrayado y cursiva, crear listas con viñetas y realizar otros tipos de formateo simple.
En FitNesse, la automatización de la prueba de aceptación es la siguiente:
Exprese las pruebas como tablas de datos de entrada y datos de salida esperados.
Utilice FitNesse para colocar la tabla de prueba en la página que puede editar.
Alternativamente, coloque la tabla de prueba en Microsoft Excel, cópiela al portapapeles y luego use el Spreadsheet to FitNesse comando para que FitNesse formatee su tabla correctamente
Ejecutar la prueba
Obtiene los resultados de la prueba mediante la codificación de colores de las celdas en la tabla de prueba
las celdas verdes representan que se obtienen los valores esperados
Los glóbulos rojos representan que se obtiene un valor diferente al esperado
las celdas amarillas representan que se lanzó una excepción
Pepino
Cucumber es una herramienta basada en el marco de desarrollo impulsado por el comportamiento (BDD). Las características clave son:
Se utiliza para escribir pruebas de aceptación para aplicaciones web.
Permite la automatización de la validación funcional en un formato fácilmente legible y comprensible como el inglés simple.
Se implementó en Ruby y luego se extendió al marco de Java. Ambos apoyan a Junit.
Admite otros lenguajes como Perl, PHP, Python, .Net, etc.
Se puede utilizar junto con selenio, watir, carpincho, etc.