Aula 30 Desenvolvimento Agil. Metodologias Ageis. ATDD
Aula 30 Desenvolvimento Agil. Metodologias Ageis. ATDD
Aula 30 Desenvolvimento Agil. Metodologias Ageis. ATDD
Ágeis(ATDD)
Prof. Washington Almeida, MSC, ISF 27002
Acceptance Test-Driven Development (ATDD)
• "Desenvolvimento Orientado a Testes de Aceitação", é uma
prática de obtenção de requisitos de forma colaborativa
aplicada por equipes ágeis.
• Onde exemplos concretos e testes automatizados são
utilizados para especificar os requisitos, tornando-os mais
claros, com o objetivo de criar especificações executáveis.
• Eles são gerados em sessões de criação do backlog do produto,
com a participação da equipe, Product Owner, além dos
demais interessados.
30
ATDD x TDD
• O ATDD é muito similar ao TDD, diferenciando-se deste último pelo
fato de termos uma colaboração maior entre o desenvolvedor,
analista de qualidade (tester) e negócio (cliente/partes
interessadas).
• Enquanto o teste unitário está relacionado com o código, de um
ângulo do desenvolvedor (visão interna), o teste de aceitação está
voltado ao ponto de vista do usuário, uma visão externa ao
sistema.
• Enquanto Craig Larman e Bas Vodde, em seu artigo, consideram a
aplicação do ATDD como um fluxo de 3 etapas, ou seja: debater,
desenvolver e revisar; Hendrickson incluiu mais um passo: refinar.
31
32
Refinar os Testes de Aceitação
33
Implementar o Código com TDD
34
Apresentar os Resultados dos Testes de Aceitação
• Após os testes passarem com sucesso, a história é verificada pelo
P.O, normalmente em uma reunião de Review/Showcase, onde ele
poderá aprová-la ou não.
• O resultado pode levar à criação de uma nova história ou uma
alteração nos testes existentes, afim de contemplar novos cenários.
• Outra forma é a validação de cada história (Review),
imediatamente após ela ser desenvolvida pela equipe, de tal
maneira que o P.O possa fazer isso com o desenvolvedor ou o par
de desenvolvedores que a finalizaram.
35
Diferenças entre ATDD e BDD
36
Questão 1
Ano: 2018 Banca: FAURGS Órgão: BANRISUL Prova: FAURGS - 2018 - BANRISUL - Teste de Software
Considere as afirmações abaixo sobre desenvolvimento ágil orientado a testes de aceitação, em inglês Acceptance Test-Driven
Development (ATDD).
I - Em ATDD, testes de aceitação devem ser especificados de forma colaborativa por desenvolvedores, clientes e testadores,
de forma a reduzir a diferença entre teste de sistema e teste de aceitação.
II - Em ATDD, testes de aceitação são executados pelo cliente ou usuário apenas na última fase do projeto, sendo o propósito
principal verificar se o sistema desenvolvido está funcionando de acordo com o que foi acordado.
III - Em ATDD, testes de aceitação oferecem um contexto para derivar testes para as diferentes unidades do projeto
do software em TDD (Test-Driven Design – projeto orientado a teste).
IV - Em ATDD, testes de aceitação não podem ser automatizados.
Quais estão corretas?
a) Apenas I e II.
b) Apenas I e III.
c) Apenas II e III. LETRA B
d) Apenas I, III e IV.
e) I, II, III e IV.
Justificativa:
II está errada pois os testes são feitos durante todo o projeto, e não apenas na última fase.
IV está errada pois os testes podem ser automatizados no ATDD (como os testes de regressão). 37
Questão 2
Ano: 2017 Banca: CESPE Órgão: TRE-PE Prova: CESPE - 2017 - TRE-PE - Analista Judiciário - Análise de Sistemas
O desenvolvimento orientado a testes (TDD):
a) é um conjunto de técnicas que se associam ao XP (extreme programming) para o desenvolvimento
incremental do código que se inicia com os testes.
b) agrega um conjunto de testes de integração para avaliar a interconexão dos componentes
do software com as aplicações a ele relacionadas.
c) avalia o desempenho do desenvolvimento de sistemas verificando se o volume de acessos/transações está
acima da média esperada.
d) averigua se o sistema atende aos requisitos de desempenho verificando se o volume de
acessos/transações mantém-se dentro do esperado.
e) testa o sistema para verificar se ele foi desenvolvido conforme os padrões e a metodologia estabelecidos
nos requisitos do projeto.
LETRA A
Justificativa:
I. Seu objetivo é criar um “código limpo que funcione”. Trabalha com a estratégia Red - Green – Refactor.
II. Além disso, os testes devem seguir o modelo F.I.R.S.T :
F (Fast) - Rápidos: devem ser rápidos, pois testam apenas uma unidade;
I (Isolated) - Testes unitários são isolados, testando individualmente as unidades e não sua integração; (motivo do erro B e E)
R (Repeateble) - Repetição nos testes, com resultados de comportamento constante;
S (Self-verifying) - A auto verificação deve verificar se passou ou se deu como falha o teste;
T (Timely) - O teste deve ser oportuno, sendo um teste por unidade. 38
Gabarito
Questão Resposta
1 LETRA B
2 LETRA A
39
Continua...
• BDD
• Kanban
• Outros Tópicos Relevantes
40
Referências
• PRESSMAN, Roger S. ; Bruce R. Maxim. Engenharia de Software, Uma Abordagem Profissional, 8° ed.
Porto Alegre: AMGH, 2016. ISBN 978-85-8055- 533-2.
• SOMMERVILLE, Ian. Engenharia de Software, 9. ed. São Paulo: Pearson Prentice Hall, 2011. ISBN 978-
85-7936-108-1.
• https://www.infoq.com/br/articles/atdd-passo-a-passo/
41