Upload
vucong
View
212
Download
0
Embed Size (px)
Citation preview
CBCC – Bacharelado em Ciência da ComputaçãoCBSI – Bacharelado em Sistemas de Informação
Modelos de Maturidade de Testes de Software
Prof. Dr. Sandro Ronaldo Bezerra OliveiraProf. Dr. Sandro Ronaldo Bezerra Oliveira
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)
� Test Maturity Model (TMM)
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
Conclusões
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
� Construir/Manter imagem da organização
Conceitos 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 Acesso
� Integridade 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
� Homologações são aceitas com ressalvas
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
� Melhores práticas de testes
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)
� Test Organization Maturity Model (TOM)
TIM: Test Improvement Model
� Concebido por
� T. Ericsson
� A. Subotic
� S. Ursing
� Objetivos Principais
� Identificaçã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
� Análise e classificação dos problemas
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
� Presente em todas as fases do ciclo de desenvolvimento
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
� Otimizado
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
PlanejamentoEspecificaçãoExecução
PlanejamentoPreparaçãoEspecificaçãoExecuçãoFinalizaçã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
Técnicas informais Técnicas formais
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
� O objetivo deste nível é garantir uma melhoria contínua.
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
Fonte: Costa, C., 2007
Fonte: Costa, C., 2007
de testes
� Inspirado no CMM
� 5 níveis de maturidade� Objetivos
� Áreas de processos
� Boas práticas
Fonte: Costa, C., 2007
TMM: Meta-modelo
Níveis
Maturidadede Testes
Objetivos de Maturidade
Sub-objetivos de Maturidade
Indicam Contêm
Suportados por
Atingidos por
Atividades / Responsabilidades
Organizadas em
Visões Críticas
DesenvolvedorTestador
Implementação eAdaptação Organizacional
Gerente UsuárioCliente
Implicam
TMM: 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
Teste = sw NÃO funciona
TMM: Nível 1
� Initial
� Processo de testes� Caótico e indefinido
� Parte da depuração
� Objetivo� Mostrar que o sistema é executável
� Não há garantia de qualidade
� Pode não satisfazer necessidades
� Pode ser instável
� Não há áreas de processos
TMM: Nível 2
� Phase Definition
� Processo de testes� Definido claramente
� Separado da depuração
� Objetivo� Sistema 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
� Ambiente 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 riscosFonte: 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
Fonte: Vasconcelos, A., 2007
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
� Avaliação de qualidade de software
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
� Otimização do processo de testes
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
� Definir (perceber) o nível de maturidade do processo/organização
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
� Estratégia geral combinada
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
Fonte: Costa, C., 2007
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
� Criação de planos de melhoria para o processo de teste
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
� Técnicas de entrevista e de criação de relatórios
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
Fonte: Costa, C. 2007
Análise Comparativa
TMM TIM TPI
Abordagem Conceitual Prática Prática
Níveis 5 5 14Níveis 5 5 14
Áreas de Conhecimento
14 5 20
Avaliação Questionário QuestionárioCheckpoint e
Checklist
Fundamentos da Avaliação
CMM, ISO
SPICE
Experiência
Prática
Experiência
Prática
Fonte: Costa, C. 2007
Conclusõ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� Preocupação com maturidade de testes
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
VASCONCELOS, A.. Modelos de Maturidade de Testes, 2007