Día de la automatización, o cómo construimos la capa de autotest.

¿Con qué frecuencia, cuando trabaja en equipo, encuentra una situación en la que parte de las tareas de automatización de pruebas caen en el trabajo atrasado y permanecen en las pruebas manuales para siempre? Nos enfrentamos constantemente a este problema, y ​​los motivos son siempre diferentes:

  • no tuve tiempo / no tuve tiempo suficiente, y luego lo olvidé;
  • no hay suficiente experiencia;
  • La tarea de automatización resultó ser muy grande, requiriendo integraciones de terceros.

Inspirados por la idea de colegas de Avito , a mediados de mayo, Yaromudr y yo celebramos el primer Día de la Automatización, el propósito de este evento es automatizar las pruebas donde, por las razones anteriores, no lo hemos hecho.


En él, reunimos a todos los ingenieros de control de calidad interesados ​​y también preparamos de antemano:

  • trabajo atrasado de tareas;
  • reglas de conducta;
  • acordado en una pila de tecnología;
  • herramientas preparadas;
  • ordenó los accesos necesarios.

Para la automatización, se eligió una capa de prueba de integración API. Cada tarea en la cartera contenía:

  • un enlace al punto final, así como los parámetros de entrada y salida de la solicitud de descanso en formato json;
  • La esencia de la prueba, cómo y por qué la revisamos.

Al comienzo del proyecto, seleccionamos la siguiente pila para la automatización, fue allí donde preparamos la plantilla del proyecto, que llenaremos con pruebas automáticas:

  • Java8
  • Junit5
  • Primavera
  • Unirest

Puede encontrar una plantilla de proyecto de muestra aquí .

Cabe señalar que durante mucho tiempo habíamos estado preparando una herramienta para generar datos de prueba de forma automática durante mucho tiempo, sin esto no queríamos crear un nuevo marco, porque ya había una mala experiencia con las pruebas automáticas de integración en datos de prueba estáticos, solo una capa debajo. Hablamos en parte sobre este problema en nuestra reunión de comunicación cualitativa MAP .

Las reglas


Las reglas para los participantes del Día de la Automatización fueron lo más simples posible. Antes de comenzar el desarrollo, demostramos una estructura de proyecto prediseñada y realizamos una breve sesión informativa. Al desarrollarse, los participantes tenían que adherirse a una estructura de proyecto dada.
Del 10 al 19, ocasionalmente distraídos por el almuerzo y la cena, los participantes escriben pruebas en Java + JUnit5. La implementación de la lógica para las pruebas en Java se organizó como llamadas API utilizando la biblioteca Unirest.

Y en nuestra acogedora sala de juegos, doce ingenieros de control de calidad y dos organizadores del evento del Día de la Automatización se reunieron.

Vale la pena decir que el nivel de ingenieros de control de calidad era diferente, alguien conocía todo el conjunto, alguien nunca había usado Spring en sus proyectos, alguien solo usaba Descanso seguro en sus proyectos y nunca había visto Unirest, algunos no habían automatizado Pruebas API y las probé con tus manos.

Resultados


Lo que obtuvimos durante 8 horas de trabajo de desarrollo intensivo:

  • + 12 solicitudes de extracción;
  • 12 tareas cerradas de la cartera de pedidos;
  • + 14 pruebas automáticas de integración;
  • > 99% de las pruebas automáticas aprobadas con éxito para cada lanzamiento;
  • 12 ingenieros de control de calidad que están bien orientados en el proyecto.

Un mes despues


Cuando tomamos las métricas de prueba aproximadamente un mes después, obtuvimos indicadores muy interesantes:

  • + 30 solicitudes de extracción;
  • 30 tareas cerradas de la cartera de pedidos;
  • + 48 pruebas automáticas de integración;
  • reemplazó Unirest con Retrofit;
  • > 97% de las pruebas automáticas aprobadas con éxito para cada lanzamiento.

Me gustaría señalar especialmente el impacto positivo de tales eventos en la comunicación dentro del equipo de control de calidad, cuando las personas se enfrentan a tareas reales de productos y hay personas cercanas que pueden ayudar y enseñar, esto siempre tiene un efecto positivo. Un ejemplo simple, uno de los participantes ilya_tad sugirió usar Retrofit en lugar de Unirest, por varias razones, realmente resultó ser una herramienta más conveniente para nosotros. Más recientemente, el mismo participante realizó un segundo Día de Automatización, en el que todos también escribieron pruebas, pero ya usaban Retrofit. Por cierto, en el segundo Día de la Automatización, reemplazamos completamente Unirest con Retrofit, para nosotros las mejoras fueron mínimas. Una plantilla aproximada del proyecto revisado se puede encontrar aquí .

Comentarios


Todos los participantes del Día de la Automatización recibieron camisetas de superhéroes recién impresas. Y sí, por supuesto, recopilamos comentarios de los participantes después del primer día de automatización. La respuesta a la pregunta "¿Cuál fue el más valioso y útil en este día de automatización?":

  • involucrar a todos los participantes en la cobertura de otra capa de autocomprobaciones de la pirámide de prueba (descargando la capa superior de UI end-2-end de auto-pruebas);
  • la capacidad de concentrarse en la tarea sin distraerse con nada más, así como la invaluable experiencia de la tutoría;
  • trabajo colectivo en tareas específicas por un período de tiempo claramente especificado, enfóquese en resolver un rango estrecho específico de tareas y problemas;
  • Ha aparecido una idea general del marco local.

También recolectamos deseos de los participantes, no enumeraremos todo, pero lo más popular fue celebrar el Día de la Automatización de forma regular.

Conclusión


Obviamente, trataremos de llevar a cabo tales eventos de forma regular. Haremos diferentes temas, probaremos nuevas herramientas.

El Día de la Automatización le permite educar a las personas sobre las tareas reales del producto, las personas comienzan a compartir experiencias, tomar la iniciativa y comunicarse mejor entre sí. Con una preparación y organización adecuadas, este evento le permite formar relativamente rápido una capa completa de autotest y preparar a las personas para el desarrollo de esta capa.



Planeamos dedicar el tercer Día de la Automatización a escribir pruebas de componentes para iOS usando la herramienta EarlGrey.

Source: https://habr.com/ru/post/458546/


All Articles