A essência básica da maioria dos métodos Agile é que um recurso não é "concluído" até que seja desenvolvido, testado e, em muitos casos, lançado. Supõe-se que isso aconteça em períodos de tempo rápidos, como "Sprints" no processo Scrum.
Uma parte comum do Agile também é o TDD, que afirma que os testes são feitos primeiro.
Minha equipe trabalha em um programa GUI que faz muitos desenhos específicos e coisas do tipo. Para fornecer testes, a equipe de teste precisa ser capaz de trabalhar com algo que pelo menos tente executar o que está tentando testar. Não encontramos nenhuma maneira de contornar esse problema.
Eu posso ver muito bem de onde eles vêm, porque se eu estivesse tentando escrever um software que visasse uma interface basicamente misteriosa, teria muita dificuldade. Embora tenhamos um comportamento bastante bem especificado, o processo exato de interação com vários elementos da interface do usuário quando se trata de automação parece ser muito exclusivo de um recurso para permitir que os testadores escrevam scripts automatizados para direcionar algo que não existe. Mesmo se pudéssemos, muitas coisas acabaram surgindo mais tarde, como tendo faltado na especificação.
Uma coisa que consideramos fazer foi pedir aos testadores que escrevessem "scripts" de teste que mais se assemelham a um conjunto de etapas que devem ser executadas, conforme descrito da perspectiva de casos de uso, para que possam ser "automatizadas" por um ser humano. Isso pode ser realizado pelo (s) desenvolvedor (es) escrevendo o recurso e / ou verificado por outra pessoa. Quando os testadores mais tarde obtêm uma oportunidade, eles automatizam o "script" principalmente para fins de regressão. Isso não acabou pegando no time.
A parte de teste da equipe está realmente ficando para trás por uma margem considerável. Essa é uma das razões pelas quais o tempo aparentemente extra de desenvolvimento de um "script" para um ser humano executar simplesmente não aconteceu ... eles estão em dificuldades para acompanhar os desenvolvedores. Se esperássemos por eles, não conseguiríamos fazer nada. Na verdade, não é culpa deles, eles são um gargalo, mas estão fazendo o que deveriam e trabalhando o mais rápido possível. O processo em si parece estar contra eles.
Muitas vezes, acabamos tendo que voltar um mês ou mais no que fizemos para corrigir bugs que os testadores finalmente conseguiram verificar. É uma verdade feia sobre a qual gostaria de fazer algo.
Então, o que outras equipes fazem para resolver essa cascata de falhas? Como podemos levar os testadores à nossa frente e como podemos fazê-lo para que haja tempo para eles escreverem testes para os recursos que fazemos em um sprint sem nos fazer sentar e mexer o polegar enquanto isso? No momento, para concluir um recurso, usando definições ágeis, seria fazer com que os desenvolvedores trabalhassem por 1 semana, os testadores trabalhassem na segunda semana e os desenvolvedores esperançosamente capazes de corrigir todos os bugs que surgirem nos últimos dois dias. Isso simplesmente não vai acontecer, mesmo se eu concordasse que era uma solução razoável. Preciso de melhores ideias ...