500 likes | 818 Views
CIn-UFPE. Modelos de Maturidade de Testes. Juliana Mafra – jndm@cin.ufpe.br Novembro 2008. Agenda. 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
E N D
CIn-UFPE Modelos de Maturidade de Testes Juliana Mafra – jndm@cin.ufpe.br Novembro 2008
Agenda 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 3
CIn-UFPE Introdução a Testes Juliana Mafra – jndm@cin.ufpe.br Novembro 2008 4
Definição • “Testing is the process of executing a program with the intent of finding errors.” [Myers,2004] 5
Abordagens de Teste • 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 6
Estágios de Teste • 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. 7
Tipos de Testes • 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 8
Processo de Testes x Processo de Desenvolvimento de Software Modelo V - Paralelismo entre as atividades de desenvolvimento e teste de software (CRAIG e JASKIEL, 2002) 9
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 • Homologações são aceitas com ressalvas 10
CIn-UFPE Modelos de Maturidade de Testes Juliana Mafra – jndm@cin.ufpe.br Novembro 2008 11
Motivação • 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. 12
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. • Avalia • Atividades executadas • Métodos utilizados • Define • Papéis e responsabilidades • Melhores práticas de testes 13
Principais Modelos • Test Improvement Model (TIM) • Test Process Improvement (TPI) • Test Maturity Model (TMM) 14
TIM: Test Improvement Model • 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. 15
TIM: Níveis 17
TIM: Modelo de Avaliação • 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 18
TPI: Test Process Improvement • É 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 19
TPI: Níveis 21
TPI: Modelo de Avaliação • 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 22
TMM: Test Maturity Model • IllinoisInstituteofTechnology • 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 23
TMM: Níveis 25
TMM: Nível 1 • 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 26
TMM: Nível 2 • 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 27
TMM: Nível 3 • 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 28
TMM: Nível 4 • 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 29
TMM: Nível 5 • 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 30
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 31
TMM-AM: Modelo de Avaliação • 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 32
CIn-UFPE Análise Comparativa Juliana Mafra – jndm@cin.ufpe.br Novembro 2008 33
CIn-UFPE Conclusões Juliana Mafra – jndm@cin.ufpe.br Novembro 2008 35
Conclusões • 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 36
Referências 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. 37