🚀 Capítulo 01: Introdução à Qualidade de Software (Tema: Matrix)
NOTE
Este capítulo utiliza a temática de Matrix para explicar a Qualidade de Software. O sistema está cheio de falhas (glitches)? Escolha a pílula da qualidade e garanta que a simulação funcione perfeitamente!
1. 🎯 Objetivo da Aula
Compreender o conceito de Qualidade de Software e entender que testar não é apenas “procurar erros”, mas garantir que o sistema atenda às necessidades do usuário com confiabilidade e segurança.
2. 🏢 O Cenário Prático (Seu Desafio)
Você é o Arquiteto da Matrix. Humanos estão conectados e esperando uma realidade perfeita.
- Se o código do céu falhar, as pessoas verão a cor verde cair (Glitches).
- Se o código da gravidade falhar, as pessoas começarão a voar sem querer.
Um software sem qualidade na Matrix significa que as pessoas vão acordar e a simulação vai falhar! Seu desafio como programador é garantir que o código seja robusto o suficiente para que ninguém perceba que está em um sistema.
3. 🧠 Fundamentos: A Teoria Traduzida
📜 1. O que é Qualidade de Software?
Não existe um software 100% livre de bugs. Qualidade significa que o software faz o que foi projetado para fazer, de forma confiável, eficiente e segura.
🛡️ 2. Os Pilares da Qualidade (Norma ISO 25010):
- Adequação Funcional: O sistema faz o que o usuário precisa?
- Confiabilidade: O sistema continua funcionando mesmo sob estresse?
- Usabilidade: É fácil para o usuário entender e usar?
- Segurança: Os dados estão protegidos contra invasores?
- Manutenibilidade: É fácil para outro programador corrigir ou atualizar o código?
💰 3. O Custo do Bug
Quanto mais tarde um bug é descoberto, mais caro ele fica para ser corrigido!
- Se você encontra o bug enquanto escreve o código: Custa R$ 10.
- Se o testador encontra o bug antes de lançar: Custa R$ 100.
- Se o usuário final encontra o bug em produção: Custa R$ 10.000 (e queima a reputação da empresa).
4. 📖 Exemplo Guiado: O Gato Preto (Glitch)
Na Matrix, ver o mesmo gato preto passando duas vezes é sinal de que o código foi alterado ou falhou. No software, chamamos isso de comportamento inconsistente.
Código com Baixa Qualidade (Matrix com Glitch):
let populacao = 1000;
function removerHumano() {
// Código perigoso que não verifica se a população já é zero!
populacao = populacao - 1;
}Se chamarmos essa função 1001 vezes, a população ficará negativa! Isso é um bug de lógica que quebra a Matrix.
Código com Qualidade (Matrix Segura):
let populacao = 1000;
function removerHumano() {
if (populacao > 0) {
populacao = populacao - 1;
} else {
console.log("Alerta: Não há mais humanos para remover!");
}
}5. 🛠️ Prática Obrigatória 1: Identificando Falhas
Diga qual pilar da qualidade (Confiabilidade, Usabilidade ou Segurança) foi violado em cada situação:
- O usuário tenta clicar em um botão, mas ele é tão pequeno que ninguém consegue acertar com o dedo.
- O sistema fica fora do ar toda vez que mais de 10 pessoas tentam acessar ao mesmo tempo.
- Um hacker conseguiu descobrir a senha de todos os usuários porque elas estavam salvas em texto comum no banco de dados.
6. 🛠️ Prática Obrigatória 2: O Custo da Falha
Imagine que você está criando o software de controle de um foguete espacial.
- O que acontece se um bug passar despercebido e o foguete explodir?
- Por que os testes nesse tipo de sistema precisam ser muito mais rigorosos do que em um aplicativo de entrega de pizza?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 01 Qualidade) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
mod_11_qualidade_e_testes_de_software/
├── capitulos/
│ ├── capitulo_01_introducao.md
│ └── codigos/
│ └── cap01/
│ └── glitch.js9. 💡 Checkpoint de Lógica
Testar software não é apenas tentar quebrar o sistema. É garantir que ele funcione nos caminhos felizes (onde o usuário faz tudo certo) e nos caminhos de exceção (onde o usuário faz besteira ou o sistema falha).
10. 🔥 Desafio de Fixação
Pesquise sobre o caso do foguete Ariane 5 (1996), que explodiu em 40 segundos devido a um bug de software de conversão de dados. Quanto custou esse bug?
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Usabilidade (Dificuldade de uso).
- Confiabilidade (O sistema não aguenta carga).
- Segurança (Vazamento de dados por falta de proteção).