SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Porque você precisa de
uma estratégia de QA e
precisa disso AGORA!
PHP Conference Brasil 2016 – São Paulo, Brasil
10 de Dezembro de 2016
Daniel Carvalhinho
daniel@dscl.com.br
Quem sou eu?
Software Engineer @ Council on Foreign Relations
Contribuidor, Tradutor e Revisor @ Drupal.org
Colaborador @ Associação Drupal do Brasil
17 anos de experiência com PHP
7 anos focando em Drupal
Morei 2 anos na China, comi gafanhoto sim, mas não cachorro.
Mas Chinês não come nenhum dos dois. :)
Viciado em viajar, já estive em 19 países (acho).
Senta que lá vem a história
(bem conhecida de muitos, creio)
RFP
Contrato
Análise e planejamento
Alocação de time?
1 Desenvolvedor / Backend
1 Webdev / Frontend
Scurm Master e Líder técnico/Arquiteto?
Compartilhados entre 10 projetos
Quem testa?
Dev!
Webdev!
SM!
Code review? Oi?
UAT? Pff…
Site entregue! o/
Cliente diz…
… que layout tem erros gritantes.
… que as principais áreas do site não funcionam.
… que o site está muito lento.
Ultimato!
Site corrigido e em produção em 4 dias…
… ou atitudes serão tomadas
Abasteça
TASK FORCE (!!!)
Principais razões para falha:
● Estimativas equivocadas
● Falta de planejamento de QA
● Alocação insuficiente
● Mudanças além do aceitável
Principais razões para falha:
● Estimativas equivocadas
● Falta de planejamento de QA
● Alocação insuficiente
● Mudanças além do aceitável
Planejamento de QA
(ou testes)
Três coisas que levam a clientes infelizes:
atraso na entrega, custos e bugs.
“O custo para corrigir um erro encontrado depois do lançamento
do produto é de quatro a cinco vezes maior que um erro
encontrado na fase de especificação, e até 100 vezes mais
quando encontrado na fase de manutenção.
Systems Sciences Institute at IBM
Cultura Variável: a gestão não entende que qualidade é uma questão de
gerenciamento. Problemas são resolvidos com grandes esforços pessoais, e não em
uma abordagem sistemática.
Cultura da Rotina: a gestão concorda que qualidade pode ser importante, mas não
existe dinheiro ou time alocado para fazer com que ela aconteça. Times geralmente
corrigem problemas depois que um problema grave aconteceu.
Cultura da Gestão: a gestão reconhece que qualidade é uma questão sistemática, e
que auxilia os gerentes a gerenciar melhor. Problemas são trazidos à tona, discutidos e
resolvidos de maneira ordenada.
Weinberg, Gerald M., Quality Software Management, Volume 1, Systems Thinking, Dorset House, New York. 1992.
Abordagem dos problemas
Conformidade:
● Custos de prevenção - investimento feito em treinamento, levantamento de
requisitos, code reviews, etc.
● Custos de avaliação - investimento gasto em planejamento de testes,
desenvolvimento de casos de teste e execução dos testes.
Não-conformidade:
● Falhas internas - gastos criados por testes que falham na primeira execução.
● Falhas externas - gastos criados como consequência de falhas encontradas pelo
cliente. Geralmente serão custos maiores que para falhas internas. Pode chegar
ao nível judicial.
Conformidade vs. Não-conformidade (custos)
Análise de Requisitos
Custo = tempo que se leva para se reeescrever o requisito.
Codificação/Desenvolvimento
Custo = horas adicionais de desenvolvimento.
Integração de Sistema:
Custo = horas adicionais de desenvolvimento e de integração.
Testes
Custos = horas adicionais de desenvolvimento, de integração, do PM e de QA.
User Acceptance Testing (UAT)
Custo = additional required developer, system engineer, PM, customer, and QA hours.
Produção
Custo = horas adicionais de desenvolvimento, suporte, integração, PM, cliente e QA.
Custo do bug vs. Fase de desenvolvimento
Tenha uma pessoa (ou time)
dedicada aos testes
Mas quando envolver o tester?
RFP?
Geralmente muito cedo. Mas dependendo da complexidade do projeto, pode ser
necessária a consulta.
Análise e Planejamento?
Com certeza. Antes mesmo do resto do time.
O Tester precisa conhecer o projeto melhor que todos.
Idealmente, tanto quanto o cliente para atuar como um PO interno.
Planning
Tester
… deve atuar como um braço direito do Líder técnico e do ScrumMaster
… será decisivo na definição dos critérios de aceitação das User Stories
… será responsável pela criação dos Test Cases relacionados a cada Story,
ajudando assim o desenvolvedor a testar o seu trabalho de uma forma
não-viciada.
Desenvolvedores
… devem usar o Test Case como complemento de seus testes.
… devem sempre informar caminho ou URLs relacionados a seus tickets.
… devem garantir que as boas práticas estão sendo aplicadas
Test early. Test Often.
(teste cedo, teste sempre)
Functional testing
Regression testing
Garantir que partes do produto que já foram terminadas e testadas continuem
funcionando depois que outras mudanças foram feitas ao sistema.
Smoke testing
Garantir que as funcionalidades críticas ao negócio
estão devidamente implementadas e funcionais.
Algumas ferramentas
(várias)
PHP Static Analysis Tools - https://github.com/exakat/php-static-analysis-tools
Lista com diversas ferramentas de extrema utilidade para garantir a qualidade do código.
Alguns destaques:
● PHPCPD - Encontra trechos de código que foram copiados e colados. DRY
● PHP Mess Detector - Encontra potenciais problemas no código..
● PHP Code Sniffer - PHPCS checa o padrão do código.
Escolha um padrão de código, ou use o padrão do framework (ou ferramenta/CMS) que
você usa.
Siga a risca, use o PHPCS (talvez até um pré-commit hook)
Qualidade de Código
Links quebrados (e mais)
robots.txt , sitemap.xml ,listas de URLs, etc
http://home.snafu.de/tilman/xenulink.html https://www.screamingfrog.co.uk/seo-spider
Browser Testing
Testing sites on real mobile and desktop browsers
https://www.browserstack.com https://saucelabs.com
http://appium.io
E-mail testing
Testar visualização de e-mails em diversos clientes
https://litmus.com/email-testing
Teste de Layout
Comparando versões em busca de alterações
https://github.com/everright/erSiteComparehttp://backtrac.io
BDD
Behavior Driven Development
http://behat.org
StoryBDD
http://www.phpspec.net
SpecBDD
Análise de velocidade
encontrando gargalos e analisando boas práticas
https://tools.pingdom.comhttp://www.webpagetest.org
https://developers.google.com/speed/pagespeedhttp://yslow.org
Load test
Testando a performance do seu site sob estresse
http://jmeter.apache.org https://www.blazemeter.com
Apache Benchmarking (ab)
https://httpd.apache.org/docs/2.4/programs/ab.html
Enfim...
Você precisa de uma boa estratégia de teste!
Obrigado!
Perguntas?
Daniel Carvalhinho
daniel@dscl.com.br
http://www.linkedin.com/in/danielscl
http://twitter.com/dscl
http://dgo.to/@dscl

