Você está na página 1de 54

(48) 4052-9536 / 9540 contato@qualister.com.

br

Palestra
Automao de testes em metodologias geis

www.qualister.com.br

Instrutor

Cristiano Caetano
Email: cristiano.caetano@qualister.com.br Apresentaes: slideshare.net/cristianocaetano Blog: cristianocaetano.wordpress.com
certificado CBTS pela ALATS. Diretor tcnico da Qualister com mais de 10 anos de experincia, j trabalhou na rea de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent. colunista na rea de Teste e Qualidade de software do site linhadecodigo.com.br e autor dos livros "CVS: Controle de Verses e Desenvolvimento Colaborativo de Software" e "Automao e Gerenciamento de Testes: Aumentando a Produtividade com as Principais Solues Open Source e Gratuitas". Participante ativo da comunidade de teste de software brasileira, o criador e mantenedor do portal TestExpert: A sua comunidade gratuita de teste e qualidade de software (www.testexpert.com.br).

www.qualister.com.br

Twitter

twitter.com/c_caetano

www.qualister.com.br

Facebook

facebook.com/ccristiano.caetano

www.qualister.com.br

Apresentao

www.slideshare.net/cristianocaetano

www.qualister.com.br

Sobre a Qualister
Fundao: 2007. Sobre a Qualister: A Qualister uma empresa nacional, constituda a partir da unio de profissionais qualificados e certificados na rea de testes e qualidade de software, com o objetivo de integrar, implementar e implantar solues com base nas melhores prticas do mercado e normas internacionais. Colaboradores: A Qualister composta por colaboradores ps-graduados e certificados na rea de testes (CBTS, CSTE) com larga experincia na indstria de Tecnologia da Informao. rea de atuao: A Qualister uma empresa especializada em servios de qualidade e teste de software. Tem como linhas de atuao consultoria em teste/ qualidade de software, outsourcing (terceirizao dos servios atravs da alocao de profissionais) e treinamentos. Localizao: A Qualister est localizada em Biguau na Grande Florianpolis/SC e est instalada no CITEB Centro de Inovao Tecnologia de Biguau no campus da universidade UNIVALI.

www.qualister.com.br

Alguns clientes

www.qualister.com.br

Alguns clientes

www.qualister.com.br

Parcerias internacionais

Solues para automao, profilling e gesto

Solues para testes de performance

Solues de apoio a avaliao de usabilidade

www.qualister.com.br

Tpico

Testes unitrios e TDD (Desenvolvimento dirigido por testes)

www.qualister.com.br

Testes unitrios

Mocks/Stubs

Classe Mtodo(a, b, c): d


Setup Exercise Verify Teardown

http://xunitpatterns.com/Four%20Phase%20Test.html
www.qualister.com.br

Testes unitrios

www.qualister.com.br

Test Driven Development (Desenvolvimento dirigido por testes)


Test Driven Development uma prtica de desenvolvimento de software em que os testes unitrios automatizados so escritos antes do cdigo.

www.qualister.com.br

Tpico

BDD (Desenvolvimento dirigido por comportamento)

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento) Dan North, criador do BDD (Desenvolvimento dirigido por comportamento) percebeu que os testes deveriam ser descritos em sentenas/frases representando o comportamento esperado pelo sistema ao invs de nomes de mtodos

Testes descritos em nomes de mtodos TestComprarPassagemPromocionalSomenteIdaParaUmAdultoVooDisponivel TestComprarPassagemPromocionalIdaEVoltaParaUmAdultoVooDisponivel TestComprarPassagemFlexSomenteIdaParaUmAdultoVooDisponivel

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)


Estria: Compra de passagem via WEB Como um (As a) Profissional da rea de testes Eu quero (I want to) Ir de avio para Florianpolis Para que (So that) Eu possa participar de um evento sobre testes Teste de aceitao: Comprar passagem com sucesso Dado que (Given) Existem voos disponveis para o trecho POA/FLN Existem assentos disponveis nos voos Quando (When) Eu escolho a origem igual a Porto Alegre Eu escolho o destino igual a Florianpolis (...) Ento (Then) A compra realizada com sucesso O assento escolhido reservado
www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

