porque você precisa de uma estratégia de qa e precisa disso agora!
TRANSCRIPT
Porque você precisa de uma estratégia de QA e precisa disso AGORA!PHP Conference Brasil 2016 – São Paulo, Brasil10 de Dezembro de 2016
Daniel [email protected]
Quem sou eu?
Software Engineer @ Council on Foreign Relations
Contribuidor, Tradutor e Revisor @ Drupal.orgColaborador @ Associação Drupal do Brasil
17 anos de experiência com PHP7 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 / Backend1 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 RequisitosCusto = tempo que se leva para se reeescrever o requisito.
Codificação/DesenvolvimentoCusto = horas adicionais de desenvolvimento.
Integração de Sistema:Custo = horas adicionais de desenvolvimento e de integração.
TestesCustos = 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çãoCusto = 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 TestingTesting sites on real mobile and desktop browsers
https://www.browserstack.com https://saucelabs.com
http://appium.io
E-mail testingTestar visualização de e-mails em diversos clientes
https://litmus.com/email-testing
Teste de LayoutComparando versões em busca de alterações
https://github.com/everright/erSiteComparehttp://backtrac.io
BDDBehavior Driven Development
http://behat.org
StoryBDD
http://www.phpspec.net
SpecBDD
Análise de velocidadeencontrando gargalos e analisando boas práticas
https://tools.pingdom.comhttp://www.webpagetest.org
https://developers.google.com/speed/pagespeedhttp://yslow.org
Load testTestando 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 [email protected]
http://www.linkedin.com/in/danielsclhttp://twitter.com/dsclhttp://dgo.to/@dscl