Agenda
3
Introdução a Testes Definição Conceitos (Abordagens de Teste,Estágios de Teste,Tipos de Testes) Processo de Testes x Processo de Desenvolvimento de Software Cenários Comuns
Modelos de Maturidade de Testes Motivação Test Improvement Model (TIM) Test Process Improvement (TPI) Test Maturity Model (TMM)
Análise Comparativa TIM x TPI x TMM
Conclusões
Definição
5
“Testing is the process of executing a program with the intent of finding errors.” [Myers,2004]
Abordagens de Teste
6
Estrutural (caixa-branca): casos de testes são gerados com base na análise das partes do código que devem ser executadas
• Funcional (caixa-preta): casos de testes são gerados com base na análise das entradas x saídas
Estágios de Teste
7
Teste de unidade: explora a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente (ex: uma função, um componente).
Teste de integração: visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.
Teste de sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final (ambiente operacional similar ao de produção).
Teste de aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema.
Tipos de Testes
8
Funcional Recuperação de Falhas Controle de Acesso Integridade dos Dados Performance Carga e Stress Configuração e Portabilidade Instalação e Desinstalação Usabilidade Regressão
Processo de Testes x Processo de Desenvolvimento de Software
9
Modelo V - Paralelismo entre as atividades de desenvolvimento e teste de software (CRAIG e JASKIEL, 2002)
Cenários Comuns
10
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
Homologações são aceitas com ressalvas
Motivação
12
Quando um produto é lançado com alto grau de defeitos, o impacto pode ser muito grande para a imagem da organização.
Para aumentar a qualidade de seus produtos, as empresas investem em melhorias no processo de desenvolvimento de software.
Para verificar e validar os requisitos impostos pelo cliente, testes de software devem ser realizados ao longo do ciclo de desenvolvimento do produto.
As empresas elaboram um Processo de Teste.
Para adequar o processo às boas práticas do teste é necessário adotar um modelo de melhoria que atenda a área de teste de software.
Modelos de Maturidade de Testes
13
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.
Avalia Atividades executadas Métodos utilizados
Define Papéis e responsabilidades Melhores práticas de testes
Principais Modelos
14
Test Improvement Model (TIM) Test Process Improvement (TPI) Test Maturity Model (TMM)
TIM: Test Improvement Model
15
Objetivos Principais Identificação do estado atual da prática nas áreas chaves Guia para Implementação de pontos fortes Avaliação dos pontos fracos
Eliminar Melhorar
Modelo baseado em 4 níveis Possui 5 áreas de conhecimento
Organisation Planning and Tracking Testware Test cases Reviews
Cada área de conhecimento consiste de atividades que são distribuídas nos 4 níveis.
TIM: Estrutura
16
TIM: Níveis
17
Níveis Estratégias para alcançar os objetivos de cada nível
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
Risk-lowering Envolvimento no início do projeto 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
Cost-efectiveness Detectar bugs desde o início do projeto Treinamento Reuso
Baselining Padronização dos documentos, métodos e políticas Análise e classificação dos problemas
TIM: Modelo de Avaliação
18
Explicação sobre o modelo e sobre o processo de avaliação Entrevistas com pessoas chave
Modelo e Avaliação: Questionário 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 da Estratégia geral de melhoria
TPI: Test Process Improvement
19
É o modelo mais utilizado na Europa
Possui 20 áreas-chave de conhecimento
As áreas-chave podem ser classificadas em níveis de maturidade. Classificação de A – D
Existem algumas dependências entre os níveis de diferentes áreas-chave. Test Maturity Matrix
Maturidade >> Área (20) x Classificação (4) Controlado Eficiente Otimizado
TPI: Estrutura
20
TPI: Níveis
21
Áreas-Chave / Níveis A B C D
Estratégia de Teste
Elaboração de simples estratégias para testes de alto nível. Por exemplo: para 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 de baixo nível
Estratégia 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
Técnicas informais Técnicas formais
... ...
TPI: Modelo de Avaliação
22
Artefatos para Avaliação Checkpoints
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: Test Maturity Model
23
Illinois Institute of Technology
Modelo de maturidade focado em testes mais conhecido Guia para melhoria de processos de testes
Baseado no CMM → CMMI 5 níveis de maturidade
Objetivos Áreas de processos Boas práticas
TMM: Estrutura
24
TMM: Níveis
25
Níveis Descrição dos Objetivos
Otimização, prevenção de defeitos e controle de qualidade
Aplicar processo de prevenção de defeitos Controlar a qualidade Otimizar o Processo de Teste
Gestão e Medições Estabelecer um programa amplo de revisão Estabelecer um programa amplo de medições de teste Evoluir a qualidade do Software
Integração
Estabelecer uma organização de testes de software Integrar o teste no ciclo de vida do software. Controlar e monitorar o Processo de Teste Estabelecer um programa de treinamento
Fase de Definição Desenvolver os objetivos do teste Iniciar o processo de planejamento do teste Institucionalizar técnicas e métodos básicos de teste
Inicial Teste normalmente feito pela equipe de desenvolvimento de forma ad-hoc.
TMM: Nível 1
26
Inicial 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
Inexistência de equipe de testes e ferramentas de teste Não há áreas de processos
TMM: Nível 2
27
Fase de Definição Processo de testes
Definido claramente Separado da depuração
Objetivo Sistema de acordo com os requisitos
Processo de testes se inicia tarde (fase de projeto / codificação) 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
28
Integração Processo de testes
Integrado ao ciclo de vida do software Planejamento de testes no início Estratégia de testes baseadas em gerenciamento de riscos
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 Integração do teste np ciclo de vida do software Controle e monitoramento
TMM: Nível 4
29
Gestão e Medições 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 Reuso e teste de regressão
Áreas de processo Revisões por pares Métricas de testes Avaliação de qualidade do software
TMM: Nível 5
30
Otimização, prevenção de defeitos e controle de qualidade Processo de testes
Completamente definido Capaz de controlar os custos e eficácia dos testes
Objetivo Prevenir defeitos
Métodos e técnicas otimizados Foco contínuo na 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
TMM-AM: Modelo de Avaliação
31
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
32
Instrumentos de avaliação Questionário:
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
Análise Comparativa
34
TMM TIM TPI
Níveis 5 4 4
Áreas de Conhecimento 14 5 20
Avaliação Questionário Questionário Checkpoint
Fundamentos da Avaliação
CMM, ISOSPICE
ExperiênciaPrática
ExperiênciaPrática
Conclusões
36
Sistemas de software Importante papel na sociedade Necessário ter qualidade
Produto Processo
TMM 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
37
ANDERSIN, J.. TPI – A Model for Test Process Improvement .2004.
BURNSTEIN, I., SUWANASSART, T., CARLSON, R.. Developing a Testing Maturity Model for Software Test Process Evaluation and Improvement. 1996.
ERICSON, T., SUBOTIC, A., URSING, S.. TIM – A Test Improvement Model.
REFSON, A., BEZERRA, C., COUTINHO, E., FAÇANHA, F.. Análise de Aderência de um Processo de Teste ao TMM.
MYERS, G.. The Art of Software Testing. 2 ª ed. John Wiley, 2004.
SALVIANO, Uma Metodologia para Testes de Software no Contexto da Melhoria do Processo, 2003.
STEN Journal. Guidelines for Testing Maturity. Vol. IV, 2006.
VASCONCELOS, A.. Modelos de Maturidade de Testes, 2007.