testes automatizados com alto valor de negócio e baixo custo de manutenção

34
Bem-vindos TESTES AUTOMATIZADOS COM ALTO VALOR DE NEGÓCIO E BAIXO CUSTO DE MANUTENÇÃO Taíse Dias da Silva

Upload: taise-dias-da-silva

Post on 12-Jan-2017

410 views

Category:

Software


1 download

TRANSCRIPT

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

2

ALTO VALOR DE NEGÓCIO

Alto valor de negócio é o que atende à necessidade do cliente

3

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

6

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

11

TESTES AUTOMATIZADOS COM BAIXO CUSTO DE MANUTENÇÃO

POR QUE AUTOMATIZAR?

12Source: http://gatariadavila.blogspot.com.br/

POR QUE AUTOMATIZAR?

13

Source: http://gatariadavila.blogspot.com.br/

FERRAMENTAS DE BDD PARA AUTOMAÇÃO DE TESTES

14

CUCUMBER

15

CUCUMBER: FACE DO NEGÓCIO

16

CUCUMBER: FACE DE TECNOLOGIA

17

DEFINIÇÃO DOS PASSOS

18

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

PAGE OBJECT

21

TEST DATA BUILDER

22

EXECUÇÃO DO TESTE

▫︎ Execução na máquina local de desenvolvimento

▫︎ Execução automática no build pipeline

23

MANUTENÇÃO

▫︎ Refatorar para ajudar a manter

24

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

MANUTENÇÃO

▫︎ Evitar passos que contêm duas ações

26

27

OUTRAS FERRAMENTAS

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

31

REVISÃO & REFERÊNCIAS

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