Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo CenPRA Centro de Pesquisas Renato Archer Divisão de Melhoria de Processos de Software - DMPS Grupo de Teste www.cenpra.gov.br Campinas, SP
Sumário Contexto Dificuldades com o Teste de Software Teste e Qualidade de Software Metodologia de Teste Aplicação da Metodologia de Teste Melhorias Observadas Avaliação do Processo de Teste Conclusões
Contexto Demanda não satisfeita por software com qualidade; Fortes pressões para desenvolver software de boa qualidade em curto espaço de tempo; Melhoria dos processos de Engenharia de Software é fundamental para produzir software com qualidade, dentro de prazo e custos; Os modelos mais utilizados para a melhoria dos processos são: CMM, CMMI, ISO/IEC-15504 (SPICE) e ISO/IEC-12207; Todos esses modelos, direta ou indiretamente, fazem referência ao processo de teste de software.
Dificuldades com o Teste de Software As técnicas de teste existem desde os anos 70, mas as empresas ainda têm uma grande dificuldade com teste. Testar software não é uma tarefa trivial; Falta de profissionais especializados na área; Desconhecimento das técnicas de teste; Poucos livros tratam o teste na prática; Desconhecimento da relação custo benefício do teste;
Dificuldades com o Teste de Software O teste só é lembrado depois do software pronto; Cursos de Engenharia de Software nas Universidades não tratam suficientemente as técnicas de teste; Geralmente, a atividade de teste é executada sem um método que direcione o esforço para maximizar a descoberta de defeitos; O teste é visto numa abordagem pessimista, como um conjunto de tarefas não produtivas.
Problema!! Como tornar a atividade de teste uma prática efetiva, sistemática, viável e produtiva para o desenvolvimento de software nas empresas? Metodologia para Implantar o Processo de Teste
Divisão de Melhoria de Processos de Software Grupo de Teste Projeto: Tecnologia para Teste de Software em Ambientes Empresariais Objetivo Geral: Desenvolver uma metodologia para a introdução ou a melhoria do processo de teste nas empresas produtoras de software. Objetivo Específico: Viabilizar a utilização de práticas de teste pelas empresas produtoras de software.
O que é Teste de Software? Teste de software é o processo de executar o software de uma maneira controlada com o objetivo de avaliar se o mesmo se comporta conforme o especificado.
Teste e Qualidade de Software O teste ainda é a técnica mais amplamente utilizada para avaliar a qualidade de um software. A atividade de teste exige: Conhecimento; Planejamento; Projeto; Execução; Acompanhamento; Recursos; Interação com Outras Equipes.
Teste e Qualidade de Software Numa atividade de teste devem ser identificados: O Nível de Teste; Fase de desenvolvimento em que se aplica o teste A Técnica de Teste; Funcional ou Estrutural O Critério de Teste; Como serão gerados os casos de teste O Tipo de Teste. Como o software será testado
Teste e Qualidade de Software O que testar Tipo de Teste 2a. Teste de Funcionalidade Teste de Interface Teste de Desempenho Teste de Carga (Stress) Teste de Usabilidade Teste de Volume Teste de Segurança 3a. Como testar Particion. de Equivalencia Análise de Valores Limites Baseado em Casos de Uso Quando testar 1a. Fase do Desenvolvimento de Software Níveis de Teste Teste de Unidade Teste de Integração Teste de Sistema Teste de Aceitação Teste de Regressão Técnica de Teste Teste Funcional Teste Estrutural Critérios Teste de Caminhos Teste de Comandos Teste de Ramos Teste de Condições Teste de Cond. Múltiplas
Metodologia 1 - Cursos de Capacitação Módulo I - Introdução ao Teste de Software Módulo II - Técnicas de Teste de Software Módulo III - Documentação do Teste de Software Módulo IV - Processo de Teste Software 2 - Criação do Processo de Teste De acordo com o perfil da empresa 3 - Suporte para Geração de Documentos Baseado na Norma IEEE 829-1998
Metodologia Norma IEEE Std 829-1998 (Standard for Software Test Documentation) A Norma descreve um conjunto de documentos básicos de teste de software, cobrindo: A preparação do teste; O registro dos resultados da execução do teste.
Metodologia Plano de Teste Especificação de Projeto de Teste Especificação de Casos de Teste Especificação de Procedim.de Teste Relatório de Encaminhamento de Item de Teste Execução do Teste Diário de Teste Relatório de Incidente de Teste Relatório-Resumo de Teste
Metodologia Procedimento para a Elaboração dos Documentos 1 - Guia para Elaboração de Documentos de Teste Apresenta um roteiro para a elaboração de documentos de teste baseados na Norma IEEE Std 829-1998. 2 - Processos para Elaboração de Documentos de Teste Apresenta os processos para a elaboração de documentos de teste baseados na Norma IEEE Std 829-1998.
Aplicação da Metodologia Perfil da Empresa: Empresa de pequeno porte - 8 funcionários; Projetos de pequeno e médio porte; Grandes clientes - Multinacionais; O processo de teste de software foi implantado num contexto de melhoria dos processos da empresa, segundo a Norma ISO/IEC 15504. A empresa selecionou 5 processos para melhoria.
Resultados do Processo de Teste Implementação (h) Funcionalidades Envolvidas no Teste (#) Planejamento do teste (h) Execução do teste (h) Correção de Defeitos (h) Participação do Teste no total Hh. Casos de Teste (#) Incidentes com Falhas (#) Razão Incidentes x CTs Casos de Teste com Incidentes (#) Razão CTs com incidentes x Total de CTs Falhas Leves (#) Falhas Médias (#) Falhas Graves (#) Falhas Críticas (#) Projeto Proj.01 176 10 170 90 80 50,4% 220 40 18,2% 75 34,1% 23 5 5 7 Proj.02 7 7 70 61 14 86,2% 113 7 6,2% 14 12,4% 4 2 1 0 Proj.03 85 18 35 25 38 32,8% 42 23 54,8% 20 47,6% 7 11 3 2 Proj.04 4 3 10 6 4 66,7% 19 9 47,4% 9 47,4% 6 2 0 1 Proj.05 17 3 10 9 13 38,8% 26 8 30,8% 17 65,4% 5 1 1 1 Proj.06 10 5 30 17 10 70,1% 25 3 12,0% 10 40,0% 1 0 2 0 Proj.07 90 3 25 32 150 19,2% 31 75 241,9% 25 80,6% 29 9 10 27
Melhorias Observadas Menor número de defeitos descobertos após a liberação do software; Mudança de atitude da equipe de programação: maior atenção às tarefas de verificação; Melhoria no processo de desenvolvimento de software; Mudança de atitude dos clientes: maior tolerância quanto aos prazos de liberação dos produtos;
Avaliação do Processo de Teste O teste sistemático permite avaliar o processo de desenvolvimento de software; O investimento na implantação de teste sistemático tende a se pagar a médio e longo prazo; A avaliação do processo de teste implantado indicou uma classificação de nível 2 da Norma ISO/IEC - 15504: - Os objetivos do processo de teste estão sendo atingidos. - A execução é planejada e acompanhada e os principais produtos de trabalho são identificados, definidos, produzidos e verificados. O processo de teste implantado atende ao Nível 2 da representação contínua do modelo CMMI-SE/SW.
Conclusões A metodologia é viável de ser aplicada como parte de um programa de melhoria de processos; A metodologia é viável de ser aplicada também em micro empresas; O processo de teste implantado gera melhoria visíveis aos clientes e aos desenvolvedores; A adoção de um processo de teste resultou numa melhoria da qualidade do software, melhorando o relacionamento entre a empresa e os clientes.
Centro de Pesquisas Renato Archer - CenPRA Divisão de Melhoria de Processos de Software - DMPS Contatos Adalberto Nobiato Crespo adalberto.crespo@cenpra.gov.br Telefone: (19) 3746-6175