U NIVERSIDADE F EDERAL DE G OIÁS I NSTITUTO DE I NFORMÁTICA D IANNE D IAS S ILVA Melhoria do Processo de Teste para as Micro e Pequenas Empresas Brasileiras Goiânia 2015 TERMO DE CIÊNCIA E DE AUTORIZAÇÃO PARA DISPONIBILIZAR AS TESES E DISSERTAÇÕES ELETRÔNICAS (TEDE) NA BIBLIOTECA DIGITAL DA UFG Na qualidade de titular dos direitos de autor, autorizo a Universidade Federal de Goiás (UFG) a disponibilizar, gratuitamente, por meio da Biblioteca Digital de Teses e Dissertações (BDTD/UFG), sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o documento conforme permissões assinaladas abaixo, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data. 1. Identificação do material bibliográfico: [ X ] Dissertação [ ] Tese 2. Identificação da Tese ou Dissertação Autor (a): Dianne Dias Silva E-mail: [email protected] Seu e-mail pode ser disponibilizado na página? [ X ] Sim [ ] Não Vínculo empregatício do autor Nenhum Coordenação de Aperfeiçoamento Agência de fomento: Sigla: CAPES de Pessoal de Nível Superior País: Brasil UF: GO CNPJ: 00889834/0001-08 Título: Melhoria do Processo de Teste para as Micro e Pequenas Empresas Brasileiras Teste de Software, Processos de Teste, Modelo de Maturidade, Micro e Palavras-chave: Pequenas Empresas de Desenvolvimento de Software, MPT-MPE.BR Test Process Improvement for Micro and Small Brazilian Título em outra língua: Enterprises Software Testing, Test Processes, Maturity Model, Micro Palavras-chave em outra língua: and Small Software Development Enterprises, MPTMPE.BR Área de concentração: Ciência da Computação Data defesa: (dd/mm/aaaa) 25/05/2015 Programa de Pós-Graduação: Mestrado em Ciência da Computação Orientador (a): Leandro Luís Galdino de Oliveira E-mail: [email protected] Coorientador (a):* Edmundo Sérgio Spoto E-mail: [email protected] *Necessita do CPF quando não constar no SisPG 3. Informações de acesso ao documento: Concorda com a liberação total do documento [ X ] SIM [ ] NÃO1 Havendo concordância com a disponibilização eletrônica, torna-se imprescindível o envio do(s) arquivo(s) em formato digital PDF ou DOC da tese ou dissertação. O sistema da Biblioteca Digital de Teses e Dissertações garante aos autores, que os arquivos contendo eletronicamente as teses e ou dissertações, antes de sua disponibilização, receberão procedimentos de segurança, criptografia (para não permitir cópia e extração de conteúdo, permitindo apenas impressão fraca) usando o padrão do Acrobat. ________________________________________ Assinatura do (a) autor (a) 1 Data: 25/07/2015 Neste caso o documento será embargado por até um ano a partir da data de defesa. A extensão deste prazo suscita justificativa junto à coordenação do curso. Os dados do documento não serão disponibilizados durante o período de embargo. D IANNE D IAS S ILVA Melhoria do Processo de Teste para as Micro e Pequenas Empresas Brasileiras Dissertação apresentada ao Programa de Pós–Graduação do Instituto de Informática da Universidade Federal de Goiás, como requisito parcial para obtenção do título de Mestre em Ciência da Computação. Área de concentração: Ciência da Computação. Orientador: Prof. Dr. Leandro Luís Galdino de Oliveira Co-Orientador: Prof. Dr. Edmundo Sérgio Spoto Goiânia 2015 Ficha catalográfica elaborada automaticamente com os dados fornecidos pelo(a) autor(a), sob orientação do Sibi/UFG. Dias Silva, Dianne Melhoria do Processo de Teste para as Micro e Pequenas Empresas Brasileiras [manuscrito] / Dianne Dias Silva. - 2015. 132 f.: il. Orientador: Prof. Dr. Leandro Luís Galdino de Oliveira; co-orientador Dr. Edmundo Sérgio Spoto. Dissertação (Mestrado) - Universidade Federal de Goiás, Instituto de Informática (INF) , Programa de Pós-Graduação em Ciência da Computação, Goiânia, 2015. Bibliografia. Apêndice. Inclui siglas, abreviaturas, gráfico, tabelas, lista de figuras, lista de tabelas. 1. Teste de Software. 2. Processos de Teste. 3. Modelo de Maturidade. 4. Micro e Pequenas Empresas de Desenvolvimento de Software. 5. MPT-MPE.BR. I. Luís Galdino de Oliveira, Leandro, orient. II. Sérgio Spoto, Edmundo, co-orient. III. Título. Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador(a). Dianne Dias Silva Graduou-se em Ciência da Computação na PUC Goiás – Pontifícia Universidade Católica de Goiás. Especializou-se em MBA Gestão de Software no Centro Universitário de Goiás – Uni-Anhanguera. Atua na área de Teste de Software desde 2008. Durante o Mestrado, na UFG – Universidade Federal de Goiás, foi bolsista da CAPES – Coordenação de Aperfeiçoamento de Pessoal de Nível Superior. Atualmente é professora substituta no INF – Instituto de Informática da UFG. Aos meus pais Sidney e Vânia que, com muito amor e carinho, me apoiram e não mediram esforços para que eu chegasse até essa etapa da minha vida. Agradecimentos Primeiramente a Deus, por ter me dado forças suficientes para suportar os obstáculos enfrentados ao longo do mestrado e possibilitar que mais esse desafio em minha vida fosse vencido. Agradeço aos meus pais, Sidney José da Silva e Vânia Luzia Ribeiro Dias, pela paciência e compreensão nos momentos de tribulação, pelo amor e carinho que sempre me deram e pelo apoio em todos os sentidos. Sem eles, eu não teria conseguido chegar até aqui. Ao meu orientador Prof. Dr. Leandro Luís Galdino de Oliveira e coorientador Prof. Dr. Edmundo Sérgio Spoto, por terem me aceito como aluna de mestrado e pela confiança em mim depositada. Ao Prof. Dr. Sérgio Teixeira de Carvalho, que me incentivou a submeter um artigo referente a esse trabalho no XII Workshop de Teses e Dissertações em Qualidade de Software cuja publicação ocorreu durante o ano de 2014 no XIII Simpósio Brasileiro de Qualidade de Software. Ao Prof. Dr. Celso Gonçalves Camilo Junior, pela minha inclusão no projeto Consultoria Tecnológica - SEBRAETEC - 63/2011 no qual pude contactar e acompanhar a implantação do Método Freetest nas empresas que participaram deste trabalho. Às empresas Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas, por se disporem a me atender prontamente em relação aos questionários aplicados e contribuírem com este trabalho. E, à CAPES, pelo apoio financeiro concedido à mim através de uma bolsa de estudos considerada indispensável para a realização deste trabalho. “Ter desafios é o que faz a vida interessante e superá-los é o que faz a vida ter sentido.” Joshua J. Marine, Greatest Inspirational Quotes: 365 days to more Happiness, Success and Motivation. Resumo Silva, D. D.. Melhoria do Processo de Teste para as Micro e Pequenas Empresas Brasileiras. Goiânia, 2015. 132p. Dissertação de Mestrado. Instituto de Informática, Universidade Federal de Goiás. Os produtos de software desenvolvidos pelas micro e pequenas empresas brasileiras têm se destacado no mercado mundial de TI que em sua maioria estão dedicadas ao desenvolvimento, à produção, à distribuição de software e à prestação de serviços. No entanto, os novos produtos de software disponibilizados no mercado falham devido a maioria dessas micro e pequenas empresas estarem mais centradas na qualidade do produto em vez dos processos adotados no seu desenvolvimento. Apesar dessas organizações perceberem a relevância de melhorar os seus processos e suas técnicas de trabalho, faltam recursos e conhecimento para que essa prática seja aplicada. Nas últimas décadas, a crescente demanda e a complexidade dos produtos de software fizeram com que as micro e pequenas empresas de desenvolvimento de software se preocupassem e, investissem cada vez mais na garantia da qualidade para prover a melhoria contínua das técnicas, dos critérios, dos métodos e das ferramentas empregadas na construção dos produtos de software. Através de algumas iniciativas nacionais de modelos de maturidade e normas internacionais tais como, o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2 é possível satisfazer as necessidades e expectativas dos usuários desses produtos. Porém, a implementação e a institucionalização do processo de teste estruturado nesses modelos de maturidade e, nessa norma são onerosas e complexas para as micro e pequenas empresas de desenvolvimento de software. Neste trabalho foi desenvolvido um modelo de maturidade considerando as limitações das micro e pequenas empresas de desenvolvimento de software, e uma abordagem para implementar os processos de teste definidos nesse modelo. Palavras–chave Teste de Software, Processos de Teste, Modelo de Maturidade, Micro e Pequenas Empresas de Desenvolvimento de Software, MPT-MPE.BR. Abstract Silva, D. D.. Test Process Improvement for Micro and Small Brazilian Enterprises. Goiânia, 2015. 132p. MSc. Dissertation. Instituto de Informática, Universidade Federal de Goiás. The software products developed by micro and small brazilian enterprises have stood out on the world IT market which mostly are dedicated to the development, the production, the software distribution and the provision of services. However, new software products available on the market fail because most of these micro and small enterprises are more focused on product quality rather than the processes used in its development. Despite these organizations realize the importance of improving their processes and their working techniques, lack resources and knowledge so that this practice is applied. In recent decades, increasing demand and complexity of software products made that micro and small software development enterprises worry and invest more in quality assurance to provide continuous improvement of the techniques, the criteria, the methods and the tools used in the construction of software products. Through some national initiatives maturity models and international standards such as the Freetest Method, the MPT.BR and the ISO/IEC/IEEE 29119-2 can satisfy the needs and expectations of users of these products. However, the implementation and institutionalization of structured testing process maturity in these models and this standard are costly and complex for micro and small software development enterprises. This work developed a maturity model considering the limitations of micro and small software development enterprises, and an approach to implement the test procedures defined in this model. Keywords Software Testing, Test Processes, Maturity Model, Micro and Small Software Development Enterprises, MPT-MPE.BR. Sumário Lista de Figuras 11 Lista de Tabelas 13 Lista de Abreviaturas e Siglas 14 1 16 16 18 19 20 20 Introdução 1.1 1.2 1.3 1.4 1.5 2 Contexto Motivação e Justificativa Objetivos Metodologia Organização do Trabalho Fundamentação Teórica 2.1 Teste de Software 2.1.1 2.1.2 Fases de Teste Critérios de Teste Técnica Funcional (Caixa Preta) Técnica Estrutural (Caixa Branca) Técnica Baseada em Defeitos 2.2 Processo de Teste de Software 2.2.1 MPT.BR Modelo de Referência 2.2.2 ISO/IEC/IEEE 29119 ISO/IEC/IEEE 29119-2 2.2.3 Método Freetest Manual do Modelo 2.3 2.4 3 Trabalhos Relacionados Considerações Finais Construção do Modelo de Maturidade MPT-MPE.BR 3.1 3.2 3.3 3.4 3.5 3.6 Identificação de Melhorias no Método Freetest Proposta de Melhorias do Método Freetest 3.2.1 Proposta Elaborada Com Base no MPT.BR 3.2.2 Proposta Elaborada Com Base na ISO/IEC/IEEE 29119-2 Questionário sobre as Melhorias do Método Freetest Eliminação de Ambiguidades na Proposta Avaliada e no Método Freetest Definição do MPT-MPE.BR Considerações Finais 22 22 23 24 24 25 25 26 28 30 31 31 33 34 35 37 38 38 40 43 47 49 51 53 56 4 Modelo de Maturidade MPT-MPE.BR 4.1 4.2 4.3 4.4 5 Níveis de Maturidade Áreas de Processo 4.2.1 Planejamento e Controle do Teste (PCT) 4.2.2 Especificação e Execução do Teste (EET) 4.2.3 Controle dos Requisitos de Teste (CRT) 4.2.4 Encerramento do Teste (EDT) 4.2.5 Garantia da Qualidade do Teste (GQT) 4.2.6 Estruturação do Teste na Organização (ETO) 4.2.7 Execução do Teste de Aceitação (ETA) 4.2.8 Execução do Teste Estático (ETE) 4.2.9 Capacitação da Equipe de Teste (CET) 4.2.10 Execução Automatizada do Teste (EAT) Abordagem de Implementação do MPT-MPE.BR Considerações Finais Conclusão e Trabalhos Futuros Referências Bibliográficas A Organização do MPT.BR, da ISO/IEC/IEEE 29119-2 e do Método Freetest A.0.1 A.1 A.2 B MPT.BR ISO/IEC/IEEE 29119-2 Método Freetest Composição do Questionário 58 58 59 59 65 67 68 69 70 72 74 75 76 78 83 84 87 93 93 99 101 104 C Resultados do Questionário: Parte 1 112 D Resultados do Questionário: Parte 2 122 Lista de Figuras 27 27 32 32 2.1 2.2 2.3 2.4 Integração do Processo de Desenvolvimento e de Teste do Software [14]. Ciclo de Vida do Processo de Teste do Software [63]. Multicamadas dos Processos de Teste da ISO/IEC/IEEE 29119-2 [43]. Processos de Teste da ISO/IEC/IEEE 29119-2 [43]. C.1 C.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9 C.10 C.11 C.12 Adoção das Práticas Específicas do MPT.BR. 113 Adoção das Práticas Específicas do MPT.BR: GPT. 113 Adoção das Práticas Específicas do MPT.BR: PET. 114 Adoção das Práticas Específicas do MPT.BR: GRT. 114 Adoção das Práticas Específicas do MPT.BR: FDT. 115 Adoção das Práticas Específicas do MPT.BR: GDQ. 115 Adoção das Práticas Específicas do MPT.BR: OGT. 116 Adoção das Práticas Específicas do MPT.BR: TDA. 116 Adoção das Práticas Específicas do MPT.BR: TRE. 117 Adoção das Práticas Específicas do MPT.BR: AET. 117 Adoção das Atividades da ISO/IEC/IEEE 29119-2. 118 Adoção das Atividades da ISO/IEC/IEEE 29119-2: Processo Organizacional do Teste. 118 Adoção das Atividades da ISO/IEC/IEEE 29119-2: Processos de Gerenciamento do Teste. 119 Adoção das Atividades da ISO/IEC/IEEE 29119-2: Processos de Teste Dinâmico. 119 Grau de Relevância das Práticas Específicas do MPT.BR. 120 Definição do Alto Grau de Relevância das Práticas Específicas do MPT.BR. 120 Grau de Relevância das Atividades da ISO/IEC/IEEE 29119-2. 121 Definição do Alto Grau de Relevância das Atividades da ISO/IEC/IEEE 29119-2. 121 C.13 C.14 C.15 C.16 C.17 C.18 D.1 D.2 D.3 D.4 D.5 D.6 D.7 D.8 D.9 Custo de Implementação das Práticas Específicas do MPT.BR. Práticas Específicas Responsáveis pelo Médio Custo de Implementação do MPT.BR. Custo de Implementação das Atividades da ISO/IEC/IEEE 29119-2. Práticas Específicas Responsáveis pelo Baixo Custo de Implementação da ISO/IEC/IEEE 29119-2. Pontuação das Práticas Específicas do MPT.BR. Pontuação das Práticas Específicas do MPT.BR: GPT. Pontuação das Práticas Específicas do MPT.BR: PET. Pontuação das Práticas Específicas do MPT.BR: GRT. Pontuação das Práticas Específicas do MPT.BR: FDT. 123 124 124 125 125 126 126 127 127 D.10 D.11 D.12 D.13 D.14 D.15 D.16 Pontuação das Práticas Específicas do MPT.BR: GDQ. Pontuação das Práticas Específicas do MPT.BR: OGT. Pontuação das Práticas Específicas do MPT.BR: TDA. Pontuação das Práticas Específicas do MPT.BR: TRE. Pontuação das Práticas Específicas do MPT.BR: AET. Pontuação das Atividades da ISO/IEC/IEEE 29119-2. Pontuação das Atividades da ISO/IEC/IEEE 29119-2: Processo Organizacional do Teste. D.17 Pontuação das Atividades da ISO/IEC/IEEE 29119-2: Processos de Gerenciamento do Teste. D.18 Pontuação das Atividades da ISO/IEC/IEEE 29119-2: Processos de Teste Dinâmico. 128 128 129 129 130 130 131 131 132 Lista de Tabelas 1.1 Classificação das Organizações Brasileiras [5]. 16 2.1 2.2 Áreas de Processo do MPT.BR [66]. Áreas de Processo do Método Freetest [41]. 29 33 3.1 3.2 39 3.7 3.8 Mapeamento das Equivalências do Método Freetest com o MPT.BR. Mapeamento das Equivalências do Método Freetest com a ISO/IEC/IEEE 29119-2. Sugestões de Melhorias do Método Freetest com base no MPT.BR. Sugestões de Melhorias do Método Freetest com base na ISO/IEC/IEEE 29119-2. Critérios de Seleção das MPEs de Desenvolvimento de Software Goianas. Mapeamento das Equivalências da Proposta de Melhorias do Método Freetest. Mapeamento das Equivalências do Método Freetest. Composição do MPT-MPE.BR. 4.1 4.2 Áreas de Processo do MPT-MPE.BR. Organização dos Níveis 1 e 2 do MPT-MPE.BR em Estágios e, Categorias. 59 82 3.3 3.4 3.5 3.6 39 41 42 49 51 52 54 Lista de Abreviaturas e Siglas AT Rs ASPE/MSC AET AQP BDD BPM CET CMM CMMI CASE CRT CEP EDT ES EAP EET ET O EAT ETA ET E FDT FAPEG FINEP GDQ GQT GPT GRT GDD GDF GFC IR INF ISO IEC IEEE INC JTC MAT MPEs Atividades, Tarefas e Responsabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Approach for Software Establishment in Micro and Small Companies . . 35 Automação da Execução do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Avaliação da Qualidade do Produto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Behavior Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Business Process Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Capacitação da Equipe de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Capability Maturity Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Capability Maturity Model Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Computer-Aided Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Controle dos Requisitos de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Controle Estatístico do Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Encerramento do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Environment Set-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Estrututra Analítica do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Especificação e Execução do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Estruturação do Teste na Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Execução Automatizada do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Execução do Teste de Aceitação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Execução do Teste Estático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Fechamento do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Fundação de Amparo à Pesquisa do Estado de Goiás . . . . . . . . . . . . . . . . . 33 Financiadora de Estudos e Projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Garantia da Qualidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Garantia da Qualidade do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Gerência de Projetos de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Gerência de Requisitos de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Gestão de Defeitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Gestão de Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Grafo de Fluxo de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Incident Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Instituto de Informática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 International Organization for Standardization . . . . . . . . . . . . . . . . . . . . . . . 17 International Electrotechnical Commission . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Institute of Electrical and Electronic Engineers . . . . . . . . . . . . . . . . . . . . . . 17 Integração Contínua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101 Joint Technical Committee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Medição e Análise de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Micro e Pequenas Empresas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 MMT MPSPE MPT.BR MPT − PE Modelo de Melhoria de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Modelo de Processo de Software para Pequena Empresa . . . . . . . . . . . . . . 35 Melhoria do Processo de Teste Brasileiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Melhoria do Processo de Teste para Pequenas Empresas . . . . . . . . . . . . . . 35 Melhoria do Processo de Teste para as Micro e Pequenas Empresas BrasiMPT − MPE.BR leiras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 MPS.BR Melhoria de Processo do Software Brasileiro . . . . . . . . . . . . . . . . . . . . . . . . 29 Organizational Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 OT Organização do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 OGT Software Process Improvement and Capability Determination . . . . . . . . . 35 SPICE Planejamento e Controle do Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 PCT Projeto e Execução de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 PET SC Subcommittee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Tecnologia da Informação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 TI Test Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 TC Test Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 TD Test Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 T DD TE Test Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Test Monitoring & Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 T MC Test Organization Maturity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 T OMtm Test Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 TP Test Process Improvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 T PI Testability Support Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 T SM Teste de Aceitação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 T DA T DA Teste de Aceite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Teste de Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 T PE Teste de Regressão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 T RG Teste de Requisito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 T RQ T ES Teste Estático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 T FU Teste Funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 T NF Teste Não-Funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Testing Assessement Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 TAP Testing Improvement Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 T IM Testing Maturity Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 T MM Testing Maturity Model Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 T MMI T RE Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 UFG Universidade Federal de Goiás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 CAPÍTULO 1 Introdução Neste capítulo são apresentados o contexto, a motivação e a justificativa deste trabalho que objetiva definir um modelo de maturidade adequado para as Micro e Pequenas Empresas (MPEs) de desenvolvimento de software e, estabelecer uma abordagem para que os processos de teste desse modelo sejam implementados nessas organizações. 1.1 Contexto As MPEs representam cerca de 99,2% das empresas no mundo e o software desenvolvido por esse tipo de organização é uma peça de extrema importância para as engrenagens da economia mundial [50] [59]. No ano de 2013, o Brasil teve um crescimento expressivo dos investimentos em Tecnologia da Informação (TI), com um aumento de 15,4% em relação a 2012 e comparado às demais economias mundiais, o país também se destacou, considerando que a média mundial de crescimento foi de 4,8% [68]. De acordo com esse resultado, o Brasil ficou entre os dez maiores crescimentos setoriais, mantendo a 7a posição no ranking mundial de investimentos em TI. Uma tendência de crescimento vem sendo apontada desde 2004 [68], reforçada pela utilização de programas de computador desenvolvidos no país (standard e sob encomenda), que cresceu 15,3%, número superior aos 12,9% de crescimento identificado no uso de programas de computador desenvolvidos no exterior. No Brasil, grande parte das organizações brasileiras se enquandra na classificação de MPEs [54], com a receita operacional bruta menor ou igual a R$ 2,4 milhões, conforme demonstrado na Tabela 1.1 [4] [5]. Tabela 1.1: Classificação das Organizações Brasileiras [5]. Classificação Receita Operacional Bruta Micro Empresa Menor ou igual a R$ 2,4 milhões Pequena Empresa Maior que R$ 2,4 milhões e menor ou igual a R$ 16 milhões Média Empresa Maior que R$ 16 milhões e menor ou igual a R$ 90 milhões Média-Grande Empresa Maior que R$ 90 milhões e menor ou igual a R$ 300 milhões Grande Empresa Maior que R$ 300 milhões 1.1 Contexto 17 O mercado nacional é explorado por cerca de 11.230 empresas, dedicadas ao desenvolvimento, à produção, à distribuição de software e à prestação de serviços. Desse montante, 93% que atuam especificamente no desenvolvimento e na produção de software estão classificadas como MPEs. Cerca de 40% dos novos produtos de software disponibilizados no mercado, no entanto, falham [68]. Isso ocorre pois, a maioria dessas MPEs está centrada principalmente na qualidade do produto em vez dos processos adotados para que esses produtos possam ser desenvolvidos. A crescente demanda e a complexidade dos produtos de software ocorrida nas últimas décadas, têm exigido cada vez mais que as equipes envolvidas nos projetos de desenvolvimento desses produtos sejam maiores e mais especializadas. Esse cenário tem provocado um anseio por qualidade e produtividade, tanto do ponto de vista do processo de produção como do ponto de vista dos produtos gerados [7]. Apesar da falta de recursos e conhecimento [48], as MPEs de desenvolvimento de software têm se preocupado e investido na garantia da qualidade com o intuito de melhorar continuamente as técnicas, os critérios, os métodos e as ferramentas empregadas na construção dos seus produtos de software, proporcionando aos usuários a satisfação de suas necessidades e expectativas de forma precisa, personalizada e eficaz [8]. A garantia da qualidade do produto de software está diretamente relacionada com a qualidade do processo de desenvolvimento e de teste ao qual foi submetido e, não se restringe apenas a definir procedimentos, padrões e verificar sua utilização ao longo do ciclo de vida do produto de software [70]. O alinhamento existente entre a qualidade de software e o processo de teste faz com que o teste de software deixe de ser mais uma atividade no processo de desenvolvimento para ter suas próprias metodologias [71]. Com o propósito de atender às MPEs, algumas iniciativas nacionais de modelos de maturidade além de normas internacionais vêm sendo propostas tais como, o Método Freetest [41], a Melhoria do Processo de Teste Brasileiro (MPT.BR) [66] e a International Organization for Standardization (ISO)/ International Electrotechnical Commission (IEC)/ Institute of Electrical and Electronic Engineers (IEEE) 29119-2 [43]. As MPEs de desenvolvimento de software têm como principal dificuldade a ausência de recursos (financeiros, humanos e materiais) dedicados ao teste de software, da experiência dos envolvidos na atividade de teste e de uma cultura para executar o teste nos projetos de teste dessas organizações. Logo, a implementação e a institucionalização dos processos de teste desses modelos de maturidade e dessa norma tornam-se onerosas e complexas para esse tipo de organização. Apesar dos esforços, não há, no entanto, um processo de teste aderente às peculiaridades inerentes ao contexto dessas MPEs. Em outras palavras, um processo que seja menos complexo, contemple as boas práticas de maior relevância e seja apropriado 1.2 Motivação e Justificativa 18 para que as MPEs de desenvolvimento de software possam melhorar a qualidade dos seus produtos de software e, aumentar significativamente sua competitividade no mercado mundial de TI. 1.2 Motivação e Justificativa Dada a contextualização na Seção 1.1 deste Capítulo que ressalta a relevância de melhorar a qualidade dos produtos de software desenvolvidos pelas MPEs de desenvolvimento de software e, reflete a inexistência de um processo de teste adequado ao contexto dessas organizações, têm-se os seguintes pontos, que são motivações e justificam o presente trabalho: • O Método Freetest requer aprimoramento principalmente em relação à descrição e ao detalhamento do processo de teste estabelecido nesse modelo de maturidade devido os seus níveis de maturidade, as suas áreas de processo e, suas práticas específicas serem extremamente flexíveis e abordadas superficialmente no Manual do Modelo. Logo, a implementação e a institucionalização desse método tornam-se onerosas e, complexas para as MPEs de desenvolvimento de software. • No MPT.BR foi definido um processo de teste com alto custo financeiro e de implementação sendo assim, as MPEs de desenvolvimento de software conseguirão alcançar um determinado nível de maturidade apenas se os projetos de teste dessas organizações atenderem a todas as áreas de processo e práticas genéricas referentes a esse nível bem como, os níveis anteriores desse modelo. O MPT.BR é composto por 108 práticas específicas associadas a 16 áreas de processo em 5 níveis de maturidade e, 9 práticas genéricas que devem atender cada uma das áreas de processo. • A ISO/IEC/IEEE 29119-2 especifica os processos de teste que podem ser utilizados para controlar, gerenciar e implementar o teste de software em qualquer organização, projeto ou atividade de teste. Essa norma é constituída por descrições de processos de teste genéricos que determinam os processos de teste de uma organização. Caso as MPEs de desenvolvimento de software desejem implementar os processos de teste da ISO/IEC/IEEE 29119-2, será necessário investir um valor considerável para adquirir essa norma e capacitar a equipe de teste que fará o uso desses processos. 1.3 Objetivos 1.3 19 Objetivos Este trabalho tem como objetivo geral a definição de um modelo de maturidade apropriado para as MPEs desenvolvimento de software assim como, o estabelecimento de uma abordagem para que os processos de teste desse modelo possam ser implantados e melhorados continuamente no âmbito dessas organizações. Para atingir o objetivo geral, são considerados os seguintes objetivos específicos: • Identificar as melhorias do Método Freetest sob a perspectiva do MPT.BR e da ISO/IEC/IEEE 29119-2 com base nas análises comparativas realizadas entre os modelos de maturidade e, a norma estudados que terão suas respectivas equivalências mapeadas. • Elaborar a proposta de melhorias do Método Freetest conforme as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 que não apresentarem equivalências com as práticas específicas abrangidas nesse método considerando as limitações das MPEs de desenvolvimento de software. • Elaborar um questionário contendo as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 com base na proposta de melhorias do Método Freetest. • Aplicar o questionário elaborado em quatro MPEs de desenvolvimento de software goianas (Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas) para que a proposta de melhorias do Método Freetest possa ser avaliada. • Eliminar as ambiguidades existentes entre as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 da proposta de melhorias do Método Freetest após ambas terem sido avaliadas. Pelo mesmo motivo, as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 identificadas no Método Freetest serão analisadas e mapeadas novamente. • Definir o modelo de maturidade Melhoria do Processo de Teste para as Micro e Pequenas Empresas Brasileiras (MPT-MPE.BR). • Estabelecer uma abordagem incremental para implantar e prover a melhoria contínua dos processos de teste do MPT-MPE.BR de acordo com os níveis de maturidade que as MPEs de desenvolvimento de software desejam atingir. • Possibilitar que as MPEs de desenvolvimento de software construam produtos de software de baixo custo e alta qualidade com o intuito de satisfazer as necessidades e, expectativas dos seus usuários e colaborar com o aumento da competitividade dessas organizações no mercado mundial de TI. 1.4 Metodologia 1.4 20 Metodologia Primeiramente, neste trabalho foram estudados os níveis de maturidade, as áreas de processo e as práticas específicas e/ou, genéricas do Método Freetest e do MPT.BR além das multicamadas dos processos e atividades de teste da ISO/IEC/IEEE 291192. Fundamentado nisso, a construção do modelo de maturidade foi iniciada a partir do mapeamento das equivalências identificadas entre o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2. Em seguida, foi elaborada uma proposta contendo as possíveis melhorias a serem realizadas no Método Freetest considerando as limitações das MPEs de desenvolvimento de software. Baseado nessa proposta, foi um elaborado questionário para avaliar quais as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 devem ser adotadas e, podem contribuir significativamente com as MPEs de desenvolvimento de software. O questionário elaborado foi aplicado em quatro MPEs de desenvolvimento de software goianas (Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas). As práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 sugeridas na proposta de melhorias do Método Freetest passaram por uma avaliação para que eventuais ambiguidades entre ambas fossem eliminadas. Houve ainda, a necessidade de analisar e mapear novamente as práticas específicas do MPT.BR e, as atividades da ISO/IEC/IEEE 29119-2 pertencentes ao Método Freetest pelo mesmo motivo. Essas práticas específicas e atividades foram organizadas em níveis de maturidade e, áreas de processo originando o MPT-MPE.BR. Cada área de processo do MPTMPE.BR possui suas práticas específicas assim como, os seus produtos típicos. Uma abordagem com base nos estudos realizados por Weber et al. [75] e Crespo et al. [17] foi estabelecida para que os processos de teste do MPT-MPE.BR pudessem ser implementados conforme o nível de maturidade desse modelo almejado pelas MPEs de desenvolvimento de software. 1.5 Organização do Trabalho Esse trabalho está dividido em 5 capítulos. No Capítulo 2 são apresentados os conceitos e terminologias referentes ao teste de software e, aos processos de teste explorados, bem como os trabalhos relacionados. No Capítulo 3 são apresentadas as etapas realizadas para a construção do modelo de maturidade MPT-MPE.BR de acordo com o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2. No Capítulo 4 é apresentada a definição do MPT-MPE.BR e uma abordagem para implementar os processos de teste desse modelo conforme o nível de maturidade que as MPEs de desenvolvimento de soft- 1.5 Organização do Trabalho 21 ware desejam atingir. Enfim, o Capítulo 5 apresenta a conclusão do trabalho desenvolvido assim como, os possíveis desdobramentos para trabalhos futuros. CAPÍTULO 2 Fundamentação Teórica Neste capítulo são apresentados os conceitos e terminologias do teste de software, incluindo suas fases e os principais critérios das técnicas de teste existentes. Além disso, apresenta os modelos de maturidade e a norma referentes aos processos de teste explorados neste trabalho assim como, os trabalhos relacionados. 2.1 Teste de Software Construir um software não é uma tarefa trivial ao contrário, dependendo das dimensões e das características do programa a ser criado, pode ser extremamente complexa. Durante o desenvolvimento de um software podem surgir diversos problemas capazes de alterar o comportamento esperado desse software ou ainda, originar um produto diferente da especificação dos usuários [1] [24]. O teste de software tem como principal objetivo detectar os defeitos introduzidos em qualquer fase de desenvolvimento e/ou manutenção do software que está sendo testado [34] [32] [49]. Além disso, é uma das atividades mais caras e relevantes do processo de desenvolvimento do software e, o rigor e o custo associados a essa atividade dependem principalmente da criticidade do programa a ser desenvolvido [9] [58]. No padrão IEEE 610.12-1990 são definidos os termos utilizados para descrever o mau funcionamento do software e o comportamento indesejado dos programas no decorrer do teste [24] [37] [23]: • Engano (Mistake): Ação humana que produz um resultado incorreto, por exemplo, uma ação incorreta tomada pelo desenvolvedor. • Defeito (Fault): Passo, processo ou definição de dados incorretos, como por exemplo, uma instrução ou um comando incorreto. • Erro (Error): Diferença entre o valor obtido e o valor esperado, isto é, qualquer estado intermediário incorreto ou resultado inesperado na execução do programa constitui um erro. • Falha (Failure): Produção de uma saída incorreta com relação à especificação. 2.1 Teste de Software 23 O engano e o defeito são tipos estáticos de problemas associados a um determinado programa e, independem de sua execução para que sejam revelados. Enquanto, o erro e a falha dependem diretamente da execução do programa para serem detectados e, devido a isso, são considerados tipos dinâmicos de problemas [24]. Quanto antes os defeitos do produto de software forem detectados através dos testes executados, maior será a confiabilidade do programa em operar conforme as especificações dos usuários e menor será o seu custo de desenvolvimento e/ou, manutenção. Embora técnicas, métodos e ferramentas sejam empregados ao longo do processo de desenvolvimento, defeitos ainda podem ocorrer no produto de software [55] [58]. Na atividade de teste, um programa P é testado por meio de um conjunto de casos de teste com alta probabilidade de revelar a presença de defeitos ainda não descobertos [55] dado que, todo programa se baseia em um conjunto pertencente a um domínio de entradas e saídas. O domínio de entrada de um programa P é constituído por um conjunto contendo todos os valores que podem ser utilizados na execução de P, denominado D(P) [24] [62]. Um caso de teste é composto por um conjunto de dados de teste (entradas), pelas condições de execução de um programa P fazendo o uso desses dados e pelos resultados esperados (saídas) provenientes da execução de P [15]. Um dado de teste do programa P é um elemento do domínio de entrada de P [24] [62]. Outros itens também podem ser incluídos no caso de teste tais como, as précondições, a ordem de execução, os passos e/ou a sequência de ações para que o testador possa realizar o teste [15]. Um caso de teste é composto pelo par (d,S(d)), onde d é o dado de teste e S(d) a saída esperada de acordo com a especificação (S) [24] [62]. Tendo em vista que o domínio de entrada pode ser infinito ou muito grande, torna-se impraticável a execução do teste exaustivo em um programa P. Em razão disso, ressalta-se a relevância de selecionar um subconjunto T de casos de teste que possibilite ao mesmo tempo a eficiência e o baixo custo em relação à detecção de defeitos durante a atividade de teste e/ou, avaliação da qualidade de P [24] [62] [74]. 2.1.1 Fases de Teste À medida que o tamanho do software aumenta consequentemente, ocorre o aumento de sua complexidade tornando-se necessária a divisão da atividade de teste em fases. Baseado nisso, o testador pode se concentrar em aspectos distintos do software assim como, utilizar diversas estratégias para a seleção dos dados de teste e medidas de cobertura em cada uma dessas estratégias [52] [74]. 2.1 Teste de Software 24 Também, possibilita planejar o teste para medir e melhorar a qualidade do produto de software que está sendo testado sob a perspectiva de cada fase com base nos artefatos produzidos nas atividades do processo de desenvolvimento [16] [47]. Em geral, a atividade de teste pode ser considerada incremental e está dividida em quatro fases [27] [58]: • Teste de Unidade (Unitário): Identifica erros de lógica e implementação de forma isolada nas menores unidades de programação. • Teste de Integração: Verifica se as unidades testadas individualmente comunicam-se com o desejado. • Teste de Sistema: Garante que o programa em si interage corretamente com o software para o qual foi projetado. • Teste de Aceitação: Certifica se o programa desenvolvido atende às exigências dos usuários. 2.1.2 Critérios de Teste Os critérios sistematizam a maneira como os requisitos de teste devem ser produzidos a partir das fontes de informação disponíveis tais como, a especificação de requisitos, o código fonte, o histórico de defeitos entre outras. A subdivisão do domínio de entrada por meio dos critérios de teste força o testador a escolher diferentes componentes para o teste, uma vez que, esse domínio pode possuir uma gama infinita de elementos [24] [28]. Esses critérios estão classificados em três técnicas: Funcional, Estrutural e Baseado em Defeitos. A diferença entre essas técnicas está no tipo de informação utilizada na criação dos subconjuntos dos dados de teste e apesar de não serem completas, são complementares umas às outras de modo a melhorar a garantia da qualidade do software [53] [74]. Técnica Funcional (Caixa Preta) A Técnica Funcional trata o software como uma caixa, na qual o contéudo interno é desconhecido sendo possível somente visualizar o seu lado externo, ou seja, suas entradas e saídas [9] [74]. Nessa técnica, o testador utiliza as especificações funcionais do software para derivar os casos de teste a serem executados sem precisar conhecer os seus detalhes de implementação. Por esse motivo, uma especificação correta e em conformidade com os requisitos especificados pelos usuários é essencial nesse tipo de teste [3] [33] [36]. Dentre os critérios da Técnica Funcional mais populares, estão [24] [58] [74]: 2.1 Teste de Software 25 • Particionamento de Equivalência: Divide o domínio de entrada em classes de dados válidas e inválidas que irão exercitar uma determinada funcionalidade do software. • Análise do Valor Limite: Analisa a capacidade de um programa em manipular dados nos limites das condições de entrada estabelecidas. • Grafo de Causa e Efeito: Representa as condições lógicas e suas ações correspondentes, proporcionando que o testador avalie os conjuntos de ações e condições identificados. Técnica Estrutural (Caixa Branca) Na Técnica Estrutural os aspectos de implementação são considerados para que os casos de teste possam ser derivados, isto é, há a necessidade de conhecer a estrutura interna do programa [74]. Em geral, a maior parte dos critérios dessa técnica representam o programa através do Grafo de Fluxo de Controle (GFC) ou grafo de programa que associa uma aresta com cada desvio possível no programa e, um nó com cada sequência de instruções [2] [22] [62]. Os critérios da Técnica Estrutural mais conhecidos são os seguintes [6] [31] [21]: • Baseado no Fluxo de Controle: Basea-se apenas nas características de controle da execução do programa tais como, os comandos ou desvios para derivar os casos de teste [60] [61]. • Baseado no Fluxo de Dados: Apoia-se nas informações do fluxo de dados do programa para derivar os casos de teste. Nesse critério são testadas as interações que contém a definição de variáveis e referências a essas definições [60] [61]. Técnica Baseada em Defeitos A Técnica Baseada em Defeitos utiliza as informações sobre os defeitos mais frequentes cometidos durante o processo de desenvolvimento do software e os tipos específicos de defeitos que se almeja revelar [10] [26] [73]. Entretanto, essa técnica possui apenas dois critérios [12] [74]: • Semeadura de Erros: Uma quantidade conhecida de erros é semeada artificialmente no programa e após o teste ter sido realizado, verificam-se em relação ao total de erros identificados, quais são naturais e/ou artificiais. O número de erros artificiais remanescentes no programa pode ser calculado utilizando estimativas de probabilidade [30]. • Análise de Mutantes: Um conjunto de mutantes P’, modificados a partir de um programa original P é empregado para avaliar se um conjunto de teste T está adequado para testar o programa P. Esse critério objetiva encontrar um conjunto 2.2 Processo de Teste de Software 26 de teste T capaz de indicar as divergências entre os programas mutantes P’ e o programa original P [25]. 2.2 Processo de Teste de Software Um processo é definido por um conjunto de ações, observações e tomadas de decisão com a finalidade de obter um produto final como saída, visto que, essas ações podem ocorrer em paralelo ou de forma sequencial [11]. O processo de software compreende as atividades, os métodos bem como, as práticas utilizadas no desenvolvimento de um produto de software [13] [58]. Apesar de existirem vários processos de software distintos, são comuns a todos as seguintes atividades [57] [69]: • Especificação do Software: Definição das funcionalidades e restrições sobre a operação do produto de software. • Projeto e Implementação do Software: Desenvolvimento do produto de software de acordo com as especificações dos usuários. • Validação do Software: Aceitação ou homologação do produto de software para garantir que as necessidades e expectativas dos usuários estão sendo atendidas. • Evolução do Software: Manutenção do produto de software a partir das necessidades de mudanças ou adequações requeridas pelos usuários. O teste de software pertence às atividades de verificação e validação que objetivam garantir a qualidade do produto de software, sendo assim, um processo de teste deve ser estabelecido para acompanhar e controlar o desenvolvimento desse produto. As atividades de teste devem ser conduzidas ao longo do processo de desenvolvimento, de forma contínua, sistemática e organizada [13] [51]. Porém, a maioria das empresas de desenvolvimento de software considera o teste de software somente como uma fase (Validação do Software) dentro do processo de desenvolvimento que em geral, é executada pelos próprios desenvolvedores do produto de software [69]. Atualmente, há um consenso de que o teste de software não pode ser abordado como um apêndice sem prioridade de tratamento definida no processo de desenvolvimento, mas que consista em um processo paralelo e integrado ao desenvolvimento. Dessa forma, as atividades de teste podem ser planejadas à medida que os requisitos do produto de software forem consolidados por essas atividades estarem alinhadas às atividades do desenvolvimento. Existe uma dependência do processo de teste em relação ao processo de desenvolvimento, pois as informações geradas pelas atividades do desenvolvimento servem de entrada para as atividades do teste [14] [35]. A integração do processo de desenvolvimento e de teste do software é exibida na Figura 2.1 [8] [14]. 2.2 Processo de Teste de Software 27 Figura 2.1: Integração do Processo de Desenvolvimento e de Teste do Software [14]. O teste como processo considera os seguintes aspectos da análise de risco [13] [72]: • Aspectos Econômicos: Tempo e recursos disponíveis para o teste. • Aspectos Técnicos: Técnicas, métodos, medidas e ferramentas empregados para contribuir com o aumento da credibilidade do produto de software sob determinadas condições e, restrições na qual deva operar. • Aspectos Gerenciais: Processo definido e gerenciado, que traga bons resultados através do atendimento do cronograma e controle dos custos além disso, deve possuir mecanismos de melhoria contínua para esses processos. Na Figura 2.2 é possível notar que, o ciclo de vida do processo de teste é composto por seis fases, como a seguir [63]: Figura 2.2: Ciclo de Vida do Processo de Teste do Software [63]. • Procedimentos Iniciais: Estudo dos requisitos do negócio referentes ao produto de software que será desenvolvido a fim de garantir que esses requisitos estarão completos e sem nenhuma ambiguidade. Também, deve ser elaborado um plano preliminar contendo as principais atividades a serem desenvolvidas considerando os recursos humanos e materiais envolvidos no projeto de teste. • Planejamento: Estabelecimento do Plano de Teste e da estratégia de teste que será adotada durante a execução do projeto de teste, visando minimizar os riscos inerentes ao negócio e fornecer as diretrizes das próximas fases. Essa fase deve ser 2.2 Processo de Teste de Software • • • • 28 executada paralelamente às atividades de elicitação de requisitos e de planejamento do projeto de desenvolvimento e, permanecer ativa até a conclusão do projeto de teste. Preparação: Definição do ambiente de teste tais como, os equipamentos, o pessoal, as ferramentas de automação, o hardware e o software para que os testes possam ser executados de acordo com o planejado. Essa fase tem que permanecer ativa assim como, a fase de Planejamento até a conclusão do projeto de teste. Especificação: Elaboração ou revisão dos roteiros e casos de teste à medida que a equipe de desenvolvimento disponibilizar os módulos ou partes do produto de software para teste. Execução: Realização dos testes planejados e registro dos resultados obtidos com a execução desses testes. Os defeitos detectados nessa fase devem ser acompanhados até a sua conclusão. Entrega: Conclusão do projeto de teste, arquivamento dos ativos de teste, coleta das lições aprendidas ao longo desse projeto e, relato das sugestões de melhoria dos processos de teste adotados pela organização. A existência de um processo de teste bem definido e gerenciável permite que esse processo seja repetido em diversos projetos de teste de uma organização e, avaliado utilizando uma variedade de métricas bem como, a implementação das ações de melhoria contínua para que bons resultados possam ser obtidos [56]. 2.2.1 MPT.BR O MPT.BR aborda a melhoria do processo de teste por meio das boas práticas envolvidas nas atividades desenvolvidas ao longo do ciclo de vida de teste do produto e tem como principais objetivos [29]: • Ser um modelo de referência para a definição, a implantação e a melhoria dos processos de teste em uma organização. • Melhorar continuamente os processos de teste da organização conforme os seus objetivos organizacionais e o nível de maturidade almejado. • Prover uma base para a avaliação dos processos de teste implementados e consequentemente, determinar o grau de maturidade atingido pela organização. • Associar as boas práticas a serem consideradas durante a implementação dos processos de teste na organização de acordo com o grau de complexidade e o nível de maturidade no qual estão relacionados. Esse modelo de maturidade foi desenvolvido com base nos modelos de referência em teste de software e em melhoria de processo de software tais como, o Testability 2.2 Processo de Teste de Software 29 Support Model (TSM), o Testing Maturity Model (TMM), a Test Process Improvement (TPI), a Test Organization Maturity (TOMtm), o Testing Assessement Program (TAP), o Testing Improvement Model (TIM), o Testing Maturity Model Integration (TMMI), o Maturity Model for Automated Software Testing, o Modelo de Melhoria de Teste (MMT), o Capability Maturity Model Integration (CMMI) e a Melhoria de Processo do Software Brasileiro (MPS.BR) [66]. A organização das áreas de processo do MPT.BR é apresentada na Tabela 2.1 e estão descritas no Apêndice A deste trabalho. Tabela 2.1: Áreas de Processo do MPT.BR [66]. Nível de Maturidade Áreas de Processo Práticas Específicas Práticas Genéricas GPT GPT1 a GPT20 Nível 1 PG1 a PG6 PET PET1 a PET4 GRT GRT1 a GRT5 Nível 2 GPT GPT21 a GPT25 PG7 a PG9 PET PET5 e PET6 FDT FDT1 a FDT4 GDQ GDQ1 a GDQ3 MAT MAT1 a MAT5 OGT OGT1 a OGT10 Nível 3 TDA TDA1 a TDA7 TES TES1 a TES5 TRE TRE1 a TRE4 GPT GPT26 a GPT28 PET PET7 AQP AQP1 a AQP5 GDD GDD1 a GDD3 Nível 4 TNF TNF1 a TNF3 OGT OGT11 e OGT12 AET AET1 a AET6 Nível 5 CEP CEP1 a CEP5 GDF GDF1 a GDF6 Atualmente, esse modelo de maturidade está sendo desenvolvido e gerenciado pela Softex Recife e, pela Riosoft com enfoque nas características e necessidades das MPEs de desenvolvimento de software. A estrutura do MPT.BR possui dois componentes: • Modelo de Referência: Apresenta a estrutura, as áreas de processo e as práticas do modelo de maturidade [66]. • Modelo de Avaliação: Contempla o processo de avaliação e as instruções para que essa avaliação possa ser realizada em uma organização com base no MPT.BR [67]. 2.2 Processo de Teste de Software 30 Modelo de Referência No Modelo de Referência do MPT.BR são apresentados cinco níveis de maturidade que representam os patamares de evolução do processo de teste em uma organização, da seguinte forma [66]: • Nível 1 (Parcialmente Gerenciado): Corresponde ao primeiro patamar de maturidade de uma organização e deve conter o mínimo necessário para demonstrar que a disciplina de teste é praticada nos projetos dessa organização e, ocorre de forma planejada e controlada. • Nível 2 (Gerenciado): No segundo nível os processos de teste da organização possuem maior visibilidade devido o escopo do projeto ser controlado pelo processo de gestão de mudanças, os padrões e processos serem definidos, monitorados e, controlados. • Nível 3 (Definido): O terceiro nível torna os processos de teste organizacionais, pois os processos de teste padrão são adotados, a garantia da qualidade auxilia o estabelecimento desses processos, as responsabilidades referentes ao teste organizacional são definidas além da implantação de um programa de medição na organização. Nesse nível, também há a integração do ciclo de vida do desenvolvimento com o ciclo de vida do teste, o teste de aceitação e o teste estático são formalizados e, aplicados os procedimentos sistemáticos para o fechamento do teste. • Nível 4 (Prevenção de Defeitos): No quarto nível o foco está na prevenção de defeitos e na melhoria sistemática da qualidade do produto de software em razão de um processo de gestão de defeitos existir na organização. Os defeitos detectados com antecedência no ciclo de vida do teste são acompanhados e as tomadas de ações proativas evitam que novos defeitos originados pelas mesmas causas raízes sejam recorrentes. Uma análise de risco dos atributos não-funcionais do produto de software e testes não-funcionais são realizados com o intuito de minimizar esses riscos além de ser efetuada uma análise para determinar a eficácia do teste e, os dados objetivos do grau de qualidade desse produto. • Nível 5 (Automação e Otimização): O quinto nível estabelece um processo de melhoria contínua e a automação do teste através da definição de uma abordagem para a execução do teste automatizado e, um processo sistemático para a seleção e adoção de ferramentas Computer-Aided Software Engineering (CASE). Esse processo é controlado estatisticamente e está sob melhoria contínua. Cada nível de maturidade está associado a um conjunto de áreas de processo. Uma área de processo é composta por um agrupamento de práticas relacionadas que ao serem implementadas coletivamente, satisfazem um determinado objetivo. Um conjunto 2.2 Processo de Teste de Software 31 de práticas genéricas devem ser aplicadas em todas as práticas específicas de todas as áreas de processo do nível de maturidade almejado por uma organização [29]. Uma organização conseguirá atingir um determinado nível de maturidade somente se os processos de teste aplicados em seus projetos de teste forem submetidos a uma avaliação capaz de revelar que todas as áreas de processo e práticas genéricas relacionadas a esse nível são atendidas assim como, os níveis anteriores do MPT.BR [29] [66]. 2.2.2 ISO/IEC/IEEE 29119 A ISO/IEC/IEEE 29119 foi elaborada pela ISO/IEC Joint Technical Committee (JTC) 1/ Subcommittee (SC) 7 em parceria com os Padrões de Engenharia de Software e Sistemas do Comitê da IEEE Computer Society. O objetivo dessa série é estabelecer um código internacional de padrões de teste de software que podem ser utilizados em qualquer organização, projeto ou atividade de teste [42]. Essa série de padrões internacionais é composta por cinco normas: • ISO/IEC/IEEE 29119-1: Facilita o uso das outras normas da ISO/IEC/IEEE 29119, introduzindo os conceitos e o vocabulário do teste de software e, demonstra exemplos práticos de sua aplicação [42]. • ISO/IEC/IEEE 29119-2: Descreve os processos de teste que definem o Processo Organizacional do Teste, o Processo de Gerenciamento do Teste e o Processo de Teste Dinâmico [43]. • ISO/IEC/IEEE 29119-3: Inclui templates e exemplos da documentação do teste que deverá ser produzida ao longo dos processos de teste descritos na ISO/IEC/IEEE 29119-2 [44]. • ISO/IEC/IEEE 29119-4: Determina as técnicas de projeto de teste a serem utilizadas durante o Processo de Projeto e Implementação do Teste definido na ISO/IEC/IEEE 29119-2 [45]. • ISO/IEC/IEEE 29119-5: Estabelece uma abordagem baseada em palavras-chave para descrever os casos de teste de forma modular no decorrer do Processo de Projeto e Implementação do Teste proposto na ISO/IEC/IEEE 29119-2 [46]. ISO/IEC/IEEE 29119-2 Na ISO/IEC/IEEE 29119-2 as atividades de teste que serão realizadas no decorrer do ciclo de vida de um produto de software estão agrupadas em três grupos de processo, conforme representado na Figura 2.3. Cada um dos processos desses grupos, demonstrados na Figura 2.4, é descrito em relação aos seus objetivos e resultados esperados além disso, lista as atividades e tarefas que necessitam ser executadas nesses processos 2.2 Processo de Teste de Software 32 [43]. Os processos de teste das multicamadas da ISO/IEC/IEEE 29119-2 estão descritos no Apêndice A deste trabalho. Figura 2.3: Multicamadas dos Processos ISO/IEC/IEEE 29119-2 [43]. de Teste da Figura 2.4: Processos de Teste da ISO/IEC/IEEE 29119-2 [43]. No Processo Organizacional do Teste é definido um processo genérico para a criação e a manutenção das especificações de teste da organização tais como, as políticas, as estratégias, os processos, os procedimentos organizacionais de teste e, outros ativos. O responsável pelas especificações organizacionais do teste deve implementar as atividades e tarefas relacionadas à Organizational Test (OT) de acordo com as políticas da organização e, os procedimentos aplicáveis nesse processo [43]. Os Processos de Gerenciamento do Teste estabelecem os processos genéricos relacionados à gestão do teste de um determinado projeto de teste, uma fase e/ou um tipo de teste específico. Esses processos exigem que as atividades e tarefas referentes ao Test Planning (TP), ao Test Monitoring Control (TMC) e à Test Completion (TC) sejam 2.2 Processo de Teste de Software 33 executadas pelos seus responsáveis conforme o planejado, as políticas organizacionais e, os procedimentos adotados pela organização [43]. Nos Processos de Teste Dinâmico são determinados os processos genéricos para a execução do teste dinâmico, que consiste na execução de um programa para que o seu comportamento possa ser avaliado, em um determinado projeto de teste, uma fase e/ou um tipo de teste específico. Os responsáveis por esses processos consideram as políticas e os procedimentos praticados na organização para que as atividades e, tarefas relativas ao Test Design (TD), à Environment Set-up (ES), à Test Execution (TE) e ao Incident Reporting (IR) possam ser relizadas [43]. 2.2.3 Método Freetest O Método Freetest surgiu a partir do Projeto Estudo e Definição de Processo de Teste de Software para MPEs de TI, através do programa PAPPE Integração apoiado pela Fundação de Amparo à Pesquisa do Estado de Goiás (FAPEG)/ Financiadora de Estudos e Projetos (FINEP) e, pelos profissionais do Instituto de Informática (INF) da Universidade Federal de Goiás (UFG) em conjunto com grandes nomes da indústria de software do estado de Goiás [41]. Esse método foi definido com base nos modelos de maturidade TMMI e MPT.BR e, consiste em um conjunto de processos e ferramentas de teste de software que estabelece soluções de fácil aplicação juntamente com as ferramentas de desenvolvimento no âmbito das MPEs de desenvolvimento de software [41]. A organização das áreas de processo do Método Freetest é mostrada na Tabela 2.2 e estão descritas no Apêndice A deste trabalho. Tabela 2.2: Áreas de Processo do Método Freetest [41]. Nível de Maturidade Áreas de Processo Práticas Específicas Nível A TPE TPE1 a TPE4 Nível B INC INC1 a INC3 Nível C TRG TRG1 a TRG4 TDA TDA1 a TDA3 Nível D TRQ TRQ1 a TRQ2 TFU TFU1 a TFU3 Nível E GPT GPT1 O Método Freetest é constituído por três componentes: • Manual de Instalação: Descreve o processo de integração entre as ferramentas de teste Testlink e Mantis [39]. • Manual de Utilização: Demonstra como utilizar as ferramentas de teste Testlink e Mantis após a sua integração [40]. 2.2 Processo de Teste de Software 34 • Manual do Modelo: Apresenta a estrutura, as áreas de processo e as práticas do modelo de maturidade [41]. Com o objetivo de efetuar testes sistemáticos por meio da instanciação de um processo de teste com suporte automatizado, foram incorporadas cinco ferramentas de teste nesse método [41]: • Bug Wizard Report: Integração do Testlink com o Mantis. • JinFeng: Integração de diferentes plataformas de teste baseada em ferramentas de código aberto e escrito em Python/Jython. • JMeter: Teste de performance, carga e stress. • Selenium: Automação do teste funcional para interfaces web. • Sikuli: Automação do teste de interfaces gráficas utilizando imagens. Manual do Modelo No Método Freetest existem cinco níveis de maturidade que definem os patamares de evolução dos processos de teste, caracterizando assim, os estágios de melhoria contínua dos processos implementados na organização. O nível de maturidade desse modelo inicia-se no Nível E e evolui até o Nível A. Cada nível de maturidade é composto por um agrupamento de áreas de processo. Uma área de processo corresponde a um conjunto de práticas específicas que individualmente visam atender determinados objetivos [41]. Uma organização alcançará um determinado nível de maturidade depois que os processos de teste aplicados em seus projetos de teste forem avaliados e ficar comprovado que todas as áreas de processo pertencentes a esse nível estão sendo atendidas, considerando os níveis anteriores do Método Freetest [41]. Entretanto, esse método possui várias limitações tais como, a ausência da descrição dos níveis de maturidade e dos produtos típicos gerados em cada prática específica, a superficialidade das áreas de processo e das práticas específicas, a existência de processos de teste incompletos e extremamente flexíveis, um modelo de avaliação informal com base no TMMI e, uma representação incoerente do mapeamento entre o Método Freetest e o MPT.BR no Manual do Modelo. Dessa forma, a implementação e a institucionalização do Método Freetest são consideradas onerosas e, complexas no contexto das MPEs de desenvolvimento de software. O mapeamento correto das equivalências identificadas entre o Método Freetest e o MPT.BR pode ser visto na Seção 3.1 do Capítulo 3 deste trabalho. 2.3 Trabalhos Relacionados 2.3 35 Trabalhos Relacionados Visando atender às MPEs de desenvolvimento de software, algumas iniciativas nacionais de adaptações dos modelos de maturidade do processo de desenvolvimento e de teste vêm sendo propostas tais como, o Modelo de Processo de Software para Pequena Empresa (MPSPE) [64], a metodologia de teste estabelecida por Crespo et al. [17], a Approach for Software Establishment in Micro and Small Companies (ASPE/MSC) [75], a Melhoria do Processo de Teste para Pequenas Empresas (MPT-PE) [65], a metodologia de teste estruturada em multicritério definida por Silva [20] e o Método Freetest [41]. No trabalho de Rosa [64] foi desenvolvido o MPSPE com base nos modelos de processo do Capability Maturity Model (CMM), da ISO/IEC 15504 também conhecida como Software Process Improvement and Capability Determination (SPICE) e da ISO 9000-3. Nesse modelo, constam as atividades de maior relevância do modelo de maturidade e das normas referenciadas para a construção de um software, mas desconsidera as de difícil implementação nas empresas de pequeno porte. O MPSPE é dividido em atividades Gerenciais, de Construção e de Organização com a finalidade de facilitar a mudança de cultura, proporcionar um modelo de avaliação do processo de software que apoie a aplicação do MPSPE e, avaliar e indicar uma maneira de implementar melhorias nesse tipo de organização. Crespo et al. [17] propôs uma metodologia para a introdução ou melhoria do processo de teste nas empresas de desenvolvimento de software, incluindo técnicas, procedimentos e ferramentas, habilitando-as a desenvolver produtos de software de melhor qualidade [18] [19]. Essa metodologia foi projetada e desenvolvida para que as empresas que desenvolvem ou adquirem o software possam instanciar o processo de teste conforme suas necessidades e, disponibilidade de recursos. A metodologia está fundamentada na adoção de um processo de teste através dos artefatos sugeridos pelo padrão IEEE 8291998 [38] que devem ser gerados durante a gerência de projetos de teste apoiado pelos componentes de Treinamento, de Processo de Teste e de Suporte para Geração de Documentos. Também, pode ser aplicada a qualquer tipo de software e sua implantação envolve um conjunto de atividades desde o levantamento das necessidades da empresa seguido do treinamento da equipe técnica até o acompanhamento dos trabalhos realizados, constituindo um ciclo completo de implantação da atividade de teste na organização. A abordagem definida por Weber et al. [75] estabelece os processos de software nas MPEs de desenvolvimento de software com base nas abordagens para modelagem de processos de software disponíveis na literatura e em sua experiência na área. Para suportar o estabelecimento dos processos de software de forma incremental e prover a melhoria contínua desses processos, a ASPE/MSC está organizada em fases de Diagnóstico do Processo de Software Atual, de Análise Estratégica, de Definição de Processo (s) e de 2.3 Trabalhos Relacionados 36 Implantação do(s) Processo (s) que inclui a Gerência da Abordagem e, as Diretrizes Gerais e de Adaptação. Essas fases permitem que essas organizações possam estabelecer e/ou melhorar vários processos, sempre acompanhando a sua aplicação e avaliando os resultados obtidos ao término de cada ciclo. Cada uma dessas fases é dividida em subprocessos. Na pesquisa de Sartori [65] foi desenvolvido o MPT-PE que se propõe a facilitar tanto a implementação quanto a avaliação de melhorias na área de teste das MPEs de desenvolvimento de software com base no TMM. A metodologia para o desenvolvimento desse modelo considerou como ponto de partida um estudo realizado por Rosa [64] e suas atividades e, tarefas foram definidas de acordo com as características peculiares à esse tipo de organização. Cada uma das Atividades, Tarefas e Responsabilidades (ATRs) do TMM teve que ser avaliada conforme o seu grau de relevância e, dificuldade além dos recursos requeridos para que fossem implementadas nessas MPEs. Se pertinentes essas ATRs eram associadas a uma das atividades do processo extraídas de Rosa [64] e reescritas, caso houvesse necessidade. Para avaliar o grau de desempenho das ATRs do MPT-PE, foi elaborado um questionário contendo uma quantidade reduzida de questões do TMM. Silva [20], também propôs uma metodologia de teste viável para as MPEs de desenvolvimento de software com base na documentação de teste disponibilizada pelo padrão IEEE 829-1998 [38]. A metodologia foi definida com o auxílio de especialistas em teste de software e de profissionais que atuam nessas organizações através de um modelo multicritério de apoio à decisão, que prima pela diminuição da quantidade e do escopo dos documentos produzidos ao longo do ciclo de vida do processo de teste contemplando apenas os itens mais relevantes para a realidade dessas MPEs. Nesse modelo é possível sistematizar e executar as atividades de teste dentro das limitações inerentes ao âmbito desse tipo de organização. Nesse trabalho, também houve a necessidade de realizar uma pesquisa para compreender melhor as dificuldades enfrentadas pelas MPEs de desenvolvimento de software na adoção de um processo de teste. O Método Freetest foi desenvolvido no Projeto Estudo e Definição de Processo de Teste de Software para MPEs de TI, do programa PAPPE Integração apoiado pela FAPEG/FINEP e pelos profissionais do INF da UFG em conjunto com grandes nomes da indústria de software do estado de Goiás [41] com base nos modelos de maturidade TMMI e, MPT.BR. Esse método consiste em um conjunto de processos e ferramentas de teste de software que determinam soluções de fácil aplicação junto às ferramentas de desenvolvimento no contexto das MPEs de desenvolvimento de software. Para que fossem realizados testes sistemáticos através da instanciação de um processo de teste com suporte automatizado, foram incorporadas as ferramentas de teste Bug Wizard Report, JinFeng, JMeter, Selenium e Sikuli nesse método. 2.4 Considerações Finais 37 Neste trabalho é definido um modelo de maturidade apropriado para as MPEs de desenvolvimento de software e, estabelecida uma abordagem para que os processos de teste desse modelo sejam implantados e melhorados continuamente nessas organizações. O MPT-MPE.BR surgiu a partir da proposta de melhorias do Método Freetest sob a perpectiva das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2. Essa proposta foi elaborada com base no mapeamento das equivalências identificadas entre o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2 considerando as limitações desse tipo de organização. As sugestões de melhoria apresentadas nessa proposta estão focadas nos níveis mais baixos e nas práticas específicas da área de processo AET do MPT.BR e, nas atividades da ISO/IEC/IEEE 29119-2 de maior relevância e menor complexidade. Fundamentado nos estudos realizados por Weber et al. [75] e Crespo et al. [17], também foi desenvolvida uma abordagem para estabelecer os processos de teste do MPT-MPE.BR de acordo com o nível de maturidade que essas MPEs almejam alcançar. 2.4 Considerações Finais Este capítulo apresentou os conceitos e terminologias referentes ao teste de software e, aos processos de teste tais como, as fases e os principais critérios das técnicas de teste existentes, os modelos de maturidade MPT.BR e Método Freetest e, a norma ISO/IEC/IEEE 29119-2 bem como, os trabalhos relacionados. Foram estudados os níveis de maturidade, as áreas de processo e as práticas específicas e/ou, genéricas desses modelos de maturidade além das multicamadas dos processos e atividades de teste dessa norma. No capítulo a seguir são apresentadas as etapas realizadas para a construção do modelo de maturidade MPT-MPE.BR com base no Método Freetest, no MPT.BR e na ISO/IEC/IEEE29119-2. CAPÍTULO 3 Construção do Modelo de Maturidade MPT-MPE.BR Neste capítulo são apresentadas as etapas realizadas para a construção do modelo de maturidade MPT-MPE.BR com base na proposta de melhorias do Método Freetest sob a perspectiva das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 considerando as limitações das MPEs de desenvolvimento de software. 3.1 Identificação de Melhorias no Método Freetest À princípio, para que as eventuais melhorias do Método Freetest pudessem ser identificadas tendo em consideração o MPT.BR e a ISO/IEC/IEEE 29119-2, foram realizadas análises comparativas entre os modelos de maturidade e a norma estudados. Constatou-se, que por meio dessas análises apenas algumas das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 possuem equivalências com o Método Freetest. O mapeamento das equivalências identificadas entre o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2 são apresentados na Tabela 3.1 e na Tabela 3.2. No mapeamento em relação ao MPT.BR no Método Freetest mostrado na Tabela 3.1 foi possível certificar que o Nível A (TPE), o Nível B (INC) e o Nível C (TRG) abrangem o teste automatizado devido as práticas específicas AET3 e AET4. O Nível D (TDA) aborda o teste de aceitação e o teste estático em virtude das práticas específicas TDA5 a TDA7 e, TES1 a TES4, respectivamente. No Nível E (GPT e TFU) são tratados tanto o gerenciamento dos projetos de teste quanto o fechamento do teste em razão das práticas específicas GPT11, GPT14 e FDT4 enquanto as práticas específicas PET2 a PET4 referem-se ao projeto e, a execução do teste. O mapeamento conforme a ISO/IEC/IEEE 29119-2 representado na Tabela 3.2 evidenciou que o Nível E (GPT e TFU) do Método Freetest proporciona o planejamento, a execução assim como, a conclusão do teste através das atividades TP7, TE1 a TE3 e TC4. O ambiente de teste é estruturado na atividade ES1 além disso, as atividades IR1 e IR2 remetem ao relato de incidentes do teste. 3.1 Identificação de Melhorias no Método Freetest Tabela 3.1: Mapeamento das Equivalências do Método Freetest com o MPT.BR. Método Freetest MPT.BR Práticas Específicas Práticas Específicas TPE1 AET3 TPE2 AET3 TPE3 AET3 TPE4 AET4 INC1 AET3 INC2 AET3 INC3 AET3 TRG1 AET3 TRG2 AET3 TRG3 AET3 TRG4 AET4 TDA1 TDA5 TDA2 TDA6 TDA3 TDA7 TRQ1 TES1 a TES3 TRQ2 TES4 TFU1 GPT11 TFU2 PET2 a PET4 TFU3 FDT4 GPT1 GPT14 Tabela 3.2: Mapeamento das Equivalências do Método Freetest com a ISO/IEC/IEEE 29119-2. Método Freetest ISO/IEC/IEEE 29119-2 Práticas Específicas Atividades TFU1 ES1 TE1 a TE3 TFU2 IR1 e IR2 TFU3 TC4 GPT1 TP7 39 3.2 Proposta de Melhorias do Método Freetest 40 Sendo assim, somente as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 que não possuem quaisquer equivalências com as práticas específicas compreendidas no Método Freetest foram ponderadas e, consideradas em sua totalidade como possíveis contribuições de melhorias desse método. 3.2 Proposta de Melhorias do Método Freetest A proposta de melhorias do Método Freetest foi elaborada com base no mapeamento das equivalências identificadas entre as práticas específicas do Método Freetest e do MPT.BR e, as atividades da ISO/IEC/IEEE 29119-2 considerando as limitações das MPEs de desenvolvimento de software. A adoção das práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 no contexto dessas MPEs podem contribuir expressivamente com a qualidade dos produtos de software desenvolvidos por esse tipo de organização. Os critérios de inclusão das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 adotados para compor essa proposta conforme as peculiaridades das MPEs de desenvolvimento de software e, com base no estudo realizado por Sartori [65] foram: • As sugestões de melhorias do Método Freetest precisam ser tecnicamente e economicamente viáveis. • Tanto as práticas específicas do MPT.BR quanto as atividades da ISO/IEC/IEEE 29119-2 devem fazer sentido e estar aderentes à cultura da organização. • Grande parte das organizações têm o líder como fundador. • Os objetivos e valores organizacionais são os do fundador. • Falta de mecanismos formais de políticas para orientar a organização. • Possuem menor complexidade em relação às grandes organizações por não necessitarem lidar com muitos grupos, departamentos e dispersão geográfica. • Em geral, seus clientes são pequenas organizações que requerem um software menor e menos complexo. • Não há muitos recursos por isso evitam técnicas, métodos e ferramentas caros e, sofisticados. • Existem poucas pessoas convivendo próximas e com poucas barreiras departamentais. • Fácil comunicação e troca de ideias entre as pessoas. • Os objetivos dos projetos e do negócio são integrados naturalmente pela proximidade, comunicação e ação gerencial sem o uso de reuniões e/ou, comitês. 3.2 Proposta de Melhorias do Método Freetest 41 • Até o momento, não ocorreu nenhuma divergência metodológica causada pelo crescimento da organização com o surgimento de diversos grupos de desenvolvimento, de interesses e motivações próprias de cada um desses grupos. • Unicidade dos processos e métodos que, geralmente, são implementados pelos líderes que fundaram a organização. • Os métodos de desenvolvimento e de teste, tendem a ser os mesmos para todos e não demandam grande esforço de padronização para toda a organização. Algumas das áreas de processo e práticas específicas do MPT.BR e, das atividades da ISO/IEC/IEEE 29119-2 não foram consideradas na proposta de melhorias do Método Freetest dada a dificuldade de implementá-las nessas MPEs. As sugestões de melhorias desse método podem ser vistas na Tabela 3.3 e na Tabela 3.4. Tabela 3.3: Sugestões de Melhorias do Método Freetest com base no MPT.BR. Áreas de Processo Práticas Específicas GPT PET GPT1 a GPT10 GPT11 GPT12 e GPT13 GPT14 GPT15 a GPT25 GPT26 GPT27 e GPT28 PET1 PET2 a PET4 PET5 a PET7 Classificação Método Freetest Melhorias Ignoradas X X X X X X X X X X GRT GRT1 a GRT5 X FDT FDT1 a FDT3 FDT4 X GDQ GDQ1 a GDQ3 MAT MAT1 a MAT5 OGT OGT1 a OGT3 OGT4 OGT5 a OGT7 OGT8 OGT9 e OGT10 OGT11 e OGT12 X X X X X X X X X 3.2 Proposta de Melhorias do Método Freetest 42 TDA TDA1 a TDA4 TDA5 a TDA7 X TES TES1 a TES4 TES5 TRE TRE1 a TRE4 AQP AQP1 a AQP5 X GDD GDD1 a GDD3 X TNF TNF1 a TNF3 X AET AET1 e AET2 AET3 e AET4 AET5 AET6 X X X X X X X X CEP CEP1 a CEP5 X GDF GDF1 a GDF6 X Tabela 3.4: Sugestões de Melhorias do Método Freetest com base na ISO/IEC/IEEE 29119-2. Classificação Método Freetest Melhorias Ignoradas Processos Atividades OT OT1 a OT3 X X TP TP1 a TP6 TP7 TP8 e TP9 X X TMC TMC1 a TMC4 X TC TC1 a TC3 TC4 X TD TD1 TD2 TD3 TD4 TD5 TD6 X X X X X X X ES ES1 ES2 X TE TE1 a TE3 X IR IR1 e IR2 X X 3.2 Proposta de Melhorias do Método Freetest 3.2.1 43 Proposta Elaborada Com Base no MPT.BR As práticas específicas do MPT.BR sugeridas para as melhorias do Método Freetest e as justificativas de sua adoção nas MPEs de desenvolvimento de software estão como a seguir: • GPT1: Direcionar o teste para as áreas mais críticas do produto de software através de uma análise de risco. • GPT2: Estabelecer os objetivos para projetar e executar um determinado teste assim como, o que a organização pretende atingir com esse teste. • GPT3: Definir como o teste será implementado, quais as técnicas, os níveis e os tipos de teste serão abordados no âmbito do projeto de teste. • GPT4: Delimitar o escopo do projeto de teste para que as estimativas de tempo, esforço e custo bem como, uma Estrutura Analítica do Projeto (EAP) possam ser elaboradas. • GPT5: Determinar o tamanho das atividades de teste e dos produtos de trabalho do projeto de teste para que as estimativas de esforço, custo e prazo sejam elaboradas. • GPT6: Conduzir o planejamento do projeto de teste após o ciclo de vida do teste ter sido definido para apoiar as tomadas de decisão em relação aos compromissos assumidos e à abordagem técnica desse projeto. • GPT7: Elaborar as estimativas de esforço e custo para executar as atividades de teste e, desenvolver os produtos de trabalho considerando o tamanho do projeto de teste. • GPT8: Estipular o orçamento e o cronograma do projeto de teste para garantir que a alocação dos recursos orçamentários, a complexidade das tarefas e suas interdependências sejam tratadas de forma apropriada. • GPT9: Identificar os riscos do projeto de teste e elaborar o Plano de Mitigação e, o Plano de Contingência depois desses riscos terem sido analisados quanto ao seu impacto, a sua probabilidade de ocorrência e a sua prioridade de tratamento. • GPT10: Planejar os recursos humanos de acordo com o perfil e a proficiência requeridos para o projeto de teste. • GPT12: Estabelecer um mecanismo responsável pela identificação e pelo planejamento da coleta, do armazenamento e da distribuição dos artefatos e, dados do projeto de teste. • GPT13: Especificar os indicadores de desempenho do projeto de teste para que a gerência desse projeto seja realizada com base em dados objetivos. 3.2 Proposta de Melhorias do Método Freetest 44 • GPT15: Revisar, aprovar e obter o comprometimento do Plano de Teste junto aos stakeholders envolvidos no projeto de teste. • GPT16: Monitorar o progresso do projeto de teste conforme o Plano de Teste estabelecido e registrar os resultados obtidos com esse monitoramento. • GPT17: Planejar e monitorar os stakeholders envolvidos no projeto de teste para assegurar que os compromissos assumidos nesse projeto sejam cumpridos. • GPT18: Revisar os marcos do projeto de teste considerando os parâmetros definidos no Plano de Teste para que uma análise do progresso desse projeto possa ser realizada. • GPT19: Registrar e analisar os defeitos detectados no decorrer do projeto de teste para que suas devidas ações corretivas sejam iniciadas. • GPT20: Implementar as ações corretivas dos defeitos detectados durante o projeto de teste e acompanhá-los até a sua conclusão. • GPT21: Determinar se o teste está apto ou inapto para ser iniciado ou, encerrado por meio dos critérios de entrada e saída exigidos pelo projeto de teste. • GPT22: Estabelecer o critério de suspensão para interromper o teste e depois que o problema responsável pela ativação desse critério for solucionado, o critério de reinício para que esse teste seja reiniciado. • GPT23: Certificar que a execução do teste ocorreu conforme o planejado através do monitoramento dos critérios de entrada, saída, suspensão e reinício do teste. • GPT24: Monitorar os defeitos detectados no produto de software para iniciar suas devidas ações corretivas e identificar as tendências do projeto de teste. • GPT25: Indicar o nível de qualidade do produto de software à medida que as revisões dos produtos de trabalho do projeto de teste forem realizadas. • GPT26: Apesar das melhorias do Método Freetest estarem focadas nos níveis mais baixos do MPT.BR, essa prática específica não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. • GPT27: Verificar se o ambiente de teste está apto ou inapto para o uso antes da execução do teste conforme as especificações do Plano de Teste. • GPT28: Evidenciar e controlar os defeitos detectados durante a verificação da aptidão do ambiente de teste ou a execução do teste, que devem ser acompanhados até a sua conclusão. • PET1: Identificar as condições de teste para construir, priorizar e registrar os casos de teste que serão executados no projeto de teste. • PET5: Padronizar a documentação dos casos de teste construídos para testar o produto de software de um projeto de teste. • PET6: Padronizar a documentação dos defeitos detectados ao longo do projeto de 3.2 Proposta de Melhorias do Método Freetest • • • • • • • • • • • • • • • 45 teste para que possam ser encaminhados aos responsáveis por suas devidas ações corretivas. PET7: Adotar as técnicas de projeto de teste para identificar as condições de teste e construir os casos de teste a serem executados no projeto de teste. GRT1: Definir, avaliar e aprovar formalmente os requisitos de teste após o seu entendimento ter sido obtido junto aos stakeholders envolvidos no projeto de teste. GRT2: Obter o comprometimento entre a equipe de teste e os requisitos de teste aprovados para o projeto de teste. GRT3: Gerenciar as mudanças dos requisitos de teste devido a inclusão de novos e/ou a alteração dos requisitos do projeto de teste. GRT4: Assegurar através da rastreabilidade bidirecional que os requisitos de teste aprovados para o projeto de teste foram trabalhados e os produtos de trabalho desse projeto são rastreados até um requisito de teste válido. GRT5: Certificar que os defeitos existentes entre os requisitos de teste e os produtos de trabalho do projeto de teste são detectados para que suas devidas ações corretivas sejam iniciadas. FDT1: Empacotar e arquivar os ativos de teste para serem reutilizados em outros projetos de teste. FDT2: Limpar o ambiente de teste logo após o término da execução do teste para iniciar um novo projeto de teste, uma fase e/ou um tipo de teste específico. FDT3: Coletar as lições aprendidas junto aos stakeholders envolvidos no projeto de teste após a sua conclusão. GDQ1: Levantar as não-conformidades dos processos de teste e dos produtos de trabalho do projeto de teste depois de realizar uma avaliação objetiva. GDQ2: Resolver as não-conformidades identificadas nos processos de teste e nos produtos de trabalho do projeto de teste junto a equipe de teste e, comunicá-las aos stakeholders envolvidos nesse projeto. GDQ3: Garantir que os registros das atividades da qualidade de software serão estabelecidos e mantidos para que uma análise dos dados contidos nesses registros possa ser realizada. MAT1 a MAT5: Apesar das melhorias do Método Freetest estarem focadas nos níveis mais baixos do MPT.BR, essa área de processo não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. OGT1: Estruturar a área de teste na organização para que os objetivos do teste sejam alcançados através do planejamento, da execução, do monitoramento e do controle das atividades de teste. OGT2: Definir um grupo que se responsabilize pela melhoria contínua dos proces- 3.2 Proposta de Melhorias do Método Freetest • • • • • • • • • • • • • • • • • 46 sos de teste na organização. OGT3: Estabelecer um conjunto de processos de teste padrão na organização. OGT4: Apesar das melhorias do Método Freetest estarem focadas nos níveis mais baixos do MPT.BR, essa prática específica não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. OGT5: Organizar a biblioteca de ativos de teste na organização para que possam ser armazenados, controlados e versionados em um repositório. OGT6: Identificar os pontos fortes e fracos assim como, as ameaças e oportunidades dos processos de teste padrão para que as devidas melhorias sejam implementadas na organização. OGT7: Atribuir os perfis dos profissionais que compõem a equipe de teste da organização para atender as exigências requeridas na execução do projeto de teste. OGT8: Apesar das melhorias do Método Freetest estarem focadas nos níveis mais baixos do MPT.BR, essa prática específica não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. OGT9: Sincronizar as atividades associadas ao ciclo de vida do desenvolvimento do produto de software com o ciclo de vida do teste adotado pela organização. OGT10: Definir e manter as estratégias de teste que são comuns ou específicas aos projetos de teste da organização. OGT11 e OGT12: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. TDA1: Selecionar os produtos de trabalho a serem avaliados no teste de aceitação. TDA2: Estabelecer os critérios de aceitação dos produtos de trabalho que serão utilizados para verificar se estão aptos ou inaptos para o uso. TDA3: Definir os papéis e as responsabilidades dos integrantes da equipe de teste que irão executar o teste de aceitação. TDA4: Planejar a aceitação dos produtos de trabalho através do Plano de Aceitação. TES5: Apesar das melhorias do Método Freetest estarem focadas nos níveis mais baixos do MPT.BR, essa prática específica não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. TRE1: Estruturar um programa estratégico organizacional de treinamento para suprir as lacunas de conhecimento, a introdução de novas tecnologias e ferramentas bem como, a alteração do negócio associados ao projeto de teste. TRE2: Capacitar a equipe de teste de um projeto de teste de acordo com o programa estratégico de treinamento estabelecido pela organização. TRE3: Registrar os treinamentos ministrados para a equipe de teste de um projeto 3.2 Proposta de Melhorias do Método Freetest • • • • • • • • • • 3.2.2 47 de teste. TRE4: Avaliar a efetividade dos treinamentos ministrados pela organização para que seja possível verificar se os objetivos dos treinamentos estão sendo atendidos. AQP1 a AQP5: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. GDD1 a GDD3: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. TNF1 a TNF3: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. AET1: Determinar o regime de automação do teste que compreende procedimentos, ferramentas e recursos envolvidos na execução do teste automatizado na organização. AET2: Estabelecer os critérios de seleção dos casos de teste que serão automatizados conforme a relação de custo e benefício definida pela organização. AET5: Monitorar o regime de automação do teste para verificar se os objetivos da automação estão sendo atendidos. AET6: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. Porém, as práticas específicas AET1, AET2 e AET5 foram consideradas melhorias por serem complementares às práticas específicas AET3 e AET4 do MPT.BR identificadas no Método Freetest. CEP1 a CEP5: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. GDF1 a GDF6: As melhorias do Método Freetest estão focadas nos níveis mais baixos do MPT.BR devido ao contexto das MPEs de desenvolvimento de software. Proposta Elaborada Com Base na ISO/IEC/IEEE 29119-2 Como sugestões de melhorias do Método Freetest têm-se as seguintes atividades da ISO/IEC/IEEE 29119-2 e justificativas para adotá-las nas MPEs de desenvolvimento de software: • OT1: Criar a especificação organizacional do teste com base nas práticas de teste que a organização deseja adotar, nos stakeholders envolvidos no projeto de teste e em outras fontes de informação requeridas na execução desse projeto. • OT2: Assegurar que a especificação organizacional do teste está sendo utilizada de forma eficaz na organização pelos stakeholders envolvidos no projeto de teste. • OT3: Atualizar a especificação organizacional do teste considerando a eficácia do seu uso e manejo, os feedbacks dos stakeholders envolvidos no projeto de teste 3.2 Proposta de Melhorias do Método Freetest • • • • • • • • • • • • • • 48 assim como, as possíveis mudanças para melhorar essa especificação. TP1: Compreender o contexto e os requisitos de teste do produto de software junto aos stakeholders envolvidos no projeto de teste para apoiar a elaboração do Plano de Teste. TP2: Identificar e organizar as atividades, o cronograma e os stakeholders envolvidos no projeto de teste. TP3: Evidenciar, classificar e analisar os riscos inerentes ao projeto de teste. TP4: Mitigar e contingenciar os riscos do projeto de teste de acordo com o seu tipo, a sua classificação e o seu nível de exposição. TP5: Determinar os níveis, as fases e os tipos de teste, as funcionalidades que serão testadas, os critérios de suspensão, reinício e conclusão do teste bem como, as métricas para monitorar e controlar o projeto de teste considerando os recursos humanos e, materiais requeridos na execução desse projeto. TP6: Definir o cronograma do projeto de teste conforme os papéis e as competências necessárias para executar e, agendar cada atividade de teste com base nas estimativas, nas dependências e na disponibilidade dos integrantes da equipe de teste desse projeto. TP8: Obter o consenso do Plano de Teste por meio da resolução dos conflitos existentes entre o planejamento e o ponto de vista dos stakeholders envolvidos no projeto de teste. TP9: Disponibilizar o Plano de Teste e comunicar os stakeholders envolvidos no projeto de teste sobre a sua liberação. TMC1: Estabelecer medidas apropriadas para gerenciar e monitorar as mudanças do projeto de teste e, identificar novos e/ou alterar os riscos desse projeto. TMC2: Monitorar o progresso do projeto de teste e comparar as medidas coletadas com o Plano de Teste estabelecido para identificar, registrar e analisar os desvios existentes entre as atividades planejadas com as atividades realizadas, a inclusão de novos e/ou a alteração dos riscos e, os fatores de bloqueio do progresso desse projeto. TMC3: Implementar as ações necessárias para controlar a gerência do projeto de teste, gerir as divergências identificadas entre as atividades planejadas com as atividades realizadas e tratar os riscos desse projeto. TMC4: Comunicar o progresso do projeto de teste e a inclusão de novos e/ou, a alteração dos riscos aos stakeholders envolvidos nesse projeto através do Relatório de Estado do Teste. TC1: Arquivar os ativos de teste a serem reutilizados em outros projetos de teste e registrar a sua disponibilidade no Relatório de Conclusão do Teste. TC2: Limpar o ambiente de teste para que um novo projeto de teste, uma fase e/ou 3.3 Questionário sobre as Melhorias do Método Freetest • • • • • • • • 3.3 49 um tipo de teste específico possa ser iniciado após a sua conclusão. TC3: Coletar e registrar as lições aprendidas e, os resultados obtidos com a execução do projeto de teste no Relatório de Conclusão do Teste. TD1: Essa atividade não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. TD2: Especificar as condições de teste através das técnicas de projeto de teste para construir os casos de teste que serão executados no decorrer do projeto de teste. TD3: Essa atividade não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. TD4: Construir, priorizar e registrar os casos de teste que serão executados durante o projeto de teste. TD5: Essa atividade não será considerada devido a complexidade de sua implementação no contexto das MPEs de desenvolvimento de software. TD6: Descrever as ações requeridas para que os casos de teste possam ser executados ao longo do projeto de teste considerando sua ordem de execução devido as dependências entre as funcionalidades a serem testadas. ES2: Manter o ambiente de teste de acordo com os requisitos exigidos na execução do projeto de teste. Questionário sobre as Melhorias do Método Freetest Fundamentado na proposta de melhorias do Método Freetest, foi elaborado um questionário para avaliar quais as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 devem ser adotadas a fim de contribuir significativamente com as MPEs de desenvolvimento de software. O público-alvo deste trabalho foram as MPEs que desenvolvem software e estão localizadas em Goiânia, no estado de Goiás do Brasil. As MPEs de desenvolvimento de software goianas envolvidas neste trabalho e os critérios de seleção dessas organizações são exibidos na Tabela 3.5. Tabela 3.5: Critérios de Seleção das MPEs de Desenvolvimento de Software Goianas. Grupo de Teste Funcionários Organização Neokoros Desktop e Embarcado 1 Desenvolvedores Oobj Desktop e Web 2 Dentro do Desenvolvimento Pacto Desktop e Web 6 Dentro do Desenvolvimento Siac Desktop, Web e Mobile 4 Dentro do Desenvolvimento MPEs Tipo de Software A seleção das organizações que participaram deste trabalho ocorreu durante a fase de implementação do Método Freetest em dez MPEs de desenvolvimento de 3.3 Questionário sobre as Melhorias do Método Freetest 50 software goianas. Os critérios definidos para selecionar essas MPEs foram o tipo de software desenvolvido, a quantidade de funcionários que atuam no teste e como o grupo de teste está organizado. Através da definição desses critérios foram selecionadas quatro dessas MPEs: Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas. Para fins de pesquisa, essas organizações receberam um acompanhamento específico visando identificar as fraquezas e as oportunidades relativas às melhorias do Método Freetest. A coleta de dados deste trabalho foi realizada com o apoio dos acompanhamentos in loco na Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas e, dos questionários aplicados em cada uma dessas organizações. Nesse questionário foram abrangidas 59 práticas específicas das áreas de processo GPT (25), PET (4), GRT (5), FDT (3), GDQ (3), OGT (8), TDA (4), TRE (4) e AET (3) do MPT.BR e, 22 atividades das multicamadas Processo Organizacional do Teste (3), Processos de Gerenciamento do Teste (15) e Processos de Teste Dinâmico (4) da ISO/IEC/IEEE 29119-2. A composição desse questionário está descrita no Apêndice B deste trabalho. O questionário elaborado teve sua composição avaliada antes de ser aplicado, por três professores atuantes na área de Engenharia de Software da UFG. Após a análise e a aprovação desse questionário por parte dos professores, o questionário foi aplicado e respondido pelos responsáveis da área de teste da Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas. Para calcular o percentual de adoção, do grau de relevância, do custo de implementação e da pontuação das práticas específicas do MPT.BR e, das atividades da ISO/IEC/IEEE 29119-2, são considerados os seguintes fatores: 1. Quantidade de questionários respondidos; 2. Quantidade de respostas positivas (Sim): (a) Quantidade do grau de relevância (Baixo, Médio e Alto); (b) Pontuação do grau de relevância (Individual e Total). 3. Quantidade de respostas negativas (Não). Os resultados obtidos com o questionário aplicado demonstram que 92% das 59 práticas específicas (GPT, PET, GRT, FDT, GDQ, OGT, TDA, TRE e AET) do MPT.BR e 95% das 22 atividades da ISO/IEC/IEEE 29119-2 (Processo Organizacional do Teste, Processos de Gerenciamento do Teste e Processos de Teste Dinâmico) contribuem com o processo organizacional do teste e estão aderentes ao contexto das MPEs de desenvolvimento de software. O percentual da adoção das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 podem ser vistos na Figura C.1 e na Figura C.11. Na Figura C.15 e na Figura C.17 são salientados o alto grau de relevância das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2, que corres- 3.4 Eliminação de Ambiguidades na Proposta Avaliada e no Método Freetest 51 pondem a 55% e 58% das sugestões de melhorias do Método Freetest, respectivamente. Dentre as práticas específicas do MPT.BR exibidas na Figura D.1, 38% possuem médio custo de implementação e 36% das atividades da ISO/IEC/IEEE 29119-2 mostradas na Figura D.3 apresentam baixo custo de implementação. O cálculo e as figuras do percentual de adoção e, do grau de relevância das práticas específicas do MPT.BR assim como, das atividades da ISO/IEC/IEEE 29119-2 estão descritos no Apêndice C deste trabalho. Também, foram atribuídas pontuações às práticas específicas GPT (212), PET (42), GRT (48), FDT (23), GDQ (25), OGT (81), TDA (37), TRE (32) e AET (35) do MPT.BR e às atividades OT (29), TP (76), TMC (29), TC (26), TD (29) e ES (12) da ISO/IEC/IEEE 29119-2. Essas pontuações mostram que as práticas específicas do MPT.BR demonstradas na Figura D.5 e as atividades da ISO/IEC/IEEE 29119-2 exibidas na Figura D.15 têm um valor agregado significativo e podem beneficiar efetivamente o processo de teste contido no Método Freetest. O cálculo e as figuras do custo de implementação e, da pontuação do grau de relevância das práticas específicas do MPT.BR bem como, as atividades da ISO/IEC/IEEE 29119-2 estão descritos no Apêndice D deste trabalho. 3.4 Eliminação de Ambiguidades na Proposta Avaliada e no Método Freetest Após a avaliação da proposta de melhorias do Método Freetest, as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 compreendidas nessa proposta foram submetidas a uma análise comparativa para que as ambiguidades entre ambas fossem eliminadas e, as equivalências identificadas mapeadas em relação ao MPT.BR. As práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 291192 pertencentes ao Método Freetest também tiveram que ser analisadas e mapeadas novamente pelo mesmo motivo. O mapeamento das equivalências identificadas entre as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 que compõem a proposta avaliada e, o Método Freetest podem ser vistas na Tabela 3.6 e na Tabela 3.7. Tabela 3.6: Mapeamento das Equivalências da Proposta de Melhorias do Método Freetest. MPT.BR ISO/IEC/IEEE 29119-2 Práticas Específicas Atividades GPT1 TP3 e TP4 GPT3 TP5 3.4 Eliminação de Ambiguidades na Proposta Avaliada e no Método Freetest GPT4 TP1 GPT8 TP6 GPT9 TP3 e TP4 GPT10 TP6 GPT15 TP8 GPT16 TMC1 a TMC4 PET1 TD2, TD4 e TD6 FDT1 TC1 FDT2 TC2 FDT3 TC3 OGT10 OT1 e OT3 52 Tabela 3.7: Mapeamento das Equivalências do Método Freetest. MPT.BR ISO/IEC/IEEE 29119-2 Práticas Específicas Atividades GPT11 ES1 PET2 TE1 a TE3 PET3 IR1 e IR2 PET4 IR2 FDT4 TC4 GPT14 TP7 No mapeamento das equivalências da proposta de melhorias do Método Freetest apresentado na Tabela 3.6 as atividades TP1, TP3 a TP6 e TP8 (Processo de Planejamento do Teste) são responsáveis por realizar a análise de risco do produto de software (GPT1), definir a estratégia de teste (GPT3), determinar o escopo do projeto de teste (GPT4), estabelecer e manter tanto o orçamento quanto o cronograma do projeto de teste (GPT8) assim como, identificar os riscos inerentes a esse projeto (GPT9) além de planejar os recursos humanos (GPT10), revisar e obter o comprometimento com o Plano de Teste (GPT15). Nas atividades TD2, TD4 e TD6 (Processo de Projeto e Implementação do Teste) são construídos os casos de teste (PET1) enquanto as atividades TMC1 a TMC4 (Processo de Monitoramento e Controle do Teste) monitoram o projeto de teste (GPT16). O arquivamento dos ativos de teste (FDT1), a limpeza do ambiente de teste (FDT2) bem 3.5 Definição do MPT-MPE.BR 53 como, a identificação das lições aprendidas (FDT3) ao longo do projeto de teste abrangem as atividades TC1 a TC3 (Processo de Conclusão do Teste), respectivamente. A estratégia organizacional do teste é estabelecida e mantida (OGT10) nas atividades OT1 e, OT3 (Processo Organizacional do Teste). Na Tabela 3.7 é mostrado o mapeamento das atividades consideradas equivalentes em relação ao MPT.BR que pertencem ao Método Freetest. De acordo com o mapeamento das equivalências identificadas entre as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2, é possível observar que no Método Freetest o planejamento do ambiente de teste de um projeto de teste (GPT11) ocorre através da atividade ES1 (Processo de Configuração e Manutenção do Ambiente de Teste). Nas atividades TE1 a TE3 (Processo de Execução do Teste) são executados os casos de teste (PET2) e os defeitos detectados durante essa execução relatados (PET3) e, acompanhados até a sua conclusão (PET4) pelas atividades IR1 e IR2 (Processo de Relato dos Incidentes de Teste). A atividade TC4 (Processo de Conclusão do Teste) consolida os dados do teste (FDT4) para que o projeto de teste possa ser concluído e, na atividade TP7 (Processo de Planejamento do Teste) há o estabelecimento do Plano de Teste (GPT14). , 3.5 Definição do MPT-MPE.BR Depois de eliminar as ambiguidades da proposta avaliada e do Método Freetest, tanto as práticas específicas do MPT.BR quanto as atividades da ISO/IEC/IEEE 29119-2 afins contidas em ambos foram reunidas com base nos níveis de maturidade e nas áreas de processo do modelo e, nas multicamadas dos processos de teste da norma explorados da seguinte maneira: 1. Nível 1 associado às multicamadas Processos de Gerenciamento do Teste e Processos de Teste Dinâmico: (a) GPT (GPT1 a GPT20) associado ao Processo de Planejamento do Teste (TP2 e TP9) e ao Processo de Configuração e, Manutenção do Ambiente de Teste (ES2). (b) PET (PET1 a PET4) permaneceu em seu estado original. 2. Nível 2 permaneceu em seu estado original: (a) GRT (GRT1 a GRT5), GPT (GPT21 a GPT25) e PET (PET5 e PET6) permaneceram em seu estado original. 3. Nível 3 associado à multicamada Processo Organizacional do Teste: (a) FDT (FDT1 a FDT4), GDQ (GDQ1 a GDQ3), TDA (TDA1 a TDA7), TES (TES1 a TES4), TRE (TRE1 a TRE4) e PET (PET7) permaneceram em seu estado original. 3.5 Definição do MPT-MPE.BR 54 (b) OGT (OGT1 a OGT3, OGT5 a OGT7, OGT9 e OGT10) associado à atividade OT2. (c) GPT (GPT27 e GPT28) considerou apenas as práticas específicas de maior relevância e menor complexidade. 4. Nível 4 não foi contemplado na proposta avaliada além de não pertencer ao Método Freetest. 5. Nível 5 considera apenas a área de processo AET (AET1 a AET5) por algumas dessas práticas específicas (AET3 e AET4) pertencerem ao Método Freetest. As práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 foram redistribuídas em cinco níveis de maturidade, resultando na definição do modelo de maturidade MPT-MPE.BR. Algumas dessas práticas específicas e dessas atividades tiveram que ser reordenadas e/ou, incorporadas a outras tendo em vista a facilidade de implementação desse modelo de maturidade nas MPEs de desenvolvimento de software. O MPT-MPE.BR é composto por 5 níveis de maturidade, 10 áreas de processo e 74 práticas específicas como demonstrado na Tabela 3.8 e, possui uma abordagem para que os processos de teste desse modelo possam ser implementados nessas MPEs. Cada prática específica está associada a um conjunto de produtos típicos que devem ser gerados durante a implantação e a melhoria contínua desses processos. Tabela 3.8: Composição do MPT-MPE.BR. Nível de Maturidade Áreas de Processo Práticas Específicas GPT Nível 1 GPT4 TP2 GPT2 GPT1 e GPT9 GPT6 GPT3 GPT10 GPT17 GPT5 e GPT7 GPT11 e ES2 GPT8 GPT13 GPT12 GPT14 GPT15 TP9 3.5 Definição do MPT-MPE.BR 55 PET GRT Nível 2 GPT PET FDT GDQ Nível 3 OGT GPT PET GPT16 GPT18 GPT19 GPT20 PET1 PET2 PET3 PET4 GRT1 GRT2 GRT4 GRT3 GRT5 GPT21 e GPT22 GPT23 GPT24 GPT25 PET5 PET6 FDT1 FDT3 FDT4 FDT2 GDQ1 GDQ2 GDQ3 OGT1 OGT2 OGT7 OGT3 OGT10 OT2 OGT5 OGT9 OGT6 GPT27 GPT28 PET7 3.6 Considerações Finais 56 TDA Nível 4 TES TRE Nível 5 3.6 AET TDA1 TDA3 TDA5 TDA2 TDA4 TDA6 TDA7 TES1 TES2 TES3 TES4 TRE1 TRE2 TRE3 TRE4 AET1 AET2 AET3 AET4 AET5 Considerações Finais Este capítulo apresentou detalhadamente todas as etapas realizadas para a construção do modelo de maturidade MPT-MPE.BR com base no Método Freetest, no MPT.BR e na ISO/IEC/IEEE 29119-2. A construção do MPT-MPE.BR foi iniciada a partir do mapeamento das equivalências identificadas entre o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2. Em seguida, foi elaborada uma proposta contendo as possíveis melhorias a serem realizadas no Método Freetest considerando as limitações das MPEs de desenvolvimento de software. Baseado nessa proposta, foi um elaborado questionário para avaliar quais as práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 29119-2 devem ser adotadas e podem contribuir significativamente com as MPEs de desenvolvimento de software. Esse questionário foi aplicado em quatro MPEs de desenvolvimento de software goianas (Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas). 3.6 Considerações Finais 57 As práticas específicas do MPT.BR e as atividades da ISO/IEC/IEEE 291192 da proposta de melhorias do Método Freestest passaram por uma avaliação para que eventuais ambiguidades entre ambas fossem eliminadas. Houve ainda, a necessidade de analisar e mapear novamente as práticas específicas do MPT.BR e, as atividades da ISO/IEC/IEEE 29119-2 pertencentes ao Método Freetest pelo mesmo motivo. Essas práticas específicas e atividades foram organizadas em níveis de maturidade e, áreas de processo originando o MPT-MPE.BR. Cada área de processo desse modelo de maturidade possui suas práticas específicas assim como, os seus produtos típicos. No capítulo a seguir é apresentada a organização do MPT-MPE.BR e, uma abordagem para implantar e prover a melhoria contínua dos processos de teste desse modelo conforme o nível de maturidade que as MPEs de desenvolvimento de software desejam atingir. CAPÍTULO 4 Modelo de Maturidade MPT-MPE.BR Neste capítulo é apresentada a organização dos níveis de maturidade, das áreas de processo, das práticas específicas bem como, os produtos típicos que compõem o modelo de maturidade MPT-MPE.BR. Também, apresenta uma abordagem para implantar e prover a melhoria contínua dos processos de teste contidos no MPT-MPE.BR conforme o nível de maturidade que as MPEs de desenvolvimento de software desejam atingir. 4.1 Níveis de Maturidade O modelo de maturidade MPT-MPE.BR abrange a melhoria do processo de teste através da aplicação de boas práticas em um projeto de teste durante as atividades desenvolvidas no ciclo de vida do teste de um produto de software. Dessa forma, o MPTMPE.BR permite que os processos de teste institucionalizados na organização sejam melhorados continuamente com base nos objetivos organizacionais definidos e o nível de maturidade almejado por essa organização. Os níveis de maturidade estabelecem os patamares da evolução dos processos de teste de uma organização. No MPT-MPE.BR foram definidos cinco níveis de maturidade, como a seguir: • Nível 1 (Parcialmente Gerenciado): Representa o primeiro nível de maturidade a ser obtido por uma organização, sendo necessário demonstrar minimamente que a disciplina de teste é realizada de forma planejada e controlada nos projetos de teste dessa organização. • Nível 2 (Gerenciado): O segundo nível de maturidade indica que os processos de teste da organização possuem maior visibilidade devido os projetos e requisitos de teste serem monitorados e, controlados pela gerência de teste dessa organização. • Nível 3 (Parcialmente Definido): No terceiro nível de maturidade o teste torna-se organizacional, pois a estrutura do teste na organização é estabelecida, os padrões e processos adotados passam por avaliações ao longo das atividades da garantia de qualidade e, os projetos de teste são monitorados e controlados até a sua conclusão. 4.2 Áreas de Processo 59 • Nível 4 (Definido): O quarto nível de maturidade provê a melhoria da qualidade dos produtos de software à medida que são realizadas as atividades de validação e verificação além disso, a equipe de teste é capacitada em relação às novas tecnologias e ferramentas assim como, ao entendimento e à alteração do negócio associados aos projetos de teste da organização. • Nível 5 (Otimização): No quinto nível de maturidade define-se uma abordagem sistemática para a execução automatizada dos testes referentes aos projetos de teste considerando que os processos de teste adotados pela organização estão sob melhoria contínua. 4.2 Áreas de Processo As áreas de processo do MPT-MPE.BR são demonstradas na Tabela 4.1. Cada área de processo é composta por um agrupamento de práticas específicas que satisfazem um determinado objetivo se implementadas coletivamente na organização. Tabela 4.1: Áreas de Processo do MPT-MPE.BR. Nível de Maturidade Áreas de Processo Práticas Específicas PCT PCT1 a PCT20 Nível 1 EET EET1 a EET4 CRT CRT1 a CRT5 Nível 2 PCT PCT21 a PCT24 EET EET5 e EET6 EDT EDT1 a EDT4 GQT GQT1 a GQT3 Nível 3 ETO ETO1 a ETO9 PCT PCT25 e PCT26 EET EET7 ETA ETA1 a ETA7 Nível 4 ETE ETE1 a ETE4 CET CET1 a CET4 Nível 5 EAT EAT1 a EAT5 Para demonstrar que a organização atingiu um determinado nível de maturidade, os processos de teste aplicados em seus projetos de teste devem ser avaliados para certificar que todas as áreas de processo referentes a esse nível estão sendo atendidas bem como, os níveis anteriores do MPT-MPE.BR. 4.2.1 Planejamento e Controle do Teste (PCT) O PCT define e mantém planos capazes de gerenciar, monitorar e controlar as atividades de teste até a conclusão do projeto de teste. 4.2 Áreas de Processo 60 Metas: • • • • • Estabelecer o Plano de Teste; Interagir com os stakeholders envolvidos no projeto de teste; Obter o compromisso com o Plano de Teste; Monitorar e controlar o progresso do projeto de teste; Manter o Plano de Teste. PCT1 - Definir o escopo do projeto de teste. Objetivo: Estabelecer o escopo de trabalho com base no entendimento do contexto e dos requisitos de teste do produto de software que será desenvolvido para apoiar a elaboração do Plano de Teste e, a execução do projeto de teste. Produtos Típicos: • • • • Levantamento dos requisitos de teste para o projeto de teste; Definição das premissas e restrições do projeto de teste; Definição dos critérios de aceitação do projeto de teste; Elaboração da EAP de teste em alto nível. PCT2 - Preparar o desenvolvimento do Plano de Teste. Objetivo: Identificar os recursos humanos e materiais, os stakeholders e, as atividades para concluir o planejamento do projeto de teste. Produtos Típicos: • Listagem dos recursos humanos e materiais a serem utilizados no projeto de teste; • Listagem dos stakeholders a serem envolvidos no projeto de teste; • Listagem das atividades a serem desenvolvidas no projeto de teste. PCT3 - Determinar os objetivos do teste. Objetivo: Especificar e manter os objetivos do teste para que o projeto de teste seja conduzido conforme as expectativas da organização. Produtos Típicos: • Definição dos objetivos do teste. PCT4 - Identificar e analisar os riscos do produto de software e/ou, projeto de teste. Objetivo: Evidenciar, classificar e analisar os riscos do produto de software e/ou, projeto de teste que devem ser tratados através do Plano de Mitigação e do Plano de Contingência. Produtos Típicos: • Definição dos riscos do produto de software e/ou projeto de teste; • Definição do impacto, da probabilidade de ocorrência e da prioridade de tratamento dos riscos do produto de software e/ou, projeto de teste; 4.2 Áreas de Processo 61 • Elaboração do Plano de Mitigação e do Plano de Contingência dos riscos do produto de software e/ou, projeto de teste. PCT5 - Estabelecer o ciclo de vida do projeto de teste. Objetivo: Definir um ciclo de vida para conduzir o planejamento e a execução do projeto de teste e, apoiar as tomadas de decisão referentes aos compromissos assumidos e à abordagem técnica adotada nesse projeto. Produtos Típicos: • Definição do ciclo de vida do projeto de teste. PCT6 - Especificar a estratégia de teste. Objetivo: Determinar na estratégia de teste como o teste será implementado, quais as técnicas, os níveis e os tipos de teste que serão abordados no projeto de teste. Produtos Típicos: • Definição da estratégia de teste. PCT7 - Planejar os recursos humanos do projeto de teste. Objetivo: Realizar o planejamento dos recursos humanos de acordo com o perfil e a proficiência exigidos no projeto de teste. Produtos Típicos: • Planejamento para a composição e a contratação de profissionais com habilidades necessárias para a execução da função; • Armazenamento em banco de dados das informações sobre as habilidades da equipe de teste e os treinamentos proporcionados a esses profissionais; • Planejamento de treinamentos para a equipe de teste. PCT8 - Gerenciar o envolvimento dos stakeholders no projeto de teste. Objetivo: Planejar e monitorar o envolvimento dos stakeholders no projeto de teste para garantir que os compromissos assumidos sejam cumpridos. Produtos Típicos: • Planejamento do envolvimento dos stakeholders no projeto de teste; • Registro do envolvimento dos stakeholders no projeto de teste. PCT9 - Estimar o tamanho, a complexidade, o esforço e o custo das atividades de teste e, dos produtos de trabalho. Objetivo: Mensurar o tamanho e a complexidade das atividades de teste e, dos produtos de trabalho que serão desenvolvidos ao longo do projeto de teste assim como, o esforço e o custo da execução desse projeto. Produtos Típicos: 4.2 Áreas de Processo 62 • • • • Seleção dos modelos de estimativa; Definição da abordagem técnica utilizada no projeto de teste; Descrição do raciocínio usado nas estimativas do projeto de teste; Elaboração das estimativas de tamanho e da complexidade das atividades de teste e, dos produtos de trabalho; • Elaboração das estimativas de esforço das atividades de teste e dos produtos de trabalho; • Elaboração das estimativas de custo das atividades de teste e dos produtos de trabalho. PCT10 - Estruturar o ambiente de teste. Objetivo: Estabelecer e manter o ambiente de teste conforme com os requisitos exigidos para a execução do projeto de teste. Produtos Típicos: • Descrição do ambiente de teste; • Alteração e/ou atualização do ambiente de teste de acordo com as necessidades do projeto de teste; • Comunicação com os stakeholders envolvidos no projeto de teste quando o ambiente de teste for alterado e/ou atualizado. PCT11 - Elaborar o orçamento e/ou cronograma do projeto de teste. Objetivo: Determinar e manter o orçamento e/ou, cronograma do projeto de teste considerando os marcos e/ou pontos de controle desse projeto para assegurar que os recursos orçamentários alocados, a complexidade das atividades de teste e dos produtos de trabalho bem como, suas interdependências sejam explorados adequadamente. Produtos Típicos: • • • • Elaboração do orçamento do projeto de teste; Elaboração do cronograma do projeto de teste; Identificação das dependências do cronograma elaborado para o projeto de teste; Definição dos marcos e/ou pontos de controle do projeto de teste. PCT12 - Identificar os indicadores de desempenho do teste. Objetivo: Definir os indicadores de desempenho do teste e possibilitar que a gerência do projeto de teste seja efetuada com base em dados objetivos. Produtos Típicos: • Definição dos indicadores de desempenho do teste. PCT13 - Gerenciar os artefatos e/ou dados do projeto de teste. 4.2 Áreas de Processo 63 Objetivo: Planejar e manter um mecanismo responsável pela identificação, pela coleta, pelo armazenamento e, pela distribuição dos artefatos e/ou dados gerados no decorrer do projeto de teste. Produtos Típicos: • Planejamento da gerência dos artefatos e/ou dados do projeto de teste; • Definição dos mecanismos de distribuição dos artefatos e/ou dados do projeto de teste; • Definição dos requisitos de privacidade e segurança dos artefatos e/ou, dados do projeto de teste. PCT14 - Registrar o Plano de Teste. Objetivo: Documentar o Plano de Teste abordando todos os aspectos relevantes do planejamento e dos trabalhos a serem executados no projeto de teste. Produtos Típicos: • Elaboração do Plano de Teste. PCT15 - Obter o comprometimento com o Plano de Teste. Objetivo: Revisar e aprovar as definições estabelecidas no Plano de Teste junto aos stakeholders envolvidos no projeto de teste e, obter o comprometimento das partes interessadas nesse projeto. Produtos Típicos: • Obtenção dos compromissos assumidos pelos stakeholders envolvidos no projeto de teste; • Registro dos compromissos assumidos pelos stakeholders envolvidos no projeto de teste; • Revisão e aprovação do Plano de Teste. PCT16 - Disponibilizar o Plano de Teste. Objetivo: Liberar o Plano de Teste e comunicar os stakeholders envolvidos no projeto de teste sobre a sua publicação. Produtos Típicos: • Disponibilização do Plano de Teste; • Comunicação com os stakeholders envolvidos no projeto de teste quando o Plano de Teste for liberado. PCT17 - Monitorar o projeto de teste. Objetivo: Acompanhar o progresso do projeto de teste conforme as definições estabelecidas no Plano de Teste e registrar os resultados obtidos durante o monitoramento desse projeto. Produtos Típicos: 4.2 Áreas de Processo 64 • Elaboração do Relatório de Estado do Teste. PCT18 - Revisar os marcos do projeto de teste. Objetivo: Rever os marcos do projeto de teste para que o seu progresso seja analisado conforme os parâmetros estabelecidos no Plano de Teste. Produtos Típicos: • Resultados das revisões de marco do projeto de teste. PCT19 - Registrar os problemas identificados no projeto de teste. Objetivo: Documentar e analisar os problemas identificados no projeto de teste para que suas devidas ações corretivas possam ser iniciadas. Produtos Típicos: • Registro dos problemas identificados no projeto de teste. PCT20 - Monitorar as ações corretivas de problemas no projeto de teste. Objetivo: Estabelecer as ações corretivas dos problemas identificados no projeto de teste e acompanhá-las até a sua conclusão. Produtos Típicos: • Planejamento das ações corretivas dos problemas identificados no projeto de teste; • Resultados das ações corretivas no projeto de teste. PCT21 - Definir os critérios de entrada, saída, suspensão e reinício do teste (A partir do Nível 2). Objetivo: Estabelecer os critérios de entrada e saída que determinam se o teste está apto ou inapto para ser iniciado ou concluído, o critério de suspensão que interrompe a execução do teste e, após o problema responsável pela ativação desse critério ter sido solucionado, o critério de reinício para que esse teste seja reiniciado no projeto de teste. Produtos Típicos: • Definição dos critérios de entrada, saída, suspensão e reinício do teste. PCT22 - Monitorar os critérios de entrada, saída, suspensão e reinício do teste (A partir do Nível 2). Objetivo: Acompanhar os critérios de entrada, saída, suspensão e reinício do teste até a conclusão do projeto de teste para garantir que a execução do teste ocorrerá de acordo com o planejado. Produtos Típicos: • Monitoramento dos critérios de entrada, saída, suspensão e reinício do teste; • Registro do histórico de alterações nos critérios de entrada, saída, suspensão e reinício do teste. 4.2 Áreas de Processo 65 PCT23 - Monitorar os defeitos do produto de software (A partir do Nível 2). Objetivo: Analisar e acompanhar os defeitos detectados no produto de software, o progresso das ações corrretivas desses defeitos e, identificar as tendências do projeto de teste. Produtos Típicos: • Planejamento da análise de defeitos detectados no produto de software incluindo as métricas utilizadas; • Resultado da análise de defeitos detectados no produto de software; • Resultados das ações corretivas relacionadas à análise de defeitos no produto de software. PCT24 - Executar as revisões de qualidade no produto de software (A partir do Nível 2). Objetivo: Planejar e conduzir as revisões do produto de software desenvolvido no decorrer do projeto de teste para definir o seu nível de qualidade. Produtos Típicos: • Planejamento das revisões de qualidade do produto de software; • Resultado da análise de defeitos detectados no produto de software; • Resultados das ações corretivas relacionadas à análise de defeitos no produto de software. PCT25 - Avaliar a aptidão do ambiente de teste (A partir do Nível 3). Objetivo: Analisar se o ambiente de teste está apto ou inapto para o uso antes da execução do teste conforme as definições estabelecidas no Plano de Teste. Produtos Típicos: • Listagem da avaliação de aptidão do ambiente de teste; • Elaboração do Relatório de Aptidão do Ambiente de Teste. PCT26 - Monitorar os incidentes do ambiente de teste (A partir do Nível 3). Objetivo: Registrar os incidentes detectados durante a avaliação de aptidão do ambiente de teste ou a execução do teste e acompanhá-los até a sua conclusão. Produtos Típicos: • Registro dos incidentes detectados no ambiente de teste. 4.2.2 Especificação e Execução do Teste (EET) Na EET os casos de teste são identificados, elaborados e executados ao longo do projeto de teste além disso, há o registro da execução do teste e as divergências entre os resultados esperados e, obtidos devem ser relatadas na forma de incidentes. Metas: 4.2 Áreas de Processo 66 • Identificar os casos de teste; • Executar os casos de teste; • Reportar e acompanhar os incidentes detectados. EET1 - Construir os casos de teste. Objetivo: Identificar as condições de teste para que os casos de teste sejam construídos, priorizados e registrados durante a execução do projeto de teste. Produtos Típicos: • Elaboração dos casos de teste. EET2 - Executar os casos de teste. Objetivo: Conduzir a execução dos casos de teste do projeto de teste e registrar os resultados obtidos com essa execução no log do teste. Produtos Típicos: • Log da execução do teste. EET3 - Registrar os incidentes detectados no produto de software. Objetivo: Documentar e analisar os incidentes detectados no produto de software em decorrência da execução do teste para iniciar suas devidas ações corretivas. Produtos Típicos: • Registro dos incidentes detectados no produto de software. EET4 - Monitorar os incidentes do produto de software. Objetivo: Analisar os incidentes detectados no produto de software durante a execução do teste e acompanhá-los até a sua conclusão. Produtos Típicos: • Elaboração do Relatório de Incidentes do Teste. EET5 - Padronizar a documentação dos casos de teste (A partir do Nível 2). Objetivo: Determinar um padrão de documentação dos casos de teste que será adotado pela organização em seus projetos de teste. Produtos Típicos: • Padronização da documentação dos casos de teste; • Registro dos casos de teste seguindo o padrão definido pela organização. EET6 - Padronizar a documentação dos incidentes do produto de software (A partir do Nível 2). Objetivo: Determinar um padrão de documentação dos incidentes detectados no produto de software que será adotado pela organização em seus projetos de teste. Produtos Típicos: 4.2 Áreas de Processo 67 • Padronização da documentação dos incidentes do produto de software; • Registro dos incidentes do produto de software seguindo o padrão definido pela organização. EET7 - Aplicar as técnicas de teste no projeto de teste (A partir do Nível 3). Objetivo: Determinar as técnicas de teste para identificar as condições de teste e construir os casos de teste que serão executados ao longo do projeto de teste. Produtos Típicos: • Seleção das técnicas de teste para o uso no projeto de teste; • Identificação das condições de teste com base na aplicação das técnicas de teste no projeto de teste. 4.2.3 Controle dos Requisitos de Teste (CRT) O CRT gerencia os requisitos de teste e identifica as inconsistências existentes entre esses requisitos e, os produtos de trabalho do projeto de teste. Metas: • • • • Aprovar os requisitos de teste; Obter o compromisso com os requisitos de teste; Gerenciar as mudanças dos requisitos de teste; Identificar as inconsistências dos requisitos de teste. CRT1 - Obter o entendimento dos requisitos de teste. Objetivo: Entender e definir os requisitos de teste junto aos stakeholders envolvidos no projeto de teste para que esses requisitos sejam avaliados e, aprovados formalmente pelas partes interessadas nesse projeto. Produtos Típicos: • Identificação dos fornecedores dos requisitos de teste; • Definição de critérios objetivos para a análise da testabilidade dos requisitos de teste; • Resultado da análise dos requisitos de teste; • Aprovação dos requisitos de teste. CRT2 - Obter o comprometimento com os requisitos de teste. Objetivo: Conseguir o comprometimento da equipe de teste com os requisitos de teste aprovados junto aos stakeholders envolvidos no projeto de teste. Produtos Típicos: • Obtenção do comprometimento da equipe de teste com os requisitos de teste e suas mudanças. 4.2 Áreas de Processo 68 CRT3 - Estabelecer a rastreabilidade bidirecional entre os requisitos de teste e os produtos de trabalho. Objetivo: Definir e manter a rastreabilidade bidirecional entre os requisitos de teste aprovados e, os produtos de trabalho do projeto de teste. Produtos Típicos: • Definição da rastreabilidade bidirecional dos requisitos de teste com os produtos de trabalho; • Descrição dos mecanismos da rastreabilidade dos requisitos de teste com os produtos de trabalho. CRT4 - Gerenciar as mudanças dos requisitos de teste. Objetivo: Analisar e monitorar as mudanças dos requisitos de teste devido a inclusão de novos e/ou, a alteração dos requisitos durante o projeto de teste. Produtos Típicos: • • • • Solicitação de mudança dos requisitos de teste; Listagem do estado dos requisitos de teste; Registro do resultado da análise de impacto das mudanças dos requisitos de teste; Armazenamento em banco de dados dos requisitos de teste. CRT5 - Identificar as inconsistências entre os requisitos de teste e os produtos de trabalho. Objetivo: Evidenciar as inconsistências existentes entre os requisitos de teste e os produtos de trabalho do projeto de teste para que suas devidas ações corretivas possam ser iniciadas. Produtos Típicos: • Registro das inconsistências existentes entre os requisitos de teste e os produtos de trabalho, incluindo as origens, as condições e o raciocínio utilizados; • Resultados das ações corretivas das inconsistências entre os requisitos de teste e os produtos de trabalho. 4.2.4 Encerramento do Teste (EDT) No EDT são organizados e sistematizados os procedimentos adotados para concluir o teste de um projeto de teste. Metas: • • • • Armazenar os ativos de teste; Restaurar o ambiente de teste; Identificar as lições aprendidas no projeto de teste; Concluir o projeto de teste. 4.2 Áreas de Processo 69 EDT1 - Arquivar os ativos de teste. Objetivo: Empacotar e armazenar os ativos de teste para que sejam reutilizados em outros projetos de teste da organização. Produtos Típicos: • Empacotamento e arquivamento dos ativos de teste. EDT2 - Coletar as lições aprendidas no projeto de teste. Objetivo: Identificação das lições aprendidas junto aos stakeholders envolvidos no projeto de teste após a conclusão desse projeto, uma fase e/ou um tipo de teste específico. Produtos Típicos: • Reunião das lições aprendidas no projeto de teste. EDT3 - Relatar a conclusão do teste. Objetivo: Coletar e reunir todas as informações consideradas relevantes sobre a execução do teste depois que o projeto de teste tiver sido concluído e, apresentá-las aos stakeholders envolvidos nesse projeto. Produtos Típicos: • Elaboração do Relatório de Conclusão do Teste. EDT4 - Limpar o ambiente de teste. Objetivo: Restaurar o ambiente de teste para o seu estado original logo após o projeto de teste ser concluído para iniciar um novo projeto de teste, uma fase e/ou um tipo de teste específico. Produtos Típicos: • Limpeza do ambiente de teste. 4.2.5 Garantia da Qualidade do Teste (GQT) A GQT estabelece um mecanismo de avaliação dos processos de teste e dos produtos de trabalho de um projeto de teste. Metas: • Analisar os processos de teste e os produtos de trabalho; • Identificar as não-conformidades dos processos de teste e dos produtos de trabalho; • Divulgar o resultado das avaliações dos processos de teste e dos produtos de trabalho à gerência e, aos stakeholders do projeto de teste; • Garantir que as ações corretivas das não-conformidades identificadas serão concluídas. 4.2 Áreas de Processo 70 GQT1 - Avaliar os processos de teste e os produtos de trabalho. Objetivo: Analisar os processos de teste e os produtos de trabalho do projeto de teste para que suas não-conformidades sejam identificadas após a realização de uma avaliação objetiva. Produtos Típicos: • Definição dos critérios de avaliação dos processos de teste e dos produtos de trabalho; • Resultado da avaliação dos processos de teste e dos produtos de trabalho; • Registro das não-conformidades dos processos de teste e dos produtos de trabalho; • Resultado da análise das ações corretivas das não-conformidades dos processos de teste e dos produtos de trabalho. GQT2 - Solucionar as não-conformidades dos processos de teste e dos produtos de trabalho. Objetivo: Resolver as não-conformidades identificadas nos processos de teste e nos produtos de trabalho do projeto de teste junto a equipe de teste e, comunicá-las aos stakeholders envolvidos nesse projeto. Produtos Típicos: • Resultados das ações corretivas das não-conformidades dos processos de teste e dos produtos de trabalho. GQT3 - Registrar as atividades de garantia da qualidade. Objetivo: Documentar e manter as atividades de garantia da qualidade e, identificar por meio dos dados históricos da qualidade suas tendências na organização. Produtos Típicos: • Log da execução das atividades de garantia da qualidade; • Identificação das tendências de qualidade na organização. 4.2.6 Estruturação do Teste na Organização (ETO) Na ETO a estrutura organizacional do teste é definida e os processos de teste adotados são melhorados continuamente na organização. Metas: • Definir a estrutura organizacional do teste; • Especificar um grupo responsável pela definição, adaptação e/ou melhoria dos processos de teste da organização; • Estabelecer a biblioteca de ativos dos processos de teste da organização; • Gerenciar o perfil da equipe de teste da organização; 4.2 Áreas de Processo 71 • Determinar a estratégia organizacional do teste; • Integrar o ciclo de vida do desenvolvimento ao ciclo de vida do teste. ETO1 - Estabelecer a estrutura organizacional do teste. Objetivo: Determinar a estrutura organizacional do teste para que os objetivos do teste possam ser atingidos através do planejamento, da execução, do monitoramento e do controle das atividades do teste. Produtos Típicos: • Definição da estrutura organizacional do teste. ETO2 - Definir um grupo responsável pelos processos de teste da organização. Objetivo: Especificar um grupo responsável pela implantação e melhoria contínua dos processos de teste na organização. Produtos Típicos: • Formação do grupo responsável pelos processos de teste da organização. ETO3 - Atribuir os perfis de teste à equipe de teste. Objetivo: Identificar e associar os perfis de teste aos profissionais da equipe de teste da organização para atender as exigências requeridas pelos projetos de teste. Produtos Típicos: • Definição dos perfis de teste da equipe de teste; • Atribuição dos perfis de teste aos profissionais da equipe de teste envolvidos nos projetos de teste da organização. ETO4 - Determinar os processos de teste padrão da organização. Objetivo: Definir e manter os processos de teste padrão que serão adotados pela organização em seus projetos de teste. Produtos Típicos: • Definição dos processos de teste padrão da organização. ETO5 - Especificar a estratégia organizacional de teste. Objetivo: Estabelecer e manter uma estratégia organizacional de teste a partir das práticas de teste que são comuns ou específicas aos projetos de teste da organização. Produtos Típicos: • Definição da estratégia organizacional de teste. ETO6 - Monitorar o uso da estratégia organizacional de teste. Objetivo: Controlar e acompanhar a utilização da estratégia organizacional de teste pelos stakeholders envolvidos no projeto de teste e, verificar se esse uso está ocorrendo de forma eficaz na organização. Produtos Típicos: 4.2 Áreas de Processo 72 • Monitoramento do uso da estratégia organizacional de teste; • Alinhamento entre os stakeholders envolvidos no projeto de teste com a estratégia organizacional de teste. ETO7 - Estruturar a biblioteca de ativos dos processos de teste padrão da organização. Objetivo: Estabelecer e manter a biblioteca de ativos dos processos de teste padrão da organização para armazenar, controlar e versionar esses ativos em um repositório. Produtos Típicos: • Definição da biblioteca de ativos dos processos de teste padrão da organização; • Definição dos critérios e procedimentos para o uso da biblioteca de ativos dos processos de teste padrão da organização; • Listagem dos itens armazenados na biblioteca de ativos dos processos de teste padrão da organização. ETO8 - Integrar os ciclos de vida do desenvolvimento e do teste. Objetivo: Incorporar as atividades vinculadas ao ciclo de vida do desenvolvimento do produto de software com o ciclo de vida do teste adotado pela organização. Produtos Típicos: • Descrição da integração dos ciclos de vida do desenvolvimento e do teste. ETO9 - Implementar as ações de melhoria nos processos de teste padrão da organização. Objetivo: Identificar os pontos fortes e fracos assim como, as ameaças e oportunidades com base no monitoramento dos processos de teste padrão para que as devidas melhorias sejam implementadas na organização continuamente. Produtos Típicos: • Identificação de melhorias nos processos de teste padrão da organização; • Planejamento da avaliação de melhorias nos processos de teste padrão da organização; • Resultados da implementação de melhorias nos processos de teste padrão da organização. 4.2.7 Execução do Teste de Aceitação (ETA) A ETA valida se as necessidades e expectativas dos usuários estão sendo atendidas através da aceitação dos produtos de trabalho de um projeto de teste. Metas: 4.2 Áreas de Processo • • • • 73 Planejar a aceitação dos produtos de trabalho; Preparar o ambiente de teste de aceitação; Executar o teste de aceitação; Decidir a aceitação dos produtos de trabalho. ETA1 - Selecionar os produtos de trabalho para a aceitação. Objetivo: Escolher os produtos de trabalho que serão avaliados durante o teste de aceitação considerando os relacionamentos desses produtos com as necessidades dos usuários. Produtos Típicos: • Listagem dos produtos de trabalho a serem avaliados no teste de aceitação. ETA2 - Determinar os papéis e as responsabilidades para a aceitação. Objetivo: Definir os papéis e as responsabilidades da equipe de teste e, dos usuários que irão executar o teste de aceitação dos produtos de trabalho. Produtos Típicos: • Definição dos papéis e responsabilidades para a realização do teste de aceitação dos produtos de trabalho. ETA3 - Estruturar o ambiente de teste de aceitação. Objetivo: Estabelecer e manter o ambiente de teste para a aceitação dos produtos de trabalho conforme os requisitos exigidos na execução do teste de aceitação. Produtos Típicos: • Definição do ambiente de teste de aceitação; • Alteração e/ou atualização do ambiente de teste de aceitação dos produtos de trabalho de acordo com as necessidades da equipe de teste e, dos usuários; • Comunicação com a equipe de teste e com os usuários quando o ambiente de teste de aceitação for alterado e/ou, atualizado. ETA4 - Definir os critérios de aceitação dos produtos de trabalho. Objetivo: Determinar os critérios de aceitação para verificar se os produtos de trabalho estão aptos ou inaptos para o uso em um ambiente de produção. Produtos Típicos: • Definição dos critérios de aceitação dos produtos de trabalho. ETA5 - Registrar o Plano de Aceitação. Objetivo: Documentar o Plano de Aceitação abordando todos os aspectos relevantes do planejamento e dos trabalhos a serem executados no teste de aceitação. Produtos Típicos: 4.2 Áreas de Processo 74 • Elaboração do Plano de Aceitação. ETA6 - Conduzir a aceitação dos produtos de trabalho. Objetivo: Executar e registrar o teste de aceitação dos produtos de trabalho no log do teste, documentar e analisar os incidentes detectados no decorrer dessa execução para que suas devidas ações corretivas sejam iniciadas e, acompanhá-las até a sua conclusão. Produtos Típicos: • Log da execução do teste de aceitação. • Registro dos incidentes detectados no teste de aceitação; • Elaboração do Relatório de Incidentes do Teste. ETA7 - Avaliar as condições de aceitação dos produtos de trabalho. Objetivo: Analisar e monitorar os critérios de aceitação dos produtos de trabalho e, certificar que esses produtos estão aptos ou inaptos para o uso em um ambiente de produção. Produtos Típicos: • Elaboração do Relatório de Conclusão do Teste; • Decisão de aceitação dos produtos de trabalho. 4.2.8 Execução do Teste Estático (ETE) Na ETE os incidentes são identificados com antecedência nos ciclos de vida do desenvolvimento e do teste para verificar se os requisitos dos produtos de trabalho do projeto de teste estão sendo atendidos. Metas: • Planejar a revisão dos produtos de trabalho; • Conduzir a revisão dos produtos de trabalho; • Analisar os dados das revisões realizadas. ETE1 - Selecionar os produtos de trabalho e os tipos de revisão. Objetivo: Escolher os produtos de trabalho que necessitam ser revisados e os tipos de revisão que serão aplicados em cada um desses produtos. Produtos Típicos: • Definição dos critérios de seleção dos produtos de trabalho a serem revisados; • Listagem dos produtos de trabalho a serem revisados; • Seleção dos tipos de revisão associados aos produtos de trabalhos. 4.2 Áreas de Processo 75 ETE2 - Definir o critério de revisão dos produtos de trabalho. Objetivo: Determinar os critérios de revisão dos produtos de trabalho que serão utilizados para que as devidas verificações possam ser realizadas. Produtos Típicos: • Definição dos critérios de revisão dos produtos de trabalho. ETE3 - Conduzir a revisão dos produtos de trabalho. Objetivo: Executar e registrar as revisões dos produtos de trabalho no log da revisão, documentar e analisar os incidentes detectados no decorrer da execução dessa revisão para que as devidas ações corretivas sejam iniciadas e, acompanhá-las até a sua conclusão. Produtos Típicos: • • • • • • Log da execução da revisão; Resultados da revisão dos produtos de trabalho; Questionamentos associados à revisão dos produtos de trabalho; Registro dos incidentes detectados na revisão dos produtos de trabalho; Relatório de Incidentes do Teste; Elaboração do Relatório de Revisão. ETE4 - Avaliar os dados da revisão. Objetivo: Analisar e monitorar os dados da revisão sobre o planejamento, a preparação, a condução e, a conclusão do processo de revisão para identificar suas tendências e melhorálo continuamente. Produtos Típicos: • Resultado da análise dos dados da revisão dos produtos de trabalho. 4.2.9 Capacitação da Equipe de Teste (CET) A CET propociona a obtenção de conhecimento e o desenvolvimento de habilidades da equipe de teste para que sua função seja desempenhada adequadamente no projeto de teste. Metas: • • • • Identificar a necessidade de treinamentos para a equipe de teste; Definir um programa estratégico organizacional de treinamento; Capacitar a equipe de teste; Analisar a efetividade dos treinamentos ministrados. CET1 - Estabelecer um programa estratégico organizacional de treinamento. 4.2 Áreas de Processo 76 Objetivo: Definir um programa estratégico organizacional de treinamento para suprir as lacunas de conhecimento, a introdução de novas tecnologias e ferramentas assim como, a alteração do negócio associados ao projeto de teste. Produtos Típicos: • Definição do programa estratégico organizacional de treinamento. CET2 - Treinar a equipe de teste. Objetivo: Capacitar a equipe de teste conforme as definições estabelecidas no programa estratégico organizacional de treinamento e/ou as exigências requeridas para executar um projeto de teste. Produtos Típicos: • Definição da abordagem dos treinamentos a serem ministrados para a equipe de teste; • Disponibilização dos materiais associados aos treinamentos a serem ministrados para a equipe de teste; • Resultado dos treinamentos ministrados para a equipe de teste. CET3 - Registrar os treinamentos. Objetivo: Documentar os treinamentos ministrados para a equipe de teste de um determinado projeto de teste. Produtos Típicos: • Registro dos treinamentos ministrados para a equipe de teste. CET4 - Avaliar a efetividade dos treinamentos. Objetivo: Analisar e monitorar a efetividade dos treinamentos promovidos pela organização e, verificar se os objetivos desses treinamentos estão sendo atendidos. Produtos Típicos: • Aplicação dos questionários de avaliação dos treinamentos ministrados para a equipe de teste; • Preenchimento dos formulários de avaliação dos instrutores que ministraram os treinamentos para a equipe de teste; • Avaliação de desempenho do programa estratégico organizacional de treinamento. 4.2.10 Execução Automatizada do Teste (EAT) Na EAT é estabelecida e mantida uma abordagem que apoie a execução automatizada do teste de um projeto de teste. Metas: 4.2 Áreas de Processo • • • • 77 Determinar os objetivos do regime de automação; Definir uma infraestrutura que apoie a execução automatizada do teste; Gerenciar as iniciativas de automação do teste; Analisar a aderência do regime de automação estabelecido. EAT1 - Determinar os objetivos do regime de automação do teste. Objetivo: Definir os objetivos do regime de automação do teste considerando os procedimentos, as ferramentas e os recursos envolvidos na execução automatizada do teste na organização. Produtos Típicos: • Definição dos objetivos do regime de automação do teste. EAT2 - Definir os critérios de seleção para a automação dos casos de teste. Objetivo: Especificar os critérios de seleção dos casos de teste que terão sua execução automatizada de acordo com a relação de custo e benefício estabelecida pela organização. Produtos Típicos: • Definição dos critérios de seleção dos casos de teste a serem automatizados. EAT3 - Apoiar a execução automatizada do teste. Objetivo: Determinar e manter uma infraestrutura que apoie a execução automatizada do teste incluindo as ferramentas, as rotinas, os dados e, os utilitários definidos pela organização. Produtos Típicos: • Definição da infraestrutura de apoio à execução automatizada do teste. EAT4 - Executar o teste automatizado. Objetivo: Conduzir e registrar o teste automatizado dos produtos de trabalho no log do teste, documentar e analisar os incidentes detectados no decorrer dessa execução para que suas devidas ações corretivas sejam iniciadas e, acompanhá-las até a sua conclusão. Produtos Típicos: • • • • Log da execução do teste automatizado; Registro dos incidentes detectados no teste automatizado; Elaboração do Relatório de Incidentes do Teste; Elaboração do Relatório de Conclusão do Teste. EAT5 - Avaliar a aderência aos objetivos do regime de automação do teste. Objetivo: Analisar e monitorar o regime de automação do teste da organização para verificar se os objetivos da execução automatizada do teste estão sendo atendidos. Produtos Típicos: • Resultado da análise dos objetivos do regime de automação do teste; • Resultados das ações corretivas no regime de automação do teste. 4.3 Abordagem de Implementação do MPT-MPE.BR 4.3 78 Abordagem de Implementação do MPT-MPE.BR Fundamentado nos estudos realizados por Weber et al. [75] e Crespo et al. [17], foi estabelecida uma abordagem incremental para a implementação do MPT-MPE.BR nas MPEs de desenvolvimento de software. Essa abordagem tem o propósito de implantar e prover a melhoria contínua dos processos de teste desse modelo conforme o nível de maturidade que essas MPEs desejam atingir. A abordagem de implementação do MPT-MPE.BR é composta pelas quatro fases da ASPE/MSC, incluindo os seus subprocessos [75] e por dois componentes da metodologia de teste proposta por Crespo et al. [17]. As etapas que compõem essa abordagem consistem nas fases de Diagnóstico do Processo de Software Atual (Fase 1), de Análise Estratégica (Fase 2), de Definição de Processo (s) (Fase 3), de Implantação do(s) Processo (s) (Fase 4) da ASPE/MSC [75] e no componente de Treinamento da proposta de Crespo et al. [17]. Cada etapa é composta por um conjunto de passos que devem ser executados à medida que os processos de teste do MPT-MPE.BR são implantados e/ou melhorados nessas organizações. Houve apenas a necessidade de criar os passos do componente de Treinamento da metodologia desenvolvida por Crespo et al. [17], os demais foram extraídos dos subprocessos de cada fase definida na ASPE/MSC [75] e adaptados para o contexto do teste de software. A Gerência da Abordagem e as Diretrizes Gerais e, de Adaptação da fase de Implantação do(s) Processo (s) (Fase 4) [75] e o componente de Suporte para Geração de Documentos da proposta de Crespo et al. [17] constituem as atividades que apoiam a implementação do MPT-MPE.BR nesse tipo de organização. Na abordagem de implementação do MPT-MPE.BR foram definidas cinco etapas: 1. Etapa 1 - Treinamento para a Equipe de Teste: Apresenta para a equipe de teste os conceitos e terminologias referentes ao teste de software e, aos processos de teste tais como, as fases e os principais critérios das técnicas de teste existentes e, o modelo de maturidade MPT-MPE.BR. (a) Passos: i. 1.1 - Capacitar a equipe de teste quanto aos conceitos e terminologias do teste de software, incluindo suas fases e os principais critérios das técnicas de teste existentes e, do processo de teste. A. 1.1.1 - Adaptar a capacitação conforme as necessidades de cada organização. ii. 1.2 - Apresentar o MPT-MPE.BR para a equipe de teste da organização. 4.3 Abordagem de Implementação do MPT-MPE.BR 79 2. Etapa 2 - Diagnóstico do Processo de Teste Atual: Compreende em alto nível os processos de desenvolvimento e de teste executados na organização para identificar as oportunidades de melhoria dos processos de teste mais relevantes com base nos objetivos organizacionais e, nos níveis de maturidade do MPT-MPE.BR. A situação atual e os processos de teste dessa organização são descritos em linhas gerais. (a) Passos: i. 2.1 - Entender os processos macro de desenvolvimento e de teste executados na organização. ii. 2.2 - Identificar as oportunidades de melhoria nos processos de teste. iii. 2.3 - Priorizar os processos de teste de maior relevância considerando os objetivos organizacionais. iv. 2.4 - Esboçar em linhas gerais a situação atual e os processos de teste da organização através da avaliação do processo de teste. A. 2.4.1 - Documentar uma descrição alto nível dos processos de teste da organização, a definição dos perfis-alvo desses processos bem como, os perfis avaliados, os riscos, os pontos fortes e fracos de cada processo. v. 2.5 - Definir o nível de maturidade do MPT-MPE.BR que a organização deseja atingir com base nos seus objetivos organizacionais. 3. Etapa 3 - Análise Estratégica dos Processos de Teste: Define e prioriza as ações requeridas para que os processos de teste da organização sejam implementados de acordo com os resultados obtidos na Etapa 2. Caso já tenha sido encerrado um ciclo de implementação dos processos de teste na organização, os resultados obtidos também devem ser considerados. (a) Passos: i. 3.1 - Identificar, analisar e selecionar os processos de teste a serem melhorados conforme os processos relacionados aos perfis-alvo e, o nível de maturidade definidos na Etapa 2. ii. 3.2 - Priorizar os processos de teste considerando os benefícios, os custos estimados, a interdependência entre os processos, a frequência de uso desses processos, os objetivos organizacionais entre outros fatores. iii. 3.3 - Agrupar os processos de teste em ordem decrescente de prioridade para que os de maior prioridade sejam selecionados primeiro. A. 3.3.1 - Revisar a prioridade atribuída aos processos de teste a cada ciclo de melhoria devido a inclusão, exclusão e/ou alteração da ordem desses processos. 4.3 Abordagem de Implementação do MPT-MPE.BR 80 iv. 3.4 - Definir metas mensuráveis e planejar um conjunto de ações para estabelecer os processos de teste na organização atendo-se ao orçamento, ao cronograma, à alocação de recursos, aos riscos e aos pontos de controle e/ou, marcos dessas ações que serão acompanhados na atividade de Gerência da Abordagem de Implementação. 4. Etapa 4 - Definição dos Processos de Teste: Modela e descreve os processos de teste da organização para orientar a execução das atividades da equipe de teste. (a) Passos: i. 4.1 - Identificar as principais atividades e sua sequência de execução e, os desvios condicionais presentes nos processos de teste por meio da modelagem dos processos de negócio da organização, conhecida como Business Process Modeling (BPM). ii. 4.2 - Identificar os papéis e as responsabilidades de cada atividade representada na BPM. iii. 4.3 - Identificar os artefatos e os templates que são consumidos e/ou, produzidos no decorrer da execução de cada atividade dos processos de teste. iv. 4.4 - Identificar as medidas (quantitativas e qualitativas) que devem ser coletadas durante a execução de uma atividade para apoiar a gerência de projetos de teste, a garantia da qualidade dos produtos de software desenvolvidos e a melhoria dos processos de teste da organização. A. 4.4.1 - Levantar outras informações tais como, critérios de entrada e saída, métodos e, ferramentas para complementar a descrição do processo de teste atual da organização. v. 4.5 - Acompanhar os processos de teste modelados e interagir com a equipe de teste através de entrevistas e/ou, reuniões de brainstorming para que cada integrante dessa equipe possa apresentar os processos sob a sua perspectiva e participar ativamente da definição desses processos. vi. 4.6 - Identificar pontos de melhoria nos processos de teste da organização. vii. 4.7 - Identificar alternativas para prover a melhoria dos processos de teste tais como, mudanças no fluxo das atividades, inclusão e/ou exclusão de atividades, troca de métodos, adoção de ferramentas entre outros fatores. viii. 4.8 - Selecionar as alternativas para melhorar os processos de teste considerando os objetivos organizacionais e o nível de maturidade definidos na Etapa 2. ix. 4.9 - Integrar as opções das alternativas de melhoria dos processos de teste selecionadas ao processo de teste atual da organização. 4.3 Abordagem de Implementação do MPT-MPE.BR 81 A. 4.9.1 - Documentar, revisar e validar a modelagem dos processos de teste com as opções das alternativas de melhoria junto à equipe de teste após o tratamento das inconsistências, dos erros e, dos elementos relevantes omitidos assim como, das ambiguidades detectadas nessa modelagem. B. 4.9.2 - Completar e atualizar a modelagem inicial dos processos de teste até que todos os revisores a aprovem. x. 4.10 - Criar um guia contendo todos os processos de teste que, em geral, inclui os avisos sobre os erros mais frequentes, o critério de decisão, as experiências anteriores, a descrição de metodologias e as técnicas utilizadas pela organização. A. 4.10.1 - Revisar periodicamente o guia de processos de teste da organização até que todos os revisores o aprovem. 5. Etapa 5 - Implantação dos Processos de Teste: Institucionaliza e avalia os processos de teste implementados na organização. Para isso, a equipe de teste deve conhecer e utilizar os processos de teste além de coletar os dados que fornecem informações sobre os resultados obtidos com a implementação desses processos. (a) Passos: i. 5.1 - Planejar como os processos de teste da organização serão avaliados durante a sua execução. A. 5.1.1 - Definir medidas a serem coletadas sempre que os processos de teste da organização forem utilizados para analisar as metas estabelecidas na Etapa 3. ii. 5.2 - Definir se o guia de processos de teste será utilizado inicialmente em todos os projetos da organização ou será executado em apenas um projeto piloto para avaliação (escopo de utilização do processo). iii. 5.3 - Treinar e motivar os participantes dos processos de teste conforme o escopo de utilização estabelecido para que estejam aptos a desempenhar suas atividades. A. 5.3.1 - Iniciar o uso do guia de processos de teste da organização. B. 5.3.2 - Esclarecer dúvidas, anotar sugestões e observações ao longo do período de utilização do guia de processos de teste e, coletar as medidas definidas no Passo 5.1.1. iv. 5.4 - Analisar e interpretar os dados coletados. A. 5.4.1 - Documentar e apresentar os resultados da análise realizada para a diretoria finalizando um ciclo de melhoria dos processos de 4.3 Abordagem de Implementação do MPT-MPE.BR 82 teste da organização na atividade de Gerência da Abordagem de Implementação. A divisão da abordagem de implementação do MPT-MPE.BR em etapas possibilita estabelecer e/ou melhorar vários processos de teste nas MPEs de desenvolvimento de software, que devem ter a sua aplicação acompanhada e os seus resultados obtidos avaliados ao término de cada ciclo. As etapas dessa abordagem são apoiadas por três atividades: • Gerência da Abordagem de Implementação: Gerencia todo o processo de implementação do MPT-MPE.BR através do planejamento, monitoramento, controle e conclusão de sua execução. • Diretrizes Gerais e Adaptações: Descreve as atividades genéricas utilizadas na implementação do MPT-MPE.BR nas MPEs de desenvolvimento de software. Porém, a aplicação dessa abordagem em uma organização específica necessita ser adaptada e que algumas de suas diretrizes básicas sejam seguidas. • Suporte para Geração de Documentos do Teste: Aplica uma técnica para produzir a documentação do teste conforme o nível de maturidade do MPT-MPE.BR definido pela organização na Etapa 2 e, os produtos típicos das práticas específicas relacionadas às áreas de processo desses níveis com base na ISO/IEC/IEEE 291193. A implementação dos processos de teste do MPT-MPE-BR nessas MPEs deve ser iniciada pelos níveis de maturidade mais baixos desse modelo, ou seja, no Nível 1 e no Nível 2 mesmo que à princípio essas organizações almejem alcançar um nível de maior maturidade. Para facilitar a implementação desses processos nesse tipo de organização, o Nível 1 e o Nível 2 estão organizados em quatro (1.1 a 1.4) e três estágios (2.1 a 2.3), respectivamente. Os estágios e as categorias das práticas específicas desses níveis de maturidade podem ser vistos na Tabela 4.2. Tabela 4.2: Organização dos Níveis 1 e 2 do MPT-MPE.BR em Estágios e, Categorias. Nível de Maturidade Práticas Específicas Estágio Categorias PCT1 a PCT16 1.1 Planejamento PCT17 a PCT20 1.2 Controle Nível 1 EET1 1.3 Planejamento EET2 a EET4 1.4 Controle CRT1 a CRT5 2.1 Monitoramento e Controle Nível 2 PCT21 a PCT24 2.2 Monitoramento e Controle EET5 e EET6 2.3 Monitoramento e Controle No Nível 1 os projetos de teste são minimamente planejados e controlados enquanto os projetos e, requisitos de teste devem ser monitorados e controlados pela 4.4 Considerações Finais 83 gerência do teste dessas organizações no Nível 2. Esses níveis de maturidade têm em sua composição as principais atividades básicas que devem ser realizadas para gerenciar e executar os projetos de teste nesse tipo de organização. À medida que as MPEs de desenvolvimento de software tornam-se maduras, os processos de teste adotados para testar um produto de software são melhor definidos e executados com maior consistência e, possibilitam que essas MPEs evoluam de acordo com os níveis de maturidade definidos no MPT-MPE.BR. 4.4 Considerações Finais Este capítulo apresentou o modelo de maturidade MPT-MPE.BR que está organizado em níveis de maturidade e áreas de processo. Cada área de processo do MPTMPE.BR possui suas práticas específicas assim como, os seus produtos típicos. Esse modelo de maturidade considera as limitações das MPEs de desenvolvimento e foi definido a partir das melhorias identificadas no Método Freetest sob a perspectiva das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2. Além disso, apresentou detalhadamente todas as etapas e atividades de apoio da abordagem de implementação do MPT-MPE.BR. Essa abordagem incremental foi estabelecida com base nos estudos realizados por Weber et al. [75] e Crespo et al. [17] com o objetivo de implantar e prover a melhoria contínua dos processos de teste desse modelo de acordo com o nível de maturidade almejado por essas MPEs. CAPÍTULO 5 Conclusão e Trabalhos Futuros As necessidades e expectativas dos usuários dos produtos de software podem ser satisfeitas através da adoção de algumas iniciativas propostas tais como, o Método Freetest, o MPT.BR e a ISO/IEC/IEEE 29119-2. Entretanto, a implementação e a institucionalização do processo de teste desses modelos de maturidade e, dessa norma são onerosas e complexas para as MPEs de desenvolvimento de software que tem como principal dificuldade a ausência de recursos financeiros, humanos e materiais, da experiência dos envolvidos na atividade de teste e, de uma cultura para executar o teste em seus projetos de teste. Neste trabalho foi definido um modelo de maturidade considerando as limitações das MPEs de desenvolvimento de software denominado, MPT-MPE.BR a partir das melhorias identificadas no Método Freetest sob a perspectiva das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 e, estabelecida uma abordagem incremental com base nos estudos realizados por Weber et al. [75] e Crespo et al. [17] para implementar os processos de teste desse modelo conforme o nível de maturidade que essas organizações desejam atingir. O MPT-MPE.BR é composto por 5 níveis de maturidade, 10 áreas de processo e 74 práticas específicas. Os processos de teste desse modelo de maturidade podem ser implantados e melhorados continuamente à medida que os passos da Etapa 1 (Treinamento para a Equipe de Teste), da Etapa 2 (Diagnóstico do Processo de Teste Atual), da Etapa 3 (Análise Estratégica dos Processos de Teste), da Etapa 4 (Definição dos Processos de Teste) e da Etapa 5 (Implantação dos Processos de Teste) da abordagem de implementação do MPT-MPE.BR são executados com o apoio das atividades Gerência do Processo, Diretrizes Gerais e Adaptações e, Suporte para Geração de Documentos do Teste. Os resultados obtidos com a aplicação do questionário elaborado em quatro MPEs de desenvolvimento de software goianas (Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas) durante a fase de implementação do Método Freetest, mostrou que 92% das práticas específicas do MPT.BR e 95% das atividades da ISO/IEC/IEEE 29119-2 colaboram com o processo organizacional do teste e são aderentes ao contexto dessas organizações. 85 Também, evidenciou que 55% das práticas específicas do MPT.BR e 58% das atividades da ISO/IEC/IEEE 29119-2 sugeridas como melhorias do Método Freetest possuem alto grau de relevância. De modo geral, essas práticas específicas e atividades não representam alto custo de implementação para essas MPEs, visto que, 38% das práticas específicas do MPT.BR possuem médio custo de implementação enquanto 36% das atividades da ISO/IEC/IEEE 29119-2 apresentam baixo custo de implementação nesse tipo de organização. Além disso, a divisão da abordagem de implementação do MPT-MPE.BR em etapas facilita o estabelecimento e/ou a melhoria de vários processos de teste nas MPEs de desenvolvimento de software e, sua aplicação deve ser acompanhada bem como, os resultados obtidos avaliados ao término de cada ciclo. Essa implementação deve ser iniciada pelos níveis de maturidade mais baixos desse modelo (Nível 1 e Nível 2) devido esses níveis terem em sua composição as principais atividades básicas para executar o teste e gerenciar os projetos de teste dessas MPEs, mesmo que à princípio almejem alcançar um nível de alta maturidade. O Nível 1 e o Nível 2 foram organizados em estágios para simplificar a implementação dos processos de teste do MPT-MPE.BR dessa forma, possibilitam que os projetos de teste sejam planejados, monitorados e controlados pela gerência do teste das MPEs de desenvolvimento de software. Assim que essas organizações tornam-se maduras, os processos de teste utilizados no teste de um produto de software são melhor definidos e executados com maior consistência e, proporciona a evolução dessas MPEs conforme os níveis de maturidade definidos no MPT-MPE.BR. A principal dificuldade enfrentada neste trabalho ocorreu durante o contato inicial com as MPEs de desenvolvimento de software goianas e a fase de aplicação do questionário. Pois, a rotina de trabalho das empresas com o surgimento constante de projetos extremamente prioritários conciliado à limitação de recursos, fizeram com que os respondedores demandassem de mais tempo para se dedicar ao questionário. Apesar de terem sido selecionadas somente quatro (Neokoros, Oobj, Pacto Soluções Tecnológicas e Siac Sistemas) dentre as dez MPEs de desenvolvimento de software goianas que implantaram o Método Freetest, foi possível elaborar e avaliar a proposta de melhorias do Método Freetest que deu origem ao MPT-MPE.BR. Porém, a validação dos processos de teste definidos nesse modelo de maturidade e da abordagem de implementação do MPT-MPE.BR necessitam ser utilizados em vários projetos de teste, sendo, portanto, inviável tendo em vista o tempo esperado para o desenvolvimento de uma dissertação de mestrado. Dessa forma, a elaboração e a avaliação da proposta de melhorias do Método Freetest considerou os seguintes fatores: • Adoção dos critérios de inclusão com base no estudo realizado por Sartori [65] e do critério de exclusão das práticas específicas do MPT.BR e das atividades da 86 • • • • ISO/IEC/IEEE 29119-2 de acordo as especificidades das MPEs de desenvolvimento de software para compor essa proposta. Definição dos critérios de seleção das MPEs de desenvolvimento de software goianas envolvidas neste trabalho. Avaliação do questionário elaborado com base nessa proposta antes de sua aplicação, por três professores atuantes na área de Engenharia de Software da UFG. Questionário aplicado e respondido pelos responsáveis da área de teste dessas quatro MPEs. Coleta de dados deste trabalho apoiada pelos acompanhamentos in loco e pelos questionários aplicados em cada uma dessas MPEs. Conforme o modelo de maturidade definido e a abordagem estabelecida para implementar esse modelo neste trabalho, alguns temas e estudos importantes necessitam ser realizados que dão margem para os subsequentes trabalhos futuros: 1. Desenvolver estudos práticos de aplicação do MPT-MPE-BR conforme sua abordagem de implementação em MPEs de desenvolvimento de software da região, verificando a compreensão, adequação e usabilidade desse modelo de maturidade. 2. Elaborar e analisar a eficiência do processo de avaliação do MPT-MPE-BR nas MPEs de desenvolvimento de software que implementarem esse modelo de maturidade. Referências Bibliográficas [1] A DRION , W. R.; B RANSTAD, M. A.; C HERNIAVSKY, J. C. Validation, verification, and testing of computer software. ACM Computing Surveys (CSUR), 14:159–192, 1982. [2] A MMANN , P.; O FFUTT, J. Introduction to Software Testing. Cambridge University, New York, 2008. [3] A RAKI , L. Y. Um Algoritmo Evolutivo de Geração de Dados de Teste para Satisfazer Critérios Baseados em Códigos Objeto Java. PhD thesis, Setor de Ciências Exatas, UFPR, 2009. [4] Banco Nacional de Desenvolvimento Econômico e Social, Rio de Janeiro. Alterações das Normas Relativas ao Porte das Beneficiárias, Mar. 2010. [5] Banco Nacional de Desenvolvimento Econômico e Social, Rio de Janeiro. Normas Reguladoras do Produto BNDES Automático, Sept. 2011. [6] B ARBOSA , E. F.; C HAIM , M. L.; V INCENZI , A. M. R.; D ELAMARO, M. E. Introdução ao teste de software. In: Delamaro, M. E.; Maldonado, J. C.; Jino, M., editors, Teste Estrutural, p. 47–76. Campus, Rio de Janeiro, 2010. [7] B ARTIÉ , A. Garantia de Qualidade de Software. Campus, Rio de Janeiro, 2002. [8] B ASTOS , A.; R IOS , E.; C RISTALLI , R.; M OREIRA , T. Base de Conhecimento em Teste de Software. Martins Fontes, São Paulo, 2012. [9] B EIZER , B. Software Testing Techniques. Van Nostrand Reinhold, New York, 1990. [10] B INDER , R. V. Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, London, 1999. [11] B LACK , R. Critical Testing Processes: Plan, Prepare, Perform, Perfect. AddisonWesley, London, 2003. [12] B UDD, T. A. Mutation analysis: Ideas, example, problems and prospects. In: Proceedings of the Summer School on Computer Program Testing, p. 129–148, 1981. Referências Bibliográficas [13] B URNSTEIN , I. 88 Practical Software Testing: A Process-Oriented Approach. Springer-Verlag, New York, 2003. [14] Centro de Tecnologia da Informação Renato Archer/Ministério da Ciência e Tecnologia, Campinas. Modelo de Processo Genérico de Teste de Software, Dec. 2010. [15] C OPELAND, L. A Practitioner’s Guide to Software Test Design. Artech House, Boston, 2004. [16] C RAIG , R. D.; J ASKIEL , S. P. Systematic Software Testing. Artech House, Boston, 2002. [17] C RESPO, A. N.; DA S ILVA , O. J.; B ORGES , C. A.; S ALVIANO, C. F.; DE T EIVE E A RGOLLO J UNIOR , M.; J INO, M. Uma metodologia para teste de software no contexto da melhoria de processo. III Simpósio Brasileiro de Qualidade de Software (SBQS 2004), 2004. [18] C RESPO, A. N.; M ARTINEZ , M. R. M.; J INO, M.; DE T EIVE E A RGOLLO J UNIOR , M. Application of the ieee 829 standard as a basis for structuring the testing process. Journal of Software Testing Professionals, 3:13–17, 2002. [19] C RESPO, A. N.; M ARTINEZ , M. R. M.; J INO, M.; DE T EIVE E A RGOLLO J UNIOR , M. Acceptance testing of na outsourced application: Approach and documentation issues. Journal of Software Testing Professionals, 4, 2003. [20] DA S ILVA , A. R. Uma metodologia de testes em software para micro e pequenas empresas estruturada em multicritério. Master’s thesis, Fundação Edson Queiroz, UNIFOR, 2011. [21] DA S ILVA S IMÃO, A. Aplicação da Análise de Mutantes no Contexto de Teste de Redes de Petri Coloridas. PhD thesis, Instituto de Ciências Matemáticas e de Computação, USP - São Carlos, 2004. [22] DE P ONTES C AFEO, B. B. Teste Estrutural de Integração Contextual de Programas Orientados a Objetos e a Aspectos. PhD thesis, Instituto de Ciências Matemáticas e de Computação, USP - São Carlos, 2011. [23] D ELAMARO, M. E.; C HAIM , M. L.; V INCENZI , A. M. R. Atualizações em informática 2010. In: Jr., W. M.; de Carvalho, A. C. P. L. F., editors, Técnicas e Ferramentas de Teste de Software, p. 51–110. PUC-RIO, Rio de Janeiro, 2010. [24] D ELAMARO, M. E.; M ALDONADO, J. C.; J INO, M. Introdução ao Teste de Software. Campus, Rio de Janeiro, 2007. Referências Bibliográficas 89 [25] D E M ILLO, R. A.; L IPTON , R. J.; S AYWARD, F. G. Hints on test data selection: Help for the practicing programmer. Computer, 11:34–41, 1978. [26] D E M ILLO, R. A.; M C C RACKEN , W. M.; M ARTIN , R. J.; PASSAFIUME , J. F. Software Testing and Evaluation. Benjamin-Cummings, California, 1987. [27] F ERRARI , F. C. A Contribution to the Fault-Based Testing of Aspect-Oriented Software. PhD thesis, Instituto de Ciências Matemáticas e de Computação, USP São Carlos, 2010. [28] F RANKL , P. G.; W EYUKER , E. J. Testing software to detect and reduce risk. Journal of Systems and Software, 53:275–286, 2000. [29] F URTADO, A. P. C. C.; G OMES , M. A. W.; A NDRADE , E. C.; DE FARIAS J UNIOR , I. H. Mpt.br: A brazilian maturity model for testing. 12th International Conference on Quality Software, p. 220–229, 2012. [30] G OEL , A. L. Software reliability models: Assumptions, limitations, and applicability. IEEE Transactions on Software Engineering, SE-11:220–229, 1985. [31] G UIDETTI , S. A. Aplicação da Análise de Mutantes à Geração de Dados de Teste para Deteção de Vulnerabilidade do Tipo Buffer Overflow. PhD thesis, Faculdade de Engenharia Elétrica e de Computação, UNICAMP, 2005. [32] G UTJAHR , W. J. Partition testing vs. random testing: The influence of uncertainty. IEEE Transactions on Software Engineering, 25:661–674, 1999. [33] H AMLET, D.; TAYLOR , R. Partition testing does not inspire confidence (program testing). IEEE Transactions on Software Engineering, 16:1402–1411, 1990. [34] H ARROLD, M. J. Testing: A roadmap. In: Proceedings of the Conference on The Future of Software Engineering (ICSE’00), p. 61–72, 2000. [35] H ASS , A. M. J. Testing processes. In: Proceedings of IEEE International Conference on Software Testing Verification and Validation Workshop (ICSTW’08), p. 321– 327, 2008. [36] H OWDEN , W. E. Validating programs without specifications. In: Proceedings of the ACM SIGSOFT ’89 Third Symposium on Software Testing, Analysis, and Verification, p. 2–9, 1989. [37] Institute of Electrical and Electronic Engineers, New York. IEEE 610.12-1990, Sept. 1990. Referências Bibliográficas 90 [38] Institute of Electrical and Electronic Engineers, New York. IEEE 829-1998, Dec. 1998. [39] Instituto de Informática/Universidade Federal de Goiás, Goiânia. Manual de Instalação das Ferramentas de Apoio ao Processo de Teste PTS-MPE, 2013. [40] Instituto de Informática/Universidade Federal de Goiás, Goiânia. Manual de Utilização das Ferramentas de Apoio ao Processo PTS-MPE, 2013. [41] Instituto de Informática/Universidade Federal de Goiás, Goiânia. Manual do Processo de Teste de Sofware para Micro e Pequenas Empresas Versão 2.0, 2013. [42] International Organization for Standardization/International Electrotechnical Commission/Institute of Electrical and Electronic Engineers, Switzerland. ISO/IEC/IEEE 29119-1, Sept. 2013. [43] International Organization for Standardization/International Electrotechnical Commission/Institute of Electrical and Electronic Engineers, Switzerland. ISO/IEC/IEEE 29119-2, Sept. 2013. [44] International Organization for Standardization/International Electrotechnical Commission/Institute of Electrical and Electronic Engineers, Switzerland. ISO/IEC/IEEE 29119-3, Sept. 2013. [45] International Organization for Standardization/International Electrotechnical Commission/Institute of Electrical and Electronic Engineers, Switzerland. ISO/IEC/IEEE 29119-4, Feb. 2014. [46] International Organization for Standardization/International Electrotechnical Commission/Institute of Electrical and Electronic Engineers, Switzerland. ISO/IEC/IEEE 29119-5, Aug. 2014. [47] J ORGENSEN , P. C. Software Testing: A Craftman’s Approach. Auerbach Publications, Boston, 2008. [48] K HOKHAR , M. N.; Z ESHAN , K.; A AMIR , J. Literature review on the software process improvement factors in the small organizations. 4th International Conference on New Trends in Information Science and Service Science (NISS), 2010, p. 592–598, 2010. [49] K IT, E. Software Testing in the Real World: Improving the Process. AddisonWesley, London, 1995. [50] L APORTE , C. Y.; A LEXANDRE , S.; R ENAULT, A. Developing international standards for very small enterprises. Computer, 41:98–101, 2008. Referências Bibliográficas 91 [51] L EWIS , W. E. Software Testing and Continuous Quality Improvement. Auerbach Publications, Boston, 2008. [52] L INNENKUGEL , U.; M ULLERBÜRG , M. Test data selection criteria for (software) integration testing. In: Proceedings of the First International Conference on Systems Integration, 1990 (Systems Integration’90), p. 709–716, 1990. [53] M ALDONADO, J. C. Critérios Potenciais Usos: Uma Contribuição ao Teste Estrutural de Software. PhD thesis, Faculdade de Engenharia Elétrica, UNICAMP, 1991. [54] M ARTINS , J. G. F. Proposta de método para classificação do porte das empresas. Master’s thesis, Universidade Potiguar, UNP, 2014. [55] M YERS , G. J.; S ANDLER , C.; B ADGETT, T. The Art of Software Testing. John Wiley & Sons, New Jersey, 2012. [56] N AIK , K.; T RIPATHY, P. Software Testing and Quality Assurance: Theory and Practice. John Wiley & Sons, New Jersey, 2008. [57] P ERRY, W. E. Effective Methods for Software Testing: Includes Complete Guidelines, Checklists, and Templates. John Wiley & Sons, New Jersey, 2006. [58] P RESSMAN , R. S. Engenharia de Software. McGraw-Hill, New York, 2011. [59] Q YSER , A. A. M.; R AMACHANDRAM , S.; A SHRAF, M. A. An evolutionary software product development process for small and medium enterprises (smes). 4th International Conference on Emerging Technologies, 2008 (ICET 2008), p. 298–303, 1982. [60] R APPS , S.; WE YUKER , E. J. Data flow analysis techniques for test data selection. In: Proceedings of the 6th international conference on Software Engineering (ICSE ’82), p. 272–278, 1982. [61] R APPS , S.; WE YUKER , E. J. Selecting software test data using data flow information. IEEE Transactions on Software Engineering, SE-11:367–375, 1985. [62] R É , R. Uma Contribuição para a Minimização do Número de Stubs no Teste de Integração de Programas Orientados a Aspectos. PhD thesis, Instituto de Ciências Matemáticas e de Computação, USP - São Carlos, 2009. [63] R IOS , E.; M OREIRA , T. Teste de Software. Alta Books, Rio de Janeiro, 2013. Referências Bibliográficas 92 [64] R OSA , P. G. Modelo de avaliação de processo de software para a pequena empresa. Master’s thesis, Instituto de Ciências Matemáticas e de Computação, USP - São Carlos, 1997. [65] S ARTORI , L. E. S. Melhoria do processo de teste para pequenas empresas. Master’s thesis, Fundação de Ensino Eurípedes Soares da Rocha, UNIVEM, 2005. [66] Softex Recife, Recife. Guia de Referência do Modelo - MPT.BR, 2011. [67] Softex Recife, Recife. Guia de Avaliação - MPT.BR, 2012. [68] S OFTWARE , A. Mercado brasileiro de software: Panorama e tendências. Technical report, ABS Software, São Paulo, 2014. [69] S OMMERVILLE , I. Engenharia de Software. Pearson, São Paulo, 2011. [70] S TAAB , T. C. Using sw-tmm to improve the testing process. The Journal of Defense Software Engineering, p. 13–16, 2002. [71] S TAAB , T. C. Improving the test process: Looking at the test process - getting started. The Journal of the Software Testing Professionals, 2003. [72] T IAN , J. Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement. John Wiley & Sons, New Jersey, 2005. [73] T SUCHIYA , T.; K IKUNO, T. On fault classes and error detection capability of specification-based testing. Journal ACM Transactions on Software Engineering and Methodology (TOSEM), 11:58–62, 1999. [74] V INCENZI , A. M. R. Subsídios para o Estabelecimento de Estratégias de Teste Baseadas na Técnica de Mutação. PhD thesis, Instituto de Ciências Matemáticas e de Computação, USP - São Carlos, 1998. [75] W EBER , S.; H AUCK , J. C. R.; VON WANGENHEIM , C. G. Estabelecendo processos de software em micro e pequenas empresas. IV Simpósio Brasileiro de Qualidade de Software (SBQS 2005), 2005. APÊNDICE A Organização do MPT.BR, da ISO/IEC/IEEE 29119-2 e do Método Freetest Este apêndice abrange a organização das áreas de processo dos modelos de maturidade MPT.BR e Método Freetest e, as multicamadas dos processos de teste da ISO/IEC/IEEE 29119-2 apresentados na Subseção 2.2.1, na Subseção 2.2.2 e na Subseção 2.2.3 do Capítulo 2 deste trabalho. A.0.1 MPT.BR As áreas de processo do MPT.BR são compostas por um conjunto de práticas específicas, como a seguir [66]: 1. Gerência de Projetos de Teste (GPT) A GPT estabelece e mantém planos para gerenciar, monitorar e controlar as atividades até o encerramento do projeto. (a) Práticas Específicas: i. ii. iii. iv. v. vi. vii. viii. ix. x. xi. xii. xiii. GPT1 - Realizar análise de risco do produto; GPT2 - Estabelecer objetivos do teste; GPT3 - Definir estratégia de teste; GPT4 - Definir o escopo do trabalho para o projeto de teste; GPT5 - Estabelecer estimativas de tamanho; GPT6 - Definir o ciclo de vida do projeto de teste; GPT7 - Estimar o esforço e o custo; GPT8 - Estabelecer e manter o orçamento e o cronograma do projeto; GPT9 - Identificar riscos do projeto; GPT10 - Planejar os recursos humanos; GPT11 - Planejar o ambiente de teste para o projeto; GPT12 - Planejar os artefatos e dados do projeto; GPT13 - Estabelecer indicadores de desempenho de teste; Apêndice A 94 xiv. xv. xvi. xvii. xviii. xix. xx. xxi. xxii. xxiii. xxiv. xxv. xxvi. xxvii. xxviii. GPT14 - Estabelecer o Plano de Teste; GPT15 - Revisar e obter compromisso com o Plano de Teste; GPT16 - Monitorar o projeto; GPT17 - Gerenciar o envolvimento dos stakeholders; GPT18 - Executar revisões em marcos do projeto; GPT19 - Analisar e registrar os problemas identificados; GPT20 - Estabelecer e acompanhar ações corretivas até a sua conclusão; GPT21 - Definir critérios de entrada e saída do teste (A partir do Nível 2); GPT22 - Definir critérios de suspensão e reinício do teste (A partir do Nível 2); GPT23 - Monitorar critérios de entrada, saída, suspensão e reinício do teste (A partir do Nível 2); GPT24 - Monitorar defeitos (A partir do Nível 2); GPT25 - Planejar e conduzir revisões de qualidade do produto (A partir do Nível 2); GPT26 - Gerenciar dados de teste (A partir do Nível 3); GPT27 - Verificar aptidão do ambiente de teste (A partir do Nível 3); GPT28 - Gerenciar incidentes de ambiente (A partir do Nível 3). 2. Projeto e Execução de Teste (PET) No PET são identificados, elaborados e executados os casos de teste além de registrar a execução do teste e, as divergências entre os resultados obtidos e esperados na forma de incidentes. (a) Práticas Específicas: i. ii. iii. iv. v. PET1 - Identificar casos de teste; PET2 - Executar casos de teste; PET3 - Reportar incidentes; PET4 - Acompanhar incidentes; PET5 - Estabelecer padrões de documentação de casos de teste (A partir do Nível 2); vi. PET6 - Estabelecer padrões de documentação de incidentes (A partir do Nível 2); vii. PET7 - Aplicar técnicas de projeto (design) de teste (A partir do Nível 3). 3. Gerência de Requisitos de Teste (GRT) A GRT fornece subsídios para gerenciar os requisitos do projeto de teste, identificar inconsistências entre esses requisitos, os planos e os produtos de trabalho. Apêndice A 95 (a) Práticas Específicas: i. ii. iii. iv. v. GRT1 - Obter o entendimento dos requisitos; GRT2 - Obter o comprometimento com os requisitos; GRT3 - Gerenciar as mudanças dos requisitos; GRT4 - Manter a rastreabilidade bidirecional dos requisitos; GRT5 - Identificar inconsistência entre requisitos, planos do projeto e produtos de trabalho. 4. Fechamento do Teste (FDT) No FDT são organizados e tornados sistemáticos os procedimentos adotados para finalizar o teste. (a) Práticas Específicas: i. ii. iii. iv. FDT1 - Empacotar ativos de teste; FDT2 - Limpar ambiente de teste; FDT3 - Identificar lições aprendidas; FDT4 - Consolidar dados de teste. 5. Garantia da Qualidade (GDQ) A GDQ determina um mecanismo de avaliação dos processos e dos produtos de trabalho. (a) Práticas Específicas: i. GDQ1 - Avaliar processos e produtos de trabalho; ii. GDQ2 - Comunicar e resolver questões; iii. GDQ3 - Estabelecer registros. 6. Medição e Análise de Teste (MAT) Na MAT são desenvolvidas e sustentadas a capacidade de medição utilizada para dar suporte às necessidades de informações gerenciais relacionadas ao teste. (a) Práticas Específicas: i. ii. iii. iv. v. MAT1 - Definir objetivos de medição de teste; MAT2 - Estabelecer e documentar medidas; MAT3 - Especificar procedimentos de medição; MAT4 - Coletar, analisar e comunicar dados de medição; MAT5 - Armazenar dados de medição. 7. Organização do Teste (OGT) A OGT define a estrutura do teste dentro da organização. Apêndice A 96 (a) Práticas Específicas: i. ii. iii. iv. v. vi. vii. viii. ix. x. xi. xii. OGT1 - Definir a estrutura organizacional do teste; OGT2 - Estabelecer um grupo de processo de teste de software; OGT3 - Definir processos padrão de teste; OGT4 - Definir guias e critérios de adaptação do processo; OGT5 - Estabelecer a biblioteca de ativos de processo de teste; OGT6 - Coletar informações e implementar ações de melhoria; OGT7 - Identificar perfis de teste; OGT8 - Definir planos de carreira de teste; OGT9 - Integrar ciclos de vida de teste e desenvolvimento; OGT10 - Estabelecer e manter a estratégia organizacional de teste; OGT11 - Identificar oportunidades de reuso (A partir do Nível 4); OGT12 - Reusar ativos de teste (A partir do Nível 4). 8. Teste de Aceitação (TDA) No TDA é assegurado que o teste de aceitação seja planejado e executado para validar se as expectativas dos usuários estão sendo satisfeitas. (a) Práticas Específicas: i. ii. iii. iv. v. vi. vii. TDA1 - Selecionar produtos; TDA2 - Definir critérios de aceitação; TDA3 - Definir papéis e responsabilidades; TDA4 - Definir Plano de Aceitação; TDA5 - Preparar ambiente para aceitação; TDA6 - Conduzir testes de aceitação; TDA7 - Avaliar condições de aceitação. 9. Teste Estático (TES) O TES verifica quais produtos de trabalho atendem aos seus requisitos e que defeitos são encontrados com antecedência no ciclo de vida de desenvolvimento do software. (a) Práticas Específicas: i. ii. iii. iv. v. TES1 - Identificar produtos de trabalho e tipos de revisão; TES2 - Definir critérios de revisões; TES3 - Conduzir revisões; TES4 - Analisar dados de revisões; TES5 - Conduzir análises estáticas. Apêndice A 97 10. Treinamento (TRE) No TRE são desenvolvidas habilidades e conhecimentos para que os integrantes dos projetos possam desempenhar seus papéis de modo eficiente. (a) Práticas Específicas: i. ii. iii. iv. TRE1 - Definir um programa de treinamento organizacional; TRE2 - Prover treinamentos; TRE3 - Registrar treinamentos; TRE4 - Avaliar a efetividade de treinamentos. 11. Avaliação da Qualidade do Produto (AQP) A AQP estabelece os objetivos quantitativos de qualidade do produto e fornece mecanismos para que esses objetivos sejam alcançados. (a) Práticas Específicas: i. ii. iii. iv. v. AQP1 - Identificar demanda de qualidade do produto; AQP2 - Definir objetivos quantitativos de qualidade do produto; AQP3 - Definir abordagem para acompanhar a qualidade do produto; AQP4 - Medir a qualidade do produto; AQP5 - Analisar objetivos de qualidade. 12. Gestão de Defeitos (GDD) Na GDD são gerenciadas as ações preventivas para as causas raízes dos defeitos. (a) Práticas Específicas: i. GDD1 - Determinar causas raízes de defeitos; ii. GDD2 - Definir ações corretivas para causas raízes; iii. GDD3 - Avaliar efetividade. 13. Teste Não-Funcional (TNF) O TNF endereça os riscos não-funcionais do produto através do teste não-funcional. (a) Práticas Específicas: i. TNF1 - Realizar análise de risco não-funcional; ii. TNF2 - Projetar teste não-funcional; iii. TNF3 - Conduzir teste não-funcional. 14. Automação da Execução do Teste (AET) Na AET é determinada e mantida uma estratégia para a automação da execução do teste, compreendendo a definição de objetivos, a elaboração de um framework e a análise do retorno sobre o investimento na automação desse teste. Apêndice A 98 (a) Práticas Específicas: i. ii. iii. iv. v. vi. AET1 - Definir objetivos do regime de automação; AET2 - Definir critérios para seleção de casos de teste para automação; AET3 - Definir um framework para automação de teste; AET4 - Gerenciar incidentes de teste automatizado; AET5 - Verificar aderência aos objetivos de automação; AET6 - Analisar retorno sobre investimento na automação. 15. Controle Estatístico do Processo (CEP) O CEP gerencia e controla estatisticamente o desempenho dos processos. (a) Práticas Específicas: i. ii. iii. iv. v. CEP1 - Estabelecer objetivos de desempenho de processos; CEP2 - Selecionar processos; CEP3 - Estabelecer medidas de desempenho de processos; CEP4 - Estabelecer baselines de desempenho de processos; CEP5 - Estabelecer modelos de desempenho. 16. Gestão de Ferramentas (GDF) Na GDF são gerenciadas a identificação, a análise, a seleção e a implantação de ferramentas na organização. (a) Práticas Específicas: i. ii. iii. iv. v. vi. GDF1 - Identificar necessidade de ferramentas; GDF2 - Selecionar ferramentas; GDF3 - Conduzir projeto piloto; GDF4 - Selecionar gurus de ferramentas; GDF5 - Definir estratégias de implantação de ferramentas; GDF6 - Implantar ferramentas. Todas as práticas específicas de todas as áreas de processo do nível de maturidade desejado por uma organização devem aplicar as seguintes práticas genéricas desse modelo: 1. 2. 3. 4. 5. 6. PG1 - Atingir os resultados definidos; PG2 - Estabelecer uma política organizacional; PG3 - Planejar a execução do processo; PG4 - Identificar e disponibilizar recursos; PG5 - Definir responsabilidade e autoridade; PG6 - Prover treinamento; Apêndice A 99 7. PG7 - Controlar produtos de trabalho (A partir do Nível 2); 8. PG8 - Monitorar e controlar o processo (A partir do Nível 2); 9. PG9 - Fornecer visibilidade do processo para a gerência superior (A partir do Nível 2). A.1 ISO/IEC/IEEE 29119-2 Os processos e as atividades de teste das multicamadas da ISO/IEC/IEEE 291192 a serem realizadas durante o ciclo de vida de um produto de software estão organizadas, como a seguir [43]: 1. Processo Organizacional do Teste O Processo Organizacional do Teste não inclui outros processos de teste, apenas as atividades de teste desse processo. (a) Atividades: i. OT1 - Desenvolver a especificação organizacional do teste; ii. OT2 - Monitorar e controlar o uso da especificação organizacional do teste; iii. OT3 - Atualizar a especificação organizacional do teste. 2. Processo de Planejamento do Teste O Processo de Planejamento do Teste estabelece o Plano de Teste que pode pertencer a um determinado projeto de teste, uma fase e/ou um tipo de teste específico. (a) Atividades: i. ii. iii. iv. v. vi. vii. viii. ix. TP1 - Entender o contexto; TP2 - Organizar o desenvolvimento do Plano de Teste; TP3 - Identificar e analisar os riscos; TP4 - Identificar as abordagens de mitigação do risco; TP5 - Projetar a estratégia de teste; TP6 - Determinar o pessoal e o cronograma; TP7 - Registrar o Plano de Teste; TP8 - Obter o consenso do Plano de Teste; TP9 - Comunicar e disponibilizar o Plano de Teste. 3. Processo de Monitoramento e Controle do Teste No Processo de Monitoramento e Controle do Teste é verificado se o teste progride Apêndice A 100 conforme o Plano de Teste e, as especificações organizacionais do teste e caso existam desvios significativos em relação ao progresso e/ou, outros aspectos planejados, ações corretivas são inicicadas para solucionar esses desvios. (a) Atividades: i. ii. iii. iv. TMC1 - Configurar; TMC2 - Monitorar; TMC3 - Controlar; TMC4 - Relatar. 4. Processo de Conclusão do Teste O Processo de Conclusão do Teste é empregado a partir do encerramento das atividades de teste que podem se referir a um determinado projeto de teste, uma fase e/ou um tipo de teste específico. (a) Atividades: i. ii. iii. iv. TC1 - Arquivar os ativos de teste; TC2 - Limpar o ambiente de teste; TC3 - Identificar as lições aprendidas; TC4 - Relatar a conclusão do teste. 5. Processo de Projeto e Implementação do Teste No Processo de Projeto e Implementação do Teste são derivados os procedimentos de teste e, os casos de teste de acordo com o planejamento e as especificações fornecidas pelos usuários. (a) Atividades: i. ii. iii. iv. v. vi. TD1 - Identificar os conjuntos de características; TD2 - Derivar as condições de teste; TD3 - Derivar a cobertura dos itens de teste; TD4 - Derivar os casos de teste; TD5 - Montar os conjuntos de teste; TD6 - Derivar os procedimentos de teste. 6. Processo de Configuração e Manutenção do Ambiente de Teste O Processo de Configuração e Manutenção do Ambiente de Teste define e, mantém o ambiente de teste para que os devidos testes sejam executados. Os resultados dos testes realizados anteriormente podem ser comprometidos se esse ambiente for alterado e/ou atualizado. (a) Atividades: Apêndice A 101 i. ES1 - Estabelecer o ambiente de teste; ii. ES2 - Manter o ambiente de teste. 7. Processo de Execução do Teste No Processo de Execução do Teste os procedimentos e os casos de teste gerados são executados no ambiente de teste estruturado conforme o planejado e, as exigências do projeto de teste. Após a correção dos defeitos detectados, os procedimentos e os casos de teste devem ser reexecutados. (a) Atividades: i. TE1 - Executar os procedimentos de teste; ii. TE2 - Comparar os resultados do teste; iii. TE3 - Registrar a execução do teste. 8. Processo de Relato dos Incidentes de Teste O Processo de Relato dos Incidentes de Teste registra os defeitos detectados durante a execução do teste mediante a uma situação inusitada, inesperada e/ou quando os procedimentos e, os casos de teste retestados forem reincidentes. (a) Atividades: i. IR1 - Analisar os resultados do teste; ii. IR2 - Criar/atualizar o Relatório de Incidentes. A.2 Método Freetest As áreas de processo do Método Freestest são compostas por um conjunto de práticas específicas, como a seguir [41]: 1. Teste de Desempenho (TPE) O TPE identifica através da execução automatizada do teste as métricas de desempenho do produto para que os seus atributos de qualidade possam ser monitorados. (a) Práticas Específicas: i. ii. iii. iv. TPE1 - Preparar massa de teste; TPE2 - Manter script de desempenho; TPE3 - Executar teste de desempenho; TPE4 - Encerrar teste de desempenho. 2. Integração Contínua (INC) Na INC são executados automaticamente os testes agendados do produto com base nos scripts elaborados através do Test Driven Development (TDD), do Behavior Driven Development (BDD) e do Teste Funcional. Apêndice A 102 (a) Práticas Específicas: i. INC1 - Elaborar código; ii. INC2 - Elaborar scripts BDD; iii. INC3 - Montar build. 3. Teste de Regressão (TRG) O TRG verifica por meio da execução automatizada do teste se novos defeitos foram introduzidos no produto depois que algumas de suas funcionalidades foram alteradas. (a) Práticas Específicas: i. ii. iii. iv. TRG1 - Preparar massa de teste; TRG2 - Manter script de regressão; TRG3 - Executar teste de regressão; TRG4 - Encerrar teste de regressão. 4. Teste de Aceite (TDA) No TDA é validado se o produto desenvolvido atende as necessidades e expectativas dos usuários conforme as especificações fornecidas. (a) Práticas Específicas: i. TDA1 - Atualizar ambiente de teste; ii. TDA2 - Executar teste de aceite; iii. TDA3 - Encerrar teste de aceite. 5. Teste de Requisito (TRQ) O TRQ identifica possíveis inconsistências nos requisitos do produto através da confecção e/ou revisão dos cenários de teste. (a) Práticas Específicas: i. TRQ1 - Realizar verificação; ii. TRQ2 - Encerrar verificação. 6. Teste Funcional (TFU) No TFU são executados os testes do produto de acordo com o ambiente de teste estabelecido no Plano de Teste. (a) Práticas Específicas: i. TFU1 - Atualizar ambiente de teste; ii. TFU2 - Realizar teste; iii. TFU3 - Encerrar teste. Apêndice A 103 7. Gerência de Projetos de Teste (GPT) A GPT determina o Plano de Teste e apoia o sincronismo entre o planejamento com os demais produtos de trabalho do projeto de teste. (a) Práticas Específicas: i. GPT1 - Elaborar Plano de Teste. APÊNDICE B Composição do Questionário O questionário citado na Seção 3.3 do Capítulo 3 deste trabalho é composto por cinco seções, como a seguir: Seção 1 - Instruções para o Respondedor. Por favor, leia e responda as seguintes questões cuidadosamente utilizando o conhecimento e, a experiência adquirida através dos projetos realizados na sua organização. As respostas fornecidas são confidenciais. Para responder as questões, são oferecidas duas opções: • Sim: Quando a adoção de uma prática ou atividade colabora consideravelmente com as melhorias do Método Freetest; • Não: Quando a adoção de uma prática ou atividade não colabora com as melhorias do Método Freetest. Caso a resposta seja "Sim", o grau de relevância da adoção da prática ou atividade deve ser determinado por meio de três opções: • 1: Baixo; • 2: Médio; • 3: Alto. Em seguida, defina o custo de implementação da prática ou atividade a ser adotada através de três opções: • 1: Baixo; • 2: Médio; • 3: Alto. Somente uma escolha para cada questão poderá ser marcada com um "X"e todas as questões deverão ser consideradas. Por favor, continue no questionário e obrigada pela Apêndice B 105 sua ajuda. Seção 2 - Identificação e Qualificação do Respondedor. 1. Identificação do Respondedor: Nome; Cargo; Empresa; Telefone (s); E-mail (s); Data de Preenchimento do Questionário. 2. Experiência do Respondedor: Qual a melhor descrição do seu cargo atual? (Permitido marcar mais de uma) Gerente; Administrador Sênior ou Superior; Gerente de Projetos; Gerente de Teste; Assistente Técnico; Engenheiro de Software; Desenvolvedor; Analista de Teste; Líder do Grupo de Garantia da Qualidade; Líder do Subgrupo relacionado ao Teste (Por favor, especifique); Membro de Grupo de Garantia da Qualidade de Software; Membro do Subgrupo relacionado ao Teste (Por favor, especifique); Outros (Por favor, especifique). 3. Responsabilidades e Obrigações Atuais: Quais atividades relacionadas ao teste você está efetivamente envolvido? (Permitido marcar mais de uma) Política de teste; Estabelecimento de metas; Planejamento de teste; Projeto de casos de teste; Especificação dos procedimentos de teste; Execução do teste; Coleta e análise de medições; Registro dos defeitos; Desenvolvimento de padrões; Apêndice B 106 Revisões; Auditorias; Acompanhamento do projeto de teste; Treinamento da equipe de teste; Definições de métricas; Automação do teste; Comunicação com o usuário/cliente; Prevenção de defeitos; Controle do processo; Avaliação do processo; Melhoria do processo; Avaliação de ferramentas; Outros (Por favor, especifique). 4. Participou de capacitações, cursos ou palestras sobre o Teste de Software? Qual? (Responda "Sim"ou "Não") 5. Recebeu treinamento para utilizar algum Processo de Teste de Software? Qual? (Responda "Sim"ou "Não") 6. Qual a extensão de sua experiência na indústria de software? Na indústria de software (Número em anos); Experiência em teste de software (Número em anos); Na organização atual (Número em anos). Seção 3 - Qualificação da Organização. 1. Qual o tipo de software que a organização desenvolve? (Permitido marcar mais de uma) Desktop; Web; Mobile; Outros (Por favor, especifique). 2. A maioria (acima de 50%) dos softwares desenvolvidos é para uso interno ou externo? 3. Quantas pessoas compõem o quadro de funcionários da organização? Número total de funcionários; Apêndice B 107 Número de funcionários que atuam no desenvolvimento do software; Número de funcionários que atuam no teste do software; Por favor, descreva o percentual da equipe de teste como a seguir; Em tempo integral; Em tempo parcial. 4. A equipe de teste tem suas responsabilidades claramente definidas e apoiadas? Justifique sua resposta. 5. A organização tem um grupo específico para Processo de Software ou alguma unidade similar? Qual? (Responda "Sim"ou "Não") 6. Como o grupo de teste está organizado? (Permitido marcar somente uma) Os desenvolvedores fazem o teste; Grupo de teste dentro do desenvolvimento reportando-se ao Gerente de Projetos; Grupo de teste separado reportando-se ao Gerente de Teste; Parte do grupo de Garantia da Qualidade; Outros (Por favor, especifique). 7. Como o Processo de Teste da organização está caracterizado? (Permitido marcar somente uma) Ad-hoc; Informal; Levemente estruturado; Altamente estruturado; Outros (Por favor, especifique). 8. Com que frequência o Gerente de Projetos tem a necessidade de modificar os requisitos do software? (Permitido marcar somente uma) Nunca; Quase Nunca; Raramente; Frequentemente; Muito Frequentemente; Sempre. Seção 4 - Questões associadas ao MPT.BR. Apêndice B 108 1. Quais práticas devem ser adotadas a fim de contribuir significativamente com a Gerência de Projetos de Teste? (GPT1) Realizar a análise de risco do produto; (GPT2) Estabelecer os objetivos do teste; (GPT3) Definir a estratégia de teste; (GPT4) Definir o escopo do trabalho para o projeto de teste; (GPT5) Estabelecer as estimativas de tamanho; (GPT6) Definir o ciclo de vida do projeto de teste; (GPT7) Estimar o esforço e o custo; (GPT8) Estabelecer e manter o orçamento e o cronograma do projeto; (GPT9) Identificar os riscos do projeto; (GPT10) Planejar os recursos humanos; (GPT12) Planejar os artefatos e os dados do projeto; (GPT13) Estabelecer os indicadores de desempenho do teste; (GPT15) Revisar e obter o compromisso com o Plano de Teste; (GPT16) Monitorar o projeto; (GPT17) Gerenciar o envolvimento dos stakeholders; (GPT18) Executar as revisões em marcos do projeto; (GPT19) Analisar e registrar os problemas identificados; (GPT20) Estabelecer e acompanhar as ações corretivas até a sua conclusão; (GPT21) Definir os critérios de entrada e saída do teste; (GPT22) Definir os critérios de suspensão e reinício do teste; (GPT23) Monitorar os critérios de entrada, saída, suspensão e reinício do teste ; (GPT24) Monitorar os defeitos; (GPT25) Planejar e conduzir as revisões de qualidade do produto; (GPT27) Verificar a aptidão do ambiente de teste; (GPT28) Gerenciar os incidentes do ambiente de teste. 2. Quais práticas devem ser adotadas a fim de contribuir significativamente com o Projeto e Execução de Teste? (PET1) Identificar os casos de teste; (PET5) Estabelecer os padrões de documentação dos casos de teste; (PET6) Estabelecer os padrões de documentação dos incidentes; (PET7) Aplicar as técnicas de projeto de teste. 3. Quais práticas devem ser adotadas a fim de contribuir significativamente com a Gerência de Requisitos de Teste? (GRT1) Obter o entendimento dos requisitos; Apêndice B 109 (GRT2) Obter o comprometimento com os requisitos; (GRT3) Gerenciar as mudanças dos requisitos; (GRT4) Manter a rastreabilidade bidirecional dos requisitos; (GRT5) Identificar as inconsistências entre os requisitos, os planos do projeto e os produtos de trabalho. 4. Quais práticas devem ser adotadas a fim de contribuir significativamente com o Fechamento do Teste? (FDT1) Empacotar os ativos de teste; (FDT2) Limpar o ambiente de teste; (FDT3) Identificar as lições aprendidas. 5. Quais práticas devem ser adotadas a fim de contribuir significativamente com a Garantia da Qualidade? (GDQ1) Avaliar os processos e os produtos de trabalho; (GDQ2) Comunicar e resolver questões; (GDQ3) Estabelecer os registros. 6. Quais práticas devem ser adotadas a fim de contribuir significativamente com a Organização do Teste? (OGT1) Definir a estrutura organizacional do teste; (OGT2) Estabelecer um grupo de processo de teste; (OGT3) Definir os processos padrão de teste; (OGT5) Estabelecer a biblioteca de ativos do processo de teste; (OGT6) Coletar as informações e implementar as ações de melhoria; (OGT7) Identificar os perfis do teste; (OGT9) Integrar os ciclos de vida do teste e do desenvolvimento; (OGT10) Estabelecer e manter a estratégia organizacional de teste. 7. Quais práticas devem ser adotadas a fim de contribuir significativamente com o Teste de Aceitação? (TDA1) Selecionar os produtos para a aceitação; (TDA2) Definir os critérios de aceitação; (TDA3) Definir os papéis e as responsabilidades; (TDA4) Definir o Plano de Aceitação. 8. Quais práticas devem ser adotadas a fim de contribuir significativamente com o Treinamento? Apêndice B 110 (TRE1) Definir um programa de treinamento organizacional; (TRE2) Prover os treinamentos; (TRE3) Registrar os treinamentos; (TRE4) Avaliar a efetividade dos treinamentos. 9. Quais práticas devem ser adotadas a fim de contribuir significativamente com a Automação da Execução do Teste? (AET1) Definir os objetivos do regime de automação; (AET2) Definir os critérios para a seleção dos casos de teste para a automação; (AET5) Verificar a aderência aos objetivos da automação. Seção 5 - Questões associadas à ISO/IEC/IEEE 29119-2. 1. Quais atividades devem ser adotadas a fim de contribuir significativamente com a Estruturação do Teste? (OT1) Desenvolver a especificação organizacional do teste; (OT2) Monitorar e controlar o uso da especificação organizacional do teste; (OT3) Atualizar a especificação organizacional do teste. 2. Quais atividades devem ser adotadas a fim de contribuir significativamente com o Planejamento do Teste? (TP1) Entender o contexto do projeto; (TP2) Organizar o desenvolvimento do Plano de Teste; (TP3) Identificar e analisar os riscos; (TP4) Identificar as abordagens de mitigação do risco; (TP5) Projetar a estratégia de teste; (TP6) Determinar o pessoal e o cronograma; (TP8) Obter o consenso do Plano de Teste; (TP9) Comunicar e disponibilizar o Plano de Teste. 3. Quais atividades devem ser adotadas a fim de contribuir significativamente com o Monitoramento e Controle do Teste? (TMC1) Configurar os artefatos que serão monitorados; (TMC2) Monitorar o projeto; (TMC3) Controlar os artefatos monitorados; (TMC4) Relatar os resultados do projeto. 4. Quais atividades devem ser adotadas a fim de contribuir significativamente com a Conclusão do Teste? Apêndice B 111 (TC1) Arquivar os ativos de teste; (TC2) Limpar o ambiente de teste; (TC3) Identificar as lições aprendidas. 5. Quais atividades devem ser adotadas a fim de contribuir significativamente com o Projeto e Implementação do Teste? (TD2) Derivar as condições de teste; (TD4) Derivar os casos de teste; (TD6) Derivar os procedimentos de teste. 6. Quais atividades devem ser adotadas a fim de contribuir significativamente com a Configuração e Manutenção do Ambiente de Teste? (ES2) Manter o ambiente de teste. APÊNDICE C Resultados do Questionário: Parte 1 O percentual de adoção e do grau de relevância das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 citados na Seção 3.3 do Capítulo 3 deste trabalho, considerou somente as práticas específicas e as atividades com percentual maior ou igual a %50 na definição do grau de relevância e, estão descritos neste apêndice. Os valores apresentados na Figura C.1 e na Figura C.11 foram estabelecidos como a seguir: 1. Respostas positivas (% Sim): (a) Contabilizar individualmente o percentual de cada questão (Qtd. Questionário/Qtd. Sim); (b) Calcular a média dos percentuais das questões. 2. Respostas negativas (% Não): (a) Contabilizar individualmente o percentual de cada questão (Qtd. Questionário/Qtd. Não); (b) Calcular a média dos percentuais das questões. Na Figura C.15 e na Figura C.17 os valores apresentados foram definidos da seguinte forma: 1. Grau de relevância das respostas positivas (% Alto): (a) Contabilizar individualmente o percentual de cada questão ((% Sim * Qtd. Alto)/Qtd. Sim); (b) Calcular a média dos percentuais das questões. Apêndice C 113 Adoção das Práticas Específicas do MPT.BR % "Sim" % "Não" Figura C.1: Adoção das Práticas Específicas do MPT.BR. Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: GPT 120% 100% 80% 60% 40% 20% 0% GPT1 GPT2 GPT3 GPT4 GPT5 GPT6 GPT7 GPT8 GPT9 GPT10 GPT12 GPT13 GPT15 GPT16 GPT17 GPT18 GPT19 GPT20 GPT21 GPT22 GPT23 GPT24 GPT25 GPT27 GPT28 Figura C.2: Adoção das Práticas Específicas do MPT.BR: GPT. Apêndice C 114 Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: PET 120% 100% 80% 60% 40% 20% 0% PET1 PET5 PET6 PET7 Figura C.3: Adoção das Práticas Específicas do MPT.BR: PET. Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: GRT 120% 100% 80% 60% 40% 20% 0% GRT1 GRT2 GRT3 GRT4 Figura C.4: Adoção das Práticas Específicas do MPT.BR: GRT. GRT5 Apêndice C 115 Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: FDT 120% 100% 80% 60% 40% 20% 0% FDT1 FDT2 FDT3 Figura C.5: Adoção das Práticas Específicas do MPT.BR: FDT. Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: GDQ 120% 100% 80% 60% 40% 20% 0% GDQ1 GDQ2 GDQ3 Figura C.6: Adoção das Práticas Específicas do MPT.BR: GDQ. Apêndice C 116 Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: OGT 120% 100% 80% 60% 40% 20% 0% OGT1 OGT2 OGT3 OGT5 OGT6 OGT7 OGT9 OGT10 Figura C.7: Adoção das Práticas Específicas do MPT.BR: OGT. Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: TDA 120% 100% 80% 60% 40% 20% 0% TDA1 TDA2 TDA3 TDA4 Figura C.8: Adoção das Práticas Específicas do MPT.BR: TDA. Apêndice C 117 Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: TRE 120% 100% 80% 60% 40% 20% 0% TRE1 TRE2 TRE3 TRE4 Figura C.9: Adoção das Práticas Específicas do MPT.BR: TRE. Adoção das Práticas Específicas por Áreas de Processo do MPT.BR: AET 120% 100% 80% 60% 40% 20% 0% AET1 AET2 AET5 Figura C.10: Adoção das Práticas Específicas do MPT.BR: AET. Apêndice C 118 Adoção das Atividades da ISO/IEC/IEEE 29119-2 % "Sim" % "Não" Figura C.11: Adoção das Atividades da ISO/IEC/IEEE 29119-2. Adoção das Atividades por Multicamadas dos Processos da ISO/IEC/IEEE 29119-2: Processo Organizacional do Teste 120% 100% 80% 60% 40% 20% 0% OT1 OT2 OT3 Figura C.12: Adoção das Atividades da ISO/IEC/IEEE 29119-2: Processo Organizacional do Teste. Apêndice C 119 Adoção das Atividades por Multimacadas dos Processos da ISO/IEC/IEEE 29119-2: Processos de Gerenciamento do Teste 120% 100% 80% 60% 40% 20% 0% TP1 TP2 TP3 TP4 TP5 TP6 TP8 TP9 TMC1 TMC2 TMC3 TMC4 TC1 TC2 Figura C.13: Adoção das Atividades da ISO/IEC/IEEE 29119-2: Processos de Gerenciamento do Teste. Adoção das Atividades por Multicamadas dos Processos da ISO/IEC/IEEE 29119-2: Processos de Teste Dinâmico 120% 100% 80% 60% 40% 20% 0% TD2 TD4 TD6 ES2 Figura C.14: Adoção das Atividades da ISO/IEC/IEEE 29119-2: Processos de Teste Dinâmico. TC3 Apêndice C 120 Grau de Relevância das Práticas Específicas do MPT.BR % "Baixo" % "Médio" % "Alto" Figura C.15: Grau de Relevância das Práticas Específicas do MPT.BR. Definição do Alto Grau de Relevância das Práticas Específicas do MPT.BR 120% 100% 80% 60% 40% 20% Figura C.16: Definição do Alto Grau de Relevância das Práticas Específicas do MPT.BR. AET5 TRE4 AET2 TRE3 AET1 TRE2 TRE1 TDA4 TDA3 TDA1 OGT9 OGT10 OGT6 OGT3 OGT2 OGT1 GDQ3 GDQ2 FDT3 GDQ1 FDT1 GRT5 GRT4 GRT3 GRT2 PET7 PET6 GRT1 PET5 PET1 GPT28 GPT27 GPT25 GPT24 GPT21 GPT20 GPT19 GPT17 GPT16 GPT13 GPT9 GPT10 GPT6 GPT3 GPT2 GPT1 0% Apêndice C 121 Grau de Relevância das Atividades da ISO/IEC/IEEE 29119-2 % "Baixo" % "Médio" % "Alto" Figura C.17: Grau de Relevância ISO/IEC/IEEE 29119-2. das Atividades da Definição do Alto Grau de Relevância das Atividades da ISO/IEC/IEEE 29119-2 120% 100% 80% 60% 40% 20% 0% OT1 OT3 TP1 TP2 TP3 TP5 TP6 TP8 TP9 TMC2 TMC4 TC1 TC3 TD2 TD4 Figura C.18: Definição do Alto Grau de Relevância das Atividades da ISO/IEC/IEEE 29119-2. TD6 ES2 APÊNDICE D Resultados do Questionário: Parte 2 O percentual do custo de implementação e a pontuação das práticas específicas do MPT.BR e das atividades da ISO/IEC/IEEE 29119-2 citados na Seção 3.3 do Capítulo 3 deste trabalho, considerou somente as práticas específicas e as atividades com percentual maior ou igual a %50 na definição do custo de implementação e, estão descritos neste apêndice. Os valores apresentados na Figura D.1 foram estabelecidos como a seguir: 1. Custo de Implementação das respostas positivas (% Médio): (a) Contabilizar individualmente o percentual de cada questão ((% Sim * Qtd. Médio)/Qtd. Sim); (b) Calcular a média dos percentuais das questões. Na Figura D.3 os valores apresentados foram definidos da seguinte forma: 1. Custo de Implementação das respostas positivas (% Baixo): (a) Contabilizar individualmente o percentual de cada questão ((% Sim * Qtd. Baixo)/Qtd. Sim); (b) Calcular a média dos percentuais das questões. Os valores apresentados na Figura D.5 e na Figura D.15 foram estabelecidos como a seguir: 1. Pontuação do grau de relevância (Total): (a) Contabilizar individualmente a pontuação de cada questão através da fórmula: P = (B * 1) + (M * 2) + (A * 3), onde: i. P - Pontuação alcançada pelas práticas específicas/atividades; ii. B - Quantidade de práticas específicas do MPT.BR/atividades da ISO/IEC/IEEE com baixo grau de relevância; Apêndice D 123 Custo de Implementação das Práticas Específicas do MPT.BR % "Baixo" % "Médio" % "Alto" Figura D.1: Custo de Implementação das Práticas Específicas do MPT.BR. iii. M - Quantidade de práticas específicas do MPT.BR/atividades da ISO/IEC/IEEE com médio grau de relevância; iv. A - Quantidade de práticas específicas do MPT.BR/atividades da ISO/IEC/IEEE com alto grau de relevância; v. Valores de 1 a 3 - Representam o peso de acordo com o grau de relevância e o custo de implementação atribuído a cada uma das práticas específicas do MPT.BR/atividades da ISO/IEC/IEEE contidas no questionário. (b) Somar as pontuações das questões de acordo áreas de processo do MPT.BR/multicamadas dos processos de teste da ISO/IEC/IEEE 29119-2. Apêndice D 124 Práticas Específicas Responsáveis pelo Médio Custo de Implementação do MPT.BR 120% 100% 80% 60% 40% 20% 0% GPT10 GPT12 GPT15 GPT16 GPT18 GPT19 GPT20 GPT21 GPT22 GPT23 PET1 PET6 PET7 GRT1 GRT2 GRT4 GDQ1 GDQ3 OGT6 OGT7 OGT9 TDA1 TDA2 TDA3 AET1 AET2 AET5 Figura D.2: Práticas Específicas Responsáveis pelo Médio Custo de Implementação do MPT.BR. Custo de Implementação das Atividades da ISO/IEC/IEEE 29119-2 % "Baixo" % "Médio" % "Alto" Figura D.3: Custo de Implementação ISO/IEC/IEEE 29119-2. das Atividades da Apêndice D 125 Atividades Responsáveis pelo Baixo Custo de Implementação da ISO/IEC/IEEE 29119-2 80% 70% 60% 50% 40% 30% 20% 10% 0% OT3 TP1 TP5 TP9 TMC4 TC1 TC3 Figura D.4: Práticas Específicas Responsáveis pelo Baixo Custo de Implementação da ISO/IEC/IEEE 29119-2. Pontuação das Práticas Específicas do MPT.BR GPT PET GRT FDT GDQ OGT TDA TRE AET Figura D.5: Pontuação das Práticas Específicas do MPT.BR. ES2 Apêndice D 126 Pontuação das Práticas Específicas por Áreas de Processos do MPT.BR: GPT 14 12 10 8 6 4 2 0 GPT1 GPT2 GPT3 GPT4 GPT5 GPT6 GPT7 GPT8 GPT9 GPT10 GPT12 GPT13 GPT15 GPT16 GPT17 GPT18 GPT19 GPT20 GPT21 GPT22 GPT23 GPT24 GPT25 GPT27 GPT28 Figura D.6: Pontuação das Práticas Específicas do MPT.BR: GPT. Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: PET 14 12 10 8 6 4 2 0 PET1 PET5 PET6 PET7 Figura D.7: Pontuação das Práticas Específicas do MPT.BR: PET. Apêndice D 127 Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: GRT 10,2 10 9,8 9,6 9,4 9,2 9 8,8 8,6 8,4 GRT1 GRT2 GRT3 GRT4 GRT5 Figura D.8: Pontuação das Práticas Específicas do MPT.BR: GRT. Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: FDT 12 10 8 6 4 2 0 FDT1 FDT2 FDT3 Figura D.9: Pontuação das Práticas Específicas do MPT.BR: FDT. Apêndice D 128 Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: GDQ 9,2 9 8,8 8,6 8,4 8,2 8 7,8 7,6 7,4 GDQ1 GDQ2 GDQ3 Figura D.10: Pontuação das Práticas Específicas do MPT.BR: GDQ. Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: OGT 14 12 10 8 6 4 2 0 OGT1 OGT2 OGT3 OGT5 OGT6 OGT7 OGT9 Figura D.11: Pontuação das Práticas Específicas do MPT.BR: OGT. OGT10 Apêndice D 129 Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: TDA 10,2 10 9,8 9,6 9,4 9,2 9 8,8 8,6 8,4 TDA1 TDA2 TDA3 TDA4 Figura D.12: Pontuação das Práticas Específicas do MPT.BR: TDA. Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: TRE 10 9 8 7 6 5 4 3 2 1 0 TRE1 TRE2 TRE3 TRE4 Figura D.13: Pontuação das Práticas Específicas do MPT.BR: TRE. Apêndice D 130 Pontuação das Práticas Específicas por Áreas de Processo do MPT.BR: AET 12,2 12 11,8 11,6 11,4 11,2 11 10,8 10,6 10,4 AET1 AET2 AET5 Figura D.14: Pontuação das Práticas Específicas do MPT.BR: AET. Pontuação das Atividades da ISO/IEC/IEEE 29119-2 OT TP TMC TC TD ES Figura D.15: Pontuação das Atividades da ISO/IEC/IEEE 291192. Apêndice D 131 Pontuação das Atividades por Multicamadas dos Processos da ISO/IEC/IEEE 29119-2: Processo Organizacional do Teste 10,2 10 9,8 9,6 9,4 9,2 9 8,8 8,6 8,4 OT1 OT2 OT3 Figura D.16: Pontuação das Atividades da ISO/IEC/IEEE 291192: Processo Organizacional do Teste. Pontuação das Atividades por Multicamadas dos Processos da ISO/IEC/IEEE 29119-2: Processos de Gerenciamento do Teste 14 12 10 8 6 4 2 0 TP1 TP2 TP3 TP4 TP5 TP6 TP8 TP9 TMC1 TMC2 TMC3 TMC4 TC1 TC2 Figura D.17: Pontuação das Atividades da ISO/IEC/IEEE 291192: Processos de Gerenciamento do Teste. TC3 Apêndice D 132 Pontuação das Atividades por Multicamadas dos Processos da ISO/IEC/IEEE 29119-2: Processos de Teste Dinâmico 14 12 10 8 6 4 2 0 TD2 TD4 TD6 ES2 Figura D.18: Pontuação das Atividades da ISO/IEC/IEEE 291192: Processos de Teste Dinâmico.