SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister
Mini-Curso Agile Testing
Como funciona na prática?
Instrutor
Elias Nogueira <elias.nogueira@qualister.com.br>
Especialista em Automação de Teste de Software.
Professor convidado na Unisinos/RS e Uniasselvi/SC nas
disciplinas de automação de teste.
qualister.com.br
eliasnogueira
br.linkedin.com/in/eliasnogueira
github.com/eliasnogueira
Qualister
• Fundada em 2007
• Mais de 1.000 clientes em todo o Brasil
• Mais de 50 cursos sobre teste de software
• Mais de 3.000 alunos formados
• Áreas de atuação:
• Consultoria na área de teste qualidade de software
• Cursos
• Revenda de ferramentas
Mais de 1.000 clientes
Parcerias internacionais
Filosofia do Desenvolvimento Ágil
Neste tópico falaremos da base do desenvolvimento ágil,
que é o ponto de partido para teste ágil.
Título do slide
Manifesto Ágil - Valores
Estamos descobrindo maneiras melhores de desenvolver
software, fazendo-o nós mesmos e ajudando outros a
fazerem o mesmo. Através deste trabalho, passamos a valorizar:
Indivíduos e interações mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
Ou seja, mesmo havendo valor nos itens à direita,
valorizamos mais os itens à esquerda.
Fonte: http://agilemanifesto.org/iso/ptbr/
Manifesto Ágil - Valores
• Todos esses valores e princípios influenciam e
guiam a forma, o método, as ferramentas e a
postura do “testador ágil”
• O ponto é consegui desenvolver software
seguinte estes valores para que possamos
entregar valor em um curto período de tempo
Como guiar do desenvolvimento
Neste tópico falaremos sobre mecanismos que podemos
utilizar para guiar o desenvolvimento de software com
uma linguagem comum ao time
Linguagem Ubíqua
Temos um grande problema no desenvolvimento
de um software dentro de uma equipe:
• Os Desenvolvedores utilizam palavras técnicas
• Os Analistas utilizam terminologias específicas de
sua área
• O Computador entende uma linguagem de
programação
Linguagem Ubíqua
Linguagem Ubíqua é uma linguagem estruturada
sobre o modelo de domínio e utilizada por todos
(cliente, desenvolvedores, analistas e testadores)
para conectar todas as atividades do time com o
software.
Mas isso está muito difícil... Preciso de exemplos
Linguagem Ubíqua
ERRADO
O usuário efetua o login com usuário e senha válido
e visualiza a tela com diversos campos
CERTO
O médico efetua o login com usuário e senha válido e
visualiza a a lista de consultas agendadas para o dia
Linguagem Ubíqua
ERRADO
String string = new StringBuffer();
public class listDAO() {
public List<User> allData() {
try {
// codigo aqui
} catch (Exception e) {
e.printStackTrace();
}
}
}
Linguagem Ubíqua
CERTO
String usuario = new StringBuffer();
public class listaConsultasDia() {
public List<Medico> retornaTodosDados() {
try {
// codigo aqui
} catch (NaoHaConsultultasException e) {
e.printStackTrace();
}
}
}
Linguagem Ubíqua
Podemos aplicar a Linguagem Ubíqua em qualquer
ponto do projeto:
• Requisitos (User Stories)
• Documentos
• E-mails
• Reuniões
Linguagem Ubíqua
Vantagens de utilização
• Menos risco de falta de entendimento
• Comunicação mais rápida e direta
• Conhecimento do domínio por todos
• Entendimento/clarificação de código
User Story
• Uma User Story representa funcionalidades que devem
fornecer valor para o negócio (projeto)
• Representa os requisitos (desejos), mais do que
documentá-los
• Fornece um flash para comunicação
• Sua definição de pronto orienta os testes necessários
para a estória
User Story
Um requisito é muito mais do que uma história para poder descrever
a necessidade do usuário.
Método 3C proposto por Ron Jeffries
• Card
• Conversation
• Confirmation
Estória Conversa Exemplos Requisito
http://www.agilemodeling.com/artifacts/userStory.htm
http://xprogramming.com/articles/expcardconversationconfirmation/
Fontes para
consulta:
User Story
Quem?
O que?
Porque?
Papéis
Personas
Ações
Rotinas
Estratégia no negócio
Efeito no produto
User Story - Modelo
Como um
<PAPEL>
eu posso/gostaria/devo
<FUNÇÃO>
para/de
<RESULTADO para o NEGÓCIO>
User Story - Exemplos
Como um aluno do de pós graduação EAD
eu gostaria de visualizar as notas de todas as disciplinas
Para saber se eu posso obter meu certificado
User Story
O que mais é importante saber?
User Story
Funcionalidade: <nome da funcionalidade>
Como um <papel/persona>
Eu quero/posso/gostaria <meta a ser alcançada>
De modo que <a razão para alcançar a meta>
NARRATIVA
-<Listar itens óbvios>
-<Listar itens que tenham relevância no software>
FORA DE ESCOPO
- <Listar o que o cliente não quer que seja desenvolvido>
User Story
O que mais é importante saber?
Como testar!!!
Critério de Aceite
• Um Critério de Aceitação é onde expressamos como
iremos garantir que um requisito (user story) será, além
de testável, validado e entendido pelo cliente e qualquer
pessoa do time.
• Ele utiliza a notação Gerkin Given – When – Then que
conheceremos logo mais.
Gerkin: https://github.com/cucumber/cucumber/wiki/Gherkin
Critério de Aceite
Este mesmo documento pode ser utilizado por todos para:
• O desenvolvimento da aplicação
• Teste da aplicação
• Aceitação da aplicação
Cenário: <descrição do teste>
Dado <pré-condição>
Quando <ação>
Então <resultado esperado>
Cenário: <descrição do teste>
Dado que eu estou na página da disciplina
Quando eu clicar no link “Visualizar notas das disciplinas”
Então eu visualizo cada disciplina cursada e a respectiva nota
Interação 1
Desenvolver somente um esboço (seu entendimento)
sobre o desejo do seu futuro usuário:
Eu sou um professor de matemática
Meus alunos não sabem os tipos de triângulos
Eu preciso de sistema para apresentar os tipos de
triângulos
Interação 2
Entreviste o usuário sobre o que ele precisa.
Você precisa desenvolver:
• User Story
• Critério de Aceitação
Dicas para acelerar e focar a extração de dados do usuário:
• Quem | O que? | Por que
• Narrativa (tudo que é óbvio/funcionalidade)
• Fora de escopo
Agile Testing
Neste tópico falaremos o que é Agile Testing, a
transição/transformação de um time ágil x tradicionais e
nosso posicionamento nesta abordagem
O que é Agile Testing?
Agile Testing é uma prática de Teste
de Software que segue os princípios
do desenvolvimento ágil
Paradigma
Fonte: http://www.slideshare.net/dwhelan/agile-testing-and-the-role-of-the-agile-tester
Quem é o Agile Tester
“Nós definimos o Agile Tester nesta forma: um profissional
de teste que abraça as mudanças, colabora bem com
pessoas técnicas de de negócios e entende o conceito de
utilizar testes para documentar os requisitos e guiar o
desenvolvimento“
Lisa Crispin e Janet Gregory
Fonte: Livro Agile Testing a Pratical Guide for Testers an Agile Team
Quem é o Agile Tester
Desenvolvedor Usuário
Testador
Quem é o Agile Tester
Mudanças de paradigmas
• Qual é o meu papel e as minhas responsabilidades?
• Como eu posso atuar mais próximo do desenvolvedor?
• O que devo fazer manualmente ou automaticamente?
• Eu tenho que programar?
• Como posso testar em ciclos curtos de desenvolvimento?
• Como posso testar em um ambiente onde a mudança é constante?
• Como posso testar sem requisitos detalhados?
Quem é o Agile Tester
Conhecimento em testes
Certificações
Técnicas
Ferramentas
Conhecimento no negócio
Regras/Leis
Processos/Workflows
Realidade do usuário
Conhecimento em computação
Programação
Banco de dados
Sistemas operacionais
Redes
Habilidades interpessoais
Comunicação
Visão crítica
Respeito
Premissas: Equipe auto-gerenciável e multifuncional
Planejamento de testes ágeis
• O mínimo necessário
• Guias e diretrizes (foco na intenção do que vai ser testado)
• Planilhas
• Checklists
• Conversa cara a cara
Planejamento
Teste
Tradicional
Ênfase no planejamento,
processos e roteiros
detalhados
Ênfase nas pessoas
Teste Ágil
Casos de testes ágeis (Mapas mentais, testes de aceitação, etc)
O foco é na exploração e automação de testes ao invés de casos de
testes tradicionais com roteiros (scripted)
Planejamento
Testes Ágeis x Testes Tradicionais
• Os objetivos são os mesmos
• Para confirmar se o software faz o que ele deve fazer
• Para confirmar se o software não faz o que ele não deveria fazer
• Para aferir o atendimento a um atributo de qualidade (implícito e
explícito)
• Encontrar defeitos
• A diferença é a abordagem (mais leve, mais rápida, mais cedo)
Estratégia
Estratégia
Testes que focam na arquitetura e suportam o time: São os testes de
unidade e de componentes. Estes são realizados e são de
responsabilidade dos próprios desenvolvedores. O papel do analista
de testes nesse quadrante é o de apoiar, suportar e mentorizar os
desenvolvedores sempre que necessário. De preferência isso é feito
através do "pairing" com o desenvolvedor no momento de elaborar
os testes unitários automatizados.
Quadrante 1
Testes que focam no negócio e suportam o time: São testes
funcionais diferenciados, que idealmente utilizam a técnica de
Behaviour-Driven Development e Acceptance Test-Driven
Development. Isto é, são testes e cenários de exemplo realizados
pelos testadores em conjunto com os clientes, usuários e analistas
de negócio. Com base nesses exemplos e cenários os
desenvolvedores terão melhores condições de desenvolver e
entender os requisitos. Além disso, utilizam-se de ferramentas
adequadas (como o Fitnesse ou o Concordion, por exemplo), uma
parte desses testes serão automatizados antes ou em paralelo com o
desenvolvimento do cenário. Portanto, o foco desses testes não é
encontrar o maior número de defeitos e sim ajudar clientes e
desenvolvedores a terem um melhor entendimento.
Quadrante 2
Testes que focam no negócio e criticam o produto: Esses são o que
chamamos de testes "clássicos". Os testes de aceitação feitos na
homologação do produto ou de suas partes, testes beta e testes
exploratórios. Estes são feitos não com o objetivo de dizer que o
software funciona mas, pelo contrário, de encontrar defeitos. Essa
categoria as vezes é negligenciada por alguns agilistas mais radicais.
Mas a verdade é que bons analistas de testes possuem técnicas para
encontrar defeitos que poucos desenvolvedores conhecem (até
porque o papel do desenvolvedor é construir e o do testador, neste
quadrante, é o de destruir!).
Quadrante 3
Testes que focam na arquitetura e criticam o produto: São os testes
de performance, de carga e de segurança. Estes são de
responsabilidade dos analistas de testes e costumam ser feitos
quando pedaços da aplicação já estão prontas e, especialmente,
antes da entrada de um release em produção.
Quadrante 4
Estratégia
Baixo
Nível
Alto
Nível
Foco em Automação de Testes
Neste tópico falaremos porque é tão importante focar em
automação de teste em um time ágil e o papel do testador
nesta automação.
Automação de Teste
Desenvolvimento Testes
Desenvolvimento Testes
TRADICIONAL
ÁGIL – TESTE CONTÍNUO E AUTOMATIZADO
Por que é dado um grande enfoque em automação de testes?
• A automação viabiliza ciclos curtos de entrega
• A automação pode fazer parte de um ciclo de integração contínua
fornecendo feedback contínuo
• A automação oferece uma rede de segurança por meio de regressões
completas
• A automação permite a implementação do conceito DRY (Don’t Repeat
Yourself) e libera as pessoas para realizarem tarefas mais criativas ao invés
de terem que executar testes manuais, enfadonhos e repetitivo
Automação de Teste
Pirâmide de Automação de Teste
• Enquanto nas metodologias tradicionais o desenvolvedor apenas escreve
código, nas metodologias ágeis o desenvolvedor também é responsável
pelos testes. No entanto, os testes do desenvolvedor tem o objetivo de
prevenir e detectar defeitos na perspectiva do código.
• Ou seja, o desenvolvedor deve garantir a qualidade de cada unidade do
código individualmente. Unidade, neste contexto, deve ser entendida como
o menor trecho de código de um software que pode ser testado, podendo
ser uma função ou procedimento em linguagens de programação
procedurais ou métodos de classes em linguagens orientadas a objetos.
Unitário
Os desenvolvedores testam sob a perspectiva do código (método
por método)
• Testes unitários fornece feedback imediato ao desenvolvedor quando ele
comete um erro
• Testes unitários fornece um rede de segurança que identifica regressões
• Testes unitários ajudam na identificação e isolamento de defeitos
• Testes unitários em conjunto com profilers de cobertura fornece uma
visualização das áreas do software cobertas por testes
• Testes unitários fornece um exemplo executável de como funciona o código
Unitário
Benefícios:
Interação 3
Iremos melhorar os testes unitários do desenvolvedor
Faremos uma sessão de pair para descobrir quais os testes
unitários implementados e quais podemos adicionar
• Unidades
• Componentes
• Sub-sistemas
• API / WEB Services
• Hardware
• Banco de dados
Serviços
Integração Bottom-Up (Caixa Branca)
• Teste de baixo nível dos componentes e API’s internas do sistema sem acesso a
interface gráfica
Serviços
Integração Bottom-Up (Caixa Branca)
Componente A
Componente B
Driver
MockMock
Interação 4
Criaremos a “casca” da automação de serviços baseados
no critério de aceite
Faremos uma sessão de pair com o desenvolvedor para
automatizar o critério de aceite no nível de serviço
• Cenários de uso
• End-to-End
• Transações de negócio
• Workflows
UI
Integração Top-Down (Caixa Preta) via Interface Gráfica
Interação 5
Criaremos a automação funcional/aceitação para o
sistema web
Iremos automatizar o sistema web com uma ferramenta
para garantir a aceitação do usuário
Link: http://triangulos-3.herokuapp.com/
Simultâneamente ....
... aprender sobre o software
... desenvolver mais testes
... executar testes
Usando o feedback do último teste para executar o próximo!
Manual
Testes Exploratórios
• Os testes não são criados com antecedência
• Não segue um roteiro rígido (segue guias e diretrizes)
• É baseado em pensamento estruturado e exploração livre
• É adaptativo e flexível
• Enfoca o aprendizado em paralelo
• A execução do teste é guiada/aprimorada com base em execuções
anteriores
• Exige profissionais experientes
• Expande o escopo dos testes tradicionais baseados em roteiros
(Injeta/introduz variação aos casos de testes)
• Fluxo imediato de feedback (e correção de curso)
• Amplifica a cobertura dos testes
Manual
Testes Exploratórios
• Ad-hoc
• Baseado em Sessão
Manual
Testes Exploratórios
Teste baseado
em roteiros Ad-hoc
Baseado em
sessões
Muitoformal
Muitoinformal
• Charter
• Descrição e objetivo
• Tempo
• Área de Concentração
• Setup
• Observações
• Bugs
Manual
Testes Exploratórios Baseado em Sessão
Explorar áreas/features [com recursos, condições , restrições] para
descobrir informação
Explorar o site em diversos browsers e configurações para descobrir
riscos relacionados a configurações não suportadas
Interação 6
Executaremos um teste manual (exploratório) para as
mudanças no sistema web
Crie um charter e explore novamente a aplicação
• Tempo: 15 min
• Link: http://triangulos-3.herokuapp.com/
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister

