SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Lições Aprendidas:
Pirâmide de Testes Invertida
Agile Brasil, 2018
Karla Silva & Larissa Soares
Karla Silva
Engenheira de Testes
Larissa Soares
Engenheira de Testes
O CESAR
www.cesar.org.br
- Instituto privado de inovação;
- Clientes de diversos ramos;
- Mais de 500 colaboradores;
- Sede no Recife;
- Filiais em Manaus, Sorocaba e
Curitiba;
1
Motivação
“The test pyramid is a way of thinking about different kinds of automated tests
should be used to create a balanced portfolio. "
Martin Fowler
Autor
Alister Scott
Eng. Qualidade
“ 100,000 end-to-end selenium tests and success in the same sentence? WTF?
Sounds like a nightmare to me!"
E a sua pirâmide de testes?
(Ou outra forma geométrica)
Nível A
Nível B
Nível C
Draft
Contexto
2
Tecnologias
- Uso do behat (BDD framework para
PHP )
- Cenários de testes escritos em
linguagem natural (Gherkin)
- Criação de um framework para end-
to-end testes
UX
UI
DEV
QA
4 Projetos
Cliente
Internacional
codebase
Scope
I do the following on the <> table
I do the following on the <> area
I do the following on the page
Interaction
I click on the <>
I click and fill the <> field with the <> value
I hover over the <>
Assert
I am on the <> page
The <> text is <visible/hidden>
The <> is <enabled/disabled>
Processo de desenvolvimento
(plano original)
Sprint de UX
UX cria o .feature
2º dia da sprint
Dev usa os cenários
para o desenvolvimento
e codificação dos testes.
Refinement
UX adiciona e revisa
os critérios de
aceitação
Planning
UX apresenta
o .feature que contém
a story como escopo
candidato
2º dia da sprint
QAs “explodem" os critérios de
aceitação em cenários
Story é entregue
QA usa o .feature
como script para o test
Sprint de automação
QA Auto revisa as frases
do .feature, implementa as
funções necessárias
Feature: Login on the application
As a user
I want to be able to login on the application
so that I can I can successfully log in with my account
Scenario: Login on the app
Given I access the “login" page
When I fill in “login" field with “joao.silva”
And I fill in “password" field with “123@abc”
Then I should be on “home" page
Scenario: Sign out of the app
…
Login.feature
Processo de desenvolvimento
(plano original)
Sprint de UX
UX cria o .feature
2º dia da sprint
Dev usa os cenários
para o desenvolvimento
e codificação dos testes.
Refinement
UX adiciona e revisa
os critérios de
aceitação
Planning
UX apresenta
o .feature que contém
a story como escopo
candidato
2º dia da sprint
QAs “explodem" os critérios de
aceitação em cenários
Story é entregue
QA usa o .feature
como script para o test
Sprint de automação
QA Auto revisa as frases
do .feature, implementa as
funções necessárias
Manual:
Scripted Testing. Feito por QA manual
durante a sprint de features.
Integration & Unit:
Feitos por devs. QAs não tinha
contato, nem sabiam o que estava
sendo testado.
End to End:
Automatizados usando PHP behat
durante a sprint de automação.
Cone de Sorvete
Lições Aprendidas
3
Facilidade em identificar bugs que afetariam o
usuário final
Cobrimos um número considerável de fluxos de
experiência de um usuário real;
Cenários como documentação
Cenários de testes automatizados, mas
escritos em linguagem natural (Gherkin);
1
Went Well
2
3
4
Facilidade para "rotacionar" pessoas
Quatro projetos usavam o mesmo codebase.
Diminuição do tempo de regressão manual
Em alguns projetos, a regressão levava 5 dias.
Com a suíte de testes e2e esses testes
passaram a ser executados em um tempo bem
menor.
Went Wrong
Falta de integração entre sub-times
O time de UX/Negócios optou por não seguir o
processo nas primeiras sprints.
Estratégia de Testes idealizada exclusivamente
por QAs
QA era responsável pelo brainstorming e design
dos testes da sprint
1
2
Went Wrong
3
4
Alto tempo de execução da suíte automatizada
Em dois projetos a execução durava mais de 12
horas.
Custosa análise do output da execução
Devido a quantidade de cenários, o output da
execução era muito extenso e trabalhoso de ser
analisado, mesmo com o auxilio de ferramentas.
Custos excessivos com manutenção
Testes End to End são conhecidos por serem frágeis.
Mudanças na estrutura das página/componentes
eram comuns e quebravam os testes.
5
1
Action Items
2
3
Definir a estratégia de Testes em conjunto
O time participa do brainstorming e/ou
classificação dos testes em níveis.
Investir em outros níveis de testes
Estudos e provas de conceito sobre testes de
aceitação, componentes, API e contrato.
Entender as particularidades de cada projeto
Cada projeto devido as suas particularidades pode
ter necessidades de pirâmides diferentes.
Action Items
Minimizar os testes E2E de cada projeto
Ter uma suíte de testes e2e reduzida focada em
cenários de sanidade.
Analisar os testes unitários
QAs participa na revisões do código dos testes
Adicionar diferentes níveis de testes no CI
Adição de testes de componente, aceitação e
API ao CI.
4
5
6
4
Futuro
Onde queremos chegar?
Manual:
Testes exploratórios feitos por QA
UI:
Testes de aceitação (front-end) e testes end-to-
end feitos por QAs/devs.
Integração
Testes de API, componente, e integração.
Feitos por QAs/Devs.
Unitários:
Fundação sólida. Feitos por devs com a ajuda
de QAs.
Contato
lsls@cesar.org.br
twitter.com/lari_lsls
linkedin.com/in/larissasls
karla.silva@cesar.org.br
twitter.com/karlambsilva
linkedin.com/in/karlambsilva
Larissa SoaresKarla Silva

