Diraci Junior Trindade da SilvaLíder TécnicoFábrica de Testes
• Ciência da Computação
• 10 anos experiência em TI
• MBA em Gestão da Qualidade
• Foco em Qualidade de Software e processos de testes
• Grupo RBS / Colombo / Cnova / Terra / Abril / Odebrecht / Fleury / Tramontina / …
• Trabalho voluntário no GUTS-RS
Testes Ágeis
CWI Learning
Baseado no livro Agile Testing de Lisa Crispin e Janet Gregory
Métodos Ágeis
4 Valores
12 Princípios
Manifesto Ágil
Métodos Ágeis
1. Indivíduos e interação entre eles mais que processos e ferramentas
2. Software em funcionamento mais que documentação abrangente
3. Colaboração com o cliente mais que negociação de contratos
4. Responder a mudanças mais que seguir um plano
Valores
O que éConceito que segue os valores e princípios do Manifesto Ágil, agrupa técnicas e práticas de testes utilizadas na avaliação de qualidade do
código e produto desenvolvido.
Visa garantir que as necessidades do cliente estão sendo atendidas e gerando valor
ao negócio.
Teste Ágil
Testes ÁgeisFornecer Feedback Contínuo
Entregar Valor ao Cliente Comunicação Face-to-face
Tenha Coragem Simplicidade
Praticar Melhoria Contínua Responder à Mudança
Auto Organização Foco nas Pessoas
Satisfação
Os 10 princípios
Testes ÁgeisColaborar com:
• Desenvolvimento• Com usuários
Fomenta a responsabilidade da qualidadeTodo o time é responsável
Conhecedor do negócio
Automatizar o máximo possível dos testes
O Perfil
O Manifestodos Testes Ágeis
1. Executar testes em todas as etapas ao invés de apenas no final
2. Prevenir bugs ao invés de encontrar bugs
3. Testar o entendimento ao invés de checar a funcionalidade
4. Construir o melhor sistema ao invés de quebrar o sistema
5. Time responsável pela qualidade ao invés da responsabilidade ser
apenas do testador
Elaborado por Mike Cohn, 2009 - Pag 332 - Desenvolvimento de Software com Scrum
Pirâmide daAutomação
dos testes ágeis1° QuadranteSuporte ao Time - Apoio Desenvolvimento
Técnica principal: TDD
Automatizado geralmente executados com Integração Contínua
Testes de Unidade menor porção da aplicação
Testes de Componentes um grupo de classes, uma parte
Não visível ao cliente
Qualidade do código
Controle de Versão - Ferramentas
dos testes ágeis1° Quadrante
Hospedagem Remota
TDD - Test-Drive Development
dos testes ágeis1° Quadrante
Desenvolvimento com foco em testes Testes são escritos antes do código
Melhorar design do código Desenvolvidos para testar unidade de código
Rodam periodicamente com integração contínua Facilita a Regressão
Refactoring - minimiza riscos
dos testes ágeis1° QuadranteCobertura e Qualidade de Código - Ferramentas
dos testes ágeis2° QuadranteSuporte ao Time - Apoio
Desenvolvimento
Técnica principal: BDD
Validações de Telas Layout / Padrões
Testes Funcionais
Está voltada a aplicação em um formato que o cliente já entende
Qualidade externa da aplicação
User Stories
Descrição curta e simples de um requisito
Perspectiva da pessoa que deseja a funcionalidade
Pode ser descrito em: Um cartão;
Ferramenta de gestão de requisitos.
dos testes ágeis2° Quadrante
User StoriesSeis atributos de uma boa história
Independent Negotiable Valuable Estimatable Small Testable
dos testes ágeis2° Quadrante
User Stories - Modelos
Como <tipo de usuário>, desejo <algum objetivo> para que <alguma razão>.
Para <benefício a ser obtido>, como <tipo de usuário>, desejo <algum objetivo>.
Exemplo: Como usuário registrado, desejo realizar login com meu nome de usuário e senha
para que eu possa confiar no sistema.
dos testes ágeis2° Quadrante
User Stories - Critérios de Aceitação
Teste de aceitação em alto nível; Será verdadeiro quando user story for finalizada.
Exemplo: Senha não pode conter sequencia crescente com mais de 3 números.
Senha deve conter uma letra maiúscula.
dos testes ágeis2° Quadrante
User Stories - Especificação por exemplos
Comunicar comportamento desejado para diversas situações; Tabelas de decisão e equivalência;
Entendimento mais fácil.
Senha Confirmação Alterado? Mensagem
1234user 1234user Não Senha não pode conter sequencia com mais de três números
User12new User12new Sim Senha alterada com sucesso!
user12 user12 Não Senha deve conter uma letra maiúscula!
USER123 USER123 Sim Senha alterada com sucesso!
dos testes ágeis2° Quadrante
BDD - Behavior-Driven Development
Criado por Dan North Derivação do TDD
Responder alguns questionamentos sobre TDD: Onde iniciar?O que testar e o que não testar? Quanto testar a cada etapa? Como devemos chamar os testes? Como entender porque um teste falha?
dos testes ágeis2° Quadrante
BDD - Behavior-Driven Development
Linguagem ubíqua
Entendimento dos requisitos
Fonte da verdade
Documentação viva
dos testes ágeis2° Quadrante
BDD - Gherkin - Idiomas
Funcionalidade: Servir café O café não deve ser servido até que seja pago O café não deve ser servido até que o botão seja pressionado Se não tiver mais café o dinheiro deve ser devolvido
Cenário: Comprar último café Dado que existe "1" "café" na máquina E Eu depositei "1$" Quando Eu pressiono o botão do “café" Então Eu devo receber "café"
dos testes ágeis2° Quadrante
BDD - Features Files and Steps Definition
dos testes ágeis2° Quadrante
BDD - Ferramentas
dos testes ágeis2° Quadrante
Testes Funcionais
Automatizado - Serviços / API / WebServices
dos testes ágeis2° Quadrante
Testes Funcionais
ManualAutomatizado - record playback
dos testes ágeis2° Quadrante
Crítica ao produto
Voltado para a técnica de validações de usuário
Testes manuais
Uso da aplicação como usuário final
Aplicação de testes exploratórios
Cliente também é envolvido na execução
Assegurar que necessidades do cliente foram atendidas
dos testes ágeis3° Quadrante
Personas
Descreve perfil de usuário fictício do produto
Principais tarefas realizadas Comportamento
Expectativas com o produto
dos testes ágeis3° Quadrante
Testes Exploratórios
Sem grande dependência dos requisitos Sem planejamento muito detalhado
Baseados na experiência do testador Conhecimento sobre as plataformas suportadas
Comparativo com versões anteriores Testes baseados em Sessões
dos testes ágeis3° Quadrante
Testes Usabilidade
Avaliação Heurística
Avaliação por especialistas
Checklists
Observação
Questionários
dos testes ágeis3° Quadrante
Testes Usabilidade
Vamos praticar!!!
dos testes ágeis3° Quadrante
dos testes ágeis4° Quadrante
Crítica ao produto
Avaliação técnica - performance, carga e segurança
Podem ser incluídos na Integração Contínua
Gerados a partir de necessidades do cliente - User Story
Utilização de ferramentas específicas e codificação
dos testes ágeis4° QuadrantePerformance - Conceito
dos testes ágeis4° QuadrantePerformance - Organização
• Entender as necessidades do projeto e contexto; • Identificar cenários que agregam valor a avaliação de performance; • Mapear os requisitos de ambiente.
dos testes ágeis4° QuadrantePerformance - Organização
• Avaliar desempenho de front-end;
dos testes ágeis4° QuadrantePerformance - Organização
Como gestor de produto e-commerce
Preciso ter informações sobre como meu site se comporta com um
número alto de acessos de usuários
Para que eu me sinta mais seguro quanto a sua disponibilidade em
eventos como BlackFriday
dos testes ágeis4° QuadrantePerformance - Ferramentas Execução
• Desenvolver scripts automatizados; • Executar os testes;
dos testes ágeis4° QuadrantePerformance - Ferramentas Monitoramento
• Acompanhar resultados; • Gerar relatórios.
Segurança - Top 10 Vulnerabilidades - OWASP 2013
dos testes ágeis4° Quadrante
A1 – Injeção A2 – Quebra de Autenticação e Gerenciamento de Sessão
A3 – Cross-Site Scripting (XSS)
A4 – Referência Insegura e Direta a Objetos
A5 – Configuração Incorreta de Segurança
A6 – Exposição de Dados Sensíveis
A7 – Falta de Função para Controle do Nível de Acesso
A8 – Cross-Site Request Forgery (CSRF)
A9 – Utilização de Componentes Vulneráveis Conhecidos
A10 – Redirecionamentos e Encaminhamentos Inválidos
Segurança - Top 10 Vulnerabilidades - OWASP 2013
dos testes ágeis4° Quadrante
Segurança - Top 10 Vulnerabilidades - OWASP 2013
dos testes ágeis4° Quadrante
Segurança - Top 10 Vulnerabilidades - OWASP 2013
dos testes ágeis4° Quadrante
dos testes ágeis4° Quadrante
dos testes ágeis4° QuadranteIntegração Contínua - Ferramentas
Testes Ágeis#ficaDica
Automatize
Comece pelo simples e que lhe agregue valor
Tenha preocupação com aquilo que irá entregar
Obtenha o entendimento da necessidade do cliente
As funcionalidades e prioridades irão mudar, esteja preparado
Identifique quem possa lhe ajudar
Sinta orgulho de assinar seu código, e seu teste
Testes ÁgeisReferências
Testes ÁgeisReferências• Agile Testing - A Pratical Guide for Testers and Agile Teams. Lisa Crispin and
Janet Gregory • User Stories Applied - For Agile Software Development. Mike Cohn • Entrega Contínua - Como Entregar Software de Forma Rápida e Confiável. Jez
Humble - David Farley • Clean Code - A Handbook of Agile Software Craftsmanship. Robert C. Martin • http://janetgregory.blogspot.com.br/2010/08/atdd-vs-bdd-vs-specification-by-
example.html • http://www.manifestoagil.com.br • http://pt.slideshare.net/nashjain/agile-testing-392928 • http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/ • http://www.infoq.com/br/articles/atdd-passo-a-passo • http://testobsessed.com/wp-content/uploads/2011/04/atddexample.pdf • http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2 • http://www.owasp.org
Testes ÁgeisReferências
• http://www.braintrustgroup.com • http://scrummethodology.com • http://www.agilenutshell.com • http://br.freepik.com/vetores-gratis/grafico-modelo-arte-vetorial_719132.htm
Imagens
Diraci Junior Trindade da SilvaLíder Técnico
Fábrica de Testes
@diracijunior
diracijunior