CBCC – Bacharelado em Ciência da Computação
CBSI – Bacharelado em Sistemas de Informação
Modelos de Maturidade de Testes de
Software
Prof. Dr. Sandro Ronaldo Bezerra Oliveira
Prof. Dr. Sandro Ronaldo Bezerra Oliveira
srbo@ufpa.br
www.ufpa.br/srbo
Tópicos Especiais em Engenharia de Software –
Controle e Garantia da Qualidade de Software
Faculdade de Computação
Instituto de Ciências e Exatas e Naturais
Universidade Federal de Pará
Roteiro
Introdução a Testes
Motivação para Testes
Finalidade dos Testes
Paralelo entre:
Processo de Testes
Processo de Desenvolvimento de Software
Processo de Desenvolvimento de Software
Conceitos Importantes no Processo de Testes
Cenários Comuns
Modelos de Maturidade de Testes
Test Improvement Model (TIM)
Test Process Improvement (TPI)
Roteiro
Modelos de Avaliação
Test Improvement Model (TIM)
Test Process Improvement (TPI)
Test Maturity Model (TMM)
Análise Comparativa
TIM x TPI x TMM
Motivação para Testes
O Software tem papel importante no ambiente econômico e social
Possível inclusão de falhas humanas no processo de desenvolvimento de software
Usuário x Analista x Desenvolvedor
O processo de testes faz parte da garantia de qualidade de software
Os custos associados às falhas de software justificam um processo de testes cuidadoso e bem planejado
Software sem qualidade pode causar a perda de vida ou de propriedade
Falhas podem resultar em perdas catastróficas
Existe grande possibilidade de injeção de falhas humanas no processo de desenvolvimento de software
Finalidade dos Testes
Verificar se todos os requisitos foram corretamente implementados
Verificar a correta integração entre todos os componentes
Produzir casos de teste que têm elevada probabilidade de revelar erros com uma quantidade mínima de tempo e esforço
Assegurar, na medida do possível, a qualidade e corretude do produto
Assegurar, na medida do possível, a qualidade e corretude do produto
Comparar o resultado dos testes com os resultados esperados a fim de produzir uma indicação da qualidade e da confiabilidade do software
Reduzir custos de manutenção corretiva e retrabalho
Assegurar satisfação do cliente
Processo de Testes x Processo
de Desenvolvimento de Software
F o n te : V a sc o n ce lo s, A ., 2 0 0 7Conceitos Importantes no
Processo de Testes
Caso de Testes
Cenário de Testes
Abordagem de Testes
Funcional (caixa-preta) : casos de testes são gerados com base na análise das entradas x saídas
Estrutural (caixa-branca): casos de testes são gerados com base na análise das partes do código que devem ser executadas
Estágios de Testes
Teste de unidade: uma pequena unidade é testada (ex: uma função, um componente)
Teste de integração: as unidades integradas são testadas em conjunto
Teste de sistema: o sistema integrado é testado como um todo em um ambiente de execução próximo ao real
Teste de aceitação (homologação): o software é testado pelo usuário final (ex: num projeto-piloto durante um período fixo de tempo)
Conceitos Importantes no
Processo de Testes
Tipos de Testes Funcional Recuperação de Falhas Tolerância a Falhas Controle de AcessoIntegridade dos Dados
Integridade dos Dados
Performance Carga e Stress Configuração e Portabilidade Instalação e Desinstalação Usabilidade Regressão
Cenários Comuns
Testes são planejados e executados pela própria equipe de desenvolvimento
Não existe reuso da documentação dos artefatos de testes
Testes de sistemas são realizados nos Ambientes de Desenvolvimento
Testes de Regressão são negligenciados ou não feitos
Testes de Regressão são negligenciados ou não feitos
Modelos de Maturidade de Testes
Os modelos de maturidade surgiram para avaliar e melhorar o nível de qualidade dos processos de testes aplicados numa organização desenvolvedora de software ou em um bureau de testes Avalia Atividades executadas Atividades executadas Métodos utilizados Define Papéis e responsabilidades
Modelos de Maturidade de Testes
Principais Modelos
Test Improvement Model (TIM)
Test Process Improvement (TPI)
Test Maturity Model (TMM)
Outros Modelos
Outros Modelos
Maturity Model for Automated Software Testing (MMAST)
Testing Assessment Programmer (TAP)
I.T.B.G. Testing Capability Maturity Model (TCMM)
Testability Support Model (TSM)
TIM: Test Improvement Model
Concebido por T. Ericsson A. Subotic S. Ursing Objetivos PrincipaisIdentificação do estado atual
Implementação de pontos fortes
Avaliação dos pontos fracos
Eliminar
Melhorar
Modelo baseado em 4 níveis
Baselining
Padronização dos documentos, métodos e políticas
TIM: Test Improvement Model
Cost-efectiveness
Detectar bugs desde o início do projeto
Treinamento
Reuso
Risk-lowering
Envolvimento no início do projeto
Gastos justificados
Gastos justificados
Análise de produtos
Métricas de produtos, processos e recursos
Análise e gerenciamento dos riscos
Comunicação com as partes dos projetos
Optimizing
Conhecimento e entendimento através de experimentação e modelagem
Melhoria contínua
Análise dos principais problemas
Cooperação com todas as partes do projeto
TPI: Test Process Improvement
É o modelo mais utilizado na Europa
Processo de teste
Importante
Difícil controle
Trabalha com 20 áreas do conhecimento
Estratégia de teste (Test Strategy)
Estratégia de teste (Test Strategy)
Modelo de ciclo de vida (Lyfe-cicle model)
Planejamento e estimativas (Estimation and Planning)
Etc.
As Áreas-chave podem ser classificadas em níveis de A – D
Maturidade >> Área (20) x Classificação (4)
Controlado
Eficiente
Relação entre Algumas
Áreas-chave e Níveis de Classificação
Nível daÁrea-Chave
A B C D
Áreas-Chave
Estratégia de Teste Elaboração de simples estratégias
para testes de alto nível. Por exemplo: Testes de Sistemas
Elaboração de estratégias combinadas para testes de alto nível
Elaboração de estratégias combinadas para testes de alto nível e
baixo nível Estratégias para todos os níveis de testes e combinação Modelos de Ciclo de Vida Planejamento Especificação Execução Planejamento Preparação Especificação Execução Finalização Momento de Envolvimento Na conclusão dos documentos base para os testes No início da construção dos documentos base para os testes No início da especificação dos requisitos No início do Projeto de desenvolvimento Planejamento e Estimativa Estimativa e planejamento resumidos Estimativa e planejamento baseados em dados históricos Técnicas de Especificação de Testes
Nível de Maturidade no TPI
Nível de Maturidade >> Área x Nível da Área-Chave
Controlado
Todo o processo é executado de acordo com uma estratégia de testes, técnicas de especificação de casos de testes são utilizadas, defeitos são registrados e reportados. O testware (artefatos, ferramanetas, etc.) e o ambiente de testes são bem controlados.
ambiente de testes são bem controlados.
Eficiente
A automação do processo de testes pode ser uma forma de alcançar a eficiência.
Em otimização
TMM: Test Maturity Model
Illinois Institute of Technology
Melhoria de processos de testes
Ilene Burnstein
C. R. Carlson
Guia para melhoria de processos de testes F o n te : C o st a , C ., 2 0 0 7 F o n te : C o st a , C ., 2 0 0 7 de testes Inspirado no CMM 5 níveis de maturidade Objetivos Áreas de processos Boas práticas F o n te : C o st a , C ., 2 0 0 7
TMM: Meta-modelo
Níveis
Maturidade de Testes Objetivos de Maturidade Sub-objetivos de Maturidade Indicam Contêm Suportados por Atingidos por Atividades / Responsabilidades Organizadas em Visões Críticas Desenvolvedor Testador Implementação e Adaptação Organizacional Gerente Usuário Cliente ImplicamTMM: Níveis
Nível 4: Management and Measurement
Nível 5: Opt./Defect Prevention and QC
Teste = reduzir risco de não funcionar conforme as métricas
Teste = evitar defeitos
Nível 1: Initial
Nível 2: Phase Definition
Nível 3: Integration
CAOS Teste == debug
Teste = sw funciona
TMM: Nível 1
Initial Processo de testes Caótico e indefinido Parte da depuração ObjetivoMostrar que o sistema é executável
Não há garantia de qualidade
Pode não satisfazer necessidades
Pode ser instável
TMM: Nível 2
Phase Definition Processo de testes Definido claramente Separado da depuração ObjetivoSistema de acordo com os requisitos
Processo de testes se inicia tarde
Inexistência de equipe de testes
Áreas de processos
Políticas e objetivos de testes
Planejamento de testes
Técnicas e métodos de testes
TMM: Nível 3
Integration
Processo de testes
Integrado ao ciclo de vida
Planejamento de testes no início
Estratégia de testes baseadas em
gerenciamento de riscos
Fonte: Vasconcelos, A., 2007
Objetivo
Demonstrar que o produto não funciona
Existência de equipe de testes
Áreas de processos
Equipe de testes
Programa de treinamento de testes
Ciclo de vida dos testes e integração
Controle e monitoramento
TMM: Nível 4
Management and Measurement
Processo de testes
Definido, fundamentado e mensurável
Revisões e inspeções durante todo o ciclo de vida
Possui programa de coleta de métricas
Objetivo
Verificar a corretude do produto conforme métricas
Casos de teste armazenados, gerenciados e compartilhados
Áreas de processo
Revisões por pares
Métricas de testes
TMM: Nível 5
Optimization/Defect Prevention and Quality Control
Processo de testes
Completamente definido
Capaz de controlar os custos e eficácia dos testes
Objetivo
Impedir defeitos
Métodos e técnicas otimizados
Contínua melhoria no processo de testes
Através de coleta e análise de métricas de qualidade
Área de processos
Prevenção de defeitos
Controle de qualidade
Modelos de Avaliação
Objetivos
Medir qualidade atual do processo de testes
Obter dados quantitativos
Número de testes
Tempo de execução
Etc.
Verificar boas práticas contempladas pelo processo
Verificar boas práticas contempladas pelo processo
TIM: Modelo de Avaliação
Modelo e avaliação: Questionário
Entrevistas com pessoas chave
Questões : Sim/Não
Discussão sobre ausência de resposta
Análise
Identificação do perfil de maturidade
Identificação de melhorias
Sugestões de melhoria
Análise da solução proposta
Alinhamento com necessidade da organização
Custo vs. Tempo vs. Recursos
Apresentação
TPI: Modelo de Avaliação
Artefatos para Avaliação
Checkpoints/Checklists
Requisitos de cada nível
Perguntas que devem ser respondidas
Classificam o processo de forma objetiva
Matriz de Maturidade
Relação entre áreas de conhecimento
e níveis
Controlado
Defeitos registrados/reportados
Especificação de casos de teste definida
Ambiente e testware organizados
Eficiente
Automação dos testes
Otimizado
Melhoria continua
Evolução
TMM-AM: Modelo de Avaliação
TMM-AM
Três componentes principais
Procedimento de avaliação
Instrumentos de avaliação
Critérios de seleção e treinamento do time de avaliação
Procedimento de avaliação
Passos para guiar o time de avaliação
Execução correta da avaliação
Coleta, organização e análise de dados de avaliação
Percepção do nível da empresa no modelo TMM
TMM-AM: Modelo de Avaliação
Instrumentos de avaliação
Questionário (8 partes):
Instruções de uso
Questões sobre o uso ferramentas de teste
Questões sobre objetivos da empresa
Outros
Entrevistas
Inspeções de documentos
Apresentações
Critérios de seleção e treinamento do time de avaliação
4 a 8 pessoas
Pessoas bem relacionadas, motivadas e experientes
Treinamento
Interpretação dos dados
Modelo TMM
TMM-AM: Modelo de Avaliação
Ferramentas:
Controle de dados de avaliação
Matriz de rastreabilidade
Maior confiabilidade para a avaliação
Roteiro da avaliação
Análise Comparativa
TMM
TIM
TPI
Abordagem
Conceitual
Prática
Prática
Níveis
5
5
14
Níveis
5
5
14
Áreas de
Conhecimento
14
5
20
Avaliação
Questionário
Questionário
Checkpoint e
Checklist
Fundamentos da
Avaliação
CMM, ISO
SPICE
Experiência
Prática
Experiência
Prática
Fonte: Costa, C. 2007Conclusões
Sistemas de software
Importante papel na sociedade
Necessário ter qualidade
Produto Processo TMM O mais consolidado O mais consolidado Complementar ao CMM Foco
Avaliação e melhoria do processo de testes
Aplicabilidade prática
Diversas empresas (Motorola, Accenture)
Permite processos de testes mais eficazes e eficientes
Testes
Profissional especializado
Parte integrada ao processo de desenvolvimento de software
Referências
ALVES, G. de S.. Modelo de Maturidade em Testes com Foco em Ambientes de Testes Heterogêneos. 2007.
SWINKELS, R.. A Comparison of TMM and Other Test Process Improvement. 2000.
STAAB, T. C.. Improving the Test Process – Looking at the Test Process – Getting Started. 2003.
PROFESSIONAL TESTER. Guidelines for Testing Maturity. Volume Three, Issue Nº 1. 2002.
BURNSTEIN, I., SUWANASSART, T., CARLSON, R.. Developing a Testing Maturity Model for Software Test Process Evaluation and Improvement. 1996.
LIEBMAN, A., PAES, F., MENEZES, H.. Assessment of the Integration Test Execution Team According to Level II of the Testing Maturity Model – TMM. 2006.
JÚNIOR, N.. An Assessment of CIn-BTC Automation Test Process According to Test Maturity Model – TMM. 2005.
Referências
OLIVEIRA, M. E.. Avaliação do Processo de Testes do RUP em relação ao Nível 2 do Modelo de Referência TMM – Test Maturity Model. 2006.
BURNSTEIN I.; Pratical Software Testing; 2002
SALVIANO, Uma Metodologia para testes de software no contexto da melhoria do processo, 2003.
SOMMERVILLE, I. Engenharia de Software. 6 ª ed. São Paulo, Addison Wesley, 2003 COSTA, C., CASTRO, C., CARVALHO, G., RODRIGUES, H.. Modelos de Maturidade de
Testes, 2007