Articulo de referencia

Automatización de pruebas

La automatización de pruebas consiste en el uso de software (independiente del software que se está probando) para controlar la ejecución de las pruebas y comparar el resultado ...

La automatización de pruebas consiste en el uso de software (independiente del software que se está probando) para controlar la ejecución de las pruebas y comparar el resultado real con el previsto. [ 1 ] La automatización de pruebas permite probar el sistema bajo prueba (SUT) sin interacción manual, lo que puede conducir a una ejecución de pruebas más rápida y a una mayor frecuencia de pruebas. La automatización de pruebas es un aspecto clave de las pruebas continuas y, a menudo, de la integración continua y la entrega continua (CI/CD). [ 2 ]

En comparación con las pruebas manuales

La automatización ofrece muchas ventajas sobre las pruebas manuales.

Pruebas de API

En las pruebas de API , estas controlan el sistema bajo prueba (SUT) a través de su interfaz de programación de aplicaciones (API). En comparación con las pruebas manuales, las pruebas automatizadas de API suelen ejecutar un número considerable de casos en un tiempo relativamente corto.

Pruebas de interfaz gráfica de usuario

Para las pruebas de interfaz gráfica de usuario (GUI) , estas controlan el sistema bajo prueba (SUT) mediante su interfaz gráfica , generando eventos como pulsaciones de teclas y clics del ratón. Las pruebas automatizadas de GUI pueden ser difíciles de desarrollar, pero se ejecutan mucho más rápido que si las realizara una persona. Las especializaciones incluyen:

  • Pruebas de grabación y reproducción : algunas herramientas de prueba de interfaz gráfica de usuario (GUI) ofrecen una función que permite grabar interactivamente las acciones del usuario y reproducirlas posteriormente como prueba, comparando los resultados reales con los esperados. Una ventaja de este enfoque es que requiere poca o ninguna programación. Sin embargo, algunos afirman que estas pruebas presentan problemas de fiabilidad, mantenimiento y precisión. Por ejemplo, cambiar la etiqueta de un botón o moverlo a otra parte de la vista puede requerir que las pruebas se vuelvan a grabar, y estas pruebas suelen ser ineficientes y registran incorrectamente actividades irrelevantes.

Pruebas de regresión

Cuando se implementan las pruebas automatizadas, las pruebas de regresión pueden ser una operación relativamente rápida y sencilla. En lugar de requerir una inversión considerable de tiempo y esfuerzo humano, ejecutar una prueba de regresión podría ser tan solo presionar un botón, e incluso el inicio de la ejecución puede automatizarse.

Técnicas automatizadas

Las siguientes son técnicas de prueba destacadas que se clasifican como automatización de pruebas.

Pruebas continuas

Las pruebas continuas son el proceso de ejecutar pruebas automatizadas como parte del proceso de entrega de software para evaluar el riesgo empresarial de lanzar el SUT. [ 4 ] [ 5 ] El alcance de las pruebas se extiende desde la validación de requisitos ascendentes o historias de usuario hasta la evaluación de los requisitos del sistema asociados con los objetivos empresariales generales. [ 6 ]

Pruebas basadas en modelos

Para las pruebas basadas en modelos , el SUT se modela y se pueden generar casos de prueba a partir de él para admitir el desarrollo de pruebas sin código . Algunas herramientas admiten la codificación de casos de prueba en inglés plano que se puede utilizar en múltiples sistemas operativos , navegadores y dispositivos inteligentes . [ 7 ]

desarrollo guiado por pruebas

El desarrollo guiado por pruebas (TDD) incluye inherentemente la generación de código de pruebas automatizadas. El código de las pruebas unitarias se escribe simultáneamente con el código del sistema bajo prueba (SUT). Cuando el código está completo, las pruebas también lo están. [ 8 ]

Otro

Otras técnicas de automatización de pruebas incluyen:

Consideraciones

