além do tdd
DESCRIPTION
Palestra ministrada no 1o. Encontro do Grupo de Testes de Software do CearáTRANSCRIPT
Além do TDD... Por Leonardo Eloy
Esta é Fernanda. Ela ganha a vida testando software.
Fernanda costuma levantar os detalhas dos requisitos com o Product Owner e traçar o seu roteiro de testes.
Após longas reuniões, Fernanda compreendeu as user stories e criou o seu roteiro de testes.
User Stories Cenários
Realizar baixa de depósito • Realizar baixa (happy day)• Realizar baixa com depósito inválido
Incluir novo cliente no SERASA • Incluir cliente (happy day)• Incluir cliente inativo• Incluir cliente menor de idade
Resolver o conflito Israel-Palestina • Bla bla bla• Ble ble ble
Gustavo, um desenvolvedor esperto, utiliza o roteiro de testes de Fernanda para implementar os requisitos.
Gustavo desenvolve todo o sistema utilizando os cenários que Fernanda projetou. Uma excelente abordagem!
A essência do TDD
Criação de Massa de Testes
Isolar Dependências
Dados na TelaParâmetros do
Método
Validar se houve erro
Assertions
ATDD vs. TDD
Gustavo faz o trabalho dele muito bem, mas Fernanda, ávida testadora, consegue sempre quebrar o sistema
com testes exploratórios.
Após encontrar uma falha, Gustavo cria um novo teste para reproduzir o erro. Somente após isso, ele prossegue
com a correção.
Porém, entrega após entrega, Fernanda ainda consegue quebrar o sistema.
Gustavo andou pesquisando o que está errado neste ciclo.
Ele percebeu que Fernanda costuma entrar com valores aleatórios em diversas campos, fazendo
um grande teste funcional e de integração entre os componentes.
Gustavo percebeu que poderia tentar imitar o comportamento de Fernanda para alguns dos
componentes, replicando os bugs que ela encontrava.
Só que começou a fazer isso de forma automatizada em seus métodos.
Após pesquisar vastamente no Google, Gustavo conheceu 3 técnicas novas de como testar seu sistema.
Testes de Comportamento
Testes de ComportamentoFuncionalidade: Realizar Inscrição em Curso A fim de melhorar minhas capacidades técnicas Como um aluno Eu desejo realizar o cadastro em um curso
Cenário: Realizar Cadastro em Curso Dado que eu esteja página de cadastro de cursos Quando eu preencho "Nome" com "Fulano" E eu preencho "Email" com "[email protected]" E eu seleciono "CSD" em "Curso" E eu seleciono "Transferência" em "Forma de Pagamento" E eu pressiono o botao "Realizar Inscrição" Então eu quero ver "Seu numero de inscricao eh 1!"
Testes de Mutação
Testes de Mutação
if (a == b && a != z) { // algo}
if (a != b || a == z) { // algo}
Testes de Propriedade
Testes de Propriedade
Maior de Idade = (n >= 18)
Limite Percentual = (n >= 0 && n <= 100)
Após explicar tudo isso a Fernanda, ela ficou com uma dúvida.
Se o Gustavo tem a capacidade de automatizar isso tudo em relação ao código, será que é possível fazer estas abordagens
com a interface de forma funcional?
Cuma?
Agora, com novas habilidades, Fernanda participa de grupos de discussão, cursos e eventos mostrando como é
melhor sair um pouco da zona de conforto e ser dona do próprio nariz!
Obrigado!