Como os testes estão ligados com o seu dia-a-dia?

Desenvolvedor na

e aluno da pós-graduação em Métodos Ágeis na

Lucas Tagliani Aguiar

Title Text

"não dá tempo"

"testes são muito caros"

"meu caso é muito específico"

"o que são testes automatizados?"

Motivador: debate entre usar e não usar TDD

Tipos, categorias e práticas sobre testes...

  • Testes unitários
  • Testes de integração
  • Testes de componentes
  • Testes de contratos
  • Testes ponta a ponta
  • Testes positivo-negativo
  • Testes funcional
  • Testes de interface
  • Testes de performance
  • Testes de volume
  • Testes de carga
  • Testes de estresse
  • Testes de segurança
  • Test Driven Development (TDD)
  • Testes A/B
  • Testes de aceitação
  • Testes de usabilidade

Teste de exploração

Teste de avaliação

Teste de validação

Teste de comparação

Teste de laboratório

Teste caixa preta

Testes unitários

Testa uma unidade de código isoladamente e de forma independente.

 

Maiores benefícios: errar rápido e segurança em manutenções.

 

Ferramentas: frameworks como

NUnit / Fluent Assertions (C#)

e JUnit / Mockito (Java).

Testes integrados

 

Testa se a comunicação entre as camadas (controller, serviços, dados...) do software está funcionando.

Não testa regra de negócio!

 

Use setUp() e cleanUp()!

 

Ferramentas: frameworks como

NUnit / Fluent Assertions (C#)

e JUnit / Mockito (Java).

Testes funcionais

 

Testa a interface do sistema através de comportamentos que um usuário poderia ter.

Super indicado pra quem utiliza fluxos longos de cadastro e/ou muitas funcionalidades no front-end.

 

Ferramenta: Selenium

Testes funcionais (exemplo)

Testes de usabilidade

 

Testa o uso de um sistema, produto ou serviço através de análise de comportamento.

Importante principalmente para ideias inovadoras.

 

Filmar o comportamento, reações, dúvidas e até o movimento do mouse podem ser boas práticas.

Testes de performance

 

Testa a capacidade (resposta, disponibilidade, robustez) de um sistema.

Tipos: carga, estresse, resistência e subida rápida.

 

Se eu fizer 1000 requisições simultâneas pra esse serviço, ele consegue me retornar? Em quanto tempo?

 

Ferramenta: Apache JMeter

Eu amo testes automatizados porque...

 

  • Desenvolvimento: agiliza muito a forma como eu recebo feedback do código que estou produzindo, sem precisar subir a aplicação.

 

 

  • Minimiza erros: com testes eu geralmente vejo mais cenários possíveis do que quando eu codifico sem desenvolver testes.

Eu amo testes automatizados porque...

 

  • Segurança: quando eu faço uma alteração grande no código, é fácil descobrir se eu estraguei alguma outra parte ou não.

 

 

  • Regras: quando eu preciso ver uma regra de negócio do sistema e não tenho documentação atualizada, eu olho os testes ao invés de olhar o código.

LETS CODE!

Test Driven Development (TDD)

Behavior Driven Development (BDD)

Ferramentas

Obrigado!

Como os testes estão ligados com o seu dia-a-dia? (TDC 2017)

By Lucas Tagliani Aguiar

Como os testes estão ligados com o seu dia-a-dia? (TDC 2017)

Você sabe quantos tipos de testes existem quando falamos de software? Testes automatizados, de integração, unitários, funcionais, de performance, de usabilidade, de volume... Quais destes você utiliza? E, mais importante, você sabe o real motivo de ainda não utilizar os outros? Se a sua desculpa para não utilizar testes automatizados é não conhecê-los, seus problemas podem estar acabando! Nesta palestra vou explicar o que é cada um destes tipos, a maioria mostrando exemplos práticos e dicas de quando utilizá-los. Também vou explicar (com prática) o que é TDD e BDD de forma clara!

  • 1,309