Una revisión de 52 fuentes profesionales y 26 académicas reveló que los cinco factores principales a considerar en la decisión de automatización de pruebas son: el sistema bajo prueba (SUT), el alcance de las pruebas, el conjunto de herramientas de prueba, los aspectos humanos y organizacionales, y los factores transversales. Los factores identificados con mayor frecuencia fueron: la necesidad de realizar pruebas de regresión, los factores económicos y la madurez del SUT. [ 9 ] [ 10 ]

Si bien las empresas de desarrollo de software valoran la reutilización de las pruebas automatizadas, esta propiedad también puede considerarse una desventaja, ya que provoca un efecto de estancamiento , en el que la ejecución repetida de las mismas pruebas deja de detectar errores.

Las herramientas de prueba pueden ayudar a automatizar tareas como la instalación del producto, la creación de datos de prueba, la interacción con la interfaz gráfica de usuario, la detección de problemas (considerando el análisis sintáctico o el sondeo de agentes equipados con oráculos de prueba ), el registro de defectos, etc., sin necesidad de automatizar las pruebas de principio a fin.

Entre las consideraciones a tener en cuenta al desarrollar pruebas automatizadas se incluyen:

Roles

Para respaldar las pruebas automatizadas con código, el ingeniero de pruebas o el responsable de control de calidad del software debe tener conocimientos de programación. Algunas técnicas de prueba, como las basadas en tablas y las que no requieren código, pueden reducir o eliminar la necesidad de conocimientos de programación.

Estructura

Un marco de automatización de pruebas proporciona un entorno de programación que integra la lógica de prueba, los datos de prueba y otros recursos. Este marco sienta las bases de la automatización de pruebas y simplifica el proceso. El uso de un marco puede reducir el costo del desarrollo y mantenimiento de las pruebas . Si se modifica algún caso de prueba , solo es necesario actualizar el archivo del caso de prueba; el script principal y el script de inicio permanecerán sin cambios.

Un marco de trabajo se encarga de definir el formato en el que se expresan las expectativas, proporciona un mecanismo para conectarse o controlar el SUT, ejecuta las pruebas e informa los resultados. [ 11 ]

Existen diversos tipos de marcos de trabajo:

  • Lineal : código procedimental, posiblemente generado por herramientas como las que utilizan grabación y reproducción.
  • Estructurado : utiliza estructuras de control, normalmente condiciones/declaraciones 'if-else', 'switch', 'for', 'while'.
  • Basado en datos : los datos se almacenan fuera de las pruebas en una base de datos, hoja de cálculo u otro mecanismo.
  • Basado en palabras clave
  • Híbrido : se utilizan varios tipos
  • Marco de automatización ágil
  • Pruebas unitarias : algunos frameworks están diseñados principalmente para pruebas unitarias, como xUnit , JUnit y NUnit.

Interfaz de automatización de pruebas

Una interfaz de automatización de pruebas es una plataforma que proporciona un espacio de trabajo para incorporar múltiples herramientas y marcos de prueba para pruebas de sistema/integración . Una interfaz de automatización de pruebas puede simplificar el proceso de mapeo de pruebas a criterios de negocio sin necesidad de codificación. Una interfaz de automatización de pruebas puede mejorar la eficiencia y la flexibilidad del mantenimiento de las pruebas. [ 12 ]

Modelo de interfaz de automatización de pruebas

Una interfaz de automatización de pruebas consta de los siguientes aspectos:

Motor de interfaz
Consta de un analizador sintáctico y un ejecutor de pruebas. El analizador sintáctico se encarga de analizar los archivos objeto provenientes del repositorio de objetos y convertirlos al lenguaje de scripting específico de la prueba. El ejecutor de pruebas ejecuta los scripts de prueba utilizando un entorno de prueba . [ 12 ]
Repositorio de objetos
Recopilación de datos de objetos de la interfaz de usuario/aplicación registrados por la herramienta de prueba mientras se explora el SUT. [ 12 ]

Véase también

