Prévia do material em texto
1. Introdução à Qualidade de Software Conceito e Importância Qualidade de software refere-se ao grau de conformidade de um software aos requisitos especificados e às expectativas dos usuários. É crucial para garantir a satisfação do cliente, a eficiência do sistema e a redução de custos de manutenção. Fatores de Qualidade de Software Os principais fatores que determinam a qualidade do software incluem: • Correção: Grau em que o software realiza suas funções conforme especificado. • Confiabilidade: Capacidade do software de executar suas funções de forma consistente e sem falhas. • Eficiência: Capacidade do software de realizar suas funções com o uso mínimo de recursos. • Usabilidade: Facilidade com que os usuários podem aprender e usar o software. • Manutenibilidade: Facilidade com que o software pode ser modificado para corrigir falhas, melhorar desempenho ou adaptar-se a um ambiente modificado. • Portabilidade: Capacidade do software de ser transferido de um ambiente para outro. 2. Processos e Modelos de Qualidade Modelos de Qualidade • ISO/IEC 25010: Modelo padrão internacional que define a qualidade de software em termos de características e subcaracterísticas. • CMMI: Modelo de maturidade que guia as organizações na melhoria de seus processos de desenvolvimento e manutenção de software. • SPICE: Framework para avaliação de processos de software baseado em normas ISO/IEC 15504. Processos de Qualidade • Engenharia de Requisitos: Processo de definir, documentar e manter os requisitos do sistema. • Projeto de Software: Planejamento e design da arquitetura do software. • Implementação: Codificação e construção do software. • Verificação e Validação: Processo de garantir que o software atende aos requisitos e está livre de defeitos. • Manutenção: Modificação do software após sua entrega para corrigir falhas e melhorar desempenho. 3. Testes de Software Tipos de Testes • Testes Funcionais: Verificam se o software cumpre os requisitos funcionais especificados. • Testes Não Funcionais: Avaliam aspectos como desempenho, usabilidade, segurança e compatibilidade. Níveis de Testes • Teste de Unidade: Verificação individual de cada componente do software. • Teste de Integração: Avaliação da interação entre componentes integrados. • Teste de Sistema: Verificação do sistema completo em um ambiente de simulação do ambiente de produção. • Teste de Aceitação: Validação do software pelo usuário final para garantir que atende aos requisitos. 4. Ferramentas e Técnicas de Testes Ferramentas de Automação • Selenium: Ferramenta para automação de testes de interface de usuário para aplicações web. • JUnit: Framework para automação de testes de unidade em Java. • TestNG: Framework inspirado no JUnit para automação de testes, com funcionalidades adicionais. Técnicas de Teste • Teste Caixa Branca: Teste baseado no conhecimento da estrutura interna do software. • Teste Caixa Preta: Teste baseado nos requisitos e funcionalidades sem considerar a estrutura interna. • Teste Exploratório: Teste ad hoc, onde o testador explora o software buscando defeitos sem seguir um script pré-definido. 5. Medição e Análise de Qualidade de Software Métricas de Software • Linhas de Código (LOC): Contagem das linhas de código escritas. • Complexidade Ciclomática: Medida da complexidade lógica de um programa. • Cobertura de Testes: Percentual de código exercido durante a execução dos testes. Análise de Métricas • Coleta de Dados: Processo de recolher informações sobre o desempenho e qualidade do software. • Análise de Tendência: Identificação de padrões e tendências nos dados de qualidade. • Relatórios de Qualidade: Documentos que apresentam os resultados da análise de métricas, destacando áreas para melhoria. 6. Melhoria Contínua da Qualidade de Software Modelos de Melhoria • PDCA (Plan-Do-Check-Act): Ciclo de melhoria contínua que envolve planejamento, execução, verificação e ação corretiva. • Six Sigma: Metodologia de melhoria que utiliza dados estatísticos para eliminar defeitos e variabilidade. • Lean Software Development: Enfoque na eliminação de desperdícios e na entrega rápida de valor. Práticas de Melhoria • Revisões e Inspeções de Código: Processos de revisão de código por pares para identificar e corrigir defeitos. • Refatoração: Reestruturação do código para melhorar sua legibilidade e manutenibilidade sem alterar seu comportamento funcional. • Integração Contínua e Entrega Contínua (CI/CD): Práticas de desenvolvimento que automatizam a integração de código e a entrega de software para garantir que as mudanças sejam rapidamente testadas e lançadas. 1. Introdução à Qualidade de Software Conceito e Importância Fatores de Qualidade de Software 2. Processos e Modelos de Qualidade Modelos de Qualidade Processos de Qualidade 3. Testes de Software Tipos de Testes Níveis de Testes 4. Ferramentas e Técnicas de Testes Ferramentas de Automação Técnicas de Teste 5. Medição e Análise de Qualidade de Software Métricas de Software Análise de Métricas 6. Melhoria Contínua da Qualidade de Software Modelos de Melhoria Práticas de Melhoria