Um pouco da minha experiência - sou testador manual por quase 2 anos em um ambiente Agile usando SCRUM (sprints de uma a duas semanas). Então, eu estou querendo introduzir testes de automação no meu trabalho usando o Selenium WebDriver (com Java).
Minha pergunta é durante quando devo testar a funcionalidade manualmente e quando devo convertê-las para testes de automação?
Tenho lido e adotado abordagens diferentes, como:
- Quando um novo sprint estiver sendo iniciado, converta as histórias do usuário em scripts automatizados do sprint anterior, OR;
- Converta as histórias de usuário no mesmo sprint.
Qualquer conselho / s seria muito apreciado. Agradeço antecipadamente.
Respostas:
A automação de teste (e todos os outros testes) deve fazer parte da definição de concluído . Isso para criar um produto potencialmente transportável. Você pode enviar se não foi testado?
O teste também deve ser uma abordagem de equipe inteira, portanto a automação de teste não é de responsabilidade do testador. Comece a pensar em testar o mais rápido possível no processo.
A automação de teste é tão importante no Agile porque:
Se você adiar o teste para outra iteração, estará sempre atrasado. Tornando mais difícil mudar a direção do produto, é mais difícil refatorar e proteger o comportamento externo do produto. Ter qualquer teste manual repetitivo é fundamental para atrasar você, automatize-o!
Muitos testadores dirão que você não deve começar a testar de ponta a ponta até que a interface do produto esteja estabilizada. Não espere, faça bom uso do PageObjects e verifique se os seus testes são sustentáveis e que é responsabilidade do desenvolvedor criá-los e corrigi-los.
fonte
O principal é que você não marque uma história completa, a menos que tenha escrito testes automatizados para essa história.
Então, 1 parece estar fora, pois você está escrevendo testes para uma tarefa concluída em um sprint anterior. e se os testes falharem?
fonte
Idealmente, você deve escrever testes automatizados no mesmo sprint em que o código foi escrito. O código não deve ser considerado "concluído" até que os testes automatizados tenham sido gravados e você deve obter o código no estado "concluído" ao final de um sprint.
Você deve iniciar o processo no primeiro dia do sprint trabalhando com o desenvolvedor para entender o código e ajudá-lo a entender suas necessidades como testador. Por exemplo, se você estiver criando páginas da Web, poderá ajudá-las a entender a necessidade de adicionar identificadores exclusivos para cada elemento da página com o qual você precisa interagir.
Lembre-se de que, no scrum, seu trabalho não é escrever testes. Seu trabalho é trabalhar com a equipe para concluir os objetivos do sprint. Isso significa comunicação e colaboração, o que deve acontecer muito cedo no sprint. Você pode começar a trabalhar em projetos e planos de teste bem antes que o código esteja pronto para ser testado.
fonte
Se você for testar automaticamente, também poderá criar os testes antecipadamente. Isso o ajudará a definir qual comportamento você espera e o estimula a pensar como um cliente, tornando seu software mais utilizável no final. E você se beneficiará do teste imediatamente ao implementar a funcionalidade.
fonte
Você pode fazer qualquer um deles, mas normalmente deseja direcionar o teste de regressão com testes de automação. Isso significaria que eu faria o manual até ter certeza de que é sólido o suficiente para ser um teste de regressão. Pode estar no meio de um sprint para algumas funcionalidades e pode estar em um sprint futuro para outras funcionalidades.
fonte
Como foi afirmado em outra resposta , quando o teste ocorre, isso deve fazer parte da definição de concluído . No entanto, eu discordo de algumas dessas respostas, então queria expandir com as experiências que encontrei.
Em um ambiente verdadeiramente ágil, todos são capazes de fazer tudo. Não haveria alguém 100% dedicado ao teste, você também desenvolveria habilidades para ajudar com algum trabalho básico da interface do usuário ou algo mais. No entanto, raramente vivemos em um mundo ideal.
O que eu recomendaria seria fazer uma abordagem híbrida. Para sua Definição de Concluído, eu diria que o teste manual deve fazer parte do Sprint no qual o trabalho está codificado. Você sabe que ele funciona e qualquer bug pode ser relatado imediatamente, possivelmente corrigido, antes que o Sprint termine, para que você possa planejar o próximo 1. Ao se concentrar nos testes manuais, você se familiariza com o que o código deve fazer. No início do próximo Sprint, quando você pode não ter muito o que fazer, é possível configurar seus testes automatizados que podem ser executados como parte do processo de construção para evitar erros de regressão.
fonte