Article image
Diogo Barbosa
Diogo Barbosa01/03/2023 16:22
Compartilhe

Pirâmide de Testes, TDD e BDD - Os principais testes realizados em projetos de desenvolvimento

  • #Boas práticas
  • #TDD

Olá pessoal, essas são algumas das informações adquiridas em uma mentoria do dia 28 de Fevereiro, realizada pela Graziele Santos, Engenheira de Software Sr do Banco PAN.

Pirâmide de testes

Uma pirâmide de testes visa demonstrar os principais testes realizados na criação de um projeto, juntamente com seus níveis de dificuldade e importância.

No setor de tecnologia estes são três dos principais testes a serem realizados:

image

Direito de imagem reservada ao site: https://natanpf.com/2021/05/27/piramide-de-testes/

Base - Testes de Unidades ou Unitário

São testes feitos pelos próprios desenvolvedores em pequenos pedaços de códigos ou na menor parte testável de uma aplicação. São realizados em grande escala em todo o processo de criação de forma simples, pequena e rápida, sendo considerado um dos mais importantes nas etapas de desenvolvimento.

Meio - Teste de integração

Com as diferentes partes do código completas, as equipes responsáveis fazem o teste de integração juntando as diferentes unidades (interfaces, APIs, Banco de Dados) para localizar possíveis falhas em sua interação. Por isso se torna mais complexo do que um teste unitário e demanda mais tempo para localizar e corrigir eventuais bugs.

Topo - Teste Operacional, de Sistemas, Ponta a Ponta ou End to End

É realizada uma análise em todo o sistema para ter certeza de sua operacionalidade. Este teste simula o comportamento do usuário final em nossa aplicação e determina se tudo está funcionando como deveria (utiliza muito do BDD, que será explicado mais abaixo). Por fim é um teste muito mais complexos e criterioso, demandando ainda mais tempo para finalmente os software ser liberado para uso.

Testes complementares

Apesar de serem os mais importantes, não são os únicos, existem mais uma grande quantidade de testes que podem ser realizados. Deixarei abaixo um resumo dos destacados na mentoria:

  • Teste de Regressão - Ao inserir novas funcionalidades em seu código, este teste é feito para garantir que não surgiram defeitos em unidades que já funcionavam antes das novas atualizações.
  • Teste Funcional - Valida se cada uma das funcionalidades estão funcionando conforme o esperado.
  • Teste de Interface - Verifica a funcionalidade da interface dos usuários.
  • Teste de configuração e segurança - Analisa para ter certeza que as configurações do software funcionem em diferentes celulares (mais antigos, de diferentes marcas e modelos) ou navegadores (Chrome, Edge, Firefox) de forma segura.
  • Teste de Performace, Carga e Stress - Testes que determina o quão bem o software processa os dados sua capacidade de resposa e estabilidade, quantos acessos o software aguenta ao mesmo tempo sem sobrecarregar e ao atingir ou superar esse limite, como o software se comporta.
  • Teste de instalação/Desinstalação - Teste para verificar se a instalação e desinstalação estão operacionais.

TDD (Test Driven Development) - Desenvolvimento Orientado a Testes

É um processo ao qual você escreve o teste para falhar seu código antes de escrever um que passe nesse teste. Assim que o código estiver operacional, é realizado sua limpeza e melhoria. Ele visa principalmente a qualidade do software em produção.

image

Direito de imagem reservado ao site: https://www.devmedia.com.br/tdd-fundamentos-do-desenvolvimento-orientado-a-testes/28151

BDD (Behavior Driven Development) - Desenvolvimento Orientado a Comportamento

É um processo de desenvolvimento ágil que visa a colaboração entre os desenvolvedores, os setores de qualidade e os clientes de determinado software, para que haja mais comunicação entre as partes.

image

Direito de imagem reservado ao site: https://www.eteg.com.br/blog/o-que-e-bdd/

Pode ser realizada como um complemento ao TDD, e seu intuito é melhorar a qualidade do software. Entre seus pontos positivos podemos frisar:

  • No final o software está dentro da expectativa do cliente, deixando-o satisfeito.
  • Melhora a comunicação do time de desenvolvimento e de outros setores.
  • Torna a documentação do projeto mais dinâmica.

Uma das boas práticas do seu fluxo de teste pode ser definido em: Dado, Quando, Então.

  • Exemplo: Dado que tenho um botão de retornar para a página principal, quando eu clico no botão, então ele me direciona para a página principal.

Certificações de Teste

Seguem agora algumas certificações de testes passados na mentoria:

  • BSTQB/ISTQP (Brazilian Software Testing Qualifications Board)
  • CTFL (Certified Tester Foundation Level)
  • CTFL-AT (Certified Tester Foundation Level, Agile Tester)
  • ALATS (Certificação Brasileira de Teste de Software)

Links úteis:

bstqb.org.br/b9/

Canais no youtube:

@JuliodeLimas

@lelemainechannel

Obrigado por lerem, sucesso a todos.

Compartilhe
Comentários (2)

DP

Denilson Palma - 01/03/2023 19:08

Assunto interessante. Obrigado. Parabéns pelo artigo!

Luiz Café
Luiz Café - 01/03/2023 16:34

Ótimo artigo, parabéns! A mentoria produziu muitos conhecimentos sobre temas tão importantes, que você escreveu muito bem.