Más contenido relacionado

La actualidad más candente

Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de softwareNorton Guimarães
 
Qualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e CulturaQualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e CulturaLucas Amaral
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaFrederico Augusto Do Carmo Moreira
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a pontaElias Nogueira
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingJosiah Renaudin
 
[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes CamadasJúlio de Lima
 

La actualidad más candente (20)

Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Carreira de QA
Carreira de QA Carreira de QA
Carreira de QA
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
Qualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e CulturaQualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e Cultura
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of Testing
 
Test Automation in Agile
Test Automation in AgileTest Automation in Agile
Test Automation in Agile
 
[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas
 
Exploratory test
Exploratory testExploratory test
Exploratory test
 

Destacado

Curso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeterCurso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeterQualister
 
Como testar aplicativos ios e android
Como testar aplicativos ios e androidComo testar aplicativos ios e android
Como testar aplicativos ios e androidQualister
 
Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosQualister
 
Testes para dispositivos móveis
Testes para dispositivos móveisTestes para dispositivos móveis
Testes para dispositivos móveisQualister
 
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014Qualister
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de softwareQualister
 
Agile testing
Agile testingAgile testing
Agile testingQualister
 
Teste e Qualidade de Software
Teste e Qualidade de SoftwareTeste e Qualidade de Software
Teste e Qualidade de SoftwareQualister
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverQualister
 
Testes de segurança
Testes de segurançaTestes de segurança
Testes de segurançaQualister
 
Testes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasTestes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasQualister
 
Teste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testingTeste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testingQualister
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeisQualister
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com CodeceptionQualister
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de softwareQualister
 
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvemBRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvemQualister
 
Curso testes avaliação Usabilidade
Curso testes avaliação UsabilidadeCurso testes avaliação Usabilidade
Curso testes avaliação UsabilidadeQualister
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
 

Destacado (20)

Curso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeterCurso Teste de performance, carga e stress JMeter
Curso Teste de performance, carga e stress JMeter
 
Como testar aplicativos ios e android
Como testar aplicativos ios e androidComo testar aplicativos ios e android
Como testar aplicativos ios e android
 
Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatos
 
Testes para dispositivos móveis
Testes para dispositivos móveisTestes para dispositivos móveis
Testes para dispositivos móveis
 
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Agile testing
Agile testingAgile testing
Agile testing
 
Teste e Qualidade de Software
Teste e Qualidade de SoftwareTeste e Qualidade de Software
Teste e Qualidade de Software
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriver
 
Testes de segurança
Testes de segurançaTestes de segurança
Testes de segurança
 
Testes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasTestes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentas
 
Teste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testingTeste software metodos metodologia ageis agil agile testing
Teste software metodos metodologia ageis agil agile testing
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
 
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvemBRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
 
Curso testes avaliação Usabilidade
Curso testes avaliação UsabilidadeCurso testes avaliação Usabilidade
Curso testes avaliação Usabilidade
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 

Similar a Tipos Triângulos Aplicativo

Be An Agile Tester - InmetricsDay
Be An Agile Tester - InmetricsDayBe An Agile Tester - InmetricsDay
Be An Agile Tester - InmetricsDayNhaiara Ramos
 
Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Alain Ageev, SFPC
 
Agile Testing
Agile TestingAgile Testing
Agile TestingGTS-CE
 
Maturidade em automação de testes
Maturidade em automação de testesMaturidade em automação de testes
Maturidade em automação de testesCristiano Caetano
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingSamanta Cicilia
 
Specificationby example
Specificationby example Specificationby example
Specificationby example Laís Berlatto
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POAAline Zanin
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilCenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilJoão Clineu - CTFL, CSM, CSD
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...GUTS-RS
 
Testes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsTestes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsElias Nogueira
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 

Similar a Tipos Triângulos Aplicativo (20)

Be An Agile Tester - InmetricsDay
Be An Agile Tester - InmetricsDayBe An Agile Tester - InmetricsDay
Be An Agile Tester - InmetricsDay
 
Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Maturidade em automação de testes
Maturidade em automação de testesMaturidade em automação de testes
Maturidade em automação de testes
 
Aula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptxAula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptx
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
Framework
FrameworkFramework
Framework
 
Teste Ágeis para todo o time
Teste Ágeis para todo o timeTeste Ágeis para todo o time
Teste Ágeis para todo o time
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilCenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
 
Testes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP LabsTestes em ambiente agil - TechTalks ADP Labs
Testes em ambiente agil - TechTalks ADP Labs
 
Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de software
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 

Más de Qualister

Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesQualister
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredQualister
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitQualister
 
Tendências em teste de software
Tendências em teste de softwareTendências em teste de software
Tendências em teste de softwareQualister
 
Juntando para multiplicar
Juntando para multiplicarJuntando para multiplicar
Juntando para multiplicarQualister
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterQualister
 
Testes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean uxTestes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean uxQualister
 
Gestão de defeitos e testes com Jira
Gestão de defeitos e testes com JiraGestão de defeitos e testes com Jira
Gestão de defeitos e testes com JiraQualister
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword drivenQualister
 
Free-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testingFree-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testingQualister
 
Galileo computing software testing
Galileo computing software testingGalileo computing software testing
Galileo computing software testingQualister
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeisQualister
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDDQualister
 

Más de Qualister (14)

Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidades
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnit
 
Tendências em teste de software
Tendências em teste de softwareTendências em teste de software
Tendências em teste de software
 
Juntando para multiplicar
Juntando para multiplicarJuntando para multiplicar
Juntando para multiplicar
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeter
 
Testes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean uxTestes de usabilidade com uma pitada de lean ux
Testes de usabilidade com uma pitada de lean ux
 
Gestão de defeitos e testes com Jira
Gestão de defeitos e testes com JiraGestão de defeitos e testes com Jira
Gestão de defeitos e testes com Jira
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
 
Free-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testingFree-ebook-rex-black advanced-software-testing
Free-ebook-rex-black advanced-software-testing
 
Galileo computing software testing
Galileo computing software testingGalileo computing software testing
Galileo computing software testing
 
Testes ágeis
Testes ágeisTestes ágeis
Testes ágeis
 
Automação de testes BDD e ATDD
Automação de testes BDD e ATDDAutomação de testes BDD e ATDD
Automação de testes BDD e ATDD
 

Tipos Triângulos Aplicativo

  • 2. Instrutor Elias Nogueira <elias.nogueira@qualister.com.br> Especialista em Automação de Teste de Software. Professor convidado na Unisinos/RS e Uniasselvi/SC nas disciplinas de automação de teste. qualister.com.br eliasnogueira br.linkedin.com/in/eliasnogueira github.com/eliasnogueira
  • 3. Qualister • Fundada em 2007 • Mais de 1.000 clientes em todo o Brasil • Mais de 50 cursos sobre teste de software • Mais de 3.000 alunos formados • Áreas de atuação: • Consultoria na área de teste qualidade de software • Cursos • Revenda de ferramentas
  • 4. Mais de 1.000 clientes
  • 6. Filosofia do Desenvolvimento Ágil Neste tópico falaremos da base do desenvolvimento ágil, que é o ponto de partido para teste ágil.
  • 8. Manifesto Ágil - Valores Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através deste trabalho, passamos a valorizar: Indivíduos e interações mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. Fonte: http://agilemanifesto.org/iso/ptbr/
  • 9. Manifesto Ágil - Valores • Todos esses valores e princípios influenciam e guiam a forma, o método, as ferramentas e a postura do “testador ágil” • O ponto é consegui desenvolver software seguinte estes valores para que possamos entregar valor em um curto período de tempo
  • 10. Como guiar do desenvolvimento Neste tópico falaremos sobre mecanismos que podemos utilizar para guiar o desenvolvimento de software com uma linguagem comum ao time
  • 11. Linguagem Ubíqua Temos um grande problema no desenvolvimento de um software dentro de uma equipe: • Os Desenvolvedores utilizam palavras técnicas • Os Analistas utilizam terminologias específicas de sua área • O Computador entende uma linguagem de programação
  • 12. Linguagem Ubíqua Linguagem Ubíqua é uma linguagem estruturada sobre o modelo de domínio e utilizada por todos (cliente, desenvolvedores, analistas e testadores) para conectar todas as atividades do time com o software. Mas isso está muito difícil... Preciso de exemplos
  • 13. Linguagem Ubíqua ERRADO O usuário efetua o login com usuário e senha válido e visualiza a tela com diversos campos CERTO O médico efetua o login com usuário e senha válido e visualiza a a lista de consultas agendadas para o dia
  • 14. Linguagem Ubíqua ERRADO String string = new StringBuffer(); public class listDAO() { public List<User> allData() { try { // codigo aqui } catch (Exception e) { e.printStackTrace(); } } }
  • 15. Linguagem Ubíqua CERTO String usuario = new StringBuffer(); public class listaConsultasDia() { public List<Medico> retornaTodosDados() { try { // codigo aqui } catch (NaoHaConsultultasException e) { e.printStackTrace(); } } }
  • 16. Linguagem Ubíqua Podemos aplicar a Linguagem Ubíqua em qualquer ponto do projeto: • Requisitos (User Stories) • Documentos • E-mails • Reuniões
  • 17. Linguagem Ubíqua Vantagens de utilização • Menos risco de falta de entendimento • Comunicação mais rápida e direta • Conhecimento do domínio por todos • Entendimento/clarificação de código
  • 18. User Story • Uma User Story representa funcionalidades que devem fornecer valor para o negócio (projeto) • Representa os requisitos (desejos), mais do que documentá-los • Fornece um flash para comunicação • Sua definição de pronto orienta os testes necessários para a estória
  • 19. User Story Um requisito é muito mais do que uma história para poder descrever a necessidade do usuário. Método 3C proposto por Ron Jeffries • Card • Conversation • Confirmation Estória Conversa Exemplos Requisito http://www.agilemodeling.com/artifacts/userStory.htm http://xprogramming.com/articles/expcardconversationconfirmation/ Fontes para consulta:
  • 21. User Story - Modelo Como um <PAPEL> eu posso/gostaria/devo <FUNÇÃO> para/de <RESULTADO para o NEGÓCIO>
  • 22. User Story - Exemplos Como um aluno do de pós graduação EAD eu gostaria de visualizar as notas de todas as disciplinas Para saber se eu posso obter meu certificado
  • 23. User Story O que mais é importante saber?
  • 24. User Story Funcionalidade: <nome da funcionalidade> Como um <papel/persona> Eu quero/posso/gostaria <meta a ser alcançada> De modo que <a razão para alcançar a meta> NARRATIVA -<Listar itens óbvios> -<Listar itens que tenham relevância no software> FORA DE ESCOPO - <Listar o que o cliente não quer que seja desenvolvido>
  • 25. User Story O que mais é importante saber? Como testar!!!
  • 26. Critério de Aceite • Um Critério de Aceitação é onde expressamos como iremos garantir que um requisito (user story) será, além de testável, validado e entendido pelo cliente e qualquer pessoa do time. • Ele utiliza a notação Gerkin Given – When – Then que conheceremos logo mais. Gerkin: https://github.com/cucumber/cucumber/wiki/Gherkin
  • 27. Critério de Aceite Este mesmo documento pode ser utilizado por todos para: • O desenvolvimento da aplicação • Teste da aplicação • Aceitação da aplicação Cenário: <descrição do teste> Dado <pré-condição> Quando <ação> Então <resultado esperado> Cenário: <descrição do teste> Dado que eu estou na página da disciplina Quando eu clicar no link “Visualizar notas das disciplinas” Então eu visualizo cada disciplina cursada e a respectiva nota
  • 28. Interação 1 Desenvolver somente um esboço (seu entendimento) sobre o desejo do seu futuro usuário: Eu sou um professor de matemática Meus alunos não sabem os tipos de triângulos Eu preciso de sistema para apresentar os tipos de triângulos
  • 29. Interação 2 Entreviste o usuário sobre o que ele precisa. Você precisa desenvolver: • User Story • Critério de Aceitação Dicas para acelerar e focar a extração de dados do usuário: • Quem | O que? | Por que • Narrativa (tudo que é óbvio/funcionalidade) • Fora de escopo
  • 30. Agile Testing Neste tópico falaremos o que é Agile Testing, a transição/transformação de um time ágil x tradicionais e nosso posicionamento nesta abordagem
  • 31. O que é Agile Testing? Agile Testing é uma prática de Teste de Software que segue os princípios do desenvolvimento ágil
  • 33. Quem é o Agile Tester “Nós definimos o Agile Tester nesta forma: um profissional de teste que abraça as mudanças, colabora bem com pessoas técnicas de de negócios e entende o conceito de utilizar testes para documentar os requisitos e guiar o desenvolvimento“ Lisa Crispin e Janet Gregory Fonte: Livro Agile Testing a Pratical Guide for Testers an Agile Team
  • 34. Quem é o Agile Tester Desenvolvedor Usuário Testador
  • 35. Quem é o Agile Tester Mudanças de paradigmas • Qual é o meu papel e as minhas responsabilidades? • Como eu posso atuar mais próximo do desenvolvedor? • O que devo fazer manualmente ou automaticamente? • Eu tenho que programar? • Como posso testar em ciclos curtos de desenvolvimento? • Como posso testar em um ambiente onde a mudança é constante? • Como posso testar sem requisitos detalhados?
  • 36. Quem é o Agile Tester Conhecimento em testes Certificações Técnicas Ferramentas Conhecimento no negócio Regras/Leis Processos/Workflows Realidade do usuário Conhecimento em computação Programação Banco de dados Sistemas operacionais Redes Habilidades interpessoais Comunicação Visão crítica Respeito Premissas: Equipe auto-gerenciável e multifuncional
  • 37. Planejamento de testes ágeis • O mínimo necessário • Guias e diretrizes (foco na intenção do que vai ser testado) • Planilhas • Checklists • Conversa cara a cara Planejamento Teste Tradicional Ênfase no planejamento, processos e roteiros detalhados Ênfase nas pessoas Teste Ágil
  • 38. Casos de testes ágeis (Mapas mentais, testes de aceitação, etc) O foco é na exploração e automação de testes ao invés de casos de testes tradicionais com roteiros (scripted) Planejamento
  • 39. Testes Ágeis x Testes Tradicionais • Os objetivos são os mesmos • Para confirmar se o software faz o que ele deve fazer • Para confirmar se o software não faz o que ele não deveria fazer • Para aferir o atendimento a um atributo de qualidade (implícito e explícito) • Encontrar defeitos • A diferença é a abordagem (mais leve, mais rápida, mais cedo) Estratégia
  • 41. Testes que focam na arquitetura e suportam o time: São os testes de unidade e de componentes. Estes são realizados e são de responsabilidade dos próprios desenvolvedores. O papel do analista de testes nesse quadrante é o de apoiar, suportar e mentorizar os desenvolvedores sempre que necessário. De preferência isso é feito através do "pairing" com o desenvolvedor no momento de elaborar os testes unitários automatizados. Quadrante 1
  • 42. Testes que focam no negócio e suportam o time: São testes funcionais diferenciados, que idealmente utilizam a técnica de Behaviour-Driven Development e Acceptance Test-Driven Development. Isto é, são testes e cenários de exemplo realizados pelos testadores em conjunto com os clientes, usuários e analistas de negócio. Com base nesses exemplos e cenários os desenvolvedores terão melhores condições de desenvolver e entender os requisitos. Além disso, utilizam-se de ferramentas adequadas (como o Fitnesse ou o Concordion, por exemplo), uma parte desses testes serão automatizados antes ou em paralelo com o desenvolvimento do cenário. Portanto, o foco desses testes não é encontrar o maior número de defeitos e sim ajudar clientes e desenvolvedores a terem um melhor entendimento. Quadrante 2
  • 43. Testes que focam no negócio e criticam o produto: Esses são o que chamamos de testes "clássicos". Os testes de aceitação feitos na homologação do produto ou de suas partes, testes beta e testes exploratórios. Estes são feitos não com o objetivo de dizer que o software funciona mas, pelo contrário, de encontrar defeitos. Essa categoria as vezes é negligenciada por alguns agilistas mais radicais. Mas a verdade é que bons analistas de testes possuem técnicas para encontrar defeitos que poucos desenvolvedores conhecem (até porque o papel do desenvolvedor é construir e o do testador, neste quadrante, é o de destruir!). Quadrante 3
  • 44. Testes que focam na arquitetura e criticam o produto: São os testes de performance, de carga e de segurança. Estes são de responsabilidade dos analistas de testes e costumam ser feitos quando pedaços da aplicação já estão prontas e, especialmente, antes da entrada de um release em produção. Quadrante 4
  • 46. Foco em Automação de Testes Neste tópico falaremos porque é tão importante focar em automação de teste em um time ágil e o papel do testador nesta automação.
  • 47. Automação de Teste Desenvolvimento Testes Desenvolvimento Testes TRADICIONAL ÁGIL – TESTE CONTÍNUO E AUTOMATIZADO
  • 48. Por que é dado um grande enfoque em automação de testes? • A automação viabiliza ciclos curtos de entrega • A automação pode fazer parte de um ciclo de integração contínua fornecendo feedback contínuo • A automação oferece uma rede de segurança por meio de regressões completas • A automação permite a implementação do conceito DRY (Don’t Repeat Yourself) e libera as pessoas para realizarem tarefas mais criativas ao invés de terem que executar testes manuais, enfadonhos e repetitivo Automação de Teste
  • 50. • Enquanto nas metodologias tradicionais o desenvolvedor apenas escreve código, nas metodologias ágeis o desenvolvedor também é responsável pelos testes. No entanto, os testes do desenvolvedor tem o objetivo de prevenir e detectar defeitos na perspectiva do código. • Ou seja, o desenvolvedor deve garantir a qualidade de cada unidade do código individualmente. Unidade, neste contexto, deve ser entendida como o menor trecho de código de um software que pode ser testado, podendo ser uma função ou procedimento em linguagens de programação procedurais ou métodos de classes em linguagens orientadas a objetos. Unitário Os desenvolvedores testam sob a perspectiva do código (método por método)
  • 51. • Testes unitários fornece feedback imediato ao desenvolvedor quando ele comete um erro • Testes unitários fornece um rede de segurança que identifica regressões • Testes unitários ajudam na identificação e isolamento de defeitos • Testes unitários em conjunto com profilers de cobertura fornece uma visualização das áreas do software cobertas por testes • Testes unitários fornece um exemplo executável de como funciona o código Unitário Benefícios:
  • 52. Interação 3 Iremos melhorar os testes unitários do desenvolvedor Faremos uma sessão de pair para descobrir quais os testes unitários implementados e quais podemos adicionar
  • 53. • Unidades • Componentes • Sub-sistemas • API / WEB Services • Hardware • Banco de dados Serviços Integração Bottom-Up (Caixa Branca)
  • 54. • Teste de baixo nível dos componentes e API’s internas do sistema sem acesso a interface gráfica Serviços Integração Bottom-Up (Caixa Branca) Componente A Componente B Driver MockMock
  • 55. Interação 4 Criaremos a “casca” da automação de serviços baseados no critério de aceite Faremos uma sessão de pair com o desenvolvedor para automatizar o critério de aceite no nível de serviço
  • 56. • Cenários de uso • End-to-End • Transações de negócio • Workflows UI Integração Top-Down (Caixa Preta) via Interface Gráfica
  • 57. Interação 5 Criaremos a automação funcional/aceitação para o sistema web Iremos automatizar o sistema web com uma ferramenta para garantir a aceitação do usuário Link: http://triangulos-3.herokuapp.com/
  • 58. Simultâneamente .... ... aprender sobre o software ... desenvolver mais testes ... executar testes Usando o feedback do último teste para executar o próximo! Manual Testes Exploratórios
  • 59. • Os testes não são criados com antecedência • Não segue um roteiro rígido (segue guias e diretrizes) • É baseado em pensamento estruturado e exploração livre • É adaptativo e flexível • Enfoca o aprendizado em paralelo • A execução do teste é guiada/aprimorada com base em execuções anteriores • Exige profissionais experientes • Expande o escopo dos testes tradicionais baseados em roteiros (Injeta/introduz variação aos casos de testes) • Fluxo imediato de feedback (e correção de curso) • Amplifica a cobertura dos testes Manual Testes Exploratórios
  • 60. • Ad-hoc • Baseado em Sessão Manual Testes Exploratórios Teste baseado em roteiros Ad-hoc Baseado em sessões Muitoformal Muitoinformal
  • 61. • Charter • Descrição e objetivo • Tempo • Área de Concentração • Setup • Observações • Bugs Manual Testes Exploratórios Baseado em Sessão Explorar áreas/features [com recursos, condições , restrições] para descobrir informação Explorar o site em diversos browsers e configurações para descobrir riscos relacionados a configurações não suportadas
  • 62. Interação 6 Executaremos um teste manual (exploratório) para as mudanças no sistema web Crie um charter e explore novamente a aplicação • Tempo: 15 min • Link: http://triangulos-3.herokuapp.com/