Mais conteúdo relacionado

Mais procurados

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
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesFelipe Freire
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDWillians De Paula Pereira
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 
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
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Walmyr Lima e Silva Filho
 
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
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti InternaRoger Ritter
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentOtavio Augusto
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareCarlos Santana
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - FundamentosLucas Amaral
 

Mais procurados (20)

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
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em Testes
 
Lightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDDLightning talk Test-Driven Development - TDD
Lightning talk Test-Driven Development - TDD
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Qa4 women - Porque qualidade também é coisa de mulher! <3
Qa4 women - Porque qualidade também é coisa de mulher! <3Qa4 women - Porque qualidade também é coisa de mulher! <3
Qa4 women - Porque qualidade também é coisa de mulher! <3
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
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
 
Qaladies apresentacao
Qaladies apresentacaoQaladies apresentacao
Qaladies apresentacao
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
Testando na Gringa - Se preparando para uma entrevista técnica para uma vaga ...
 
O papel do qa (testador) em um time ágil
O papel do qa (testador) em um time ágilO papel do qa (testador) em um time ágil
O papel do qa (testador) em um time ágil
 
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
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti Interna
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - Fundamentos
 

Destaque

5 Steps to Building a Professional Brand on LinkedIn for Students
5 Steps to Building a Professional Brand on LinkedIn for Students5 Steps to Building a Professional Brand on LinkedIn for Students
5 Steps to Building a Professional Brand on LinkedIn for StudentsTariq Ahmad
 
Competitic - Reseaux sociaux b2 b - numerique en entreprise
Competitic - Reseaux sociaux b2 b - numerique en entrepriseCompetitic - Reseaux sociaux b2 b - numerique en entreprise
Competitic - Reseaux sociaux b2 b - numerique en entrepriseCOMPETITIC
 
Planificación leyenda tesis - Clase 3 OK!
Planificación leyenda tesis  - Clase 3 OK! Planificación leyenda tesis  - Clase 3 OK!
Planificación leyenda tesis - Clase 3 OK! Francisca Jimenez
 