No BDD, os testes de aceitao so descritos em linguagens naturais prximas do domnio do negcio usando DSLs. DSL (Domain Specific Language) Linguagens especficas de um domnio. Exemplo em terminologia nutica: Proa = extremidade frontal do navio Popa = extremidade posterior do navio Bombordo = lado esquerdo do navio Estibordo = lado direito do navio

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

SQL (Structured Query Language) um exemplo clssico de DSL:

SELECT * FROM clientes WHERE codigo < 100 UPDATE clientes SET id = 51 WHERE nome = Jos da Silva SELECT * FROM clientes WHERE nome LIKE %Jos%'

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

Como transformar os testes escritos em linguagem natural em testes/especificao automatizados?

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

Para testes de aceitao usamos DSTL (Domain Specific Test Language) Linguagens especficas de teste de um domnio.

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

Para testes de aceitao usamos DSTL (Domain Specific Test Language) Linguagens especficas de teste de um domnio.

e d a d i l a m r o f m o c L T S D Uma a d a t e r p r e t n i r e s e d o p e t a suficien t n e m a r r e f a m u r o p a d e executa a d a z i l a i c e esp

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

Os testes descritos em linguagem natural so interpretados por ferramentas especializadas que, por sua vez, exercitam o cdigo/API do sistema para demonstrar se o comportamento foi atendido.

Cdigo API Interface grca Etc...

Testes de aceitao em linguagem natural na losoa BDD

Codigo de suporte xture que encapsula a implementao da ao descrita em linguagem natural

www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

Codigo de suporte xture que encapsula a implementao da ao descrita em linguagem natural

1
Testes de aceitao em linguagem natural na losoa BDD Cdigo/API do sistema sendo exercitado para validar um comportamento
www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

Existem dezenas de ferramentas que implementam a filosofia BDD no nvel da unidade/cdigo

http://en.wikipedia.org/wiki/Behavior_Driven_Development
www.qualister.com.br

http://blog.dannorth.net/introducing-bdd/

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

http://cukes.info/
www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

http://www.concordion.org/
www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

www.qualister.com.br

http://jbehave.org/

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

http://storyq.codeplex.com/
www.qualister.com.br

Behavior Driven Development (Desenvolvimento dirigido por comportamento)

www.qualister.com.br

http://www.thoughtworks-studios.com/agile-test-automation/features-benefits

Tpico

ATDD

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

O ATDD uma abordagem gil de desenvolvimento onde a construo do software guiada pelos testes de aceitao. Nesta tcnica, os testes de aceitao so criados de maneira colaborativa e descritos em uma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipe compartilha o mesmo entendimento do que deve ser feito, as restries e as definies de "Pronto". Os testes so descritos em uma linguagem natural similar a linguagem do negcio e deve ser facilmente entendida pelo cliente. Os testes (critrios de aceitao) devem ser executveis

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Etapas do ATDD:
Discutir (Discuss) Refinar (Distill) Desenvolver (Develop)

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Discutir (Discuss)
Discutir colaborativamente com a equipe as restries, assunes, premissas, expectativas, etc para definir os critrios de aceitao
E se no houver assentos disponveis no voo?

Devemos exibir uma mensagem de alerta para o usurio?

Como vamos validar os mecanismos de segurana?


www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Refinar (Distill)
Refinar os critrios de aceitao em um conjunto concreto de cenrios/ exemplos de uso descrevendo o comportamento esperado da aplicao em uma linguagem comum a todos os membros da equipe

Teste de aceitao: Comprar passagem com sucesso Dado que (Given) Existem voos disponveis para o trecho POA/FLN Existem assentos disponveis nos voos Quando (When) Eu escolho a origem igual a Porto Alegre Eu escolho o destino igual a Florianpolis (...) Ento (Then) A compra realizada com sucesso O assento escolhido reservado

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Desenvolver (Develop)
Transformar os testes de aceitao (descrevendo o comportamento esperado do software) em testes/especificao automatizados

Testes de aceitao em linguagem natural na losoa BDD Testes automaRzados


www.qualister.com.br

Principais vantagens

