Treinamentos

Quantas vezes você escreveu um bug? Quantas vezes você mudou seu software e não testou tudo? Testar software é uma tarde. E surpreendentemente fácil. No entanto, aprender sozinho pode ser desafiador e levar mais tempo do que você esperava.

Nos últimos anos, tenho dado workshops sobre testes automatizados e TDD por todo o Brasil. O feedback é sempre bastante positivo. Os tópicos que costumo abordar são:

    • Motivação: Testes automatizados
      Aluno escreverá testes para problemas pré-prontos.
    • Testes de Unidade
      Aqui ele praticará a criação de cenários e escrita de asserts.
    • Boas práticas em testes de unidade
      Aluno escreverá Test Data Builders, métodos de suporte, setUp(), tearDown(), etc
  • Test-Driven Development e Refatoração
    Aluno praticará TDD, utilizando conceitos como baby steps, refatoração, simplicidade.
  • Mock Objects
    Aluno utilizará framework popular da linguagem, e aprenderá sobre expectativas, verificações, exceções.
  • Testabilidade e Orientação a Objetos
    Como escrever classes facilmente testáveis? Discussão sobre orientação e objetos e exemplo real.
  • TDD e efeitos na qualidade interna
    Aluno aprenderá feedbacks que o teste dá sobre a qualidade do código, e perceberá problemas de design de maneira antecipada.
  • Testes de integração em DAOs
    Aluno escreverá testes de integração para uma base de dados, aprenderá a montar cenários, e montar a infra-estrutura necessária para tal.
  • Testes de sistema com Selenium
    Aluno aprenderá o que é um teste de sistema, como escrever testes usando Selenium, e Page Objects (um padrão de projeto que visa facilitar a manutenção da bateria de teste).
  • Níveis de teste
    Discussão sobre a diferença entre um teste de unidade, integração e sistema, e o que testar com cada um deles.

Quer saber o que precisa de infraestrutura pro curso? http://www.aniche.com.br/material-para-workshop-de-tdd/.

Mande um e-mail se quiser falar mais sobre isso!

Leave a Reply

Your email address will not be published. Required fields are marked *