Estamos integrando um processo de teste em nosso processo SCRUM. Minha nova função é escrever testes de aceitação de nossos aplicativos da web para automatizá-los posteriormente. Eu li muito sobre como os casos de teste devem ser escritos, mas nenhum me deu conselhos práticos para escrever casos de teste para aplicativos Web complexos e, em vez disso, lançaram princípios conflitantes que achei difíceis de aplicar:
Os casos de teste devem ser curtos: tome o exemplo de um CMS. Casos de teste curtos são fáceis de manter e identificar as entradas e saídas. Mas e se eu quiser testar uma longa série de operações (por exemplo, adicionar um documento, enviar uma notificação para outro usuário, o outro usuário responder, o documento mudar de estado, o usuário receberá um aviso). Parece-me bastante que os casos de teste devem representar cenários completos. Mas posso ver como isso produzirá documentos de teste abertamente complexos.
Os testes devem identificar entradas e saídas:: E se eu tiver um formulário longo com muitos campos em interação, com comportamentos diferentes. Escrevo um teste para tudo ou um para cada um?
Os casos de teste devem ser independentes: Mas como posso aplicar se o teste da operação de upload exige que a operação de conexão seja bem-sucedida? E como isso se aplica à escrita de casos de teste? Devo escrever um teste para cada operação, mas cada teste declara suas dependências ou devo reescrever o cenário inteiro para cada teste?
Os casos de teste devem ser levemente documentados: Este princípio é específico para projetos Agile. Então, você tem algum conselho sobre como implementar esse princípio?
Embora eu achasse que escrever casos de teste de aceitação seria simples, fiquei impressionado com todas as decisões que tinha que tomar (FYI: sou desenvolvedor e não testador profissional). Portanto, minha principal pergunta é: Quais etapas ou conselhos você tem para escrever casos de teste de aceitação sustentável para aplicativos complexos. Obrigado.
Editar : Para esclarecer minha pergunta: Estou ciente de que o teste de aceitação deve começar com o requisito e considerar todo o aplicativo como uma caixa preta. Minha pergunta está relacionada às etapas práticas para escrever o documento de teste, identificar os casos de teste, lidar com dependências entre testes ... para aplicativos Web complexos
As informações conflitantes podem ser frustrantes e difíceis de generalizar e aplicar à sua situação específica. Portanto, você pode ter que fazer o que funciona melhor no seu contexto.
Não sou muito fã de documentos de teste longos e usei recursos visuais com bastante eficiência em alguns projetos menores. Tente isso? Como um fluxograma (ou qualquer outro diagrama UML, como um diagrama de estados etc.), em vez de usar apenas texto? Indique entradas, saídas, condições, loops, faixas, estados, interações com outros componentes, etc. e, em seguida, indique se eles foram bem-sucedidos, com falha, transferidos, outros (?) Com base em seus critérios.
Pode ser um pouco de trabalho no começo, mas pode ajudar a mantê-lo são a longo prazo. Qualquer que seja o método que você escolher, quanto mais você trabalhar com ele, melhor será o resultado.
HTH, e boa sorte!
KM
fonte
Eu acho que você já estabeleceu alguns bons critérios. Seu segundo ponto é uma boa maneira de definir os escopos para seus testes, e sugiro também testar condições de erro e bufixes (eu defendo que toda correção de bug venha com pelo menos um novo teste de unidade). Pode parecer avassalador agora, mas apenas mergulhe e, depois de obter um pouco de experiência, reconhecer o que faz bons testes se tornará mais fácil.
fonte