La esencia básica de la mayoría de los métodos ágiles es que una característica no se "hace" hasta que se haya desarrollado, probado y, en muchos casos, lanzado. Se supone que esto sucederá en períodos de tiempo de respuesta rápidos como "Sprints" en el proceso Scrum.
Una parte común de Agile también es TDD, que establece que las pruebas se realizan primero.
Mi equipo trabaja en un programa GUI que hace muchos dibujos específicos y demás. Para proporcionar pruebas, el equipo de pruebas debe poder trabajar con algo que al menos intente realizar las cosas que está tratando de probar. No hemos encontrado una solución a este problema.
Puedo ver de dónde provienen porque si estuviera tratando de escribir un software dirigido a una interfaz básicamente misteriosa, me resultaría muy difícil. Aunque tenemos un comportamiento bastante bien especificado, el proceso exacto de interactuar con varios elementos de la interfaz de usuario cuando se trata de la automatización parece ser demasiado exclusivo de una característica para permitir que los evaluadores escriban scripts automáticos para controlar algo que no existe. Incluso si pudiéramos, muchas cosas terminan apareciendo más tarde como faltantes en la especificación.
Una cosa que consideramos hacer era hacer que los evaluadores escribieran "guiones" de prueba que son más como un conjunto de pasos que deben realizarse, como se describe desde una perspectiva de caso de uso, para que puedan ser "automatizados" por un ser humano. Esto puede ser realizado por el desarrollador (s) escribiendo la característica y / o verificado por otra persona. Cuando los probadores más tarde tienen la oportunidad, automatizan el "guión" principalmente para propósitos de regresión. Sin embargo, esto no terminó siendo popular en el equipo.
La parte de prueba del equipo en realidad está quedando atrás de nosotros por bastante margen. Esta es una de las razones por las cuales el tiempo aparentemente extra de desarrollar un "guión" para que un ser humano lo ejecute simplemente no sucedió ... están bajo problemas para mantenerse al día con los desarrolladores. Si los esperáramos, no haríamos nada. Realmente no es su culpa, son un cuello de botella pero están haciendo lo que deberían y trabajando lo más rápido posible. El proceso en sí parece estar en contra de ellos.
Muy a menudo terminamos teniendo que retroceder un mes o más en lo que hemos hecho para corregir errores que los probadores finalmente han podido verificar. Es una verdad fea sobre la que me gustaría hacer algo.
Entonces, ¿qué hacen otros equipos para resolver esta cascada de fallas? ¿Cómo podemos adelantar a los evaluadores y cómo podemos lograr que realmente haya tiempo para que escriban pruebas de las características que hacemos en un sprint sin hacernos sentarnos y girar nuestros pulgares mientras tanto? Tal como está funcionando actualmente, para "hacer" una función, usando definiciones ágiles, sería hacer que los desarrolladores trabajen durante 1 semana, luego los probadores trabajen la segunda semana, y con suerte los desarrolladores puedan solucionar todos los errores que se les ocurran. en los últimos días Eso simplemente no va a suceder, incluso si estoy de acuerdo en que es una solución razonable. Necesito mejores ideas ...