Meetup SP - O QA & a Especificação Por Exemplo

Post on 12-Jan-2017

202 views 3 download

Transcript of Meetup SP - O QA & a Especificação Por Exemplo

O QA & a Especificação por Exemplo

@samantacicilia

Especificação por ExemploBenefíciosDocumentação VivaPadrões ChaveATDD X BDD X EspecificaçãoExemplos

SUMÁRIO

Especificação é sobre fazer o

produto certo!

Construir o produto certoX

Construir certo o produto

• adaptação: Specification by Example - Gojko Adzic, 2011

Produto certo

Construir certo

Sucesso

Especificação por Exemplo

Falha do Negócio

Desperdício Pesadelo de Manutenção

Foco

da

Com

unid

ade

nos

últim

os 1

0 an

os

Documentação Viva, simples e fácil de manter.

Conjunto de patterns que ajudam a construir o produto certo.

Tem foco no negócio utilizando linguagem comum.

Especificação por ExemploO que é

Colaboração

Benefícios

Mais eficiência na implementação de mudanças

Produtos de alta qualidade

Menos retrabalho

Melhor alinhamento entre os envolvidos no projeto

Documentação Viva

Documentação VivaSimples de manter

Sempre atualizada

Especificação executável

Confiável

Colaborativa

Esclarecedora

Padrões Chave

* Specification by Example – Gojko Adzic, 2011

das metasTime deriva o escopo a partir

O que o cliente pede é realmente o que ele precisa?“

Solução de um problema de negócio

Colaboração para derivar o escopo

Time tem experiência para sugerir uma solução:

• barata

• rápida

• fácil de desenvolver

• fácil de manter

Objetivos de Negócio

Derivar o escopo

Criar as histórias

QAcomo parte do timeajuda a descobrir o produto certo

colaborativamente

Especificar

Workshops

Compartilhar o conhecimento

Torna as especificações fáceis de entender e manter

Cada time colabora de formas diferentes

Gera engajamento

QAcomo parte do timecolabora para especificar

exemplosIlustrar com

Elucidam requisitos

Evitam ambiguidade

Jargões específicos do negócio

Exercícios de Feedback

Devem ser precisos

Devem ser realistas

Devem ser fáceis de entender

QAcomo parte do timepensa em exemplos

Refinaras especificações

Remover as informações extras

Extrair a essência dos exemplos

Uma boa especificação, com exemplos, é um teste de aceitação

• precisa e testável

• não ser um script

• sobre negócio e não design

A especificação deve ser:

QAcomo especialistarefina as especificações criadas pelo time

Automatizaras especificações

Validar de forma rápida e eficiente

Automatizar sem mudar as especificações

• fazer uma POC

• planejar a arquitetura dos testes

• não postergar ou delegar a automação

• evitar automatizar os testes manuais existentes

• ganhar confiança nos testes de UI

Dicas:

QAcomo parte do timeautomatiza as especificações

frequentemente

Validar

Integração Contínua

Pontos de atenção:

• dependências de ambiente

• feedback lento

• gerenciar testes que falham

QAcomo parte do timeajuda a manter a Integração Contínua

documentação viva

Evoluir a

Fácil de entender:• não crie especificações longas

• conceitos de alto nível

• evite termos técnicos

• evolua a linguagem

• Personas

• colaborar na definição da linguagem

Consistente:

Fácil aceso:• organizar o trabalho por histórias

• reorganize as histórias por áreas funcionais

• organize através das rotas de UI

• organize através de processos de negócio

• use tags

QAcomo parte do timeajuda a manter a Documentação Viva atualizada e acessível

BDD X ATDD X Especificação

Desenvolvimento Orientado a Comportamento (BDD)

Evolução do Desenvolvimento Orientado a Testes (TDD)

Foco no comportamento do sistema

Entendimento compartilhado

Linguagem Ubíqua

Desenvolvimento Orientado a Testes de Aceitação (ATDD)

Prática de desenvolvimento ágil

Colaboração do time para discutir os critérios de aceitação

Critérios viram testes de aceitação (antes do desenvolvimento)

Foco nos testes automatizados

Desenvolvimento orientado a Testes de Aceitação (ATDD)

RefinarDiscutirHistória

DesenvolvimentoDemo

Item

Especificação por Exemplo

Conjunto de práticas

Palavra especificação é o foco ao invés de teste

Engloba práticas de

• ATDD

• BDD

Exemplo

Meta/Objetivo

Aumentar a venda de livros

Aumentar o número de clientes VIP

Funcionalidade: Entrega Grátis

Oferecida para clientes VIP uma vez que eles comprem um certo número de livrosNão é oferecida pra clientes comuns e nem para clientes VIPs que comprem qualquer coisa diferente de livrosO número mínimo de livros para a entrega grátis é 5

ExemplosTipo de Cliente Conteúdo do Carrinho Entrega

VIP 5 livros Grátis

VIP 4 livros Padrão

Regular 10 livros Padrão

VIP 5 máquinas de lavar Padrão

VIP 5 livros, 1 máquina de lavar Padrão

Dado que eu seja um cliente VIPQuando comprar 5 livrosEntão a entrega do meu pedido é gratuita

Cenário

Assim podemos ter:

O produto certo

Construído da forma certa

Com Documentação Viva

De forma Colaborativa

Referências Bibliográficas

http://blog.concretesolutions.com.br/2016/09/especificacao-por-exemplo-1/

http://blog.concretesolutions.com.br/2016/09/especificacao-por-exemplo-2/

http://blog.concretesolutions.com.br/2016/09/especificacao-por-exemplo-3/

http://blog.concretesolutions.com.br/2016/05/o-que-e-especificacao-por-exemplo/

http://blog.concretesolutions.com.br/2016/04/o-que-e-documentacao-viva/

Bônus QA:

Exemplo: https://github.com/samycici/cucumber-capybara-site_prism

WEB - Magneton: https://github.com/concretesolutions/magneton

MOBILE - Sunomono: https://github.com/concretesolutions/sunomono

About.me

• QA @ Concrete Solutions• Owner @ RTS Treinamentos www.rtstreinamentos.com.br /

testedesoftware.com

• Apaixonada por comunidades• Diversidade em TI

@samantacicilia Samanta Cicilia pt.slideshare.net/samantacicilia samycici@gmail.com/samantacicilia

insideoutproject.com.br

Comunidades

Comunidades

- meetup.com/pt-BR/DevOps-Carioca/ - meetup.com/pt-BR/Grupo-de-Testes-Carioca/ - facebook.com/RioAgile/ - agiletesters.com.br - insideoutproject.com.br

Dúvidas?

www.concretesolutions.com.br

Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030

São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449

Ajudamos empresas a criar produtos digitais de sucesso