Pular para o conteúdo
SDETRole
SDETRole

Glossário · Fundamentos de testes

Teste caixa-preta

Em inglês: Black-box testing

Também chamado de: teste de caixa preta, testes caixa-preta, teste comportamental, teste baseado em especificação

Definição

Testar um sistema pelas suas entradas e saídas, comparando com os requisitos, sem olhar nem depender do código ou do design interno.

O teste caixa-preta trata o sistema como uma caixa fechada: você fornece entradas, observa as saídas e as compara com o que a especificação diz que deve acontecer. O tester não precisa conhecer a linguagem de programação, a arquitetura nem como o código está estruturado. A maior parte dos testes funcionais, de sistema, de API e de aceitação é caixa-preta.

Exemplo

Uma API de transferência aceita valores de 1 a 10.000. Sem ver nenhuma linha de código, um tester de caixa-preta deriva os testes a partir da regra:

  • Partições de equivalência: abaixo da faixa (0), válido (500), acima da faixa (10.001), não numérico ("abc").
  • Limites: 0, 1, 2, 9.999, 10.000, 10.001.
  • Resultados esperados: valores válidos retornam 201 Created; os inválidos retornam 400 Bad Request com uma mensagem de erro e não movimentam dinheiro.

As técnicas usadas aqui, particionamento de equivalência e análise de valor limite, junto com tabelas de decisão, teste de transição de estados e teste pairwise, são as principais técnicas de projeto de teste caixa-preta.

Teste caixa-preta vs caixa-branca

Caixa-preta Caixa-branca
Base Requisitos e especificações Estrutura interna do código
Conhecimento necessário O que o sistema deve fazer Como o código foi escrito
Níveis típicos Sistema, API, aceitação Unitário, parte da integração
Medido por Cobertura de requisitos Cobertura de código (instruções, branches)
Encontra Comportamento ausente ou errado, divergências da especificação Caminhos não testados, código morto, erros de lógica

Um não substitui o outro. O teste caixa-preta consegue encontrar funcionalidades que nunca foram implementadas, o que o caixa-branca não consegue, porque não há código para inspecionar. O teste caixa-branca encontra caminhos que a especificação nunca menciona. O teste caixa-cinza combina os dois: testa pela interface usando algum conhecimento interno, como verificar o banco de dados depois de uma chamada de API ou saber qual serviço uma requisição atinge.

Pontos fortes e limitações

Testes caixa-preta são independentes da implementação, então sobrevivem a refatorações e podem ser escritos a partir dos requisitos antes de o código existir. A limitação é que você não consegue saber quais caminhos internos deixou de cobrir e, sem técnicas sistemáticas, é fácil testar só os caminhos felizes óbvios.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →