Automatización de pruebas. ¿Si o no?

La traducción del artículo se preparó antes del inicio del curso "Python QA Engineer" .










Antes de preguntar: "¿Qué automatizar?", Debe responder la siguiente pregunta: "¿Es racional automatizar algo en el proyecto actual?" Si la respuesta es sí (lo que significa que tiene todos los recursos necesarios para garantizar la automatización, como especialistas en control de calidad calificados, suficiente tiempo, dinero, etc.), debe crear un plan basado en los requisitos del objeto probado, para lo cual se desarrollará pruebas automatizadas. Al crear un documento de este tipo, debe tener una comprensión clara de qué desea automatizar exactamente, cómo y qué herramientas de automatización elegir. Ahora no vamos a entrar en detalles de cómo probar exactamente esta o aquella función, ya que nos interesa dónde, en nuestra opinión, debería implementarse la automatización.



Por supuesto, la lista a continuación está lejos de ser completa, y una lista detallada de pruebas para verificar cada función parece una empresa sin sentido. Nuestra tarea es seleccionar aquellas partes del proyecto que deben automatizarse en primer lugar:



  1. Funcionalidad de uso frecuente donde el riesgo de errores es alto. Las pruebas automatizadas de puntos funcionales clave reducirán el tiempo para encontrar errores y, en consecuencia, también se reducirá el tiempo necesario para eliminarlos.
  2. Operaciones típicas de procesamiento de datos que se realizan con frecuencia. Por ejemplo, formularios en los que la cantidad de campos a completar es lo suficientemente grande. El objetivo aquí es automatizar la entrada de datos en el campo requerido y verificar que la tarea se complete correctamente después de recibir el resultado.
  3. Mensajes de validación. Es necesario automatizar el envío de datos incorrectos a los campos correspondientes y probar la exactitud de la validación de datos y los mensajes de error.
  4. Pruebas integrales del comportamiento de todo el sistema como un objeto integral (pruebas de extremo a extremo).
  5. Validación de datos que requieren cálculos matemáticos precisos (software contable o analítico).
  6. Comprobación de la exactitud de los resultados de búsqueda mostrados en respuesta a una consulta de datos (comprobación de la exactitud de la búsqueda de datos).
  7. Validación de recuperación de datos.


¿Qué no automatizar?



¿Qué tipos de pruebas no debería incluir en las pruebas automatizadas? Enumeremos las situaciones en las que los casos de prueba no necesitan automatizarse:



  1. Pruebas de usabilidad que requieren intervención manual para verificar errores o desviaciones del comportamiento esperado;
  2. Casos de prueba, que incluyen la instalación o no requieren la re-ejecución de la función (sin embargo, las pruebas que implican la entrada de datos son necesarias para automatizar);
  3. Evite la automatización de pruebas que pueden generar resultados impredecibles (por ejemplo, nuevas funciones, pruebas temporales, comprobaciones de vencimiento).
  4. Pruebas de UX, que incluyen comprobar el comportamiento de objetos en pantallas de varios tamaños.


Para mejorar la eficiencia de las pruebas automatizadas, se debe prestar especial atención a los casos de prueba. Es necesario destacar las que están enfocadas a testear los siguientes aspectos:



  1. Operaciones de creación / lectura / actualización / eliminación (operaciones CRUD). El ejemplo más simple es la interfaz de usuario. Introducción, visualización y edición de datos de usuario, eliminación de información.
  2. Escenarios estándar para usar la aplicación. Un ejemplo es trabajar con un cliente de correo: autorización, ver cartas, navegar a través de cartas recibidas, crear nuevas y enviarlas, cerrar sesión. Esta secuencia de extremo a extremo prueba la gama completa de acciones y manipulaciones. La ventaja de tales escenarios es que al final de la prueba, el sistema vuelve a su estado original (bueno o cercano), lo que significa que se reduce el impacto en los resultados de otras pruebas.
  3. Otros casos en los que la prueba manual no es adecuada por alguna razón. Por ejemplo, verificando la estructura de archivos creados por el sistema.


¡Es de la automatización de dicha funcionalidad que puede obtener el mayor beneficio!







Lee mas:






All Articles