além do tdd

26
Além do TDD... Por Leonardo Eloy

Upload: leonardo-eloy

Post on 21-Jun-2015

95 views

Category:

Software


4 download

DESCRIPTION

Palestra ministrada no 1o. Encontro do Grupo de Testes de Software do Ceará

TRANSCRIPT

Page 1: Além do TDD

Além do TDD... Por Leonardo Eloy

Page 2: Além do TDD

Esta é Fernanda. Ela ganha a vida testando software.

Page 3: Além do TDD

Fernanda costuma levantar os detalhas dos requisitos com o Product Owner e traçar o seu roteiro de testes.

Page 4: Além do TDD

Após longas reuniões, Fernanda compreendeu as user stories e criou o seu roteiro de testes.

Page 5: Além do TDD

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

Page 6: Além do TDD

Gustavo, um desenvolvedor esperto, utiliza o roteiro de testes de Fernanda para implementar os requisitos.

Page 7: Além do TDD

Gustavo desenvolve todo o sistema utilizando os cenários que Fernanda projetou. Uma excelente abordagem!

Page 8: Além do TDD

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

Page 9: Além do TDD

ATDD vs. TDD

Page 10: Além do TDD

Gustavo faz o trabalho dele muito bem, mas Fernanda, ávida testadora, consegue sempre quebrar o sistema

com testes exploratórios.

Page 11: Além do TDD

Após encontrar uma falha, Gustavo cria um novo teste para reproduzir o erro. Somente após isso, ele prossegue

com a correção.

Page 12: Além do TDD

Porém, entrega após entrega, Fernanda ainda consegue quebrar o sistema.

Page 13: Além do TDD

Gustavo andou pesquisando o que está errado neste ciclo.

Page 14: Além do TDD

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.

Page 15: Além do TDD

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.

Page 16: Além do TDD

Após pesquisar vastamente no Google, Gustavo conheceu 3 técnicas novas de como testar seu sistema.

Page 17: Além do TDD

Testes de Comportamento

Page 18: Além do TDD

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!"

Page 19: Além do TDD

Testes de Mutação

Page 20: Além do TDD

Testes de Mutação

if (a == b && a != z) { // algo}

if (a != b || a == z) { // algo}

Page 21: Além do TDD

Testes de Propriedade

Page 22: Além do TDD

Testes de Propriedade

Maior de Idade = (n >= 18)

Limite Percentual = (n >= 0 && n <= 100)

Page 23: Além do TDD

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?

Page 24: Além do TDD

Cuma?

Page 25: Além do TDD

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!

Page 26: Além do TDD

Obrigado!

[email protected]