Referencias

  1. Kolawa, Adam; Huizinga, Dorota (2007). Prevención automatizada de defectos: Mejores prácticas en la gestión de software . Wiley-IEEE Computer Society Press. pág.  74. ISBN 978-0-470-04212-0.
  2. O'Connor, Rory V.; Akkaya, Mariye Umay; Kemaneci, Kerem; Yilmaz, Murat; Poth, Alexander; Messnarz, Richard (15 de octubre de 2015). Mejora de procesos de sistemas, software y servicios: 22.ª Conferencia Europea, EuroSPI 2015, Ankara, Turquía, 30 de septiembre - 2 de octubre de 2015. Actas . Springer. ISBN 978-3-319-24647-5.
  3. Pruebas sin interfaz gráfica con PhantomJS; http://phantomjs.org/headless-testing.html
  4. Parte del proceso: Por qué las pruebas continuas son esenciales , por Adam Auerbach, TechWell Insights, agosto de 2015
  5. La relación entre el riesgo y las pruebas continuas: una entrevista con Wayne Ariola , por Cameron Philipp-Edmonds, Stickyminds, diciembre de 2015
  6. DevOps: ¿Está usted enviando los errores a los clientes más rápido ?, por Wayne Ariola y Cynthia Dunlop, PNSQC, octubre de 2015
  7. Actas de la 5.ª Conferencia Internacional sobre Pruebas y Validación de Software (ICST). Centro de Competencia de Software Hagenberg. «Diseño de pruebas: lecciones aprendidas e implicaciones prácticas» . doi : 10.1109/IEEESTD.2008.4578383 . ISBN 978-0-7381-5746-7.
  8. Vodde, Bas; Koskela, Lasse (2007). "Aprendiendo desarrollo guiado por pruebas contando líneas". IEEE Software . 24 (3): 74– 79. doi : 10.1109/ms.2007.80 . S2CID 30671391 . 
  9. Garousi, Vahid; Mäntylä, Mika V. (2016-08-01). "¿Cuándo y qué automatizar en las pruebas de software? Una revisión bibliográfica multivocal". Information and Software Technology . 76 : 92–117 . doi : 10.1016/j.infsof.2016.04.015 .
  10. Brian Marick. "¿Cuándo se debe automatizar una prueba?" . StickyMinds.com . Consultado el 20 de agosto de 2009 .
  11. "Selenium Meet-Up 20/04/2010 Elisabeth Hendrickson sobre Robot Framework 1 de 2" . YouTube . 28 de abril de 2010. Consultado el 26 de septiembre de 2010 .
  12. 1 2 3 "Conquest: Interfaz para el diseño de automatización de pruebas" (PDF) . Archivado del original (PDF) el 26 de abril de 2012. Recuperado el 11 de diciembre de 2011 .

Referencias generales

  • Elfriede Dustin; et  al. (1999). Pruebas de software automatizadas . Addison Wesley. ISBN 978-0-201-43287-9.
  • Elfriede Dustin; et  al. (2009). Implementación de pruebas de software automatizadas . Addison Wesley. ISBN 978-0-321-58051-1.
  • Mark Fewster y Dorothy Graham (1999). Automatización de pruebas de software . ACM Press/Addison-Wesley. ISBN 978-0-201-33140-0.
  • Roman Savenkov: Cómo convertirse en probador de software. Roman Savenkov Consulting, 2008, ISBN 978-0-615-23372-7
  • Hong Zhu y  otros (2008). AST '08: Actas del 3er Taller Internacional sobre Automatización de Pruebas de Software . ACM Press. doi : 10.1145/1370042 . ISBN 978-1-60558-030-2.
  • Mosley, Daniel J.; Posey, Bruce (2002). Just Enough Software Test Automation . Prentice Hall Professional. ISBN 978-0130084682.
  • Hayes, Linda G., "Manual de pruebas automatizadas", Software Testing Institute, 2.ª edición, marzo de 2004
  • Kaner, Cem, " Arquitecturas de automatización de pruebas archivadas el 26 de enero de 2021 en Wayback Machine ", agosto de 2000