Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CNQS - Testes Automatizados & Continuous Delivery

983 views

Published on

Testes Automatizados dentro do contexto de Continuous Delivery

Published in: Technology

CNQS - Testes Automatizados & Continuous Delivery

  1. 1. Testes Automatizados & Continuous Delivery @samantacicilia
  2. 2. Continuous Delivery Quadrante de Testes Pirâmide de Testes Testes Automatizados Demo Considerações Finais SUMÁRIO
  3. 3. A forma como as empresas desenvolvem software muda rapidamente – seja por necessidades do mercado, evolução de tecnologias ou até mesmo redução de custos. Todos os dias essas empresas precisam fazer mais com menos investimento, para simultaneamente manter a competitividade e reduzir os custos. –The Phoenix Project “
  4. 4. de qualidade Entregar software
  5. 5. time-to-market Atendendo ao
  6. 6. um problema Resolvendo do nosso cliente
  7. 7. horas extras Sem o tempo todo
  8. 8. Build Deploy Test Release CD Processo Continuous Delivery
  9. 9. Permitir as entregas em qualquer ambiente e a qualquer momento Tornar todas as partes do processo visíveis. Melhorar o feedback do processo para identificar os problemas rapidamente. Continuous Delivery Objetivos
  10. 10. Continuous Delivery Principais conceitos Controle de Versão Integração Contínua Testes Automatizados Testes de Capacidade
  11. 11. Pipeline de Implantação Implementação automatizada do processo de compilar todas as partes de uma aplicação, implantá-las em um ambiente qualquer – homologação ou produção – testá-la e efetuar sua entrega final.
  12. 12. deploys Mais
  13. 13. de tempo Curto espaço
  14. 14. Mas como eu testo tudo em um curto espaço de tempo?“
  15. 15. • Lisa Crispin, Brian Marick SupportingtheTeam Business Facing Quadrante de Testes Ágeis Technology Facing CritiqueProduct Q1 Q4 Q2 Q3 Unit Tests Component Tests Performance & Load Testing Security Testing ”Ility” Testing Exploratory Testing Scenarios Usability Testing UAT (User Acceptance Testing) Alpha / Beta Functional Tests Examples Story Tests Prototypes Simulations Automated Tools ManualAutomates & Manual
  16. 16. Pirâmide de Testes “Ideal” UI Service Unit Manual Mike Cohn
  17. 17. Anti Padrão ”Sorvete” Automated GUI Tests Integration Tests Unit Tests Manual Tests • adaptação: watirmelon.com
  18. 18. Anti Padrão “Cupcake” • adaptação: Fabio Pereira
  19. 19. Testes Automatizados Feedback mais rápido Testes distribuídos pelo pipeline Garantia de regressão Especificação executável do sistema
  20. 20. Foca na pirâmide “
  21. 21. Vamos para os testes automatizados!
  22. 22. Testes Unitários Feedback extremamente rápido. 10min. build (eXtreme Programming) Testes de valores limite, diferentes combinações etc Cobertura de Código Segurança para fazer mudanças (XP) Test Driven Development
  23. 23. http://junit.org/junit4/ http://www.nunit.org/ http://testng.org/doc/index.html https://phpunit.de/ http://jasmine.github.io/ https://mochajs.org/ http://robolectric.org/ http://rspec.info/ https://goo.gl/1zW1Ir Ferramentas de Testes Unitários
  24. 24. Cobertura & Análise Estática Porcentagem de código sendo exercitado por testes Análise de acordo com regras: • Estilo (identação, comentários) • Boas práticas (duplicação de código, tamanho de métodos)
  25. 25. Ferramentas de Cobertura https://github.com/colszowka/simplecov http://emma.sourceforge.net/ https://github.com/jacoco/jacoco https://www.ncover.com/ http://blanketjs.org/ https://coveralls.io/ https://coverage.readthedocs.io/en/coverage-4.0.3/
  26. 26. Ferramentas de Análise Estática http://www.sonarqube.org/ https://codeclimate.com/ https://github.com/es-analysis/plato/ http://checkstyle.sourceforge.net/ http://findbugs.sourceforge.net/ https://www.pylint.org/ https://stylecop.codeplex.com/
  27. 27. Testes de Mutação Testar seus Testes Unitários Ferramenta introduz mutações no seu código e executa os testes unitários Se os testes falharem = OK! Se os testes passarem = NOK!
  28. 28. Ferramentas de Testes de Mutação http://pitest.org/ https://pypi.python.org/pypi/MutPy http://visualmutator.github.io/web/ https://ninjaturtles.codeplex.com/ https://github.com/mbj/mutant http://jumble.sourceforge.net/
  29. 29. Testes de Serviço Depois dos Testes de Unidade e antes dos Testes de UI Testar seu app + módulos componentes, banco de dados Sem interface Integração/Componentes Contratos API/Webservices
  30. 30. Ferramentas de Testes de Serviço http://flask-restless.readthedocs.io/en/stable/ http://frisbyjs.com/ https://www.soapui.org/ https://github.com/visionmedia/supertest https://github.com/jayway/rest-assured https://github.com/rest-client/rest-client https://github.com/brooklynDev/airborne https://github.com/svanoort/pyresttest
  31. 31. Testes de User Interface Lentos :( Fluxos da aplicação Diferentes browsers (IE, Firefox, Chrome, Safari & Headless) Mobile
  32. 32. Ferramentas de Testes de UI http://www.seleniumhq.org/ https://github.com/jnicklas/capybara http://angular.github.io/protractor/ https://github.com/RobotiumTech/robotium http://calaba.sh/ http://appium.io/
  33. 33. Testes de Capacidade Carga Stress Ambiente de teste de capacidade Métricas
  34. 34. Ferramentas de Testes de Capacidade http://jmeter.apache.org/ http://grinder.sourceforge.net/ http://locust.io/ http://gatling.io/
  35. 35. Como fazer tudo isso funcionar em conjunto e ajudar na garantia de qualidade?“
  36. 36. Foca no pipeline “
  37. 37. pipeline Distribuir os testes no decorrer do para ter feedback durante todo ciclo e antecipar a descoberta de problemas
  38. 38. The deployment pipeline Commit stage Compile Unit test Analysis Build installers Automated acceptance testing Automated Capacity testing Manual testing Showcases Exploratory testing Release
  39. 39. Ferramentas de Integração e Entrega Contínua https://travis-ci.org/ http://circleci.com/ https://jenkins.io https://www.go.cd/ https://snap-ci.com/ https://semaphoreci.com/
  40. 40. Ruby - Unitário (RSpec) - Mutação (mutant-rspec) https://github.com/samycici/mutation_example
  41. 41. Python - Unitário (unittest + fixtures) - Integração (unittest + sqlite) - API (pyresttest) - Funcional (selenium) - Performance (locust.io) https://github.com/samycici/todoapp-flask
  42. 42. Referências Bibliográficas
  43. 43. Agile Testing: A Practical Guide for Testers and Agile Teams por Brian Marick (Prólogo), Lisa Crispin (Autor), Janet Gregory (Autor) https://www.amazon.com.br/Agile-Testing-Practical-Guide-Testers/dp/0321534468 More Agile Testing: Learning Journeys for the Whole Team por Janet Gregory (Autor), Lisa Crispin (Autor) https://www.amazon.com/More-Agile-Testing-Addison-Wesley-Signature/dp/0321967054 Entrega Contínua. Como Entregar Software de Forma Rápida e Confiável por Jez Humble (Autor) https://www.amazon.com.br/Entrega-Cont%C3%ADnua-Entregar-Software-Confi%C3%A1vel/dp/8582601034 The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win por Gene Kim (Autor), Kevin Behr (Autor), George Spafford (Autor) https://www.amazon.com.br/Phoenix-Project-DevOps-Helping-Business/dp/0988262592 Succeeding with Agile: Software Development Using Scrum Por Mike Cohn (Autor) https://www.amazon.com/Succeeding-Agile-Software-Development-Using/dp/0321579364
  44. 44. • http://www.guru99.com/mutation-testing.html • http://blog.arkency.com/2015/05/mutation-testing-and-continuous-integration/ • http://blog.arkency.com/2015/06/how-good-are-your-ruby-tests-testing-your-tests-with-mutant/ • https://blog.blockscore.com/how-to-write-better-code-using-mutation-testing/ • http://www.slideshare.net/stefanteixeira/vr-dev-summit-2016-primeiros-passos-em-automao-de- testes • http://pt.slideshare.net/fredoriginal/palestra-de-como-testar-sua-api-rest-no-grupo-de-teste-carioca • https://css-tricks.com/visual-regression-testing-with-phantomcss/ • http://www.softwaretestinghelp.com/performance-testing-tools-load-testing-tools/ • https://talkingabouttesting.com/tag/e2e-testing/ • https://robots.thoughtbot.com/how-to-stub-external-services-in-tests • http://www.devmedia.com.br/como-adotar-a-analise-estatica-de-codigo/32727 • http://www.slideshare.net/samantacicilia/continuous-delivery-verso-estendida • http://www.slideshare.net/grupodetestescarioca
  45. 45. insideoutproject.com.br
  46. 46. Comunidades
  47. 47. Comunidades - meetup.com/pt-BR/DevOps-Carioca/ - meetup.com/pt-BR/Grupo-de-Testes-Carioca/ - meetup.com/pt-BR/Data-Science-Meetup-Rio-de- Janeiro/ - facebook.com/RioAgile/ - agiletesters.com.br - insideoutproject.com.br
  48. 48. About.me • QA @ Concrete Solutions • Owner @ RTS Treinamentos www.rtstreinamentos.com.br / testedesoftware.com • Apaixonada por comunidades • Diversidade em TI @samantacicilia Samanta Cicilia pt.slideshare.net/samantacicilia samycici@gmail.com /samantacicilia
  49. 49. Temos Vagas! http://www.concretesolutions.com.br/carreira/
  50. 50. www.concretesolutions.com.br Rio de Janeiro – Rua São José, 90 – cj. 2121 Centro – (21) 2240-2030 São Paulo - Rua Sansão Alves dos Santos, 433 4º andar - Brooklin - (11) 4119-0449 Ajudamos empresas a criar produtos digitais de sucesso

×