além do tdd

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

Upload: gts-ce

Post on 14-Jul-2015

111 views

Category:

Technology


0 download

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 Tela Parâ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 testePara reproduzir o erro. Somente após isso, ele

prossegue com a correção.

Porém, entrega após entrega, Fernanda aindaconsegue 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 automatizadaem 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!

[email protected]