Clientenforum hoorzitting welzijn
Clientenforum hoorzitting welzijnClientenforum hoorzitting welzijn
Clientenforum hoorzitting welzijnPeter Heirman
 
Revue de presse - Economie collaborative
Revue de presse - Economie collaborativeRevue de presse - Economie collaborative
Revue de presse - Economie collaborativeAlexandre Bellini
 
Blockchain Cloudminds: Human-Machine Pooled-Mind DACs
Blockchain Cloudminds: Human-Machine Pooled-Mind DACsBlockchain Cloudminds: Human-Machine Pooled-Mind DACs
Blockchain Cloudminds: Human-Machine Pooled-Mind DACsMelanie Swan
 
simone kesic management cv copy 2
simone kesic management cv copy 2simone kesic management cv copy 2
simone kesic management cv copy 2simone Kesic
 
ジャンク解析入門
ジャンク解析入門ジャンク解析入門
ジャンク解析入門Akira Kaneda
 
Люди каменного века. Первые шаги современного человека
Люди каменного века. Первые шаги современного человекаЛюди каменного века. Первые шаги современного человека
Люди каменного века. Первые шаги современного человекаГалина Свентуховская
 
Экономическая система общества
Экономическая система обществаЭкономическая система общества
Экономическая система обществаПётр Ситник
 
Рыночное регулирование экономики
Рыночное регулирование экономикиРыночное регулирование экономики
Рыночное регулирование экономикиПётр Ситник
 
Blockchain Smartnetworks: Bitcoin and Blockchain Explained
Blockchain Smartnetworks: Bitcoin and Blockchain ExplainedBlockchain Smartnetworks: Bitcoin and Blockchain Explained
Blockchain Smartnetworks: Bitcoin and Blockchain ExplainedMelanie Swan
 
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)Amazon Web Services
 
Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...
Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...
Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...Nicolas Malo
 
9 etapes elementaires pour creer une campagne adwords search
9 etapes elementaires pour creer une campagne adwords search9 etapes elementaires pour creer une campagne adwords search
9 etapes elementaires pour creer une campagne adwords searchAXIZ eBusiness
 
PythonでDeepLearningを始めるよ
PythonでDeepLearningを始めるよPythonでDeepLearningを始めるよ
PythonでDeepLearningを始めるよTanaka Yuichi
 
Technical Introduction to IBM's Open Blockchain (OBC)
Technical Introduction to IBM's Open Blockchain (OBC)Technical Introduction to IBM's Open Blockchain (OBC)
Technical Introduction to IBM's Open Blockchain (OBC)Altoros
 

Destaque (20)

5 Steps to Building a Professional Brand on LinkedIn for Students
5 Steps to Building a Professional Brand on LinkedIn for Students5 Steps to Building a Professional Brand on LinkedIn for Students
5 Steps to Building a Professional Brand on LinkedIn for Students
 
Западная Европа в начале 19 века
Западная Европа в начале 19 векаЗападная Европа в начале 19 века
Западная Европа в начале 19 века
 
Competitic - Reseaux sociaux b2 b - numerique en entreprise
Competitic - Reseaux sociaux b2 b - numerique en entrepriseCompetitic - Reseaux sociaux b2 b - numerique en entreprise
Competitic - Reseaux sociaux b2 b - numerique en entreprise
 
Planificación leyenda tesis - Clase 3 OK!
Planificación leyenda tesis  - Clase 3 OK! Planificación leyenda tesis  - Clase 3 OK!
Planificación leyenda tesis - Clase 3 OK!
 
Clientenforum hoorzitting welzijn
Clientenforum hoorzitting welzijnClientenforum hoorzitting welzijn
Clientenforum hoorzitting welzijn
 
Revue de presse - Economie collaborative
Revue de presse - Economie collaborativeRevue de presse - Economie collaborative
Revue de presse - Economie collaborative
 
Blockchain Cloudminds: Human-Machine Pooled-Mind DACs
Blockchain Cloudminds: Human-Machine Pooled-Mind DACsBlockchain Cloudminds: Human-Machine Pooled-Mind DACs
Blockchain Cloudminds: Human-Machine Pooled-Mind DACs
 
vivendi
vivendivivendi
vivendi
 
simone kesic management cv copy 2
simone kesic management cv copy 2simone kesic management cv copy 2
simone kesic management cv copy 2
 
ジャンク解析入門
ジャンク解析入門ジャンク解析入門
ジャンク解析入門
 
Blockchain Explained for Devlopers
Blockchain Explained for DevlopersBlockchain Explained for Devlopers
Blockchain Explained for Devlopers
 
