🧪 Atividade 09: Qualidade e Testes
🎯 Objetivo da Aula
Ao final desta atividade, você será capaz de:
- Diferenciar Verificação (Estamos construindo o produto certo?) de Validação (Estamos construindo o produto corretamente?).
- Redigir Casos de Teste (Test Cases) com passo a passo e resultados esperados.
- Aplicar a técnica de Teste de Caixa Preta (Black-Box), focando em testes positivos e negativos.
🏢 O Cenário Prático (Seu Desafio)
Na TecProExpress, os desenvolvedores terminaram o "App de Rastreamento". No entanto, no primeiro dia de uso, um motorista tentou digitar o número da placa e o sistema travou porque ele usou letras minúsculas. O cliente tentou rastrear um pedido inexistente e o App exibiu uma tela de erro técnica (código 500) em vez de uma mensagem amigável.
O custo de imagem da empresa foi lá embaixo.
"Seu desafio como Analista de QA (Quality Assurance) é criar um Plano de Testes. Você deve antecipar o erro humano e criar roteiros que garantam que, mesmo que o usuário faça 'bobagem', o sistema se comporte de forma segura e elegante."
🧠 Fundamentos: A Teoria Traduzida
Testar software não é apenas "clicar para ver se funciona". É tentar provar que o sistema falha.
O Caso de Teste (Test Case)
Um caso de teste é um experimento científico controlado. Ele tem:
- Ação: O que eu faço? (Ex: Digito a senha errada).
- Resultado Esperado: O que deve acontecer? (Ex: Mensagem de erro "Senha inválida").
Testes Positivos vs Negativos
- Positivo: O usuário faz tudo certo. (Ex: Login com dados corretos).
- Negativo: O usuário faz tudo errado ou tenta "quebrar" o sistema. (Ex: Colocar letras no campo de 'Quantidade' ou deixar campos obrigatórios vazios).
📊 Visualizando a Lógica
📖 Exemplo Guiado
Abaixo, veja como estruturar um Caso de Teste para o login da TecProExpress.
| ID | Título do Teste | Ação do Usuário | Resultado Esperado |
|---|---|---|---|
| CT01 | Login Vazio | Clica em 'Entrar' sem digitar nada. | O sistema deve exibir "Campos Obrigatórios". |
| CT02 | Formato CPF | Digita CPF sem pontos e traços. | O sistema deve formatar e aceitar o login. |
📊 A Pirâmide de Testes da Engenharia Profissional
🛠️ Estrutura do Roteiro de Teste
# CT03: Teste de Upload de Comprovante
**Objetivo:** Validar se o sistema aceita apenas imagens de comprovantes.
**Pré-condição:** Estar na tela de finalização de entrega.
**Passos:**
1. Clicar no botão "Anexar Foto".
2. Tentar selecionar um arquivo do tipo ".PDF".
3. Clicar em "Confirmar".
**Resultado Esperado:** O sistema deve bloquear a seleção do PDF e exibir o erro "Formato não permitido. Use JPG ou PNG".
🔍 Detalhamento do Processo:
- Note que o roteiro é tão detalhado que qualquer pessoa (mesmo quem não conhece o sistema) conseguiria executá-lo. Isso permite a Reprodutibilidade do Erro.
🛠️ Prática Obrigatória 1: Tabela de Casos de Teste
Cenário: O projeto semestral da sua equipe.
- Escolha 3 Requisitos Funcionais da sua Atividade 03.
- Para cada requisito, crie 2 Casos de Teste (um positivo e um negativo).
- Organize-os em uma tabela contendo: ID, Título, Ação e Resultado Esperado.
🏁 Resultado Esperado (Para sua Referência)
Uma tabela com 6 roteiros de teste (3 pares) que cubram as funcionalidades críticas do seu sistema.
🛠️ Prática Obrigatória 2: O Teste de Caixa Preta
Cenário: Antecipando falhas críticas.
- Identifique uma funcionalidade do seu sistema que envolva cálculos ou datas (ex: Data de entrega, Valor total, Idade do usuário).
- Descreva um cenário de Teste Negativo complexo (ex: o que acontece se eu colocar uma data de nascimento no futuro?).
🏁 Resultado Esperado (Para sua Referência)
Um parágrafo descrevendo o cenário e como o sistema deveria "se defender" desse erro de entrada.
📤 Instruções de Entrega (Microsoft Teams)
Após validar seus roteiros de teste:
- Salve o arquivo de documentação com o nome
Atividade_09.mdna pastaes-atv-09-testes/do seu repositório GitHub. - Certifique-se de fazer o commit e push para o repositório público.
- Submeta o link do seu repositório no Microsoft Teams para avaliação do professor.
💡 Checkpoint de Lógica
📊 Rubrica Formativa de Avaliação
| Critério de Avaliação | Insuficiente (0% - 40%) | Regular (41% - 70%) | Excelente (71% - 100%) |
|---|---|---|---|
| Casos de Teste (Positivo & Negativo) | Menos de 6 roteiros ou contendo apenas testes positivos óbvios. | Cria 6 casos de teste mas sem clareza no resultado esperado. | Tabela completa com 6 casos de teste (3 pares Positivo/Negativo) cobrindo ID, Título, Ação e Resultado Esperado. |
| Teste de Caixa Preta & Defesa do Sistema | Omite o cenário de teste de validação de dados/caixa preta. | Descreve o cenário negativo sem indicar a ação de defesa do sistema. | Detalhamento impecável de teste de borda/caixa preta e comportamento defensivo da aplicação. |
| Entrega no GitHub | Entrega fora da pasta `es-atv-09-testes/`. | Arquivo entregue mas sem tabela organizada em Markdown. | `Atividade_09.md` publicado com formatação limpa e validada. |
🔀 Atividade 08: Diagrama de Sequência (UML)
Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI / Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência da dinâmica de software, entendendo como o sistema "conversa" internamente. 🛡️🧩
🏁 Atividade 10: Projeto Integrador Final
Bem-vindo ao grande encerramento do seu módulo de Engenharia de Software. Ao longo deste semestre, você não apenas aprendeu teoria, você construiu um ativo intelectual. Hoje, você consolidará todas as etapas em um único documento de padrão internacional: o ERS (Especificação de Requisitos de Software). 🛡️🧩