O que são e pra que servem os testes funcionais?

MAS ANTES...

 

DO QUE ESTAMOS FALANDO?

O que é um teste?

 a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar..." (Wikipedia)

Por que é importante testar?

Gif meramente ilustrativo

Exeplos: Marier 1, carros autônomos

Quem testa o software?

O que é mais rápido: manual ou automatizado?

Manual!

Então por que automatizar?

A hipótese do Guilherme Lacerda

Funcionalidade 1

Funcionalidade 2

Funcionalidade 3

...

Funcionalidade N

Testar func. 1

Testar func. 1 e 2

Testar func. 1, 2 e 3

Testar func. 1, 2, 3... N

Independente da forma...

 

Ninguém quer bugs em produção.

Mas por que automatizar?

 

* Padronização na forma de testar

* Velocidade

* Segurança 

* Qualidade

* Humanos erram

Quais super categorias de testes existem?

Quais tipos de testes existem?

  • 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

AGORA SIM...

VAMOS FALAR DE TESTES FUNCIONAIS

O que faz um teste funcional?

 

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

O que faz um teste funcional?

Como isso acontece?

Quais as ferramentas pra criar testes funcionais?

Selenium

Cypress

O que é Cypress?

Ainda sobre Cypress...

Em 20 segundos...

E o código?

Configuração simples

 

Boa documentação

 

Fácil de aprender a criar testes

 

Bons relatórios e feedbacks

Cypress

"De devs para devs"

Por que algumas equipes ainda não utilizam testes em geral?

Motivos pra pessoas não terem testes automatizados

#1 - Porque elas não conhecem

 

#2 - Porque é "mais caro"

 

#3 - "Nosso caso é muito específico", "Nunca tivemos isso e sempre tivemos lucro", "Nosso contexto é diferente, a gente não precisa"

AINDA SOBRE TESTES FUNCIONAIS...

Quais as boas práticas?

* Não devem ser os únicos testes

* Executados de forma paralela

* Devem limpar sua sujeira

* Devem ser independentes

* Legíveis e fáceis de entender!

E quais as más práticas?

* Testar tudo com funcionais!

* Executar todos os testes em todos browsers possíveis

* Usar "sleep", "wait" ou similar

* Código duplicado

Ah, e eles nem sempre funcionam da mesma forma...

Flaky tests

Dicas pra quem vai começar a criar testes amanhã 

#1 - Comece pelos testes mais simples possíveis

 

#2 - Se tiver uma pipeline (CI), escreva um teste e faça ele ficar verde em todos ambientes que tiver

 

#3 - Há uma curva de aprendizado considerável no início, aceite isso

Desenvolvedor na

e pós-graduado em Métodos Ágeis na

Lucas Tagliani Aguiar

Obrigado!

Uma introdução a testes funcionais de software

By Lucas Tagliani Aguiar

Uma introdução a testes funcionais de software

Slides utilizados para apresentação na semana acadêmica da Unisinos em São Leopoldo (16/10/2019)

  • 798