Testes automatizados com alto valor de negócio e baixo custo de manutenção
-
Upload
taise-dias-da-silva -
Category
Software
-
view
410 -
download
1
Transcript of Testes automatizados com alto valor de negócio e baixo custo de manutenção
B em - v i n d o s
TESTES AUTOMATIZADOS COM ALTO VALOR DE NEGÓCIO E BAIXO CUSTO DE
MANUTENÇÃOTaíse Dias da Silva
DESAFIOS PRA ENTENDER O VALOR DE NEGÓCIO
▫︎ Telefone sem fio
4
Cliente Analista de requisitos Desenvolvedor
DESAFIOS PRA ENTENDER O VALOR DE NEGÓCIO
▫︎ Informar requisitos em vez de comunicar o problema
5
Cliente
Eu quero uma estrela de 12 pontos
Desenvolvedor Analista de qualidade
Moral da estória: saber o requisito não é suficiente para entender o valor de
negócio e pode resultar em testes automatizados que não testam o valor
do negócio, ou seja, não atende à necessidade do cliente e resulta em
retrabalho
7
ENTENDENDO O VALOR DE NEGÓCIO
▫︎ Especificação através de exemplos
▫︎ Requisitos, exemplos e testes falam sobre a mesma coisa: como uma aplicação de software vai se comportar quando for entregue
▫︎ Trabalhando juntos, encontramos a melhor solução8
ENTENDENDO O VALOR DE NEGÓCIO
- Behavior-driven development (BDD) Requisito: Buscar anúncios
Especificação através de exemplo: Quando eu acesso o portal de esportes, então eu vejo anúncios relacionados a esportes, com título e descrição
9
DEFININDO O VALOR DE NEGÓCIO
▫︎Use exemplos reais para construir um entendimento compartilhado do domínio (feedback cedo)
▫︎ Selecione esse conjunto de exemplos para ser a especificação e a suite de testes de aceitação
▫︎Automatize a verificação desses testes de aceitação (documentação viva da aplicação)
▫︎Use esses testes de aceitação para facilitar discussões futuras sobre mudanças e volte ao primeiro passo (usar exemplos reais)
10
POR QUE AUTOMATIZAR?
12Source: http://gatariadavila.blogspot.com.br/
BIBLIOTECA DE AUTOMAÇÃO: SELENIUM
▫︎ Selenium Web Driver
▫︎ iniciada em 2004 pelo ThoughtWorker Jason Huggins
▫︎ simula ações no browser
▫︎movido linguagem de programação
19
PADRÃO DE PROJETO: PAGE OBJECT
▫︎ PageObject
▫︎Abstrai a interação dos testes com a interface da aplicação (página web)
▫︎Cada página é representada por um objeto
▫︎Cada objeto tem métodos que representam as ações que o usuário pode fazer na página
▫︎Os métodos acessam os atributos que mapeam os elementos da página
20
EXECUÇÃO DO TESTE
▫︎ Execução na máquina local de desenvolvimento
▫︎ Execução automática no build pipeline
23
MANUTENÇÃO
▫︎ Escrever funcionalidades declarativas
▫︎ Faz de conta que a app pode ter uma UI ou um web service que oferece a mesma funcionalidade
25
BDD: FITNESSE
28
Fonte: http://www.methodsandtools.com/tools/tools.php?fitnesse
BDD: CONCORDION
29Fonte: http://concordion.org/Tutorial.html#advanced
Não importa a ferramenta, o uso das boas práticas é que determina o baixo
custo de manutenção dos testes
30
REVISÃO
▫︎Use exemplos reais para construir um entendimento compartilhado do domínio (feedback cedo)
▫︎ Selecione esse conjunto de exemplos para ser a especificação e a suite de testes de aceitação
▫︎Automatize a verificação desses testes de aceitação (documentação viva da aplicação)
▫︎Use esses testes de aceitação para facilitar discussões futuras sobre mudanças
▫︎Use boas práticas do uso de ferramentas de automação e padrões de projeto que diminuem o custo de manutenção dos testes
32
REFERÊNCIAS
▫︎Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing, por Gojko Adzic
▫︎ The Cucumber Book: Behaviour-Driven Development for Testers and Developers, por Matt Wynne and Aslak Hellesøy
▫︎ 3 noções básicas essenciais para a criação de uma suíte de automação para aplicativos web, por Taise Dias da Silva
33
Questions?
OBRIGADA
@taisedias taisedias taise-‐dias-‐da-‐silva