Un poco de historia mía: soy probador manual durante casi 2 años en un entorno ágil usando SCRUM (sprints de 1-2 semanas). Así que quiero introducir pruebas de automatización en mi trabajo usando Selenium WebDriver (con Java).
Mi pregunta es cuándo debería probar la funcionalidad manualmente y cuándo debería convertirla para pruebas de automatización.
He estado leyendo y obteniendo diferentes enfoques, como:
- Cuando se inicia un nuevo sprint, convierta las historias de usuario en scripts automatizados del sprint anterior, O;
- Convierte las historias de los usuarios dentro del mismo sprint.
Cualquier consejo / s sería muy apreciado. Gracias de antemano.
Respuestas:
La automatización de pruebas (y todas las demás pruebas) deberían ser parte de la definición de hecho . Esto con el fin de hacer un producto potencialmente enviable. ¿Se puede enviar si no fue probado?
Las pruebas también deben ser un enfoque de equipo completo, por lo que la automatización de pruebas no es responsabilidad de los evaluadores. Comience a pensar en las pruebas lo antes posible en el proceso.
La automatización de pruebas es muy importante en Agile porque:
Si pospone la prueba hasta otra iteración, siempre se quedará atrás. Haciendo más difícil cambiar la dirección del producto, ya que es más difícil refactorizar y proteger el comportamiento externo del producto. Tener pruebas manuales repetitivas es clave para reducir la velocidad, ¡automatízalo!
Muchos probadores le dirán que no debe comenzar las pruebas de extremo a extremo hasta que la interfaz del producto se haya estabilizado. No espere, en su lugar, haga un buen uso de PageObjects y asegúrese de que sus pruebas sean mantenibles y que sea responsabilidad del desarrollador crearlas y corregirlas.
fuente
La clave es que no marca una historia completa a menos que haya escrito pruebas automatizadas para esa historia.
Así que 1 parece estar fuera, ya que está escribiendo pruebas para una tarea completada en un sprint anterior. ¿Qué pasa si las pruebas fallan?
fuente
Idealmente, debe escribir pruebas automatizadas en el mismo sprint en el que se escribe el código. El código no debe considerarse "hecho" hasta que se hayan escrito las pruebas automáticas, y debe llevar el código a un estado "hecho" al final de un sprint.
Debe comenzar el proceso el primer día del sprint trabajando con el desarrollador para comprender el código y ayudarlo a comprender sus necesidades como probador. Por ejemplo, si está creando páginas web, puede ayudarlos a comprender la necesidad de agregar identificadores únicos para cada elemento de la página con el que necesita interactuar.
Recuerde que en scrum, su trabajo no es escribir exámenes. Su trabajo es trabajar con el equipo para completar los objetivos del sprint. Eso significa comunicación y colaboración, lo que debería suceder muy temprano en el sprint. Puede comenzar a trabajar en diseños de prueba y planes de prueba mucho antes de que el código esté listo para ser probado.
fuente
Si va a realizar una prueba automáticamente, también puede crear las pruebas por adelantado. Esto lo ayudará a definir qué comportamiento espera y lo estimulará a pensar como un cliente, al final debería hacer que su software sea más útil. Y se beneficiará de la prueba inmediatamente mientras implementa la funcionalidad.
fuente
Puede hacerlo, pero normalmente desea orientar las pruebas de regresión con pruebas de automatización. Eso significaría que haría manual hasta que esté seguro de que es lo suficientemente sólido como para ser una prueba de regresión. Esto puede estar en el medio de un sprint para alguna funcionalidad y puede estar en un sprint futuro para otra funcionalidad.
fuente
Como se indicó en otra respuesta , cuando se realiza la prueba debe ser parte de la definición de hecho . Sin embargo, no estoy de acuerdo con algo de esa respuesta, por lo que quería ampliar con las experiencias que he encontrado.
En un entorno verdaderamente ágil, todos pueden hacer todo. No habría alguien 100% dedicado a las pruebas, también desarrollarías habilidades para ayudar con el trabajo básico de la interfaz de usuario u otra cosa. Sin embargo, rara vez vivimos en un mundo ideal.
Lo que recomendaría sería hacer un enfoque híbrido. Para su definición de Hecho, yo diría que las pruebas manuales deberían ser parte del Sprint en el que está codificado el trabajo. Usted sabe que funciona, y cualquier error puede ser reportado inmediatamente, posiblemente reparado, antes de que el Sprint termine para que pueda planificar el próximo uno. Al centrarse en las pruebas manuales, se familiariza con lo que se supone que debe hacer el código. Al comienzo del próximo Sprint, cuando no tengas tanto que hacer, puedes configurar tus pruebas automatizadas que pueden ejecutarse como parte del proceso de construcción para evitar errores de regresión.
fuente