Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scrum Gathering Rio 2014 - Melhorando sua Estra...

Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados

Palestra apresentada no Regional Scrum Gathering Rio 2014, no dia 05/09.

Stefan Teixeira

September 05, 2014
Tweet

More Decks by Stefan Teixeira

Other Decks in Programming

Transcript

  1. Sobre o palestrante Stefan Teixeira! • QA Engineer @ Orga

    Systems! • Bacharel em Ciência da Computação pela UFRJ! • Finalizando MBA em Garantia de Qualidade de Software pela Escola Politécnica da UFRJ! • Mantém um blog técnico sobre testes: stefanteixeira.com.br! • Certificado CTAL-TM / TA pelo ISQTB e CPRE-FL pelo IREB! Contatos:! • E-mail: [email protected]! • Twitter: twitter.com/stefan_teixeira! • Facebook: facebook.com/stefan.teixeira! • LinkedIn: linkedin.com/in/stefanteixeira! • GitHub: github.com/stefanteixeira! • SlideShare: slideshare.net/stefanteixeira 2
  2. Problemas!! • Alto custo de manutenção! • Testes lentos ->

    aumento do tempo de build e de feedback! • Falsos negativos
  3. E com o tempo de feedback lento…! • Perda de

    confiança do time! • Time deixa de rodar os testes
  4. Importância do tempo de build e feedback! • XP (Extreme

    Programming)! ‣ 10-minute build! ! • James Shore (The Art of Agile Development)! ‣ 10 or 15-minute build! !
  5. “That's about the right amount of time to stretch my

    legs, get some coffee, and talk over our work with my pairing partner.”! ! - James Shore, The Art of Agile Development
  6. Importância do tempo de build e feedback! • Dan Bodart!

    ‣ Palestra - “Crazy Fast Build Times - or when 10 seconds starts to make you nervous”! ‣ Mostra formas de reduzir em até 10 vezes o tempo de build de uma aplicação! ‣ Link da palestra no InfoQ: http://goo.gl/ ScN6HH
  7. Testes de unidade! ! • Boa quantidade e cobertura de

    testes -> menor necessidade de testes exaustivos pela UI! • Rodam muito rápido -> feedback mais rápido! • Muito efetivos para testar valores limite ou combinações de desvios no código
  8. Testes de unidade! ! • Por definição, testam componentes isolados!

    • Como testamos a integração entre componentes? Criando um teste que navegue pela UI?
  9. Testes na camada de serviço! ! • Preencher o gap

    entre unidade e UI! • Testar regras de negócio “abaixo" da UI! • Também chamados de Subcutaneous Tests (Martin Fowler)
  10. Testes na camada de serviço! ! • Também chamados de

    Testes de Integração, API Tests, etc.! • Testar a aplicação sem depender da interface (Web, Mobile, etc.)! • Geralmente utilizados para BDD -> validar critérios de aceite das user stories
  11. Foco de Testes pela UI:! ! • Smoke Tests! •

    xBrowser Testing! • Visual Regression Testing
  12. Frameworks Headless Browsers Selenium WebDriver PhantomJS (GhostDriver), HTMLUnit (HTMLUnitDriver) Capybara

    PhantomJS (Poltergeist), HTMLUnit (Celerity) CasperJS PhantomJS, SlimerJS
  13. “What makes a clean test? Three things. Readability, readability, and

    readability.”! ! - Uncle Bob Martin, Clean Code! ! ! “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”! ! - Martin Fowler, Refactoring: Improving the Design of Existing Code