scieee AI-readable full text Open interactive document viewer

Apostila de Testes e Qualidade de Software – Curso de ADS

Teixeira de Oliveira, Michele Caroline

Abstract

Material didático utilizado nas aulas da disciplina de Testes e Qualidade de Software, do curso de Análise e Desenvolvimento de Sistemas da UNIMAR. O conteúdo aborda fundamentos, práticas, ferramentas e estudos de caso na área de QA.

Full text

Centro Universitário de Marília – UNIMAR Apostila Acadêmica Qualidade e Teste de Software Disciplina: Testes e Qualidade de Software Curso: Análise e Desenvolvimento de Sistemas Professora: Michele Caroline Teixeira de Oliveira [email protected] Sumário ● Módulo 1 - Introdução à Qualidade de Software e Requisitos ○ 1.1 Objetivos de Aprendizagem ○ 1.2 Contextualização ○ 1.3 Conceitos-Chave ○ 1.4 Exemplo Prático ○ 1.5 Atividades ○ 1.6 Desafio Prático ○ 1.7 Referências ● Módulo 2 - Fundamentos e Ciclo de Vida do Teste ○ 2.1 Objetivos do Teste ○ 2.2 Princípios do Teste de Software ○ 2.3 Ciclo de Vida do Teste (5 Fases) ○ Exemplo Prático ○ Atividades ○ Desafio Aplicado ○ Referências ● Módulo 3 - Artefatos de Teste e Documentação ○ 3.1 Plano de Testes ○ 3.2 Casos de Teste (CT) ○ 3.3 Cenário de Teste ○ 3.4 Testes Baseados no Usuário ○ Exemplo Prático ○ Atividades ○ Referências ● Módulo 4 - Técnicas de Teste (Estático, Dinâmico, Caixa-Branca e Experiência) ○ 4.1 Testes Estáticos ○ 4.2 Testes Dinâmicos ○ 4.3 Teste Caixa-Branca ○ 4.4 Testes Baseados em Experiência ○ Referências ● Módulo 5 - Técnicas de Teste Caixa-Preta ○ 5.1 Características ○ 5.2 Particionamento de Equivalência (EP) ○ 5.3 Análise de Valor Limite (BVA) ○ 5.4 Tabela de Decisão ○ 5.5 Teste de Transição de Estado ○ Atividades ○ Referências ● Módulo 6 - Colaboração e Gerenciamento de Defeitos ○ 6.1 Abordagens de Teste Baseadas na Colaboração ○ 6.2 TDD (Test-Driven Development) ○ 6.3 BDD (Behavior-Driven Development) ○ 6.4 Gerenciamento de Defeitos ○ 6.5 Ciclo de Vida do Defeito ○ 6.6 Registro de Bugs (Boas Práticas) ○ 6.7 Severidade vs Prioridade ○ Referências ● Módulo 7 - Automação de Testes e Ferramentas Práticas ○ 7.1 Abordagem Shift-Left ○ 7.2 O que NÃO é Automação ○ 7.3 Onde Aplicar Automação ○ 7.4 Tipos de Testes Automatizados ○ 7.5 Teste de API/Integração ○ 7.6 Ferramentas Práticas ○ Exercícios Práticos e Desafios ○ Referências ● Conclusão ○ Leituras Complementares ● APÊNDICE A – Boas Práticas e Cultura de Qualidade ● APÊNDICE B – Testes de Performance, Carga e Segurança ● APÊNDICE C – Automação Moderna e Frameworks Avançados ● APÊNDICE D – Qualidade em Contextos Reais ● APÊNDICE E – Referências Práticas e Ferramentas Módulo 1 - Introdução à Qualidade de Software e Requisitos 1.1 Objetivos de Aprendizagem - Compreender o conceito de qualidade de software sob diferentes perspectivas. - Identificar os tipos de requisitos e sua relação com a qualidade. - Reconhecer os fatores e consequências da má qualidade em sistemas reais. 1.2 Contextualização “Software de qualidade é aquele que atende às necessidades do usuário, respeitando requisitos e boas práticas de desenvolvimento.” A qualidade de software é avaliada com base em características como funcionalidade, confiabilidade e usabilidade (ISO/IEC 25010). Ela depende diretamente da clareza e do cumprimento dos requisitos definidos no início do projeto. 1.3 Conceitos-Chave Conceitos-chave: Qualidade de Software, Requisito Funcional, Requisito Não Funcional, Modelo ISO/IEC 25010. 1.4 Exemplo Prático Exemplo: Aplicativo de delivery de comida. - Requisito funcional: “O usuário deve conseguir rastrear o pedido em tempo real.” - Requisito não funcional: “O sistema deve atualizar o status do pedido a cada 30 segundos.” Uma falha no requisito não funcional (atualização lenta) pode gerar insatisfação, mesmo que a função exista. 1.5 Atividades Atividade 1: Individual: Liste 3 exemplos reais de má qualidade de software que você já presenciou (ex.: travamentos, falhas em login, inconsistência de dados). Para cada caso, identifique: - Tipo de requisito afetado (funcional ou não funcional) - Impacto para o usuário Atividade 2: Em Grupo: Escolham um sistema conhecido (ex.: aplicativo bancário, e-commerce, rede social). Criem uma tabela com 5 requisitos funcionais e 3 não funcionais. Depois, discutam: quais requisitos são mais críticos para garantir a qualidade percebida? 1.6 Desafio Prático Elabore um mini relatório de qualidade de um sistema real (pode ser o que vocês estão desenvolvendo em aula). Inclua: - Requisitos mapeados - Possíveis riscos de qualidade - Características do modelo ISO/IEC 25010 aplicáveis Entregue o relatório em formato PDF no ambiente virtual da disciplina. 1.7 Referências - ISO/IEC 25010:2011 – Systems and software Quality Models - PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. McGraw Hill, 2016. - SOMMERVILLE, I. Engenharia de Software. 10. ed. Pearson, 2019. Referências 1. ISO/IEC 25010:2011 – Systems and software Quality Models 2. PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. McGraw Hill, 2016. 3. SOMMERVILLE, I. Engenharia de Software. Pearson, 2019. Módulo 2 - Fundamentos e Ciclo de Vida do Teste 2.1 Objetivos do Teste - Verificar se os requisitos foram atendidos. - Encontrar falhas e defeitos. - Evitar defeitos e criar confiança no nível de qualidade do objeto de teste. 2.2 Princípios do Teste de Software - Teste mostra presença de defeitos, não sua ausência. - Testar cedo é melhor. - Teste exaustivo é impossível. 2.3 Ciclo de Vida do Teste (5 Fases) 1 - Planejamento de Teste: Definir escopo, estratégia, cronograma e recursos. 2 - Análise e Projeto de Teste: Entendimento dos requisitos e criação de casos de teste. 3 - Implementação e Execução: Configuração do ambiente e execução de testes (manuais ou automatizados). 4 - Registro de Resultados e Rastreamento: Documentação dos resultados e registro de defeitos (ex.: no Jira). 5 - Encerramento do Teste: Geração de relatórios finais e avaliação das lições aprendidas. Exemplo Prático Plano de Teste simplificado para um sistema de login: - Objetivo: validar autenticação e fluxos de recuperação de senha. - Escopo: autenticação, bloqueio de conta, recuperação de senha. - Critérios de aceitação: 95% dos casos críticos devem passar. Atividades Atividade 1: Individual: Crie 8 casos de teste para o fluxo de login (inclua casos positivos e negativos). Atividade 2: Em Grupo: Elaborem um plano de testes de regressão para um módulo de compras em um e-commerce. Desafio Aplicado Configure um ambiente local simples (ou utilize uma aplicação de exemplo) e execute 5 casos de teste manuais, documentando evidências (prints, logs). Referências 4. Beizer, B. Software Testing Techniques. Van Nostrand Reinhold. 5. ISTQB Foundation Level Syllabus. Módulo 3 - Artefatos de Teste e Documentação 3.1 Plano de Testes Documento que orienta todo o processo, definindo objetivos, escopo, recursos, cronograma e critérios. Inclui: contexto, riscos, estratégia de execução, ambiente, critérios de entrada/saída, responsabilidades. 3.2 Casos de Teste (CT) Descrição detalhada de uma condição a ser testada, incluindo ID, descrição, pré-condições, passos para execução, dados de entrada, resultado esperado e critério de aceitação (pass/fail). 3.3 Cenário de Teste É um conjunto de casos de teste que simulam um fluxo de uso real (uma situação que envolve várias condições de teste). 3.4 Testes Baseados no Usuário Teste Alpha: Testadores internos verificam o pedido, funcionalidades de pagamento, estabilidade e performance. Teste Beta: Disponibilizado para um grupo de usuários voluntários para feedback sobre facilidade de uso e bugs em diferentes ambientes. Exemplo Prático Modelo de caso de teste para "Cadastro de Usuário": - ID: CT-001 - Pré-condição: usuário não registrado - Passos: preencher nome, email, senha, clicar em cadastrar - Resultado esperado: cadastro realizado e e email de confirmação enviado. Atividades Atividade 1 – Individual: Escreva 5 casos de teste detalhados para a funcionalidade "Adicionar Produto ao Carrinho". Atividade 2 – Em Grupo: Criem um pacote de testes com cenários para checkout completo e definam critérios de passagem para a entrega do sprint. Referências 6. Kaner, Cem. Testing Computer Software. 7. How to write Test Cases - Practical guidelines. Módulo 4 - Técnicas de Teste (Estático, Dinâmico, Caixa-Branca e Experiência) 4.1 Testes Estáticos Técnicas que não executam o código, avaliando artefatos (código, documentação, requisitos) para encontrar erros (ex.: erro de digitação, lógica incorreta). 4.2 Testes Dinâmicos Técnicas que executam o código com entradas específicas e verificam se o resultado é o esperado, validando o comportamento real do sistema. 4.3 Teste Caixa-Branca Baseado na análise da estrutura interna do software (código-fonte, fluxogramas, algoritmos). - Teste de Instrução: cobertura de instrução. - Teste de Decisão/Ramificação: garante que todos os caminhos possíveis em bifurcações sejam testados. 4.4 Testes Baseados em Experiência - Teste Exploratório: explorar a funcionalidade livremente, sem roteiro fixo. - Checklist: guia rápido de verificação. - Error Guessing: criação de casos baseados em áreas propensas a erro. Referências 8. Myers, G. J., et al. The Art of Software Testing. 9. Cem Kaner - Exploratory Testing. Módulo 5 - Técnicas de Teste Caixa-Preta 5.1 Características Independência da implementação; baseado em requisitos. 5.2 Particionamento de Equivalência (EP) Divide os dados em grupos (partições) válidos e inválidos. Um teste de cada partição é suficiente. 5.3 Análise de Valor Limite (BVA) Foca nos extremos de cada grupo, testando os limites e os valores imediatamente acima ou abaixo deles. 5.4 Tabela de Decisão Usada para testar regras de negócio complexas com várias condições combinadas. 5.5 Teste de Transição de Estado Avalia como o sistema muda de estado com eventos, útil para sistemas com fluxo dependente do estado. Atividades Atividade 1 – Individual: Aplicar EP e BVA a um campo de idade (18-60) e criar casos de teste. Atividade 2 – Em Grupo: Elaborar tabela de decisão para regras de desconto com múltiplas condições (ex.: tipo de cliente, total da compra, cupom). Referências 10. Beizer, B. Software Testing Techniques. 11. ISTQB Glossary. Modelos de Documentação: ● Plano de Testes ● Caso de Teste ● Relatório de Defeitos ● Relatório Final de Testes Certificações Relevantes: ● ISTQB – Certified Tester Foundation Level (CTFL) ● CTFL – Agile Tester ● Certificação Cypress Specialist (comunidade) ● Certificação OWASP ZAP Practitioner