Mais conteúdo relacionado

Mais procurados

Apresentação pre tcc
Apresentação pre tccApresentação pre tcc
Apresentação pre tcc
Rafael Marega
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdades
Cristiano Caetano
 

Mais procurados (20)

Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
 
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
 
Automação no Processo de Teste
Automação no Processo de TesteAutomação no Processo de Teste
Automação no Processo de Teste
 
Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010Automação de Teste - BRATESTE 2010
Automação de Teste - BRATESTE 2010
 
Como integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu timeComo integrar um Agile Tester no seu time
Como integrar um Agile Tester no seu time
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de Código
 
Apresentação pre tcc
Apresentação pre tccApresentação pre tcc
Apresentação pre tcc
 
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
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Metodologia cientifica Aula 1 ifpr
Metodologia cientifica Aula 1 ifprMetodologia cientifica Aula 1 ifpr
Metodologia cientifica Aula 1 ifpr
 
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
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdades
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
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
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
 

Semelhante a Agile Brazil 2018

Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
Testes em projetos usando Scrum
Testes em projetos usando ScrumTestes em projetos usando Scrum
Testes em projetos usando Scrum
Pablo Quiroga
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
Adriano Bertucci
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Felipe Nascimento
 
Apresentação - FAVIHC - IHC 2010
Apresentação - FAVIHC - IHC 2010Apresentação - FAVIHC - IHC 2010
Apresentação - FAVIHC - IHC 2010
albertschilling
 
Apresentação favihc - ihc 2010
Apresentação   favihc - ihc 2010Apresentação   favihc - ihc 2010
Apresentação favihc - ihc 2010
albertschilling
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
abacrazy
 

Semelhante a Agile Brazil 2018 (20)

Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
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
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Testes em projetos usando Scrum
Testes em projetos usando ScrumTestes em projetos usando Scrum
Testes em projetos usando Scrum
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Curriculo christiane abril13
Curriculo christiane abril13Curriculo christiane abril13
Curriculo christiane abril13
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
Apresentação - FAVIHC - IHC 2010
Apresentação - FAVIHC - IHC 2010Apresentação - FAVIHC - IHC 2010
Apresentação - FAVIHC - IHC 2010
 
Apresentação favihc - ihc 2010
Apresentação   favihc - ihc 2010Apresentação   favihc - ihc 2010
Apresentação favihc - ihc 2010
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Sbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumSbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para Scrum
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
 
Teched Brasil 2005 - A Metodologia MSF Agile e o Visual Studio Team System
Teched Brasil 2005 -  A Metodologia MSF Agile e o Visual Studio Team SystemTeched Brasil 2005 -  A Metodologia MSF Agile e o Visual Studio Team System
Teched Brasil 2005 - A Metodologia MSF Agile e o Visual Studio Team System
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes
 

Agile Brazil 2018

  • 1. Lições Aprendidas: Pirâmide de Testes Invertida Agile Brasil, 2018 Karla Silva & Larissa Soares
  • 2. Karla Silva Engenheira de Testes Larissa Soares Engenheira de Testes
  • 3. O CESAR www.cesar.org.br - Instituto privado de inovação; - Clientes de diversos ramos; - Mais de 500 colaboradores; - Sede no Recife; - Filiais em Manaus, Sorocaba e Curitiba;
  • 5. “The test pyramid is a way of thinking about different kinds of automated tests should be used to create a balanced portfolio. " Martin Fowler Autor Alister Scott Eng. Qualidade “ 100,000 end-to-end selenium tests and success in the same sentence? WTF? Sounds like a nightmare to me!"
  • 6. E a sua pirâmide de testes? (Ou outra forma geométrica)
  • 9. Tecnologias - Uso do behat (BDD framework para PHP ) - Cenários de testes escritos em linguagem natural (Gherkin) - Criação de um framework para end- to-end testes UX UI DEV QA 4 Projetos Cliente Internacional
  • 10. codebase Scope I do the following on the <> table I do the following on the <> area I do the following on the page Interaction I click on the <> I click and fill the <> field with the <> value I hover over the <> Assert I am on the <> page The <> text is <visible/hidden> The <> is <enabled/disabled>
  • 11. Processo de desenvolvimento (plano original) Sprint de UX UX cria o .feature 2º dia da sprint Dev usa os cenários para o desenvolvimento e codificação dos testes. Refinement UX adiciona e revisa os critérios de aceitação Planning UX apresenta o .feature que contém a story como escopo candidato 2º dia da sprint QAs “explodem" os critérios de aceitação em cenários Story é entregue QA usa o .feature como script para o test Sprint de automação QA Auto revisa as frases do .feature, implementa as funções necessárias
  • 12. Feature: Login on the application As a user I want to be able to login on the application so that I can I can successfully log in with my account Scenario: Login on the app Given I access the “login" page When I fill in “login" field with “joao.silva” And I fill in “password" field with “123@abc” Then I should be on “home" page Scenario: Sign out of the app … Login.feature
  • 13. Processo de desenvolvimento (plano original) Sprint de UX UX cria o .feature 2º dia da sprint Dev usa os cenários para o desenvolvimento e codificação dos testes. Refinement UX adiciona e revisa os critérios de aceitação Planning UX apresenta o .feature que contém a story como escopo candidato 2º dia da sprint QAs “explodem" os critérios de aceitação em cenários Story é entregue QA usa o .feature como script para o test Sprint de automação QA Auto revisa as frases do .feature, implementa as funções necessárias
  • 14. Manual: Scripted Testing. Feito por QA manual durante a sprint de features. Integration & Unit: Feitos por devs. QAs não tinha contato, nem sabiam o que estava sendo testado. End to End: Automatizados usando PHP behat durante a sprint de automação. Cone de Sorvete
  • 16. Facilidade em identificar bugs que afetariam o usuário final Cobrimos um número considerável de fluxos de experiência de um usuário real; Cenários como documentação Cenários de testes automatizados, mas escritos em linguagem natural (Gherkin); 1 Went Well 2 3 4 Facilidade para "rotacionar" pessoas Quatro projetos usavam o mesmo codebase. Diminuição do tempo de regressão manual Em alguns projetos, a regressão levava 5 dias. Com a suíte de testes e2e esses testes passaram a ser executados em um tempo bem menor.
  • 17. Went Wrong Falta de integração entre sub-times O time de UX/Negócios optou por não seguir o processo nas primeiras sprints. Estratégia de Testes idealizada exclusivamente por QAs QA era responsável pelo brainstorming e design dos testes da sprint 1 2
  • 18. Went Wrong 3 4 Alto tempo de execução da suíte automatizada Em dois projetos a execução durava mais de 12 horas. Custosa análise do output da execução Devido a quantidade de cenários, o output da execução era muito extenso e trabalhoso de ser analisado, mesmo com o auxilio de ferramentas. Custos excessivos com manutenção Testes End to End são conhecidos por serem frágeis. Mudanças na estrutura das página/componentes eram comuns e quebravam os testes. 5
  • 19. 1 Action Items 2 3 Definir a estratégia de Testes em conjunto O time participa do brainstorming e/ou classificação dos testes em níveis. Investir em outros níveis de testes Estudos e provas de conceito sobre testes de aceitação, componentes, API e contrato. Entender as particularidades de cada projeto Cada projeto devido as suas particularidades pode ter necessidades de pirâmides diferentes.
  • 20. Action Items Minimizar os testes E2E de cada projeto Ter uma suíte de testes e2e reduzida focada em cenários de sanidade. Analisar os testes unitários QAs participa na revisões do código dos testes Adicionar diferentes níveis de testes no CI Adição de testes de componente, aceitação e API ao CI. 4 5 6
  • 22. Onde queremos chegar? Manual: Testes exploratórios feitos por QA UI: Testes de aceitação (front-end) e testes end-to- end feitos por QAs/devs. Integração Testes de API, componente, e integração. Feitos por QAs/Devs. Unitários: Fundação sólida. Feitos por devs com a ajuda de QAs.