Люди каменного века. Первые шаги современного человека
Люди каменного века. Первые шаги современного человекаЛюди каменного века. Первые шаги современного человека
Люди каменного века. Первые шаги современного человека
 
Экономическая система общества
Экономическая система обществаЭкономическая система общества
Экономическая система общества
 
Рыночное регулирование экономики
Рыночное регулирование экономикиРыночное регулирование экономики
Рыночное регулирование экономики
 
Blockchain Smartnetworks: Bitcoin and Blockchain Explained
Blockchain Smartnetworks: Bitcoin and Blockchain ExplainedBlockchain Smartnetworks: Bitcoin and Blockchain Explained
Blockchain Smartnetworks: Bitcoin and Blockchain Explained
 
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)
AWS re:Invent 2016: NEW LAUNCH! Introducing Amazon Polly (MAC204)
 
Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...
Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...
Optimal Ways - Conférence Ecommerce Paris 2016 - 10 points clés pour un vérit...
 
9 etapes elementaires pour creer une campagne adwords search
9 etapes elementaires pour creer une campagne adwords search9 etapes elementaires pour creer une campagne adwords search
9 etapes elementaires pour creer une campagne adwords search
 
PythonでDeepLearningを始めるよ
PythonでDeepLearningを始めるよPythonでDeepLearningを始めるよ
PythonでDeepLearningを始めるよ
 
Technical Introduction to IBM's Open Blockchain (OBC)
Technical Introduction to IBM's Open Blockchain (OBC)Technical Introduction to IBM's Open Blockchain (OBC)
Technical Introduction to IBM's Open Blockchain (OBC)
 

Semelhante a Porque você precisa de uma estratégia de QA e precisa disso AGORA!

Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
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
 
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
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareRoberto Brandini
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
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
 
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...Igor Abade
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaHenrique Nunes Bez Fontana
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Gabriel Rubens
 
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
 
TDD e UnitTest em Java
TDD e UnitTest em JavaTDD e UnitTest em Java
TDD e UnitTest em JavaJúlio de Lima
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 

Semelhante a Porque você precisa de uma estratégia de QA e precisa disso AGORA! (20)

Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
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
 
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
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
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?
 
FDD
FDDFDD
FDD
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
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...
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
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
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresa
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 
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
 
TDD e UnitTest em Java
TDD e UnitTest em JavaTDD e UnitTest em Java
TDD e UnitTest em Java
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 