Cenrios de uso ExpectaRvas Exemplos de uso

Assunes

Limitaes

Linguagem Ubqua

Premissas
www.qualister.com.br

Restries

Principais vantagens

Teste = Requisito Requisito = Teste

www.qualister.com.br

Principais vantagens

Testes de aceitao automatizados so usados como medida de progresso e indicador dos nveis de qualidade

Funcionalidade

www.qualister.com.br

Tpico

Case

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

O problema
Sistema desenvolvido em tecnologia legada Falta de arquitetura (OO, Frameworks, etc) Equipe de testes sem experincia em programao

A soluo proposta
Testes na filosofia BDD/ATDD Criao de um Framework de testes sob medida para permitir a criao de testes BDD/ATDD em um sistema com tecnologia legada

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nvel da unidade/cdigo. Para que os testes escritos em linguagem natural possam ser executados, necessrio que os programadores codifiquem fixtures, ou seja, o cdigo de suporte que implementa nos mtodos das classes do software as aes descritas em linguagem natural.

Cdigo API Interface grca


Testes de aceitao em linguagem natural na losoa BDD Codigo de suporte xture que implementa a ao descrita em linguagem natural

Etc...

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Ferramentas de desenvolvimento dirigido por testes normalmente executam testes de comportamento no nvel da unidade/cdigo. Para que os testes escritos em linguagem natural possam ser executados, necessrio que os programadores codifiquem fixtures, ou seja, o cdigo de suporte que implementa nos mtodos das classes do software as aes descritas em linguagem natural.

Cdigo

Testes de aceitao em linguagem natural na losoa BDD

Codigo de suporte xture que implementa a ao descrita em linguagem natural

Sistemas Interface Legados grca


Etc...

API

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Testes de aceitao em linguagem natural na losoa BDD

Interface grca do sistema

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Framework BDD

Testes de aceitao em linguagem natural na losoa BDD

Framework BDD que uRliza o TestComplete como meio para interagir com a Interface Grca do sistema

Localiza dinamicamente os objetos da Interface grca do sistema e executa aes e valida os resultados esperados

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

O Framework ATDD foi desenvolvido em VBScript usando orientao a objetos. possvel usar o Framework ATDD para testar outras plataformas (.NET, WEB, Delphi, etc) com pequenos ajustes. O Framework ATDD encapsula toda a complexidade da automao. O usurio/testador/ programador/etc escreve os testes apenas usando a DSTL (Domain Specific Test Language).

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Foi embutida no Framework uma DSTL (Domain Specific Test Language) Linguagens especficas de teste de um domnio com foco em aes imperativas de interao com a interface grfica. Abaixo alguns exemplos:

No processo "NomeDoProcesso" Na janela "NomeDaJanela" Eu vejo o texto "Texto" no rtulo "NomeDoRotulo" Eu clico na caixa de verificao "NomeDaCaixaDeVerificao" Eu escolho a opo "Opo" na caixa de seleo "NomeDaCaixaDeSeleo" Eu digito "Texto" na caixa de seleo "NomeDaCaixaDeSeleo" Eu clico no menu "Menu" Eu vejo o texto "Texto" no campo "NomeDoCampo" Eu preencho "Texto" no campo "NomeDoCampo" Eu clico no botao "NomeDoBoto" Eu executo a consulta sql "ExpressoSQL" e vejo o resultado "Resultado" no campo "Campo" Eu armazeno o valor do objeto "NomeDoObjeto" na variavel "NomeDaVariavel"

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Os testes de aceitao so organizados em pastas de acordo com os grupos de testes similares (sutes ou roteiros de testes)

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Os testes de aceitao so escritos em formato texto puro.

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

No TestComplete os testes so organizados e executados em sutes ou em regresses completas conforme a necessidade do testador/usurio.

www.qualister.com.br

Acceptance Test Driven Development (Desenvolvimento dirigido por testes de aceitao)

Relatrios de execuo so gerados automaticamente pelo TestComplete

www.qualister.com.br

Dvidas?

Dvidas
Email: cristiano.caetano@qualister.com.br Telefone: (48) 3285 5615 / 9645 5506

www.qualister.com.br