Skip to content

Heurísticas de Testes

Heurística de teste de software é uma abordagem sistemática para identificar e projetar casos de teste com base em princípios gerais e conhecimento adquirido através da experiência, baseado em padrões comuns e técnicas de solução de problemas.

Envolve o uso de regras práticas e diretrizes para guiar o processo de teste e a seleção de casos de teste relevantes. A heurística de teste de software ajuda a encontrar defeitos de forma mais eficiente, identificar áreas críticas do sistema e melhorar a cobertura de teste.

Este documentos tem como objetivo dar algumas dicas de como testar diversas partes de um software (dependendo do CONTEXTO de cada produto) utilizando a heurística.

Arquivos e Caminhos em sistema

  • Nome Longo (>255 caracteres)
  • Caracteres Especiais no Nome (espaço * ? / \ | < > , . ( ) [ ] { } ; : ‘ “ !@ # $ % ^ &)
  • Nome Inexistente
  • Nome Já Existente
  • Sem Espaço em disco
  • Espaço Mínimo em disco
  • Protegido contra Gravação
  • Indisponível
  • Bloqueado
  • Em Máquina Remota
  • Corrompido
  • Temporização, Hora e Data
  • Timeouts
  • Diferença de Tempo entre Máquinas
  • Atravessando Fusos Horários
  • Dias Sempre Inválidos (30 de fevereiro, 31 de setembro)
  • 29 de fevereiro em Anos Não Bissextos e Bissextos
  • Diferentes Formatos (5 de junho de 2001; 06/05/2001; 06/05/01; 06-05-01; 6/5/2001 12:34)
  • Mudança de Horário de Verão
  • Ajuste do Relógio para Trás ou para Frente

Números

  • Valores limites inferiores e superiores
  • Partição de equivalência
  • 0, null, empty
  • Notação científica
  • Negativos
  • Percentuais/decimais (0.001, 100.11, etc)
  • Separação por vírgula
  • Formato europeu/americano (1.500,36/1,566.99)
  • Zeros à esquerda
  • Arredondamento matemático
  • Cálculos
  • Validação de Idade, soma de datas, etc
  • Máscaras e formatação

Strings

  • Long (255, 256, 257, 1000, 1024, 2000, 2048 ou mais caracteres)
  • Caracteres com acento (àáâãäåçèéêëìíîðñòôõöö, etc.)
  • Caracteres asiáticos
  • Delimitadores comuns e caracteres especiais ( “ ‘ ` | / \ , ; : & < > ^ * ? Tab )
  • Null, empty
  • Espaço único, múltiplos espaços, espaço no início
  • Caracteres de fim de linha, quebra de linha, etc.
  • Injeção de SQL com todas as ações de inserts, search, update, etc
  • Limites superiores e inferiores
  • Concatenação
  • Erros de escrita
  • Atentar para abreviações em nomes ou caracteres únicos
  • Upper e lower case
  • Violação de domínios específicos, como endereço de e-mail, etc
  • Atentar para heurística de "Arquivos..., Hora e Data..., Números e Strings"
  • Voltar (Navegador) e atalhos do teclado, botões oferecidos pelo sistema
  • Atualizar
  • Favoritar URL
  • Selecionar páginas favoritas quando deslogado
  • Acessar menus restritos por URL
  • Acessos múltiplos
  • Atentar para caminhos exibidos como "migalha de pão"
  • Funcionamento de botões
  • Redirecionamento de links e botões
  • Resoluções mínimas e máximas
  • Diferentes navegadores
  • Posicionamento, alinhamento de elementos
  • Cores, fontes, padronização de forma de escrita ou tamanho dos elementos
  • Tipos de Menus por formato de dados
  • Login Expirado
  • Pop-Ups e Janelas novas
  • Permissões em alert e modais
  • Atentar para heurística de "Arquivos..., Hora e Data..., Números e Strings"
  • Voltar por gesto/botão nativo do dispositivo e botões oferecidos pelo sistema
  • Atualizar (Arrastar pra baixo)
  • Acessos múltiplos
  • Diferentes plataformas e dispositivos (iOS, Android, Mobile, Tablet)
  • Atualização automática
  • Push notifications
  • Login
  • Atentar para caminhos exibidos como "migalha de pão"
  • Funcionamento de botões
  • Redirecionamento de links e botões
  • Resoluções mínimas e máximas
  • Posicionamento, alinhamento de elementos
  • Cores, fontes, padronização de forma de escrita ou tamanho dos elementos
  • Tipos de Menus por formato de dados
  • Teclado aberto por tipo de menu (numérico, alfanumérico)
  • Teclado sobrepondo campos digitáveis
  • Fechar APP por funções nativas do dispositivo, navegar entre APP
  • Permissão de funções do dispositivo (Câmera, Localização, Calendário, etc...)

API

  • Atentar para heurística de "Arquivos..., Hora e Data..., Números e Strings"
  • Code Status e mensagens
  • Performance e Carga
  • Métodos
  • Integração com banco de dados e interface
  • Formato de dados
  • Autenticação
  • Documentação
  • CRUD - Create, Read, Update, Delete

Banco de Dados

  • Atentar para heurística de "Arquivos..., Hora e Data..., Números e Strings"
  • Case Sensitive
  • CRUD - Create, Read, Update, Delete
  • Fluxo de dados dentro do sistema