Palestra Testes Ágeis - SEMAC INF UFRGS

Post on 10-Apr-2017

537 views 3 download

Transcript of Palestra Testes Ágeis - SEMAC INF UFRGS

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

diraci@cwi.com.br

@diracijunior

diracijunior