Aula05.ppt [Modo de Compatibilidade] - ufpa.br · Políticas e objetivos de testes Planejamento de...

34
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 [email protected] 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á

Transcript of Aula05.ppt [Modo de Compatibilidade] - ufpa.br · Políticas e objetivos de testes Planejamento de...

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

[email protected]

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

Processo de Testes x Processo de Desenvolvimento de SoftwareFonte: Vasconcelos, A., 2007

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