Porque você precisa de uma estratégia de QA e precisa disso AGORA!

  • 1. Porque você precisa de uma estratégia de QA e precisa disso AGORA! PHP Conference Brasil 2016 – São Paulo, Brasil 10 de Dezembro de 2016 Daniel Carvalhinho daniel@dscl.com.br
  • 2. Quem sou eu? Software Engineer @ Council on Foreign Relations Contribuidor, Tradutor e Revisor @ Drupal.org Colaborador @ Associação Drupal do Brasil 17 anos de experiência com PHP 7 anos focando em Drupal Morei 2 anos na China, comi gafanhoto sim, mas não cachorro. Mas Chinês não come nenhum dos dois. :) Viciado em viajar, já estive em 19 países (acho).
  • 3. Senta que lá vem a história (bem conhecida de muitos, creio)
  • 4. RFP
  • 7. Alocação de time? 1 Desenvolvedor / Backend 1 Webdev / Frontend Scurm Master e Líder técnico/Arquiteto? Compartilhados entre 10 projetos
  • 9. Code review? Oi? UAT? Pff… Site entregue! o/
  • 10. Cliente diz… … que layout tem erros gritantes. … que as principais áreas do site não funcionam. … que o site está muito lento.
  • 11. Ultimato! Site corrigido e em produção em 4 dias… … ou atitudes serão tomadas
  • 14. Principais razões para falha: ● Estimativas equivocadas ● Falta de planejamento de QA ● Alocação insuficiente ● Mudanças além do aceitável Principais razões para falha: ● Estimativas equivocadas ● Falta de planejamento de QA ● Alocação insuficiente ● Mudanças além do aceitável
  • 15.
  • 17. Três coisas que levam a clientes infelizes: atraso na entrega, custos e bugs.
  • 18. “O custo para corrigir um erro encontrado depois do lançamento do produto é de quatro a cinco vezes maior que um erro encontrado na fase de especificação, e até 100 vezes mais quando encontrado na fase de manutenção. Systems Sciences Institute at IBM
  • 19. Cultura Variável: a gestão não entende que qualidade é uma questão de gerenciamento. Problemas são resolvidos com grandes esforços pessoais, e não em uma abordagem sistemática. Cultura da Rotina: a gestão concorda que qualidade pode ser importante, mas não existe dinheiro ou time alocado para fazer com que ela aconteça. Times geralmente corrigem problemas depois que um problema grave aconteceu. Cultura da Gestão: a gestão reconhece que qualidade é uma questão sistemática, e que auxilia os gerentes a gerenciar melhor. Problemas são trazidos à tona, discutidos e resolvidos de maneira ordenada. Weinberg, Gerald M., Quality Software Management, Volume 1, Systems Thinking, Dorset House, New York. 1992. Abordagem dos problemas
  • 20. Conformidade: ● Custos de prevenção - investimento feito em treinamento, levantamento de requisitos, code reviews, etc. ● Custos de avaliação - investimento gasto em planejamento de testes, desenvolvimento de casos de teste e execução dos testes. Não-conformidade: ● Falhas internas - gastos criados por testes que falham na primeira execução. ● Falhas externas - gastos criados como consequência de falhas encontradas pelo cliente. Geralmente serão custos maiores que para falhas internas. Pode chegar ao nível judicial. Conformidade vs. Não-conformidade (custos)
  • 21. Análise de Requisitos Custo = tempo que se leva para se reeescrever o requisito. Codificação/Desenvolvimento Custo = horas adicionais de desenvolvimento. Integração de Sistema: Custo = horas adicionais de desenvolvimento e de integração. Testes Custos = horas adicionais de desenvolvimento, de integração, do PM e de QA. User Acceptance Testing (UAT) Custo = additional required developer, system engineer, PM, customer, and QA hours. Produção Custo = horas adicionais de desenvolvimento, suporte, integração, PM, cliente e QA. Custo do bug vs. Fase de desenvolvimento
  • 22. Tenha uma pessoa (ou time) dedicada aos testes
  • 23. Mas quando envolver o tester? RFP? Geralmente muito cedo. Mas dependendo da complexidade do projeto, pode ser necessária a consulta. Análise e Planejamento? Com certeza. Antes mesmo do resto do time. O Tester precisa conhecer o projeto melhor que todos. Idealmente, tanto quanto o cliente para atuar como um PO interno.
  • 24. Planning Tester … deve atuar como um braço direito do Líder técnico e do ScrumMaster … será decisivo na definição dos critérios de aceitação das User Stories … será responsável pela criação dos Test Cases relacionados a cada Story, ajudando assim o desenvolvedor a testar o seu trabalho de uma forma não-viciada. Desenvolvedores … devem usar o Test Case como complemento de seus testes. … devem sempre informar caminho ou URLs relacionados a seus tickets. … devem garantir que as boas práticas estão sendo aplicadas
  • 25. Test early. Test Often. (teste cedo, teste sempre)
  • 27. Regression testing Garantir que partes do produto que já foram terminadas e testadas continuem funcionando depois que outras mudanças foram feitas ao sistema.
  • 28. Smoke testing Garantir que as funcionalidades críticas ao negócio estão devidamente implementadas e funcionais.
  • 30. PHP Static Analysis Tools - https://github.com/exakat/php-static-analysis-tools Lista com diversas ferramentas de extrema utilidade para garantir a qualidade do código. Alguns destaques: ● PHPCPD - Encontra trechos de código que foram copiados e colados. DRY ● PHP Mess Detector - Encontra potenciais problemas no código.. ● PHP Code Sniffer - PHPCS checa o padrão do código. Escolha um padrão de código, ou use o padrão do framework (ou ferramenta/CMS) que você usa. Siga a risca, use o PHPCS (talvez até um pré-commit hook) Qualidade de Código
  • 31. Links quebrados (e mais) robots.txt , sitemap.xml ,listas de URLs, etc http://home.snafu.de/tilman/xenulink.html https://www.screamingfrog.co.uk/seo-spider
  • 32. Browser Testing Testing sites on real mobile and desktop browsers https://www.browserstack.com https://saucelabs.com http://appium.io
  • 33. E-mail testing Testar visualização de e-mails em diversos clientes https://litmus.com/email-testing
  • 34. Teste de Layout Comparando versões em busca de alterações https://github.com/everright/erSiteComparehttp://backtrac.io
  • 36. Análise de velocidade encontrando gargalos e analisando boas práticas https://tools.pingdom.comhttp://www.webpagetest.org https://developers.google.com/speed/pagespeedhttp://yslow.org
  • 37. Load test Testando a performance do seu site sob estresse http://jmeter.apache.org https://www.blazemeter.com Apache Benchmarking (ab) https://httpd.apache.org/docs/2.4/programs/ab.html
  • 38. Enfim... Você precisa de uma boa estratégia de teste!