147
i Universidade de Pernambuco Escola Politécnica de Pernambuco Departamento de Sistemas e Computação Programa de Pós-Graduação em Engenharia da Computação Ellen Polliana Ramos Souza RBTProcess: Modelo de Processo de Teste de Software baseado em Riscos Dissertação de Mestrado Recife, Dezembro de 2008

RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

  • Upload
    vutruc

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

i

Universidade de Pernambuco Escola Politécnica de Pernambuco

Departamento de Sistemas e Computação Programa de Pós-Graduação em Engenharia da Computação

Ellen Polliana Ramos Souza

RBTProcess: Modelo de Processo de Teste de Software baseado em Riscos

Dissertação de Mestrado

Recife, Dezembro de 2008

Page 2: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

Livros Grátis

http://www.livrosgratis.com.br

Milhares de livros grátis para download.

Page 3: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

ii

DISSERTAÇÃO APRESENTADA AO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO DA UNIVERSIDADE DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO TÍTULO DE MESTRE EM ENGENHARIA DA COMPUTAÇÃO.

ELLEN POLLIANA RAMOS SOUZA

RBTProcess: Modelo de Processo de Teste de Software baseado em Riscos

Orientador: Prof. Dra. Cristine Martins Gomes de Gusmão

Recife, Dezembro/2008.

Page 4: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

iii

S729r Souza, Ellen Polliana Ramos

RBTProcess: Modelo de Processo de Teste de Software baseado em Riscos / Ellen Polliana Ramos Souza. – Recife : O Autor, 2008.

vi, 129 f. : 27 fig., 39 tab.

Dissertação (mestrado) – Universidade de Pernambuco. DSC Engenharia da Computação, 2008.

Inclui bibliografia e apêndice.

1. Engenharia de Software. 2. Teste de Software. 3. Processo de Teste de Software I. Título.

CDU - UPE

CDU(681.300:681.3.06)

Page 5: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

iv

Dedico este trabalho

Aos meus pais, que sempre acreditaram em mim, fornecendo todo apoio necessário para que eu pudesse alcançar meus objetivos.

Ao meu filho Gabriel que, com o seu sorriso, contagia a minha vida de alegria, coragem e força de vontade para crescer cada vez mais.

Á Alberto, meu companheiro, amigo, cúmplice de todos os

momentos bons ou ruins, sempre me apoiando e me confortando.

Aos meus irmãos Day, Leu e Jó e familiares, pelo apoio e incentivo em todos os momentos.

Page 6: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

v

Agradecimentos

A minha orientadora, Cristine Gusmão, que aceitou o desafio de orientar uma aluna cansada, desmotivada e sem tempo para dedicar-se ao mestrado. Sem o seu apoio, eu jamais teria concluído esse trabalho.

A todos os professores do DSC, pela preocupação contínua com o aprendizado e extrema dedicação a este programa de pós-graduação.

A todos os colegas da primeira turma de mestrado, que, nos momentos difíceis, estiveram sempre ao meu lado, não me deixando fraquejar e nem desistir do mestrado. São eles: Naida, Lilian, Renata, César, Henrique, Marcelo, Mário, Alexandre, Petrônio, Diogo, Thyago, Danilo, Anthony, George e Bernardo.

A Renata, Keldjan, Júlio e Ed, pela amizade, dedicação e contribuição com os seus trabalhos de iniciação científica e/ou conclusão de curso.

Aos queridos voluntários, Emanoel, Hilda, Liliane, Raphael e Everton, que chegavam às 7h da manhã para participar do estudo de caso.

À equipe MPhyScas, formada por César, Renata, Fernando, Danilo e Marcelo, pela disponibilidade para realização do estudo de caso.

À Ana Georgina, secretária do DSC, pelo carinho e dedicação, sempre nos orientando e ajudando para que pudéssemos estudar com tranqüilidade.

Ao amigo Breno Spindola, pelas valiosas contribuições, pelos conselhos e pela revisão deste e de outros trabalhos.

Ao amigo Humberto Rocha, pela realização das simulações e revisão do modelo de processo.

Aos colegas Simone, Tiago, Elvys, Fernando, Paulo e Virginia, do Projeto CIn – Motorola, que me incentivaram a ingressar no mestrado e me forneceram todo o apoio necessário para iniciar este trabalho.

Aos colegas Mônica Falcão, Nielso, Bruno Abreu e Márcia Falcão, do SERPRO, pelo incentivo para que eu pudesse dedicar-me ao mestrado.

Aos colegas Tiago, Humberto, Adélia, Denílson, Rodrigo e Jarley, do SINPA, pela enorme ajuda e paciência, quando a minha mente já estava esgotada.

À Ana Claudia, por cuidar de Gabriel sempre com muito zelo e carinho, deixando-me tranqüila para estudar.

Aos demais amigos, que felizmente não são poucos, pelas contribuições, incentivo, conforto e compreensão pela a minha ausência nestes últimos dois anos.

Page 7: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

vi

Resumo

Neste trabalho, é apresentado o RBTProcess, um Modelo de Processo de Teste de Software baseado em Riscos, constituído de atividades da gerência de riscos e de processos de teste de software, papéis, guias, artefatos e um conjunto de métricas, fornecido com o propósito de medir e controlar os casos de teste e atividades do processo.

O RBTProcess foi avaliado através de simulações de uso do processo e estudo de caso e é apoiado pela RBTTool, ferramenta de apoio ao Teste de Software baseado em Riscos, também apresentada neste trabalho.

Teste baseado em risco ou Risk-based Testing (RBT) consiste em um conjunto de atividades que favorece a identificação de riscos associados aos requisitos do software. Uma vez identificados, os riscos são priorizados de acordo com a sua probabilidade de ocorrência e impacto e os casos de teste, por sua vez, são projetados com base nas estratégias para tratamento destes riscos.

A motivação principal para este trabalho deve-se ao fato de que a atividade de Teste de Software requer esforço considerável, normalmente dentro de restrições de custo e prazo, e a abordagem RBT permite justamente priorizar esforços e alocar recursos para os requisitos do software que necessitam ser testados prioritariamente, otimizando o processo de teste. Entretanto, os engenheiros de teste, ainda encontram dificuldade em aplicar a abordagem na prática pela ausência de conhecimentos sólidos sobre as atividades da Gerência de Riscos de Software e, principalmente, pela ausência de ferramenta de apoio.

A contribuição principal deste trabalho é demonstrar que a abordagem RBT, através do RBTProcess, permite concentrar os esforços de teste nos requisitos de software que possuem maior probabilidade de apresentar falhas. Outras contribuições são: (i) mostrar que os defeitos, com maior severidade, podem ser descobertos mais cedo, tendo em vista que os requisitos mais problemáticos serão testados prioritariamente; (ii) mostrar que a qualidade do produto final é melhorada, como conseqüência de uma atividade de testes bem planejada e, por fim, (iii) mostrar que as atividades da gerência de riscos de software, incluídas no processo de teste de software, não exigem muitos recursos e tempo para execução.

Palavras-chave: Teste de Software baseado em Riscos, Modelo de Processo, Engenharia de Software, Gerência de Riscos de Software.

Page 8: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

vii

Abstract

This work presents the RBTProcess, a Risk-based Software Testing Process Model that contains activities from risk management and software testing, roles, guidelines, artifacts and a set of metrics to measure and control risk-based test cases and activities.

The RBTProcess was evaluated through simulations of process use and case study. It is supported by the RBTTool, a tool for Risk-based Software Testing, also presented in this work.

Risk-based Testing (RBT) consists of a set of activities regarding risks identification related to software requirements. Once identified, the risks are prioritized according to their likelihood and impact and test cases are projected based on the strategies for treatment of the identified risks.

The main motivation of this work is that testing process requires significant effort, besides costs and resources constraints and RBT allows prioritize limited efforts for the software components that need to be tested carefully, improving, in this way, the test activities. However, testers continually encounter difficulties in effectively applying risk-based in practice, because they normally do not have risk management knowledge and there is no software tool to support the approach.

The main contribution of this work is to confirm that RBT, through RBTProcess, allows focusing on the software requirements that are more likely to failure.

Other contributions are: (i) to demonstrate that defects with high severity are discovered earlier as a result of requirement prioritization; (ii) to show that the software product quality is improved as consequence of well planned test activities and (iii) to show that software risk management activities, included in the software test process, are not time and resource consuming. Keywords:

Risk-based Software Testing, Process Model, Software Engineering, Software Risk Management.

Page 9: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

viii

Sumário

Índice de Figuras x

Índice de Tabelas xi

Tabela de Siglas e Símbolos xiii SIGLAS xiii SÍMBOLOS xv

1 Introdução 1

1.1 Motivação 2 1.2 Objetivos 3

1.2.1 Objetivo Geral 3 1.2.2 Objetivos Específicos 3

1.3 Metodologia 4 1.4 Organização da Dissertação 6

2 Riscos e Testes de Software: Conceitos Básicos, Modelos e Processos 7

2.1 Teste de Software 7 2.1.1 Conceitos Básicos 8 2.1.2 Processo de Teste de Software segundo o Processo Unificado da Rational (RUP) 12 2.1.3 Modelo de Maturidade de Teste de Software (TMM) 17 2.1.4 Padrão IEEE 1012-1998 para Verificação e Validação de Software 19 2.1.5 Padrão IEEE 829-1998 para Documentação de Teste de Software 22

2.2 Riscos na Engenharia de Software 25 2.2.1 Conceitos Básicos 25 2.2.2 Processo de Gerência de Riscos segundo o Guia PMBOK 28 2.2.3 Processo de Gerência de Riscos segundo o Processo Unificado da Rational (RUP) 29 2.2.4 Atividades da Área de Processo do Gerenciamento de Riscos do Modelo CMMI 30 2.2.5 Atividades da Gerência de Riscos do Instituto de Engenharia de Software (SEI) 32

2.3 Resumo do Capítulo 34

3 Teste de Software baseado em Riscos 35

3.1 Atividades 36 3.2 Principais Abordagens 37

3.2.1 Abordagem baseada em Heurística 37 3.2.2 Abordagem baseada em Métricas 39 3.2.3 Abordagem baseada em Código-fonte Orientado a Objetos 42 3.2.4 Abordagem para Teste de Regressão 43 3.2.5 Abordagem baseada em Uso 44 3.2.6 Abordagem baseada em Modelos 46

3.3 Análise Comparativa 48 3.4 Resumo do Capítulo 51

4 RBTProcess: Modelo de Processo de Teste de Software baseado em Riscos 52

4.1 Documentação do Modelo 52

Page 10: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

ix

4.2 Visão Geral 54 4.2.1 Fases 54 4.2.2 Papéis 56

4.3 Disciplinas ou Conjuntos de Trabalho 57 4.3.1 Identificar Riscos 57 4.3.2 Analisar Riscos 59 4.3.3 Planejar Testes 62 4.3.4 Projetar Testes 63 4.3.5 Executar Testes 65 4.3.6 Avaliar Testes 66 4.3.7 Controlar Riscos 67

4.4 Relacionamento dos Artefatos 68 4.5 Métricas 68

4.5.1 Métricas para Controle e Medição de Casos de Teste baseado em Riscos 70 4.5.2 Métricas para Controle e Medição das Atividades do Processo de Teste de Software baseado em Riscos 70

4.6 Avaliação do Modelo de Processo 72 4.6.1 Simulações Realizadas pela Autora 73 4.6.2 Simulações Realizadas por Engenheiro de Teste com Experiência em Teste de Software 75 4.6.3 Simulações Realizadas para Avaliar Métricas e Coletar Tempo de Atividades de Identificação e Análise de Riscos 76 4.6.4 Estudo de Caso 79

4.7 Resumo do Capítulo 90

5 RBTTool: Ferramenta de apoio ao Teste de Software baseado em Riscos 91

5.1 Requisitos 92 5.2 Material e Método 93

5.2.1 Tecnologias 94 5.2.2 Ambiente de Desenvolvimento e Frameworks 94 5.2.3 Processos de Desenvolvimento e Gerência de Riscos 96

5.3 Estágio Atual de Desenvolvimento 97 5.4 Resumo do Capítulo 97

6 Conclusões 99

6.1 Contribuições e Resultados Alcançados 99 6.2 Limitações Encontradas 100 6.3 Trabalhos Relacionados 101 6.4 Trabalhos Futuros 101

Bibliografia 103

Pesquisa sobre a Abordagem de Teste baseado em Riscos 107

RBTTool: Telas 111

RBTProcess: Papéis 116

RBTProcess: Atividades 119

Page 11: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

x

Índice de Figuras

Figura 2.1 Classificação para os termos erro, defeito e falha [Graham et al 2007]. 9

Figura 2.2 Estágios do teste de software. 10

Figura 2.3 Arquitetura geral do RUP (2003). 13

Figura 2.4 Atividades de teste do processo unificado da Rational [RUP 2003]. 14

Figura 2.5 Estrutura do TMM [Burnstein 1999]. 17

Figura 2.7 Relacionamento entre os artefatos e atividades de teste [IEEE 829 1998]. 24

Figura 2.8 Taxonomia de riscos proposta pelo SEI e adaptada por [Gusmão 2005]. 27

Figura 3.1 Atividades relevantes para RBT [Amland 1999]. 36

Figura 3.2 Esforço necessário para reduzir em 50% os riscos. 45

Figura 3.3 Amostra de um modelo de teste com informações de riscos. 47

Figura 4.1 Níveis de modelagem do SPEM. 53

Figura 4.2 Composição do Eclipse Process Framework [EPF 2007]. 54

Figura 4.3 Página do modelo de processo criada pelo EPFComposer [RBTProcess 2008]. 55

Figura 4.4 Fases do RBTProcess. 55

Figura 4.5 RBTProcess: Disciplina Identificar Riscos. 58

Figura 4.6 RBTProcess: Disciplina Analisar Riscos. 60

Figura 4.7 Métricas para cálculo de exposição ao risco dos requisitos. 60

Figura 4.8 RBTProcess: Disciplina Planejar Testes. 62

Figura 4.9 RBTProcess: Disciplina Projetar Testes. 64

Figura 4.10 Questionário baseado em taxonomia para a funcionalidade Group Tasks. 65

Figura 4.11 RBTProcess: Disciplina Executar Testes. 65

Figura 4.12 RBTProcess: Disciplina Avaliar Testes. 66

Figura 4.13 RBTProcess: Disciplina Controlar Riscos. 67

Figura 4.14 RBTProcess: Relacionamento dos artefatos. 69

Figura 4.16 Visão geral do fluxo de execução do estudo de caso. 80

Figura 5.1 Diagrama de caso de uso da RBTTool. 92

Figura 5.2 Componentes da Arquitetura RCP (2008). 95

Page 12: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

xi

Índice de Tabelas

Tabela 1.1 Metodologia do Trabalho. 5

Tabela 2.1 Tipos de testes de software [RUP 2003]. 11

Tabela 2.2 Objetivos e atividades dos níveis do TMM. 19

Tabela 2.3 Conteúdo dos documentos de teste de software [IEEE 829 1998]. 23

Tabela 2.4 Matriz de impacto e probabilidade. 26

Tabela 2.5 Questões de “estabilidade” e “completude” para o elemento “requisito”. 28

Tabela 2.6 Objetivos e práticas da área de processo de gerenciamento de riscos. 31

Tabela 3.1 Etapas do teste baseado em riscos [Bach 1999]. 36

Tabela 3.2 Lista de categorias de critérios de qualidade [Bach 1999]. 37

Tabela 3.3 Lista genérica de riscos [Bach 1999]. 38

Tabela 3.4 Catálogo de riscos para um instalador [Bach 1999] 38

Tabela 3.5 Exposição ao risco calculado para a função “fechar contas” [Amland 1999]. 40

Tabela 3.6 Valores limites para métricas individuais. 42

Tabela 3.7 Métricas coletadas de um projeto Java. 43

Tabela 3.8 Possíveis casos de teste e risco associado. 47

Tabela 3.9 Análise comparativa das principais abordagens RBT. 50

Tabela 4.1 Estereótipos disponíveis no SPEM. 53

Tabela 4.2 Exemplo de indicadores para a métrica de qualidade da funcionalidade. 61

Tabela 4.3 Lista de priorização dos requisitos. 61

Tabela 4.4 Definição do escopo dos teste. 63

Tabela 4.5. Métrica para casos de teste baseado em riscos. 71

Tabela 4.6 Métricas para atividade de teste baseado em riscos. 72

Tabela 4.7 Métricas da atividade de identificação de riscos. 77

Tabela 4.8 Cálculo de exposição ao risco para o sistema Health-Watcher. 77

Tabela 4.9 Métricas da atividade de análise de riscos. 77

Tabela 4.10 Número de casos de teste por funcionalidade. 78

Tabela 4.11 Resultado da execução dos casos teste baseado em riscos. 78

Page 13: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

xii

Tabela 4.12 Métricas da atividade de análise de riscos. 79

Tabela 4.13 Atividades de preparação para realização do estudo de caso. 83

Tabela 4.14 Atividades do RBTProcess. 83

Tabela 4.15 Tempo gasto na atividade de identificação de riscos. 85

Tabela 4.16 Características dos riscos identificados. 85

Tabela 4.17 Tempo gasto para análise dos riscos. 86

Tabela 4.18 Valores de exposição ao risco das funcionalidades do MPhyScaS. 86

Tabela 4.19 Número e severidade dos defeitos encontrados por abordagem. 88

Tabela 4.20 Concentração dos defeitos por caso de teste. 88

Tabela 4.21 Concentração dos defeitos por tempo de execução. 88

Tabela 4.22 Concentração dos defeitos por funcionalidade. 89

Tabela 5.1 Cronograma de atividades do ano de 2008. 97

Page 14: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

xiii

Tabela de Siglas e Símbolos

SIGLAS

ADS – Ambiente de Desenvolvimento de Software

ARSP – Additional Risk Score Prioritization

CASE – Computer-Aided Software Engineering

CBO – Coupling Between Objects

CMM – Capability Maturity Model

CMMI – Capability Maturity Model Integration

DIT – Depth in Tree

DSC – Departamento de Sistemas e Computação

EPF – Eclipse Process Framework

FEM – Finite Element Method

GARA – Processo Ágil de Gestão de Riscos

GQM – Goal Question Metric

IDE – Integrated Development Environment

IEEE – The institute of Electrical and Electronics Engineers

IIT – Illinois Institute of Technology

ISO – International Organization for Standardization

ISTQB – International Software Testing Qualifications Board

JUDE – Java and UML Developer Environment

MPhyScaS – Multi-Physics and Multi-Scales Solver Environment

NASA – National Aeronautics and Space Administration

NOC – Number of Children

Page 15: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

xiv

NOM – Number of Methods

OMG – Object Management Group

PMBOK – Project Management Body of Knowledge

PMI – Project Management Institute

OP – Optimum Prioritization

OpenUP – Open Unified Process

RBT – Risk-based Testing

RCP – Rich Cliente Plataform

RE – Risk Exposure

REM – Requirement Management

RFC – The Response for a Class

RiteDAP – Risk-based test case Derivation And Prioritization

RP – Randomic Prioritization

RUP – Rational Unified Process

SATC – Software Assurance Technology Center

SEI – Software Engineering Institute

SG – Specific Goals

SP – Specific Practices

SPEM – Software Process Engineering Metamodel

SQA – Software Quality Assurance

TBQ – Taxonomy-Based Questionnaire

TCMM – Testing Capability Maturity Model

TIM – Test Improvement Model

TMM – Test Maturity Model

TPI – Test Process Improvement

TOM – Test Organization Maturity

Page 16: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

xv

TRSP – Total Risk Score Prioritization

UFPE – Universidade Federal de Pernambuco

UMA – Unified Method Architecture

UML – Unified Modeling Language

UPE – Universidade de Pernambuco

V&V – Verificação e Validação

WMC – The Weighted Methods per Class

SÍMBOLOS

)(vC – Custo para Vendedor

)(cC – Custo para Cliente

)( fER – Exposição ao Risco da Função f

)( fP – Probabilidade da Função f

)( fI – Impacto da Função f

Page 17: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

1

1

Introdução

As empresas, de forma geral, têm despertado para a importância da atividade de teste de

software como forma de melhorar a qualidade dos seus produtos e manterem-se competitivas

no mercado. Além disso, a complexidade das tecnologias utilizadas e dos produtos de

software produzidos tem crescido, tornando-se indispensável a utilização de processos,

métodos, técnicas e ferramentas que permitam a realização de teste de software de maneira

sistemática e com fundamentação teórica, com o propósito de aumentar a qualidade do

software, com o menor custo possível [Delamaro et al 2007]. Assim, o processo de testes

exerce um importante papel dentro da garantia de qualidade de software ou Software Quality

Assurance (SQA) assegurando que os requisitos satisfaçam as necessidades das partes

envolvidas.

Da mesma forma, a gerência de riscos de software tem sido fortemente debatida,

estudada e utilizada em ambientes de desenvolvimento de software com o propósito de

administrar oportunidades [Gusmão 2007], aumentando a probabilidade de atingir os

objetivos do projeto, ou seja, entregar o produto de software com o menor custo, no menor

tempo possível e com maior qualidade.

O Teste baseado em Riscos ou Risk-based Testing (RBT), por sua vez, permite

priorizar esforços e alocar recursos para os componentes de software que necessitam ser

testados mais cuidadosamente a partir da identificação, análise e controle dos riscos

associados aos requisitos, reduzindo o tempo e esforço necessários para testar um produto.

O objetivo deste capítulo introdutório é apresentar a importância do tema abordado, as

motivações, objetivos e os passos realizados para construção deste trabalho.

Capítulo

Page 18: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

2

1.1 Motivação A atividade de teste de software tem se mostrado fundamental no desenvolvimento de

software, buscando evitar, principalmente, que falhas cheguem aos clientes, deixando-os

insatisfeitos e causando prejuízos. Esta atividade, no entanto, é difícil e custosa de ser

realizada, uma vez que o domínio de entradas e saídas de um software é diverso, bem como

são muitas as possibilidades de caminhos possíveis a serem testados. Além disso, segundo

Kaner, a atividade de teste é bastante cara, chegando a custar até 45% do valor inicial de um

produto em desenvolvimento [Kaner et al 1999].

Segundo estudos [Graham et al 2007], quanto mais tarde um erro é encontrado, maior

é o custo para corrigi-lo que cresce de forma exponencial como mostrado na Figura 1.1. A

mudança em um documento de requisito durante uma revisão ou inspeção de requitos tem

baixo custo, entretanto, se realizada após a codificação do requisito, torna-se mais cara, uma

vez que, além da atualização do documento, o código necessita ser reescrito.

Outro problema relatado na literatura [Goldsmith 2006] é que, infelizmente, o

processo de teste de software ainda é visto, por alguns, como um processo que tem início ao

final do processo de desenvolvimento. Nestes casos, os problemas enfrentados em estágios

anteriores têm sido resolvidos fazendo-se uso do tempo e dinheiro - normalmente bastante

limitados - reservados para o teste, não sobrando recurso suficiente para se testar

adequadamente o produto de software. Assim, o teste se torna bastante curto, e os sistemas

produzidos tornam-se menos confiáveis.

Além disso, a fase de testes também tem sido utilizada como buffer para compensar

atrasos no projeto comprometendo, também, o tempo destinado aos testes e a qualidade do

software [Goldsmith 2006].

Figura 1.1 Custo para encontrar e corrigir defeitos em um software.

custo para encontrar e corrigir defeitos aumenta ao longo do tempo

CUSTO

TEMPO Requisitos Projeto Construção Teste Uso

Page 19: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

3

Com relação aos riscos de software, é bastante comum projetos enfrentarem diversos

problemas afetados por riscos inesperados, não planejados ou simplesmente ignorados. Desta

forma, à medida que o tamanho e a complexidade dos sistemas crescem, aumenta a

necessidade da utilização de metodologias para gerenciamento de riscos [Rios 2005].

A técnica de teste baseada em análise de riscos surgiu como uma abordagem para

minimizar alguns dos problemas relacionados ao esforço da atividade de teste e da gerência

de riscos. Assim, a atividade de testes é melhorada a partir da gerência dos riscos técnicos de

software que podem ser tratados através da realização de atividades de teste de software.

Apesar da abordagem RBT mostrar-se simples, os engenheiros de teste ainda

encontram dificuldades em aplicá-la na prática [Goldsmith 2006], principalmente, porque a

análise de riscos é algo complexo e necessita de conhecimento para sua aplicação [SEI 2006].

Também, não foram encontrados processos com atividades, papéis e artefatos bem definidos

que possam guiar os engenheiros de testes no uso da abordagem e ferramentas específicas, o

que, provavelmente, dificulta sua aplicação e disseminação.

Visando diminuir esta dificuldade de utilização da abordagem RBT, este trabalho

apresenta um Modelo de Processo de Teste de Software baseado em Riscos com guias,

artefatos, atividades, papéis, métricas e apoiado por protótipo que forneça apoio às principais

atividades da abordagem.

1.2 Objetivos

1.2.1 Objetivo Geral

O objetivo geral deste trabalho é definir um Modelo de Processo de Teste de Software

baseado em Riscos, formado por atividades presentes nos processos de gerência de riscos e de

testes de software, bem como, métodos e técnicas presentes nas abordagens de teste baseado

em riscos disponíveis na literatura, com o propósito de facilitar e disseminar o uso da

abordagem RBT.

1.2.2 Objetivos Específicos

O conjunto de objetivos específicos necessários para a realização do objetivo geral é:

� Pesquisar abordagens, métodos, processos e ferramentas de teste baseado em riscos,

identificando atividades em comum, formas de utilização, pontos fortes e fracos,

elaborando um estudo comparativo.

Page 20: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

4

� Pesquisar conceitos básicos e processos para gerência de riscos e testes de software,

identificando atividades que podem ser utilizadas na definição do modelo de processo.

� Propor um modelo de processo que integre atividades de gerência de riscos e testes de

software, levando em consideração as técnicas e métodos de teste baseado em riscos

identificados na literatura.

� Construir uma ferramenta que apóie a utilização da abordagem RBT através da

implementação de funcionalidades que atendam às principais atividades da

abordagem.

� Avaliar o modelo através de simulações e estudos de caso.

� Divulgar a abordagem RBT, modelo de processo e protótipo, através da escrita de

artigos científicos.

� Propor novas linhas de pesquisas como forma de continuação deste trabalho.

1.3 Metodologia Para a obtenção dos objetivos definidos na Seção anterior, um conjunto de etapas foi definido

contendo atividades e metodologia utilizada. A pesquisa pode ser divida em quatro fases

distintas e contínuas como apresentado na Tabela 1.1.

A primeira fase teve uma característica exploratória e possibilitou elencar os requisitos

necessários para construção do modelo e do protótipo.

A segunda fase constituiu na definição e construção do modelo de processo em si,

através da compilação do material identificado na fase anterior.

Na terceira fase, o foco foi na construção do protótipo de apoio à abordagem RBT,

independente de processo, pois a finalidade era a avaliação dos requisitos do modelo de

processo.

Na quarta fase, o modelo de processo e o protótipo foram avaliados. No decorrer desta

fase, mais precisamente após as simulações do modelo de processo, o modelo e dados

coletados resultaram nas seguintes publicações:

1. SOUZA, E.; GUSMÃO C.; RBTProcess - Modelo de Processo de Teste de Software baseado em Riscos. In: 13º WTES - Workshop de Teses e Dissertações em Engenharia de Software, 2008. 2. SOUZA, E.; GUSMÃO C.; ROCHA, H. RBTProcess - Proposta de Modelo de Processo de Teste de Software baseado em Riscos. In: III EBTS – Encontro Brasileiro de Teste de Software, 2008.

Page 21: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

5

Tabela 1.1 Metodologia do Trabalho. FASES ATIVIDADES METODOLOGIA

Fase 1 Estudo sobre o tema abordado

� Estudo inicial sobre testes, riscos de software e teste baseado em riscos;

� Levantamento das formas de utilização e dificuldades da abordagem RBT.

� Revisão bibliográfica; � Aplicação de questionário.

Fase 2 Definição do RBTProcess

� Estudo aprofundado sobre testes, riscos de software e teste baseado em riscos;

� Definição do modelo de processo contendo as principais atividades da abordagem.

� Identificação das principais atividades, elaboração de estudo comparativo as abordagens RBT;

� Seleção das principais atividades encontradas nos principais processos de gerência de riscos e testes de software.

Fase 3 Construção da RBTTool

� Levantamento dos requisitos necessários para utilização da abordagem RBT;

� Implementação das funcionalidades identificadas.

� Revisão das principais abordagens RBT identificando atividades em comum;

� Definição de ambiente de desenvolvimento, processo e tecnologias utilizadas para construção da ferramenta.

Fase 4 Avaliação do RBTProcess

� Instanciação do modelo de processo e definição do plano de aplicação do modelo de processo;

� Simulação do modelo de processo; � Aplicação do modelo de processo; � Coleta e avaliação dos resultados; � Refinamento do modelo de

processo. � Divulgação da abordagem, modelo

de processo

� Entrevista com os participantes do estudo de caso, estudo da documentação do software;

� Execução das atividades do processo utilizando documentos de projetos de desenvolvimento de software;

� Definição dos papéis e realização das atividades definidas no modelo de processo em um projeto de desenvolvimento de software;

� Coleta do resultado dos testes e aplicação de questionário com os integrantes da equipe de desenvolvimento e com o cliente do software;

� Coleta do tempo de realização das atividades, grau de dificuldade e oportunidades de melhorias através da realização de questionário e avaliação dos resultados.

� Publicação de artigos em eventos nacionais e internacionais. Escrita e defesa da dissertação.

Page 22: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

6

1.4 Organização da Dissertação Após este capítulo introdutório, este trabalho é apresentado como segue:

Capítulo 2 - Riscos e Testes de Software: Conceitos Básicos, Modelos e Processos:

apresenta os conceitos básicos da área de teste e de riscos de software, processos e modelos

estudados e utilizados como base para definição do RBTProcess. O objetivo deste capítulo é

listar a terminologia e as principais atividades da gerência de riscos e do processo de teste de

software.

Capítulo 3 - Teste de Software baseado em Riscos: apresenta a revisão bibliográfica

sobre a abordagem de teste baseado em riscos, histórico, principais atividades e análise

comparativa. O objetivo deste capítulo é apresentar as diferentes abordagens, destacando seus

pontos fortes e identificando oportunidades de melhorias, que foram aproveitadas para

definição do RBTProcess.

Capítulo 4 - RBTProcess: Modelo de Processo de Teste de Software baseado em

Riscos: apresenta o RBTProcess, descrevendo como o mesmo foi construído, modelado e

documentado, suas fases, papéis, atividades e artefatos. Também são apresentadas métricas

para acompanhamento do progresso das atividades RBT e resultado das avaliações do

modelo.

Capítulo 5 - RBTTool: Ferramenta de apoio ao Teste de Software baseado em

Riscos: apresenta os requisitos necessários para construção de ferramenta de apoio à

abordagem RBT, tecnologias utilizadas, processos e ambiente de desenvolvimento, estágio

atual de desenvolvimento e avaliação da ferramenta.

Capítulo 6 - Conclusões: contém as conclusões, contribuições, limitações encontradas

e propostas de continuação deste trabalho.

Apêndice A: apresenta o questionário utilizado na pesquisa sobre conhecimento e

formas de utilização da abordagem RBT, bem como os resultados coletados.

Apêndice B: apresenta as telas da RBTTool através de um exemplo de utilização da ferramenta.

Apêndice C: apresenta os papéis do RBTProcess documentados na página do

processo.

Apêndice D: apresenta as atividades do RBTProcess documentadas na página do

processo.

Page 23: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

7

2

Riscos e Testes de Software: Conceitos Básicos, Modelos e Processos

Processos de teste têm se mostrado fundamentais na garantia da qualidade dos produtos de

software, buscando evitar, principalmente, que falhas cheguem até os clientes, deixando-os

insatisfeitos e causando prejuízos. A gerência de riscos de software, por sua vez, é essencial

para o aumento contínuo da qualidade e produtividade exigido pelo mercado, cada vez mais

competitivo [Gusmão 2007].

Este capítulo tem como objetivos destacar a importância das atividades de teste –

Seção 2.1 – e riscos na Engenharia de Software – Seção 2.2, apresentar conceitos chave,

processos, abordagens e modelos que serviram como base para construção do Modelo de

Processo proposto neste trabalho.

2.1 Teste de Software De acordo com Myers [Meyers 1979], teste é o processo de executar um programa com o

intuito de encontrar defeitos. No entanto, atividades do processo de teste de software podem

ser realizadas já nas fases iniciais do desenvolvimento, antes mesmo da codificação, através

do planejamento e projeto de casos de teste, por exemplo.

Uma definição mais completa é fornecida por Sommerville (2003), segundo o qual, as

atividades de verificação e validação (V&V) destinam-se a mostrar, respectivamente, que um

produto de software está de acordo com suas especificações e que ele atende às expectativas

Capítulo

Page 24: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

8

de todas as partes envolvidas no sistema. Dentro do processo de V&V, encontra-se o teste de

software, uma técnica dinâmica, que envolve executar uma implementação de software com

os dados de teste e examinar suas saídas e comportamento operacional, a fim de verificar se

ele está funcionando conforme o esperado.

Segundo o International Software Testing Qualifications Board (ISTQB) [Graham et

al 2007] a palavra qualidade é definida como o “grau até o qual um componente, sistema ou

processo atende aos requisitos especificados e às necessidades e expectativas dos usuários”.

A qualidade de um produto de software está fortemente relacionada à satisfação do

cliente, e o teste de software é uma das formas de validar se o produto desenvolvido atende às

necessidades de seus usuários [Kaner et al 1999].

A execução de casos de teste é utilizada, também, para avaliar, de forma quantitativa,

a qualidade de um produto de software. Através dos relatórios de resultado da execução dos

casos de testes e rastreamento de requisitos funcionais e não funcionais, é possível obter

percentuais de testes que estão passando, falhando ou que não puderam ser executados para

um conjunto de requisitos, em uma determinada versão, como forma de mensurar a cobertura

dos testes.

O resultado da execução dos testes pode representar confiança na qualidade do

software caso sejam encontrados poucos ou nenhum defeito. Um teste projetado

adequadamente e cuja execução não encontre defeitos reduz o nível de riscos em um produto

de software. Por outro lado, quando os testes encontram defeitos, a qualidade do sistema

aumenta quando estes são corrigidos. É importante destacar que testes mal projetados, ou

executados de forma incorreta, podem encontrar poucos defeitos, deixando uma falsa

impressão de qualidade [Graham et al 2007].

2.1.1 Conceitos Básicos

Antes de apresentar os principais conceitos de testes, vale ressaltar a diferença entre os termos

erro, defeito e falha, normalmente utilizados com o mesmo significado. O erro consiste em

uma ação, geralmente humana, que pode produzir um defeito no código ou em qualquer outro

artefato do software. Se um defeito é executado em um código, por exemplo, o software pode

vir a apresentar falha. A Figura 2.1 apresenta uma classificação para esses termos. Abaixo,

segue definição extraída do glossário do ISTQB [Graham et al 2007].

Page 25: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

9

� Erro (engano): Uma ação humana ou do sistema que produz um resultado

incorreto. Estas ações podem surgir por falta de experiência, informação,

entendimento ou até mesmo por falta de atenção.

� Defeito (bug ou falta): Brecha em um componente ou sistema que pode fazer com

que este falhe ao desempenhar sua função. Por erro ou engano, podemos inicializar

vaiáveis de informar incorreta, acessar valores inexistentes em estruturas de dados,

realizar conversões entre tipos de dados incompatíveis, dentre outras, introduzindo

assim, defeitos no código-fonte. Pensando na etapa de elicitação de requisitos, os

defeitos são funcionalidades especificadas de forma incorreta ou incompleta, por

exemplo.

� Falha: Desvio, em um componente ou sistema, do seu resultado ou serviço

esperado. A falha ocorre justamente quando a parte do sistema defeituoso é

executada. Caso o código defeituoso não seja executado, o sistema pode nunca

falhar e o defeito jamais ser descoberto. Com relação aos requisitos de software,

funcionalidades especificadas de forma incorreta ou incompleta resultam em

resultado diferente do esperado pelo cliente e/ou usuário.

Figura 2.1 Classificação para os termos erro, defeito e falha [Graham et al 2007].

Abordagens

Para criação ou projeto dos casos de teste, duas principais abordagens podem ser utilizadas:

� Funcional ou “caixa preta”: os casos de testes são criados a partir de uma análise

dos relacionamentos entre os dados de entrada e saída, com base nos requisitos

levantados com os usuários. Essa abordagem é aplicada durante as últimas etapas

do processo de teste de software.

� Estrutural ou “caixa branca”: os testes são criados a partir de uma análise dos

caminhos lógicos possíveis de serem executados, de modo que é necessário o

conhecimento do funcionamento interno dos componentes do software. É aplicado

durante a codificação do software.

Page 26: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

10

Estágios

Os estágios definem o momento do ciclo de vida do software em que os testes são realizados.

Em cada estágio do processo de software, desde o levantamento dos requisitos até o

desenvolvimento do programa, testes estáticos ou dinâmicos podem ser realizados. A Figura

2.2 apresenta os principais níveis ou estágios do teste de software.

Módulo

Subsistema

Sistema

Figura 2.2 Estágios do teste de software.

� Teste de Unidade: componentes individuais (ex: métodos e classes) são testados.

Tem por objetivo testar a estrutura interna e comportamento do módulo e é

geralmente realizado pelo desenvolvedor durante a implementação do software.

� Teste de Integração: as unidades testadas independentemente agora são testadas

de forma integrada. É recomendada a integração das unidades de forma

incremental e este teste é realizado geralmente por um desenvolvedor.

� Teste de Sistema: o software integrado com o ambiente operacional, similar ao de

produção, é testado. Geralmente, é um teste “caixa preta”, executado por um

testador de sistemas após a liberação de um executável do software. É

recomendado que o testador seja membro de um grupo independente de testes.

� Teste de Aceitação: o software é testado pelo usuário final. É realizado um teste

“caixa preta” a fim de demonstrar a conformidade com os requisitos de software.

Tipos de Testes

Diferentes tipos de testes são projetados e executados com o intuito de avaliar um objetivo

específico. Na Tabela 2.1, é apresentada uma lista dos principais tipos de testes extraída do

Processo Unificado da Rational [RUP 2003]. A dimensão de qualidade que aparece na

primeira coluna da tabela representa as categorias de qualidade presentes no modelo FURPS1

e detalhadas a seguir:

1 FURPS é um modelo de referência criado por Robert Grady na Hewlett Packard, que define as cinco principais dimensões de qualidade para um software: Functionality, Usability, Reliability, Performance e Supportability

Teste de Unidade

Teste de Integração

Teste de Sistema

Teste de Aceitação

Page 27: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

11

� Funcionalidade: possibilita verificar se a aplicação está em conformidade com os

seus requisitos.

� Usabilidade: testa a aplicação da perspectiva da conveniência do usuário final.

� Confiabilidade: verifica se a aplicação se comporta de maneira consistente e

previsível.

� Performance: verifica o comportamento da aplicação numa condição de carga.

� Suportabilidade: testa a habilidade da aplicação suportar várias plataformas,

configurações e ambientes diferentes.

Tabela 2.1 Tipos de testes de software [RUP 2003]. DIMENSÃO DE QUALIDADE

TIPO DE TESTE

Funcionalidade funcionais: têm por objetivo testar as funcionalidades do sistema em termos de regras de negócio. segurança: verifica se os mecanismos de proteção de acesso estão funcionando satisfatoriamente. volume: submete grandes quantidades de dados ao sistema para determinar se limites que causam a falha do software são alcançados.

Usabilidade usabilidade: verifica aparência e comportamento da interface, navegação, consistência, aderência a padrões, tempo para aprender como usar uma funcionalidade

Confiabilidade integridade: testa a corretude dos métodos de acesso à base de dados e as informações armazenadas. estresse: verifica o funcionamento do sistema em situações limite ou fora da tolerância esperada.

Performance desempenho: verifica o tempo de resposta e processamento (para diferentes configurações, diferentes cargas de trabalho, número de usuários, tamanho da base de dados, etc.)

Suportabilidade configuração: verifica o funcionamento adequado do sistema em diferentes configurações de hardware/software. instalação/desinstalação: verifica a correta instalação e desinstalação do sistema para diferentes plataformas de hardware/software e opções de instalação.

Atividades

O processo de teste de software define como os testes serão planejados, projetados,

implementados, executados e avaliados através de um conjunto de atividades, artefatos e

papéis. A seguir são apresentadas as principais atividades de um processo de testes extraídas

de [Graham et al 2007] e descritas seqüencialmente.

� Planejar e Controlar: durante esta etapa, os objetivos dos clientes, satekholders e

projetos devem ser totalmente entendidos e os riscos relacionados às atividades de

teste devem ser endereçados, com o propósito de estabelecer metas e objetivos

para o teste de software. O planejamento determina e acompanha, de forma geral,

escopo e objetivos dos testes, a abordagem utilizada para construção dos casos de

teste, os recursos físicos e humanos, cronograma de planejamento, projeto,

execução e acompanhamento dos testes, além de definir os critérios de saída e a

cobertura dos testes, ou seja, o momento em que a atividade de teste será

Page 28: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

12

finalizada. O resultado das atividades de teste é continuamente monitorado através

de métricas para acompanhamento do progresso, critério de saída e cobertura dos

testes.

� Análise e projeto: nesta atividade, objetivos gerais de teste são transformados em

cenários e condições de testes tangíveis. Para isto, são revisados as análises de

riscos, requisitos funcionais e não funcionais, arquiteturas, modelos de análise e

projeto e interface do software.

� Implementação e execução: os cenários de testes são transformados em casos e

procedimentos de teste utilizando a abordagem e estratégias definidas durante o

planejamento e validadas durante a análise. O ambiente é criado, incluindo os

dados para execução dos testes, bem como os casos de teste implementados. Suítes

de teste são criadas para execução, através da priorização dos requisitos do

software. Os casos de teste são finalmente executados e um log de teste é gerado

como resultado. No caso em que defeitos são encontrados no software ou mesmo

nos casos de teste, solicitações de mudança são abertas e designadas para os

responsáveis para que, posteriormente, esses defeitos sejam corrigidos e retestados.

� Avaliação do critério de saída e resultado: a execução dos testes é avaliada de

acordo com o que foi definido na atividade de planejamento. Relatórios de

acompanhamento para os diversos stakeholders são criados através de análise do

resultado dos logs de teste e do status das solicitações de mudança. Além disso, é

verificado o critério de saída, que determina quando uma dada atividade de teste é

concluída.

� Atividades de encerramento dos testes: nesta etapa, dados são coletados com o

intuito de consolidar experiência, isto inclui: analisar ambiente, dados de teste,

fatos, números e procedimentos de testes.

2.1.2 Processo de Teste de Software segundo o Processo Unificado da Rational (RUP)

O RUP [RUP 2003] é um processo da Engenharia de Software que oferece as melhores

práticas relacionadas ao desenvolvimento de produtos de software através da definição de

atividades, responsabilidade, artefatos boas práticas e diretrizes.

O RUP foi criado pela Rational Software Corporation, que hoje pertence a IBM, e está

organizado em duas dimensões como mostra a Figura 2.3. A dimensão dinâmica representa o

Page 29: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

13

tempo e é expressa em termos de fases, iterações e marcos. A dimensão estática representa os

componentes, disciplinas, atividades, fluxos de trabalho, artefatos e papéis do processo.

O RUP é considerado um processo pesado e preferencialmente aplicável a grandes

equipes de projetos de desenvolvimento, porém o fato de ser amplamente customizável torna

possível que seja adaptado para projetos de qualquer escala [RUP 2008]. Para a disciplina de

teste de software, o RUP provê conceitos básicos, fluxo de trabalho, atividades, artefatos e

diretrizes, além de um conjunto de ferramentas.

Figura 2.3 Arquitetura geral do RUP (2003).

Na dimensão estática, encontram-se as disciplinas ou fluxos do processo. O fluxo de

requisitos produz o primeiro subsídio para a identificação dos testes de sistemas que serão

executados. O fluxo de análise e projeto descreve como desenvolver um projeto que é entrada

para a definição dos testes de integração da arquitetura. No fluxo de planejamento e

gerenciamento, os testes são planejados para cada iteração. Finalmente, o código produzido

no fluxo de implementação é testado no fluxo de teste.

Com relação à dimensão dinâmica, o processo de desenvolvimento do RUP é dividido

quatro fases, onde cada fase possui uma ou mais iterações, bem como seus marcos. A seguir,

são apresentados os objetivos do fluxo ou disciplina de teste de software para cada uma das

fases do processo.

� Concepção: o foco é no planejamento inicial dos testes durante o planejamento do

projeto.

� Elaboração: foco principal é o projeto e execução de testes de integração, de

forma a validar e estabelecer uma arquitetura estável para o sistema.

Page 30: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

14

� Construção: o foco principal das atividades de teste é o projeto e execução de

testes de sistema para os requisitos implementados.

� Transição: o foco dos testes muda para a homologação e avaliação da correção

das mudanças efetuadas devido a defeitos encontrados.

A Figura 2.4 apresenta os papéis, atividades e artefatos definidos para a atividade de

teste do processo unificado da Rational explicadas a seguir.

Figura 2.4 Atividades de teste do processo unificado da Rational [RUP 2003].

Gerente de Testes

É responsável pelo planejamento e gerenciamento de recursos e resolução de problemas que

representam um obstáculo para o esforço de teste. Estão sob sua responsabilidade as

atividades:

� Combinar Missão: negociar a forma mais eficaz de usar os recursos de teste para

cada iteração. Acordar sobre os objetivos e os produtos a serem liberados na

iteração através da compreensão inicial do escopo, objetivo e expectativa dos

envolvidos.

� Identificar Motivadores de Teste: identificar a lista específica de itens, incluindo

eventos e artefatos, que servirão para motivar o teste na iteração.

Page 31: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

15

� Obter Confirmação de Testabilidade: promover a criação de um software

testável que apoie as necessidades do esforço de teste, através do entendimento das

necessidades de implementação e avaliação do teste. Promover e apoiar o uso de

técnicas e ferramentas apropriadas de automação.

� Avaliar e Defender Qualidade: identificar e assegurar a resolução dos defeitos

que exercem um impacto prejudicial grave sobre a qualidade do software.

Monitorar e apoiar mudanças que forneçam qualidade para o software.

� Avaliar e Aprimorar Esforço de Teste: avaliar a produtividade, a eficácia e a

abrangência do esforço de teste, realizando ajustes quando necessário para

alcanças os objetivos.

Analista de Teste

É responsável por identificar e definir os testes necessários, monitorar a abrangência dos

testes e avaliar a qualidade geral obtida ao testar o produto de software. Estão sob sua

responsabilidade as atividades:

� Identificar Objetivos do Teste: identificar os elementos de sistema individuais,

tanto de hardware quanto de software, que precisem ser testados. Criar uma lista

com estes itens de teste para estimativa de esforço e construção do plano de teste.

� Identificar Idéias de Teste: identificar as idéias de teste que devem ser exploradas

para avaliar a qualidade aceitável do produto de software, através da realização de

um brainstorm de idéias.

� Definir Detalhes do Teste: definir as condições individuais necessárias para

realizar uma idéia de teste em um contexto específico.

� Definir Necessidades de Avaliação e Rastreabilidade: definir a estratégia de

avaliação para o esforço de teste, bem como os requisitos de rastreabilidade e

cobertura dos testes.

� Determinar Resultados do Teste: fazer avaliações resumidas contínuas da

qualidade do produto, com o propósito de fornecer resultados e propor ações

corretivas apropriadas para resolver falhas identificadas durante os testes.

� Verificar Mudanças no Build: confirmar a conclusão de uma solicitação de

mudança, normalmente, realizando um subconjunto de testes em uma ou mais

versões.

Page 32: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

16

Designer ou Projetista de Teste

É responsável por definir a abordagem de teste e assegurar sua correta implementação.

Envolve identificar as técnicas, ferramentas e diretrizes apropriadas para implementar os

testes necessários. Estão sob sua responsabilidade as seguintes atividades:

� Definir Abordagem do Teste: identificar cada técnica específica a ser empregada

para realização do teste desejado.

� Definir Configurações do Ambiente de Teste: definir os requisitos dos

ambientes de avaliação necessários para apoiar o esforço de teste.

� Identificar Mecanismos de Testabilidade: identificar os possíveis mecanismos

de teste necessários para a abordagem de teste selecionada.

� Estruturar a Implementação de Testes: atribuir responsabilidades às áreas de

implementação do conjunto de testes e seus conteúdos, além de descrever os

conjuntos de testes a serem impementados.

� Definir Elementos de Testabilidade: identificar os elementos físicos da infra-

estrutura de implementação de teste necessária para permitir testes em cada

configuração de ambiente de teste.

� Desenvolver Guia de Teste: efetuar ajustes na maneira como o processo é

desempenhado e registrar essas decisões, com o propósito de desenvolver o

conhecimento sobre os pontos fortes e fracos do processo de teste.

O Testador

É responsável pelas atividades centrais do esforço de teste, que envolve conduzir os testes

necessários e registrar os resultados. O detalhamento das atividades é apresentado a seguir:

� Implementar Testes: implementar testes significativos que forneçam a

validação necessária do produto.

� Implementar Conjunto de Testes: organizar ou montar coleções de testes

para serem executados juntos de uma maneira significativa.

� Executar Conjunto de Testes: executar os conjuntos de testes apropriados

necessários para validar a qualidade do produto.

� Analisar Falha de Teste: investigar os resultados dos testes, analisar as falhas

que ocorreram durante a implementação e execução do teste e registrar

solicitações de mudança.

Page 33: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

17

2.1.3 Modelo de Maturidade de Teste de Software (TMM)

Os modelos de maturidade são utilizados para avaliar e melhorar a qualidade dos processos

em uma organização [Vasconcelos 2007]. Modelos como o Capability Maturity Model

Integration (CMMI) abrangem todas as fases do desenvolvimento de software, e o teste de

software aparece como uma destas fases. No entanto existem também modelos específicos

para melhoria de processo de teste de software que foram criados com a finalidade de cobrir

deficiências nas atividades de teste dos modelos genéricos [Reffson et al 2006].

O Test Maturity Model (TMM) é um modelo voltado para teste de software que avalia

atividades e métodos, além de definir papéis, responsabilidades e boas práticas. Foi criado em

1996, pelo Illinois Institute of Technology (IIT). É o modelo de maturidade de teste de

software mais conhecido e é inspirado em outro modelo também bastante conhecido, como o

CMMI [Vasconcelos 2007]. O TMM é um modelo de validação baseado em um questionário,

no qual é verificado o nível de maturidade da área de TI em relação ao teste.

A partir do TMM, foram desenvolvidos outros modelos de melhoria do Processo de

teste como o Testing Capability Maturity Model (TCMM), o Test Improvement Model (TIM),

o Test Process Improvement (TPI) e o Test Organization Maturity (TOM) [Reffson et al

2006].

O TMM possui cinco níveis de maturidade com objetivos, áreas de processo e boas

práticas. A Figura 2.5 mostra a arquitetura do TMM, onde cada nível é composto por um

conjunto de objetivos que indicam o nível de maturidade do processo de teste.

Figura 2.5 Estrutura do TMM [Burnstein 1999].

Page 34: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

18

Nível 1 – Inicial

Neste nível, o processo é caótico e não há distinção entre as atividades de teste e

depuração. Os testes são realizados de forma ad hoc após a codificação do sistema.

Normalmente não há qualquer treinamento e o objetivo do teste é mostrar que o sistema e o

software funcionam.

Nível 2 – Gerenciado

As funções do teste e da depuração são claramente definidas. O teste é visto como uma

fase seguindo a codificação. Os processos são padronizados, contendo técnicas e métodos de

testes. O objetivo do teste, neste nível, é mostrar que o software atende às especificações.

Nível 3 – Definido

O teste está integrado no ciclo de vida do produto de software. A atividade de teste é

estabelecida formalmente na organização com treinamento, controle e monitoramento do

processo de teste. O objetivo do teste é mostrar que o software não funciona, tomando como

base os requisitos.

Nível 4 – Quantitativamente Gerenciado

A atividade de teste é um processo medido e quantificado. Os produtos de software

são testados para atributos de qualidade como usabilidade, manutenibilidade, confiabilidade e

outros. Casos de teste são coletados e registrados em uma base de dados para reuso em testes

de regressão. Os defeitos são registrados com nível de severidade atribuídos para correção de

acordo com a prioridade.

Nível 5 – Em Otimização

A atividade de teste é institucionalizada. O processo de teste é bem definido e

gerenciado. O custo e a eficiência dos testes são monitorados. Ferramentas para automação

fazem parte do processo de teste e existem procedimentos estabelecidos para seleção e

avaliação de ferramentas de teste.

A Tabela 2.2 apresenta os objetivos e principais subobjetivos para cada nível do TMM

extraídos de [Reffson et al 2006, Sartori 2005 e Veenendaal 2006].

Page 35: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

19

Tabela 2.2 Objetivos e atividades dos níveis do TMM. NÍVEL OBJETIVOS / SUBOBJETIVOS

1 O teste é realizado de forma ad hoc, normalmente, pela própria equipe de desenvolvimento. 1. Desenvolver metas e políticas de teste e depuração: − Equipe de teste deve desenvolver e registrar objetivos do teste; − Objetivos do teste devem ser refletidos nos planos de teste. 2. Iniciar um processo de planejamento de testes: − Gerência deve definir políticas de planejamento de teste; − Definição de template do Plano de Teste aprovado pela gerência contendo cronograma de

atividades, alocação de recursos, critérios de aceitação para todos os níveis de teste;

2

3. Institucionalizar técnicas e métodos básicos de teste: − Definição de abordagens e estratégias de testes adotadas pela equipe. Ex. abordagem funcional,

estrutural, níveis e tipos de testes. 1. Estabelecer uma organização de teste de software: − Estabelecer um grupo de teste amplo, da organização, com liderança, suporte, e financiamento da

gerência superior. 2. Integrar o teste no ciclo de vida do software: − A fase de teste dever ser dividida e organizada para integrar-se ao ciclo de vida do software. 3. Controlar e monitorar o processo de teste: − Definição e utilização de conjunto de métricas para acompanhamento do processo de teste.

3

4. Estabelecer um programa de treinamento: − Definir um plano de treinamento; − Estabelecer um grupo de treinamento com ferramentas, facilidades e materiais. 1. Estabelecer um programa amplo de revisão: − Os grupos de teste e da garantia de qualidade do software devem desenvolver e documentar

objetivos, procedimentos de continuação e mecanismos de gravação para revisões. 2. Estabelecer um programa de medições de teste: − Desenvolver plano de medição do teste com mecanismos para levantamento, análise, e aplicação

dos dados; − Documentar planos de ação que aplicam resultados de medições às melhorias do Processo de

Teste.

4

3. Avaliação da qualidade de software: − A gerência superior e os grupos da garantia da qualidade do teste de software devem definir

políticas, objetivos da qualidade, e atributos de qualidade para produtos de software. 1. Prevenção de defeitos: − Dever ser definida uma equipe para prevenção de defeitos com suporte da gerência; 2. Controle de qualidade: − Os grupos do teste e de garantia da qualidade devem estabelecer objetivos para produtos de

qualidade; − Os gerentes de teste devem incorporar estes objetivos da qualidade em planos de teste.

5

3. Otimização do processo de teste: − A organização deve desenvolver, documentar e apoiar procedimentos e políticas para otimização

do Processo de Teste;

2.1.4 Padrão IEEE 1012-1998 para Verificação e Validação de Software

A verificação e validação (V&V) de software é uma disciplina da Engenharia de Software que

tem como propósito determinar se o produto desenvolvido em uma dada atividade está em

conformidade com os requisitos definidos para a mesma e, principalmente, se o software

construído satisfaz suas intenções de uso e as necessidades dos usuários.

Page 36: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

20

O padrão IEEE 1012-1998 define o processo de verificação e validação de software

em termos de atividades específicas e tarefas relacionadas. Este padrão é uma revisão do

padrão IEEE 1012-1986 e introduz conceitos chave como níveis de integridade de software,

atividade mínima de V&V para cada nível, intensidade, rigor e critérios para as atividades de

V&V. Tem como propósito, estabelecer uma estrutura comum para processos, atividades e

tarefas de V&V, além de definir o conteúdo do plano de V&V de software.

Este padrão aplica-se a produtos de software que estão em desenvolvimento ou

sofrendo manutenções corretivas ou evolutivas. São definidas atividades de V&V não

somente para o processo de desenvolvimento, mas também para processos de gerenciamento,

aquisição, fornecimento, operação e manutenção. A Figura 2.6 apresenta a estrutura do

processo do padrão IEEE 1012-1998, em que são definidas atividades para cada processo e

um conjunto mínimo de tarefas de V&V para cada atividade.

Para este trabalho, foram estudadas as tarefas de V&V presentes nas atividades do

processo de desenvolvimento do software como gerenciamento, concepção, análise de

requisitos, projeto, codificação, integração, teste e outras.

IEEE Std 1012-1998 Processo de Verificação e Validação (V&V)

Aquisição

V&V

Fornecimento

V&V

Desenvolvimento

V&V

Operação

V&V

Manutenção

V&V

Atividade de Gerenciamento de V&V

Esta atividade é realizada durante todo o ciclo de desenvolvimento. Tem como objetivo

acompanhar, revisar e controlar continuamente o cronograma do projeto, as tarefas e os

recursos de acordo com o plano de teste. Algumas tarefas de V&V para esta atividade são:

criação do plano de verificação e validação, gerenciamento das revisões de V&V e avaliação

de mudanças na baseline.

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Atividades V&V

Tarefas V&V

Atividades V&V

Tarefas V&V

Atividades V&V

Tarefas V&V

Atividades V&V

Tarefas V&V

Atividades V&V

Tarefas V&V

Framework Processo

V&V

Atividades V&V

Tarefas V&V

Figura 2.6 Estrutura do processo de V&V [IEEE 1012 1998].

Page 37: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

21

Atividade de Concepção de V&V

Esta atividade representa a separação entre o problema que o usuário deseja resolver e a

implementação para solucionar este problema. Tem como objetivo verificar os requisitos do

sistema, validando a solução selecionada para resolver o problema do usuário. As tarefas

mínimas de V&V para esta atividade são: avaliação do documento de concepção; análise de

criticidade e rastreabilidade; análise de problemas e riscos.

Atividade de Requisito V&V

A atividade de requisito define os requisitos funcionais e não funcionais do software. O

objetivo desta atividade é garantir a corretude, a completude, a exatidão, a testabilidade e a

consistência dos requisitos. Algumas tarefas de V&V para esta atividade são: análise de

rastreabilidade, interfaces e criticidade; avaliação dos requisitos do software; criação e

verificação do plano de V&V de sistema; criação e verificação do plano de V&V de

aceitação.

Atividade de Projeto V&V

Nesta atividade, os requisitos do software são transformados em arquitetura e projetos

detalhados de componentes. O projeto inclui banco de dados, bem como definição de

interfaces de comunicação. O objetivo desta atividade é demonstrar que o projeto é uma

transformação correta, precisa e completa dos requisitos do software. Para isto, as seguintes

atividades de V&V precisam ser realizadas: avaliação do projeto de software; criação e

verificação do plano de V&V de componente; criação e verificação do plano de V&V de

integração; criação e verificação do projeto de teste de V&V.

Atividade de Implementação V&V

A implementação transforma o projeto dos requisitos em código, estrutura de banco de dados

e executáveis. O objetivo desta atividade é verificar e validar se as transformações para

código ocorrem de forma correta, precisa e completa. As tarefas de V&V realizadas nesta

atividade são: avaliação do código fonte e de sua documentação; criação e verificação de

casos de teste de V&V; criação e verificação de procedimentos de teste de V&V; verificação

e execução de testes de componente de V&V.

Page 38: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

22

Atividade de Teste V&V

O objetivo desta atividade é garantir que o software construído atenda às especificações dos

requisitos através da execução de testes de integração, sistemas e aceitação. Tarefas de V&V

para esta atividade são: criação e verificação de procedimentos de teste de V&V; execução e

verificação de testes de integração de V&V; execução e verificação de testes de sistema de

V&V; execução e verificação de testes de aceitação de V&V.

Atividade de Instalação V&V

O objetivo desta atividade é assegurar a correta instalação e configuração do software no

ambiente alvo. Tarefas de V&V para esta atividade são: auditoria de configuração e

instalação; geração de relatório final de V&V.

2.1.5 Padrão IEEE 829-1998 para Documentação de Teste de Software

O Padrão IEEE 829-1998 foi criado com o propósito de padronizar um conjunto básico de

documentos ou artefatos produzidos pelas atividades de teste de software. Esta padronização

facilita a comunicação entre clientes e fornecedores através de uma referência comum para os

documentos de teste. Também, auxilia na definição e avaliação de completude do processo de

teste. Em muitas organizações, a utilização da documentação definida neste padrão aumenta a

capacidade de gerenciamento dos testes [IEEE 829 1998].

Este padrão cobre os documentos de planejamento, especificação e relatório de testes.

O planejamento dos testes define o escopo, as abordagens, as estratégias, os recursos e o

cronograma das atividades de teste. A especificação corresponde ao projeto, identificação de

casos de teste e detalhamento dos procedimentos de teste. Os relatórios de teste definem os

itens de teste, registros de execuções, registro de incidentes e resumo dos resultados. A Tabela

2.3 apresenta o conteúdo de cada documento e seus responsáveis. A Figura 2.7 apresenta o

relacionamento entre os artefatos produzidos nas atividades de teste. Os documentos de

projeto como Plano de Projeto, Documento de Requisitos e Cronograma são essenciais para a

construção do Plano de Teste. A partir das funcionalidades a serem testadas, definidas no

Plano de Teste, o Projeto de Teste é definido com a abordagem adotada para cada caso de

teste. O documento de Especificação de Caso de Teste é opcional, e os casos de teste podem

ser diretamente detalhados no Procedimento de Teste. Após a execução, evidências do teste

devem ser registradas (Log de Teste) e, quando necessário, solicitações de mudança

(Relatório de Incidente) são abertas.

Page 39: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

23

Tabela 2.3 Conteúdo dos documentos de teste de software [IEEE 829 1998]. DOCUMENTOS CAMPOS BÁSICOS RESPONSÁVEIS

Plano de Teste

Identificador; Introdução; Itens de teste; Funcionalidades a serem testados; Funcionalidades não testadas; Abordagem do teste; Critérios de liberação/falha dos itens; Requisitos de suspensão e retomada; Entregas do teste; Tarefas do teste; Necessidades de ambientes; Responsabilidades, Necessidades da equipe e treinamento; Cronograma; Riscos; Aprovações;

Líder de Projeto

Especificação de Caso de Teste

Identificador; Itens de teste; Entrada necessária e saída esperada; Ambiente necessário; Requisitos para execução do teste; Dependência com outros casos de teste;

Projeto de Teste Identificador; Funcionalidades a serem testadas; Abordagem refinada; Casos de teste; Critérios de passagem e falha por Funcionalidades.

Casos de Teste

Identificador; Itens de teste; Especificação de entrada; Especificação de saída; Necessidades do ambiente; Requisitos ou procedimentos especiais; Dependências entre casos de teste;

Procedimentos de Teste

Identificador; Propósito; Requisitos especiais; Passos do procedimento;

Relatório de Itens de Teste

Identificador; Itens passados; Localização; Estado; Aprovações;

Líder de Projeto e Analistas de Teste

Relatório de Incidentes

Identificador; Sumário; Descrição do incidente; Impacto; Severidade;

Relatório de Resultado de Teste

Identificador; Descrição; Entradas das atividades de evento; Descrição da execução; Resultados; informações sobre o ambiente; Eventos anormais (conexão com relatório de incidentes);

Testadores

Relatório de Sumário dos Testes

Identificador; Sumário; Variações; Avaliação Funcional; Sumário de resultados; Avaliação dos testes; Sumário de atividades; Aprovações;

Equipe de Teste

Page 40: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

24

Figura 2.7 Relacionamento entre os artefatos e atividades de teste [IEEE 829 1998].

Documento especificado por este padrão

Documento NÃO especificado por este padrão

Item de Teste NÃO especificado por este padrão

Processo NÃO especificado por este padrão

Documento do Projeto

Documento de Itens

Plano de Teste

Projeto de Teste Projeto de Teste Projeto de Teste

Especificação de Caso de Teste

Procedimento de Teste

Relatório de Itens de Teste

Execução de Teste

Log de Teste

Relatório de Incidente

Relatório de Incidente

Itens de Teste

Relatório de Sumário do Teste

Log de Teste

Page 41: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

25

2.2 Riscos na Engenharia de Software Mesmo com a adoção de novas tecnologias, modelos de processos, técnicas, métodos e

ferramentas disponíveis, a maioria dos sistemas desenvolvidos ainda apresenta atrasos no

desenvolvimento, custos acima do planejado e funcionalidades aquém das expectativas devido

a riscos inesperados, não planejados ou simplesmente ignorados [Rios 2005]. A gerência de

projetos, em especial, a gerência de riscos, procura monitorar todo o processo de

desenvolvimento do software identificando riscos, suas probabilidades de manifestação,

estimando os prejuízos e orientando quanto aos procedimentos a serem adotados.

De acordo com Guia PMBOK - Project Management Body of Knowledge [PMI

2004], um risco de projeto é um evento ou condição incerta que, se ocorrer, terá um efeito

positivo ou negativo sobre pelo menos um objetivo do projeto, como tempo, custo, escopo ou

qualidade. O objetivo da gerencia de riscos do projeto é aumentar a probabilidade e o impacto

dos eventos positivos e diminuir a probabilidade e o impacto dos eventos negativos no

projeto.

O Instituto de Engenharia de Software (SEI) define risco como a possibilidade de

sofrer perdas nos objetivos do projeto, como impactar na qualidade do produto final, atrasar

cronograma, aumentar custos ou mesmo falhar o projeto [SEI 2006].

Neste trabalho, é utilizada a definição de riscos de software fornecida pelo SEI, onde o

risco para o teste de software é a possibilidade de uma funcionalidade apresentar falhas,

quando em uso pelo usuário, resultando em um produto de software de baixa qualidade.

2.2.1 Conceitos Básicos

Antes de apresentar os conceitos básicos sobre riscos de software, vale ressaltar a diferença

entre risco e problema. Os riscos são incertezas de que um evento futuro poderá afetar de

forma negativa os objetivos do projeto, enquanto um problema é algo que existe naquele

momento e ameaça diretamente os objetivos do projeto. Ou seja, o problema é um risco já

materializado. A diferença é muito importante, pois ações para gerenciar riscos serão muito

diferentes das ações para gerenciar problemas. Como existe apenas a probabilidade de que o

risco venha a ocorrer, ações podem ser tomadas para minimizar, transferir ou até eliminá-lo,

ou seja, ações são realizadas preventivamente para que o risco não venha a se tornar um

problema.

Page 42: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

26

Exposição ao risco

A gravidade de um risco é avaliada a partir da combinação da probabilidade ou freqüência de

ocorrência e da magnitude das conseqüências dessa ocorrência. Uma das métricas mais

conhecidas e utilizadas [Boehm 1991] para calcular a exposição ao risco é apresentada na

Equação 2.1, onde P(f) representa a probabilidade de ocorrência do risco em uma função e I(f)

o impacto desta ocorrência na função. Os valores de P e I são números definidos dentro de

uma escala.

)(*)()( fIfPfER =

Equação 2.1 Cálculo de exposição ao risco.

A Tabela 2.4 apresenta um exemplo da matriz de probabilidade e impacto com escala

de 1 (um) a 3 (três) para a probabilidade e 1 (um) a 5 (cinco) para o impacto. Neste exemplo,

as escalas de impacto e probabilidade são diferentes, porém não há nenhuma regra para a

definição das escalas, podendo estas, inclusive, possuírem o mesmo valor.

Tabela 2.4 Matriz de impacto e probabilidade.

Alto (3) Médio (2) Baixo (1)

Muito Alto (5) Alto (ER = 15) Alto (ER =10) Médio (ER = 5)

Alto (4) Alto (ER = 12) Médio (ER = 8) Baixo (ER = 4)

Médio (3) Médio (ER = 9) Médio (ER = 6) Baixo (ER = 3)

Baixo (2) Médio (ER = 6) Baixo (ER = 4) Baixo (ER = 2)

Muito Baixo (1) Baixo (ER = 3) Baixo (ER = 2) Baixo (ER = 1)

Classificação

Os riscos de software podem ser classificados de diversas formas. Neste trabalho, é utilizada a

classificação definida pelo SEI [Carr et al 1993], que fornece uma taxonomia para os riscos

de acordo com a sua origem:

� Engenharia de Produto: problemas no produto relacionados a ações técnicas,

também conhecidos como riscos técnicos. Os riscos de produto afetam a qualidade

ou o desempenho do software que está sendo desenvolvido e são os riscos tratados

neste trabalho.

� Ambiente de Desenvolvimento: problemas no processo (desenvolvimento)

produtivo do software. Estes riscos são também conhecidos como riscos de

projeto, pois afetam, dentre outros, o cronograma ou os recursos do projeto.

Probabilidade

Impacto

Page 43: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

27

� Restrições dos Programas: problemas que acontecem no projeto e no processo

devido a ações da gerência. São comumente chamados de riscos de negócio e

afetam a organização que desenvolve ou adquire o software.

A taxonomia organiza os riscos de software em classes, cada classe está subdividida

em elementos que, por sua vez, são divididos em atributos, como mostrado na Figura 2.8. Na

classe Engenharia de Produto, temos o elemento Requisitos, que contém os atributos

Estabilidade, Completude, Claridade, Validade, Viabilidade, Precedente e Escala.

Figura 2.8 Taxonomia de riscos proposta pelo SEI e adaptada por [Gusmão 2005].

Além da taxonomia, o SEI fornece um questionário baseado em taxonomia de riscos, o

Taxonomy-Based Questionnaire (TBQ) para a etapa de identificação dos riscos. O TBQ

conduz os entrevistados através da taxonomia, sugerindo áreas para discussão adicional. A

Tabela 2.5 apresenta um exemplo das questões contidas no TBQ para o elemento Requisito da

classe Engenharia de Produto. Neste exemplo, caso o entrevistado responda “sim”, indica a

existência de riscos na funcionalidade ou requisito analisado.

Page 44: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

28

Tabela 2.5 Questões de “estabilidade” e “completude” para o elemento “requisito”. Classe: Engenharia de Produto Elemento: Requisito Atributo: [01] Os requisitos da funcionalidade estão mudando enquanto ela está sendo desenvolvida? Estabilidade Se SIM, qual parte da funcionalidade está mudando? Atributo: [02] Ainda existe algo para ser especificado nesta funcionalidade? Completude Se SIM, qual parte da funcionalidade não está especificada?

Estratégias para Tratamento dos Riscos

Quatro estratégias lidam, normalmente, com ameaças ou riscos com impacto negativo nos

objetivos do projeto:

� Prevenir: definição de ações para eliminar o risco;

� Transferir: repassa para outra parte a responsabilidade pelo gerenciamento de um

risco;

� Mitigar: redução da probabilidade e/ou impacto de um risco até um limite

aceitável;

� Aceitar: o plano de gerenciamento do projeto não é alterado para tratar um risco

ou não se consegue identificar uma estratégia de resposta adequada;

2.2.2 Processo de Gerência de Riscos segundo o Guia PMBOK

O Instituto de Gerência de Projeto Project Management Institute (PMI) criou em 1986 a

primeira versão do Guia PMBOK - Project Management Body of Knowledge Guide [PMI

2004], guia que descreve o conhecimento e as melhores práticas em gerenciamento de

projetos. De acordo com o Guia PMBOK, o conhecimento necessário para gerenciar projetos

está dividido em nove áreas: Gerência de Integração, Gerência de Escopo, Gerência de

Tempo, Gerência de Custo, Gerência de Qualidade, Gerência de Recursos Humanos, Gerência

de Comunicação, Gerência de Riscos e Gerência de Aquisições.

A gerência de riscos do projeto inclui os processos referentes ao planejamento da

gerência de riscos, à identificação, à análise, ao planejamento das respostas e ao controle e à

monitoração dos riscos em um projeto. Esses processos interagem entre si e com os processos

das outras áreas de conhecimento da gerência de projetos.

Planejar a Gerência de Risco

Consiste no planejamento e execução das atividades da gerência de riscos a serem realizadas

no projeto.

Page 45: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

29

Identificação de Riscos

Identifica e documenta os riscos que podem afetar, de alguma forma, o sucesso do projeto.

Técnicas como reuniões de brainstorm, entrevistas, listas de verificação, questionários são

comumente utilizadas nesta fase.

Análise Qualitativa de Riscos

Nesta fase, os riscos identificados são priorizados através da combinação de sua probabilidade

de ocorrência e impacto.

Análise Quantitativa de Riscos

Consiste na análise numérica do efeito dos riscos identificados nos objetivos gerais do

projeto. Técnicas mais avançadas como estatística, simulação e outras são utilizadas para a

priorização nesta análise.

Planejamento de Respostas a Riscos

Desenvolvem-se ações para aumentar as oportunidades e reduzir as ameaças aos objetivos do

projeto.

Monitoramento e Controle de Riscos

Os riscos identificados são acompanhados e há o monitoramento dos riscos residuais e

identificação de novos riscos, execução de planos de respostas a riscos e avaliação da sua

eficácia durante todo o ciclo de vida do projeto.

2.2.3 Processo de Gerência de Riscos segundo o Processo Unificado da Rational (RUP)

Como descrito na Seção 2.1.2, o RUP é um processo da Engenharia de Software baseado em

melhores práticas de desenvolvimento e em princípios fundamentais, dentre os quais ser

direcionado a riscos. De acordo com o processo, é essencial identificar e combater os itens de

risco mais alto no início do projeto. Juntamente com cada risco, deve haver um plano para

tratamento, que é entrada para o planejamento das atividades do projeto e das iterações.

O foco das fases do RUP com relação aos riscos de software é:

� Concepção: foco no tratamento dos riscos relacionados a restrições dos

programas, também conhecidos como riscos de negócio.

Page 46: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

30

� Elaboração: foco principalmente nos riscos técnicos, examinando os riscos de

arquitetura e, se necessário, revisando-se o escopo do projeto à medida que seus

requisitos tornam-se mais bem compreendidos.

� Construção: foco nos riscos técnicos associados ao desenvolvimento e ao teste,

que podem impedir a conclusão do desenvolvimento do produto de software.

� Transição: foco nos riscos associados com a logística de entrega do produto ao

usuário.

O Gerente de Projeto é responsável pela execução das atividades: Desenvolver o Plano

de Gerenciamento de Riscos e Identificar e Avaliar Riscos, que têm como entrada ou saída os

artefatos: Documento de Visão, Plano de Gerenciamento de Riscos e Lista de Riscos.

Identificar e Avaliar Riscos

O Gerente identifica, analisa e prioriza os possíveis riscos. Identifica estratégias de prevenção,

diminuição e contingência e reavalia os riscos durante e ao final de cada iteração.

Desenvolver o Plano de Gerenciamento de Riscos

O Gerente define procedimentos e ferramentas para gerenciamento de riscos, cria lista inicial

de riscos, define equipe de gerenciamento de riscos, define estratégias para gerenciar os dez

maiores riscos e define a programação para elaboração de relatórios e revisões de riscos.

2.2.4 Atividades da Área de Processo do Gerenciamento de Riscos do Modelo CMMI

O modelo Capability Maturity Model Integration (CMMI) foi criado em agosto de 2000 para

integrar os diversos modelos do CMM que atendem às várias atividades relacionadas ao

desenvolvimento de software [CMMI 2006]. O CMMI tem como objetivo guiar a avaliação

de melhorias nos processos das organizações e contém duas formas de representação:

� Representação Contínua: possibilita à organização utilizar a ordem de melhoria

que melhor atende aos objetivos de negócio da empresa. É caracterizado pelos

níveis de capacidade: incompleto, executado, gerenciado, definido,

quantitativamente gerenciado e em otimização.

� Representação por Estágios: disponibiliza uma seqüência pré-determinada para

melhoria baseada em estágios, onde cada estágio serve de base para o próximo. É

caracterizado pelos níveis de maturidade: inicial, gerenciado, definido,

quantitativamente gerenciado e em otimização.

Page 47: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

31

Cada nível é constituído por um conjunto de áreas de processos, compostas por

objetivos específicos e objetivos genéricos. Cada objetivo específico (SG) pode ser composto

por um conjunto de práticas específicas (SP) como mostrado na Tabela 2.6.

Tabela 2.6 Objetivos e práticas da área de processo de gerenciamento de riscos. SG1 Preparar-se para a Gerência de Riscos SP 1.1 Determinar Fontes e Categorias de Riscos SP 1.2 Definir Parâmetros de Riscos SP 1.3 Estabelecer uma Estratégia para a Gerência de Riscos SG2 Identificar e Analisar Riscos SP 2.1 Identificar Riscos SP 2.2 Avaliar, Categorizar e Priorizar Riscos SG3 Mitigar Riscos SP 3.1 Desenvolver Planos de Mitigação de Riscos SP 3.2 Implementar Planos de Mitigação de Riscos

O gerenciamento de riscos em projetos é tratado inicialmente pelo CMMI no segundo

nível de maturidade pelas SGs Desenvolvimento do Plano do Projeto e Monitorar o Projeto de

Acordo com o Plano. Esta atuação, entretanto, é feita de uma forma reativa, ou seja, com foco

apenas na identificação dos riscos para conscientização e reação à medida que eles ocorram.

O gerenciamento de riscos é efetivamente tratado no terceiro nível de maturidade

através da área de processo de Gerenciamento de Riscos. Esta área de processo atua de uma

forma proativa no sentido de minimizar os impactos dos riscos nos objetivos do projeto.

A seguir, é fornecida uma breve descrição para as práticas específicas da área de

processo de gerenciamento de riscos apresentadas na Tabela 2.6.

Determinar Fontes e Categorias de Riscos

A identificação prematura das fontes de riscos internas ou externas possibilita a identificação

prematura dos riscos. Estabelecer categorias para os riscos provê um mecanismo para coletar

e organizar os riscos e gerenciar as atenções para aqueles riscos que podem ter conseqüências

mais sérias.

Definir Parâmetros de Riscos

Os parâmetros são usados para analisar e categorizar os riscos e para controlar a tarefa de

gerência de riscos. Eles Servem para avaliar e quantificar a probabilidade dos riscos e os

níveis de severidade dos mesmos.

Page 48: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

32

Estabelecer uma Estratégia para a Gerência de Riscos

Fazem parte da estratégia, a definição do escopo para gerência de riscos, os métodos e

ferramentas que serão utilizados, as fontes e categorias de riscos, parâmetros e técnicas de

mitigação.

Identificar Riscos

Os riscos identificados são documentados, incluindo o contexto, condições e conseqüências

de sua ocorrência.

Avaliar, Categorizar e Priorizar Riscos

Cada risco é avaliado e recebe valores de acordo com os parâmetros de risco, que incluem

probabilidade, severidade ou impacto e limites. Para o tratamento, é interessante agrupar os

riscos em níveis ou categorias.

Desenvolver Planos de Mitigação de Riscos

Inclui técnicas e métodos usados para evitar, reduzir e controlar a probabilidade de ocorrência

do risco e a contingência caso o risco ocorra.

Implementar Planos de Mitigação de Riscos

Planos de mitigação de riscos são desenvolvidos e implementados quando necessário para

reduzir os riscos antes que eles se tornem problemas.

2.2.5 Atividades da Gerência de Riscos do Instituto de Engenharia de Software (SEI)

A gerência de riscos, de acordo com o SEI - Software Engineering Institute, é uma prática

com processos, métodos e ferramentas para gerenciar riscos em um projeto [SEI 2006]. Ela

fornece um ambiente disciplinado para a tomada de decisão, a fim de avaliar continuamente o

que pode dar errado (os riscos), determinar quais riscos são importantes de tratar e

implementar estratégias para tratamentos dos riscos identificados.

O paradigma de riscos definido pelo SEI [SEI 2006] apresentado na Figura 2.9 mostra

as diferentes atividades que compõem a gerência de riscos. A definição é apresentada na

forma de um círculo para enfatizar que o processo é contínuo. A comunicação está localizada

ao centro porque as informações precisam fluir entre as atividades e porque a comunicação é,

normalmente, um grande obstáculo para a gerência de riscos. O framework define seis

Page 49: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

33

atividades, estruturadas da forma que melhor se encaixam na gerência de projeto. A seguir, é

apresentado um breve resumo das atividades do paradigma de gerência de riscos:

Identificar

Localiza os riscos antes que estes se tornem problemas. Para a identificação de riscos, o SEI

propõe o questionário baseado em taxonomia de riscos [Carr et al 1993] apresentado na Seção

2.2.1.

Analisar

Transforma os dados dos riscos em informação para tomada de decisão. Avalia o impacto, a

probabilidade, classifica os riscos e os prioriza.

Planejar

Traduz as informações dos riscos em decisões e ações para o presente e futuro e implementa

estas ações. Formas de tratamento para os riscos foram apresentadas na Seção 2.2.1.

Acompanhar

Monitora os indicadores de riscos e ações de mitigação. Métricas apropriadas de riscos são

utilizadas para monitoramento e controle.

Controlar

Corrige desvios dos planos de mitigação de riscos.

IDENTIFICAR

ANALISAR

PLANEJAR

RASTREAR

CONTROLAR

COMUNICAR

Figura 2.9 Paradigma da gerência de riscos [SEI 2006].

Page 50: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

34

Comunicar

Provê informações internas e externas do projeto nas atividades de riscos. A comunicação

acontece entre todas as atividades da gerência de riscos.

2.3 Resumo do Capítulo Nos dias atuais, práticas de teste e gerência de riscos estão sendo bastante demandadas pelas

organizações com o propósito de produzirem software com qualidade e com o menor esforço

possível. O teste de software assegura que os requisitos corretos foram implementados,

enquanto que a gerência de riscos possibilita o conhecimento e tratamento dos fatores de

riscos antes que esses se tornem problemas e impactem nos objetivos do projeto.

Este Capítulo apresentou um resumo dos conceitos, características, modelos e

processos da área de testes e riscos de software. Ele é fundamental para o entendimento dos

conceitos, atividades, práticas e papéis do RBTProcess, que foi concebido a partir das

informações apresentadas. Os modelos de teste e riscos de software, bem como os processos

apresentados neste Capítulo são completos, bem definidos, largamente conhecidos e

utilizados na indústria e academia. Além de serem referências para a construção de outros

modelos e processos.

Page 51: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

35

3

Teste de Software baseado em Riscos

O consultor James Bach é considerado o pai da abordagem de teste baseado em riscos

[Goldsmith 2006]. Ele descreveu a idéia em seu artigo intitulado: The Challenge of Good

Enough Software em outubro de 1995 na revista American Programmer [Bach 1995].

O teste baseado em risco consiste em um conjunto de atividades que favorece a

identificação de fatores de riscos associados aos requisitos do software. Uma vez

identificados, os riscos são priorizados de acordo com a sua probabilidade de ocorrência e

impacto. Os casos de teste, por sua vez, são projetados com base nas estratégias para

tratamento dos fatores de riscos identificados. O controle da execução dos testes permite uma

mitigação dos fatores de riscos associados. A avaliação e o controle desses fatores de riscos

não são atividades triviais e requerem bastante experiência e conhecimento do negócio [Bach

2003]. Vale ressaltar que os riscos tratados nesta abordagem são os riscos relacionados à

engenharia de produto ou riscos técnicos, que podem ser mitigados através do teste de

software.

Focar em teste baseado em risco significa fazer julgamento sobre cobertura de teste;

seleção do número de testes a ser conduzido; escolhas dos tipos de testes e de revisões; o uso

e balanceamento entre teste dinâmico e análise estática, dentre outros problemas [Redmill

2004].

A abordagem RBT é utilizada, mais fortemente, no planejamento e na estratégia de

execução dos casos de teste [Bach 2003]. Seu uso, entretanto, é recomendado também na de

fase construção ou projeto dos casos de teste, como forma de otimizar o processo de teste,

projetando casos de teste apenas para os requisitos prioritários.

Capítulo

Page 52: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

36

Bach (1999) divide a abordagem RBT em três etapas, conforme mostra a Tabela 3.1.

Essas são as etapas essenciais da abordagem RBT, onde os riscos técnicos associados aos

requisitos de software são identificados, analisados e controlados.

Tabela 3.1 Etapas do teste baseado em riscos [Bach 1999]. 1. Elaboração de lista de

riscos priorizada Esta etapa consiste na identificação e análise dos riscos técnicos associados aos requisitos do software.

2. Realização de testes que exploram cada risco

Consiste na criação e execução de testes que verificam a existência ou não do risco identificado. As abordagens encontradas na literatura não fornecem metodologia para a atividade de criação dos casos de teste. No entanto, para a execução, diversas estratégias foram encontradas e vão desde listas de execução ordenadas por exposição ao risco [Chen 2002] a listas ordenadas por tempo de execução de cada caso de teste [Schaefer 2002].

3. Acompanhamento e controle dos riscos

Assim que um risco for eliminado, um novo risco surge e os esforços de teste devem ser ajustados para que foquem sempre nos riscos mais importantes.

3.1 Atividades A Figura 3.1 apresenta o modelo de atividades do processo de gerência de riscos definido por

Karolak e alterado por Amland [Amland 1999] para incluir elementos relevantes aos testes

baseado em risco dentro de um processo de teste. As caixas ovais representam as alterações

realizadas por Amland e são artefatos produzidos ou atividades realizadas a partir das

atividades (retângulos) do processo de gerenciamento de riscos.

Para cada atividade do ciclo de vida do processo de teste de software, há uma

correspondente na gerência de riscos, com o intuito de fornecer o tratamento e

acompanhamento adequado para os riscos técnicos identificados.

Figura 3.1 Atividades relevantes para RBT [Amland 1999].

A atividade de identificação de riscos produz como resultado um lista de riscos

associados aos requisitos a serem testados. A partir da avaliação qualitativa e/ou quantitativa,

os riscos são priorizados. Também, estratégias para mitigação dos riscos são elaboradas de

Identificação dos Riscos

Estratégia dos Riscos

Avaliação dos Riscos

Mitigação dos Riscos

Comunicação dos Riscos

Previsão dos Riscos

Plano de Testes

Matriz: Custo e Probabilidade

Inspeção e Execução dos

Testes

Métricas de Testes

Árvore de itens de testes

Page 53: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

37

acordo com sua prioridade, e estas informações servem como base para criação do plano de

testes.

Quando os testes ou inspeções são realizados, os riscos são mitigados, ou pelo menos,

são minimizados através da descoberta de workarounds para que o impacto dos fatores de

riscos seja menor. A comunicação dos riscos fornece os dados para definição e

acompanhamento dos riscos através de um conjunto de métricas.

3.2 Principais Abordagens Nesta seção, são apresentadas a principais abordagens RBT disponíveis na literatura,

esboçando suas características, pontos fortes e oportunidades de melhoria.

3.2.1 Abordagem baseada em Heurística

Bach define duas abordagens distintas, baseadas em heurística para a atividade de

identificação dos riscos: na abordagem “Inside-Out”, o produto é estudado e é questionado,

repetidamente, o que pode dar errado neste produto; na abordagem “Outside-In”, uma lista de

potenciais riscos é utilizada, juntamente com detalhes do produto [Bach 1999]. Para cada

risco, é identificado se este se aplica ou não a um determinado componente.

Bach sugere três tipos de listas para auxiliar a identificação dos riscos:

� Lista de categorias de critérios de qualidade: são categorias desenvolvidas para

atenderem a diferentes tipos de requisitos. A lista é apresentada na Tabela 3.2 e foi

desenvolvida a partir dos critérios do padrão ISO 9126 e FURPS1.

Tabela 3.2 Lista de categorias de critérios de qualidade [Bach 1999]. Capacidade O requisito realiza a função requerida? Confiabilidade A funcionalidade resiste a falhas em todas as situações? Usabilidade Quão fácil é a utilização da funcionalidade pelo usuário? Performance Quão rápido é o tempo de resposta da funcionalidade? Instalabilidade Quão fácil é a instalação do software? Compatibilidade Quão bem a funcionalidade trabalha com componentes externos e outras configurações? Suportabilidade Quão econômica é a funcionalidade para fornecer suporte ao usuário? Testabilidade Como o produto pode ser testado efetivamente? Manutenibilidade Quão econômicas são as manutenções corretivas e evolutivas? Portabilidade Quão econômica é a portabilidade para outra plataforma? Localizabilidade Quão econômica é a disponibilização da funcionalidade em outra língua?

� Listas genéricas de riscos: são aquelas que possuem riscos universais a qualquer

sistema. São apresentadas na Tabela 3.3.

Page 54: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

38

Tabela 3.3 Lista genérica de riscos [Bach 1999]. Complexo Qualquer coisa desproporcionalmente grande. Novo Qualquer coisa que não possua histórico no produto. Modificado Qualquer coisa que tenha sido modificada ou melhorada. Dependência em componente superior:

Qualquer coisa cuja falha causaria um efeito cascata de falhas no resto do sistema.

Dependente de componente inferior

Qualquer coisa que seja extremamente dependente de falhas no resto do sistema.

Crítico Qualquer coisa cuja falha poderia causar um dano substancial. Preciso Qualquer coisa que deva atender a requisitos exatos. Popular Que será muito usado. Estratégico Qualquer coisa que tenha especial importância para o seu negócio, como uma

característica que lhe distingue da competição. Terceirizado Qualquer coisa usada no seu produto, mas que foi desenvolvida fora do projeto. Distribuído Qualquer coisa que esteja espalhada em relação a tempo ou espaço, e que seus

elementos devam trabalhar juntos. Defeituoso Qualquer coisa que conhecidamente tenha problemas. Falhou recentemente Qualquer coisa com uma história recente de falha.

� Os catálogos de risco: São listas de riscos que pertencem a um domínio em

particular. A Tabela 3.4 apresenta uma versão resumida do que seria um catálogo

de riscos para um instalador.

Tabela 3.4 Catálogo de riscos para um instalador [Bach 1999] Instalação dos arquivos errados. Arquivos corrompidos. Hardware não foi configurado de forma apropriada. Outras aplicações corrompidas. O protetor de tela interfere no instalador. Não há detecção de aplicações incompatíveis. O instalador silenciosamente substitui ou modifica arquivos críticos ou parâmetros. O processo de instalação é muito lento. O processo requer o constante monitoramento do usuário. O processo de instalação é confuso.

Após a identificação dos riscos utilizando uma das abordagens explicadas

anteriormente. A estes, são atribuídos valores em uma escala de interesse, e os riscos com

maior valor são testados prioritariamente. O autor também sugere formas de organização dos

riscos para facilitar o acompanhamento e controle dos mesmos.

A principal dificuldade dessa abordagem está no conhecimento prévio do negócio a

fim de realizar a análise dos riscos da maneira mais fiel possível. Existe a possibilidade de a

análise ter sido realizada de forma errada e, conseqüentemente, os “verdadeiros” riscos não

terem sido atacados da forma correta.

Page 55: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

39

3.2.2 Abordagem baseada em Métricas

Amland desenvolveu um conjunto de métricas para a análise de risco com o objetivo de

subsidiar um processo de teste [Amland 1999]. Essas métricas foram aplicadas em estudo de

caso de uma aplicação de instituição financeira. O modelo para o cálculo da exposição ao

risco é baseado na probabilidade de uma falha ocorrer e no custo dessa falha na função

correspondente, tanto para o provedor do serviço quanto para o cliente.

Na sua metodologia, existem três fontes de análise de risco:

� Qualidade da função (área) a ser testada. O autor propõe uma função, na qual são

levados em consideração aspectos como qualidade do produto de software,

esperiência dos desenvolvedores e complexidade, tamanho e maturidade das

funcionalidades. Segundo o autor, funcionalidades complexas, de má qualidade

e/ou desenvolvidas por programadores inexperientes estão mais expostas a falhas

que funções baseadas em projeto de melhor qualidade e que foram desenvolvidas

por programadores mais experientes. Essa função corresponde à probabilidade

P(f), que pode assumir valores entre 0 e 1.

� As conseqüências de uma falha ponto de vista de um cliente, em uma situação de

produção podem ser representadas, dentre outras, pela probabilidade de ameaça

legal, perda de posicionamento no mercado e pelo não cumprimento de

regulamentações governamentais. Estas conseqüências representam o custo de uma

falha para o consumidor C(c).

� As conseqüências de uma falha do ponto de vista do vendedor do serviço estão

relacionadas, dentre outras, à probabilidade de publicidade negativa, altos custos

de manutenção de software e perda de clientes. Estas conseqüências representam o

custo de uma falha para o vendedor C(v).

Para o autor, o custo para o consumidor é igualmente importante na análise dos riscos

em relação ao custo do vendedor. A exposição de risco é dada pela função:

2

)()(*)()Re(

vCcCfPf

+=

Equação 3.1 Cálculo para exposição do risco.

Tendo em vista o grau de exposição ao risco, as áreas com risco mais alto têm maior

prioridade nos testes e, durante a execução dos testes, à medida que falhas vão aparecendo,

Page 56: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

40

novas prioridades podem ser adicionadas ao projeto. Também, o grau de exposição ao risco

vai sendo atualizado para cada funcionalidade e a prioridade do teste pode ser modificada.

Um exemplo de grau de exposição ao risco calculado para a função Fechar Contas é

mostrado na Tabela 3.5. O grau de exposição ao risco foi calculado para todas as funções e a

lista foi ordenada para identificar quais áreas deveriam ser focadas durante o teste. A

probabilidade é calculada como a média ponderada de uma função em particular dividida pela

maior média ponderada de todas as funções, resultando em uma probabilidade na faixa entre 0

e 1.

Tabela 3.5 Exposição ao risco calculado para a função “fechar contas” [Amland 1999]. CUSTO PROBABILIDADE

Função C(v) C(c) Média Nova

Função

(5)

Projeto/

Qualidade

(5)

Tamanho

(1)

Comple-

xidade

(3)

Média

Ponde-

rada

Proba-

bilidade

Expo-

sição

ao

Risco

Fechar

Conta

1 3 2 2 2 2 3 7,75 0,74 1,48

Além das métricas para o cálculo de exposição ao risco, Amland utiliza, em seu estudo

de caso, métricas para acompanhamento do progresso dos testes. Alguns exemplos são:

número de casos de testes planejados e executados, número de defeitos por funções, número

de horas gastas em teste por defeito encontrado e número de horas gastas para correção de

defeitos.

A abordagem utilizada por Amland realiza as atividades apresentadas na Figura 3.1 e

está dividida em seis passos apresentados a seguir:

1. Identificação e Estratégia dos Riscos

o Passo 1: Planejamento: faz parte de toda atividade de teste realizar o

planejamento, definindo as funcionalidades que serão testadas, ambiente de

teste, padrões de documentação, execução e registro. A estratégia de riscos

também é definida nesse passo.

2. Avaliação dos riscos

o Passo 2: Identificar os indicadores de riscos: os indicadores são

definidos juntamente com o grupo do projeto. É importante que os

indicadores façam sentido para o sistema e que todos tenham o mesmo

Page 57: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

41

entendimento. Foram utilizados como indicadores, dentre outros, o número

de defeitos, número de linhas de código, número de mudanças desde a

última versão e complexidade da função.

o Passo 3: Identificar o custo de um defeito: assim como no passo 2,

indicadores são definidos para o custo de um defeito, tanto para o usuário

(cliente), quanto para o desenvolvedor (vendedor) do produto de software.

o Passo 4: Identificar elementos críticos: calcular a exposição do risco de

cada funcionalidade utilizando os valores obtidos nos passos 2 e 3.

3. Mitigação dos Riscos

Passo 5: Execução dos testes: uma vez concluída a análise do riscos, os testes

seguem a ordem de execução da lista de priorização. Deve-se acompanhar não

somente a ordem de execução, mas também a depedência entre os casos de

testes e realizar as adaptações necessárias.

4. Comunicação e Previsão dos Riscos

o Passo 6: Estimar o tempo para completar: utilizar as métricas de

progresso dos testes para reportar a situação atual dos testes e prever o

tempo necessário para completá-los.

A abordagem definida por Amland foi utilizada para testar dois módulos de uma

aplicação financeira contendo, respectivamente, doze e trezentas funcionalidades. Sendo que,

para o segundo, por falta de tempo, foram avaliadas as vinte funcionalidades mais importantes

para o cliente. Um dos maiores problemas relatados por Amland foi falta de conhecimento de

algumas funcionalidades que dificultou a análise e produziu resultados não confiáveis. Um

nível mínimo de teste foi definido para as funcionalidades com baixa exposição ao risco e

testes extras foram definidos para funcionalidades com maior exposição ao risco. O cliente

avaliou o produto entregue como de excelente qualidade. O número de defeitos encontrados

foi similar ao das versões anteriores, porém o tempo gasto para concluir os testes e o número

de recursos utilizados foi menor.

O grande desafio da definição da abordagem, segundo Amland, foi a identificação dos

indicadores de custo de falha e de qualidade. Foi utilizada uma abordagem simples, mas,

segundo o autor, satisfatória. Assim, como na maioria das abordagens, o autor mantém foco

somente na atividade de análise dos riscos, não fornecendo subsídios para a identificação dos

riscos associados aos requisitos, fundamental para a criação dos casos de teste baseado em

riscos.

Page 58: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

42

3.2.3 Abordagem baseada em Código-fonte Orientado a Objetos

[Rosenberg et al 1999] fornecem uma metodologia para identificação de classes que

estejam mais propensas a erros, através da aplicação de métricas de complexidade de software

orientado a objetos. Segundo os autores foi comprovado que o código mais complexo tem

uma maior incidência de erros ou problemas. Seis métricas de medição de projetos orientadas

a objeto são utilizadas, identificadas e aplicadas pelo Software Assurance Technology Center

(SATC) da Goddard Space Flight Center na NASA. São elas:

� Número de Métodos ou Number of Methods (NOM): é uma contagem dos

diferentes métodos existentes em uma classe.

� Número Ponderado de Métodos Por Classe ou The Weighted Methods per Class

(WMC): é uma soma ponderada dos métodos em uma classe. Se os pesos forem

iguais, equivale à métrica anterior.

� Acoplamento entre objetos ou Coupling Between Objects (CBO): é uma

contagem do número de outras classes nas quais uma classe está acoplada.

� A resposta a uma classe ou The Response for a Class (RFC): é a cardinalidade do

conjunto de todos os métodos que podem ser invocados em resposta à uma

mensagem para um objeto da classe.

� Profundidade na árvore ou Depth in Tree (DIT): a profundidade de uma classe,

de acordo com a hierarquia, é o número de saltos saindo de uma classe até a raiz da

hierarquia de classes. É medida pelo número de ancestrais na classe. Quando existe

herança múltipla, a maior DIT é utilizada.

� Número de filhos ou Number of Children (NOC): o número de filhos é o número

de subclasses que herdam diretamente da classe na hierarquia.

Por mais de três anos, o SATC coletou e analisou código orientado a objetos escritos

em C++ e em Java. Mais de 20.000 classes de mais de 15 programas foram analisadas. Os

valores limites para as métricas individuais, apresentados na Tabela 3.6, foram derivados do

estudo da distribuição das métricas coletadas.

Tabela 3.6 Valores limites para métricas individuais. MÉTRICA VALOR LIMITE NOM Preferencialmente menor que 20 e aceitável até 40 WMC Preferencialmente menor que 25 e aceitável até 40 CBO Aceitável até 5 RFC Aceitável até 50 DIT Aceitável até 5 NOC Não há consenso, mas, quanto maior, mais alta é a probabilidade de erro

Page 59: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

43

Segundo os autores, uma métrica nunca deveria ser utilizada sozinha. Para avaliar os

riscos do código, são necessárias, pelo menos, duas ou três métricas para termos indicação de

um problema em potencial. O alto risco é identificado para classes que tem, ao menos, duas

métricas que excedem os limites recomendados.

A Tabela 3.7 é um exemplo de métricas de um projeto Java. As células em vermelho

representam métricas fora do limite aceitável.

Tabela 3.7 Métricas coletadas de um projeto Java. CLASSE NO. MÉTODOS CBO RFC RFC/NOM WMC DIT NOC

1 54 8 536 9.9 175 1 0 2 7 6 168 24 71 4 0 3 33 4 240 7.2 105 2 0 7 54 8 361 6.7 117 2 2 8 62 6 378 6.1 163 2 0

10 63 7 235 3.7 156 2 0 11 81 10 285 3.5 161 2 0 12 42 5 127 3 69 3 0 14 20 17 324 16.2 139 4 4 18 46 5 186 4 238 1 3

A análise das classes é fácil de ser aplicada, inclusive pode ser realizada de forma

automática. No entanto os autores não propõem estratégias de testes para o código, tampouco

formas de rastreamento das funcionalidades impactadas por classes com alto risco de falhas.

3.2.4 Abordagem para Teste de Regressão

Chen, em sua dissertação de mestrado [Chen 2002], define uma estratégia para execução de

testes de regressão baseada em especificação. A justificativa principal da autora é que teste de

regressão baseado em código é bom para teste de unidade, mas tem problemas de

escalabilidade, pois à medida que o tamanho do software cresce, torna-se difícil gerenciar a

informação do teste e criar matrizes de rastreabilidade. A autora define dois conjuntos de

testes de regressão:

� Testes de regressão para os componentes que foram alterados: pelo menos um

teste é executado para cada componente inserido ou alterado.

� Testes de regressão baseado em Riscos para os componentes que

“aparentemente” não sofreram modificações: para estes, uma análise de riscos é

realizada a partir de questionários submetidos aos participantes do projeto.

Esta abordagem projeta casos de teste que focam nas áreas do software que possuem

maior risco. Como conseqüência, pode nos auxiliar a atingir um nível de confiabilidade

Page 60: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

44

adequado na qualidade do software. Essa metodologia utiliza o modelo de risco desenvolvido

por Amland [Amland 1999] e apresentado na Seção 3.2.2.

A fase de seleção de casos de teste envolve os seguintes passos:

� Passo 1: estimar o custo de cada caso de teste. Ou seja, o custo que uma falha

possa causar. O custo é calculado da mesma forma proposta por Amland.

� Passo 2: derivar a severidade para cada caso de teste. Esse valor é computado a

partir do número de defeitos e da severidade destes defeitos.

� Passo 3: calcular o grau de exposição de risco para cada caso de teste. A exposição

ao risco é calculada a partir do custo e da severidade.

� Passo 4: selecionar os casos de teste que têm os maiores valores de exposição ao

risco.

A seleção de cenários baseado em riscos deve obedecer duas regras:

� Regra 1: selecionar os cenários para cobrir os casos de teste mais críticos

� Regra 2: garantir que os cenários cubram tantos casos de teste quanto possível

A seleção de cenários baseado em riscos tem os seguintes passos:

� Passo 1: calcular a exposição de riscos para cada cenário. Calculado a partir da

soma da exposição ao risco dos casos de testes associado a este cenário.

� Passo 2: selecionar os cenários com maior exposição ao risco

� Passo 3: atualizar a matriz de rastreabilidade, removendo os cenários selecionados

e os testes já cobertos e recalculando a exposição ao risco.

� Passo 4: repetir os passos 1, 2 e 3 o quanto necessário

A abordagem se mostrou bastante eficiente de acordo com os resultados apresentados

pela autora. Além disso, a análise realizada através de questionários submetidos aos

desenvolvedores, com questões que os mesmos dominam, não constituiu uma tarefa

complexa. Segundo a autora, com a ajuda de ferramentas, todo o processo foi realizado de

forma rápida. Como a abordagem toma como base, a documentação do sistema, esta, por sua

vez, deve encontrar-se sempre atualizada.

3.2.5 Abordagem baseada em Uso

Besson define uma estratégia baseada em uso, segundo a qual, qualquer atividade de teste

implica em uma diminuição dos riscos [Besson 2004]. De acordo com o autor, independente

Page 61: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

45

da quantidade de testes executados, sempre haverá um risco. A idéia é investir o mínimo de

esforço em teste possível para maximizar a redução dos riscos.

Na sua abordagem, o autor controla os esforços de teste baseado na utilização do

sistema, seguindo a teoria de Pareto, que afirma que vinte por cento das funcionalidades

permitem ao usuário realizar oitenta por cento do seu trabalho. Seguindo o que diz a teoria de

Pareto, o autor sugere testar apenas as funcionalidades que estão incluídas nestes 20%,

aumentando assim a qualidade e reduzindo drasticamente o esforço e o custo do teste de

software.

A Figura 3.2 apresenta o esforço necessário para eliminar todos os riscos identificados

(reta em vermelho). Seguindo a idéia de Pareto, a relação entre risco e esforço ficaria mais

parecida com o gráfico representado pela linha em azul. Logo, diminuir o risco em cinqüenta

por cento pode ser alcançado em um curto espaço de tempo se uma priorização dos testes é

feita a partir de uma análise dos riscos.

Figura 3.2 Esforço necessário para reduzir em 50% os riscos.

A metodologia proposta por Besson é dividida em cinco passos:

� Passo 1: identificar funcionalidades vitais que podem previnir o usuário de utilizar

o sistema se um defeito for encontrado, ou seja, um defeito com alta severidade.

Uma forma eficiente de listar essas funcionalidades é a partir de pesquisas com os

usuários finais do sistema, experts no domínio do sistema ou através de dados

estátisticos de uso de versões anteriores. Uma vez que o risco aumenta com a

frequencia de uso, as funcionalidades mais usadas terão maior risco.

� Passo 2: projetar casos de testes para cada funcionalidade listada no Passo 1.

Page 62: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

46

� Passo 3: estimar tamanho (em hora ou minutos) do esforço necessário para

executar os casos de testes identificados.

� Passo 4: ordenar os casos de testes em ordem ascendente de acordo com o esforço,

dessa forma, os casos de testes com menor esforço são executados primeiro.

� Passo 5: iniciar a execução dos casos de teste na ordem estabelecida no Passo 4 até

que o tempo termine.

A análise dos riscos é, de certa forma, fácil de ser realizada, uma vez que o usuário

especifica as funções que são mais utilizadas no sistema, ou seja, as funções que permitem ao

usuário realizar oitenta por cento das suas atividades. Como o autor sugere a execução de

testes baseada em esforço, os testes que gastam menos tempo são executados primeiro até que

o tempo acabe. Essa abordagem pode ser útil em culturas organizacionais avessas ao teste,

visto que se testa somente 20% das funcionalidades disponíveis no software.

3.2.6 Abordagem baseada em Modelos

[Stallbaum et al 2008] desenvolveram uma técnica automática para priorização de casos de

testes a partir de análise de riscos e geração de casos de testes de sistema a partir de diagramas

de estados como modelos de testes.

A abordagem proposta, denominada Risk-based test case Derivation And

Prioritization (RiteDAP), acrescenta informações sobre risco a cada transição do diagrama de

estado através da definição de valores de probabilidade e impacto, permitindo que um

conjunto de casos de teste priorizado seja extraído do modelo.

A Figura 3.3 apresenta um modelo de teste (diagrama de estados) com informação

sobre risco determinada pela função R (P, D) = P*D, onde P é a probabilidade de uma

entidade conter um defeito e D o dano causado por este defeito. Vale salientar que a

abordagem gera cenários de casos de teste, ou seja, não são fornecidos procedimentos de

teste, bem como os dados de entrada e saída.

Para derivar a ordem de execução dos casos de testes, são somadas as informações de

riscos (R) de cada transição que compõe o caso de teste. A Tabela 3.8 apresenta alguns casos

de teste que podem ser derivados do modelo apresentado na Figura 3.3. Os casos de teste são

executados na seguinte ordem: S4, S2, S6, S7, S3, S5, S1. Esta ordem é chamada de Total

Risk Score Prioritization (TRSP).

Page 63: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

47

Figura 3.3 Amostra de um modelo de teste com informações de riscos.

Outra forma de execução seria levar em consideração os riscos já cobertos pelos casos

de testes anteriores, chamada de Additional Risk Score Prioritization (ARSP), ou seja, não são

incluídos em um caminho, os cenários que já foram testados em outro caminho. Por exemplo,

na Tabela 3.8, o caminho “abghklmntlmn” poderia se possível, ser removido de S7, uma vez

que este caminho já está sendo coberto em S2. Desta forma, são testados apenas os cenários

com riscos que não foram ainda cobertos.

Tabela 3.8 Possíveis casos de teste e risco associado. CASO DE TESTE CAMINHO ΣΣΣΣ (R)

S1 abghklmnopef 17 S2 abghklmntlmnopqrsf 41 S3 abghijpef 27 S4 abghijpqrsf 45 S5 abcdef 19 S6 abcdqrsf 38 S7 abghklmntlmntlmnopef 29

Para validação da abordagem, os autores usaram o diagrama de máquina de estados

para calcular taxas de impostos na Alemanha. A base da validação é a hipótese de que, com a

priorização dos riscos, a abordagem deve encontrar os defeitos mais cedo. Para a comparação,

Page 64: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

48

além das duas técnicas de priorização propostas pelos autores (TRSP e ARSP), a priorização

randômica (RP) e a priorização ótima (OP) foram utilizadas. RP é alcançada quando todos os

casos de teste são escolhidos randomicamente a partir de um conjunto de casos de teste

gerados inicialmente. A OP é alcançada quando todas as faltas são descobertas pelo conjunto

de casos de teste gerados inicialmente. Na OP, inspeções manuais também foram realizadas

para descobrir faltas.

No total, oitenta casos de testes foram executados. TRSP encontrou todos os defeitos

nos primeiros oito casos de teste. ARSP teve um resultado melhor encontrando todos os

defeitos nos quatro primeiros casos de testes.

3.3 Análise Comparativa Após o estudo das diversas abordagens, apresentadas nas Seções 3.2.1 a 3.2.6, foi possível

realizar um estudo analítico, mostrado na Tabela 3.9. Com exceção da abordagem proposta

por [Rosenberg et al 1999], todas as outras utilizam a abordagem funcional ou caixa-preta

para construção dos casos de teste, no nível de sistema.

Bach propõe diferentes heurísticas para identificar, analisar e controlar riscos durante

o processo de teste com o propósito de melhorar a qualidade do produto, focando nas partes

do software que precisam ser mais bem testadas. No entanto, o autor não fornece nenhuma

indicação de como os casos de teste são gerados.

Amland propõe métricas para a análise dos riscos com o propósito de reduzir custos da

fase de teste do projeto de desenvolvimento de software e reduzir futuros custos de produção

pela otimização do processo de teste. As métricas propostas pelo autor levam em

consideração que funcionalidades complexas, novas, construídas com pouca qualidade e com

tamanho grande possuem probabilidade maior de apresentar falhas. O autor, também, não

fornece nenhuma orientação sobre a criação dos casos de teste.

Para Chen, o crescimento contínuo das suítes de teste e a evolução das funcionalidades

de um produto de software tornam inviável ou extremamente custosa a execução de um teste

de regressão completo. Por este motivo, uma abordagem baseada em riscos reduz o volume de

teste de regressão a ser executado, possibilitando que as áreas mais críticas sejam testadas

prioritariamente. A autora não realiza a atividade de identificação de riscos e assume que os

casos de teste já estão prontos. Dependendo da quantidade de casos de teste, esta abordagem

pode ser inviável, uma vez que a análise de riscos é feita a partir dos casos de teste e não a

Page 65: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

49

partir dos requisitos, como acontece nas demais abordagens, visto que um requisito pode ter n

casos de teste associados.

Rosenberg e demais autores fornecem uma abordagem para identificação de classes

que estejam mais propensas a falhas, através da aplicação de métricas de complexidade de

software orientado a objetos. A análise pode ser realizada de forma automática. Os autores,

contudo, não propõem estratégias de testes para o código, tampouco formas de rastreamento

das funcionalidades impactadas por classes com alto risco de falhas.

A abordagem apresentada por Besson utiliza a informação de percentual de uso da

funcionalidade para priorização. Isto a torna fácil de ser utilizada, porém não garante que as

funcionalidades que estão sendo tratadas estejam mais propensas a apresentar falhas ou

precisam ser mais bem testadas.

Stallbaum e demais autores desenvolveram uma técnica automática para priorização e

geração de casos de teste, utilizando diagramas de estados como modelos de testes. A análise

de risco é bastante subjetiva, levando em consideração apenas a probabilidade de ocorrência e

o dano. Dependendo do tamanho dos modelos e do número de funcionalidade do software, a

análise de cada transição do diagrama pode levar muito tempo ou mesmo tornar-se inviável.

A Tabela 3.9 apresenta uma análise comparativa das principais abordagens

apresentadas com o modelo de processo proposto neste trabalho. Para a comparação foram

elencadas atividades da gerência de riscos de software, que são úteis para o teste de software e

atividades mínimas de teste de software existentes em qualquer processo. O RBTProcess está

incluído na Tabela 3.9 apenas para efeito de comparação, uma vez este será explicado no

Capítulo 4.

Page 66: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

50

Tabela 3.9 Análise comparativa das principais abordagens RBT.

AB

OR

DA

GE

M/

PR

OC

ESS

O

IDE

NT

IFIC

AR

R

ISC

OS

AN

AL

ISA

R R

ISC

OS

PL

AN

EJA

R

TE

STE

S

PR

OJE

TA

R

TE

STE

S

EX

EC

UT

AR

T

EST

ES

AV

AL

IAR

TE

STE

S

CO

NT

RO

LA

R

RIS

CO

S

Baseada em Heurística

Listas de critérios de qualidade, genéricas e catálogo de

riscos

Equação de Barry Boehm

���� v Matriz de rastreabilidade

���� v

Baseada em Métricas

���� Métricas específicas

para Teste de Software

���� ���� Ordem de exposição ao

risco

���� Fornece um

conjunto de

métricas para

controle de

progresso dos testes

Baseada em Uso

���� Utiliza a informação de percentual de

uso

���� ���� Percentual de uso da

funcionalidade e tempo de

execução do caso de teste

���� v

Testes de Regressão

���� Métrica proposta por

Amland

v Leva em consideração que os casos de teste estão

prontos

Ordem de exposição ao

risco

���� v

Código Fonte

Orientado a Objetos

���� Métrica para código fonte

OO

���� ���� ���� ���� ����

Baseada em Modelo

���� Análise de probabilidade

e dano

���� Deriva testes a partir do

modelo

Ordem de exposição ao

risco

���� v

RBTProcess Questionário, listas e

reunião de brainstorm

Métrica proposta por Amland com adaptações

Planeja as iterações de acordo

com a exposição ao risco

Indica tipos de casos de

teste de acordo com a exposição ao

risco

Ordem de exposição ao

risco

Inclui atividade

de avaliação

de processo de teste padrão

Fornece um

conjunto de

métricas para

controle de

progresso dos testes

v Faz menção a esta atividade, mas não fornece detalhes

���� Não faz menção a esta atividade O RBTProcess será explicado no Capítulo 4.

Page 67: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

51

3.4 Resumo do Capítulo Apesar das diversas abordagens encontradas na literatura, nenhuma fornece um conjunto de

atividades completo que auxilie os engenheiros de teste em todo o processo de teste de

software. A grande maioria tem como características focar em testes funcionais ou “caixa-

preta” e fornecer atividades para análise dos riscos e/ou execução dos casos de teste.

Apenas Bach, fornece abordagem baseada em heurística para identificação de riscos,

que é essencial para criação dos casos de teste, uma vez que estes são projetados para tratar os

riscos identificados.

Existe um consenso entre os autores das abordagens apresentadas neste Capítulo de

que a abordagem RBT permite reduzir esforços de teste e identificar funcionalidades críticas,

entretanto nenhum autor informa o percentual de esforço reduzido e a confiabilidade

alcançada com a adoção da abordagem.

Page 68: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

52

4

RBTProcess: Modelo de Processo de Teste de Software baseado em Riscos

Segundo Sommerville (2003), um modelo de processo é uma descrição simplificada de um

processo de software, que é apresentada a partir de uma perspectiva específica. Neste

Capítulo, é descrito o RBTProcess, um Modelo de Processo de Teste de Software baseado em

Riscos.

O RBTProcess foi construído a partir de atividades presentes no gerenciamento de

riscos e nos processos de teste de software disponíveis na literatura e apresentados nos

Capítulos 2 e 3.

O RBTProcess é apresentando com seus respectivos fluxos de trabalho, papéis, fases e

artefatos. Além disso, são apresentados a forma como o modelo foi documentado e o

resultado das simulações de uso do processo e do estudo de caso realizados.

4.1 Documentação do Modelo O modelo de processo está documentado graficamente através do Software Process

Engineering Metamodel (SPEM) [SPEM 2005]. O SPEM é um metamodelo que define

estereótipos da Unified Modeling Language (UML) para a modelagem de processos de

software padrão do Object Management Group (OMG) [SPEM 2005]. A Figura 4.1 apresenta

os níveis de modelagem do SPEM. O RBTProcess está modelado no nível M1.

Capítulo

Page 69: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

53

Figura 4.1 Níveis de modelagem do SPEM.

A Tabela 4.1 apresenta uma breve descrição dos estereótipos disponíveis no SPEM e

utilizados neste trabalho.

Tabela 4.1 Estereótipos disponíveis no SPEM. NOTAÇÃO ESTEREÓTIPO DESCRIÇÃO

Papel (ProcessRole)

Descreve os papéis, responsabilidades e competências de determinado indivíduo dentro do processo.

Artefato

(WorkProduct) Descreve algo que contém informação ou é uma entidade física produzida ou usada por atividades do processo. Ex. modelos, códigos, executáveis, planos e documentos.

Documento (Document)

Representa um documento criado, visualizado ou modificado através de um processo.

Conjunto de Trabalho (WorkDefinition)

Descreve a execução, operações realizadas e transformações feitas nos artefatos. Representa um conjunto de atividades.

Atividade (Activity)

Descreve os passos que um papel realiza para concluir uma única atividade.

Guias (Guidance)

Elemento do modelo que se associa ao outros elementos e pode conter descrições adicionais, tais como: técnicas, guias e padrões.

Disciplina (Discipline)

Agrupamento de elementos do processo (artefatos, papéis, atividades) cujas atividades são organizadas segundo algum ponto de vista em comum. Ex. teste, análise, requisito, projeto e etc.

Fase (Phase)

Representa um conjunto de trabalho de alto nível e que é limitado por um milestone.

Para criação, documentação e publicação do processo, foi utilizado o Eclipse Process

Framework (EPF) [EPF 2007]. O projeto EPF é composto por uma ferramenta de autoria

baseada no Eclipse [Eclipse 2008], que descreve o processo, chamada de EPFComposer, além

de alguns processos já prontos para serem customizados. A EPFComposer fornece uma

terminologia comum, padronizada e reusável através da UMA –Unified Method Architecture

para definição de métodos e processos. Além de ser facilmente customizável para os diversos

tipos de projeto. A Figura 4.2 apresenta uma visão das partes que compõem o projeto EPF e

onde o RBTProcess está localizado.

Page 70: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

54

Figura 4.2 Composição do Eclipse Process Framework [EPF 2007].

No Apêndice A, é apresentado o resultado de uma pesquisa que fornece uma visão

sobre a área de teste de toftware, mais especificamente sobre o teste baseado em riscos, em

Pernambuco e no Brasil. Nesta pesquisa, pudemos confirmar que a maioria (noventa por

cento) das empresas realiza testes funcionais ou “caixa-preta” e que um número bastante

pequeno de entrevistados possui conhecimento avançado sobre riscos de software. Essas

informações foram decisivas para, respectivamente, manter o foco do processo em testes

funcionais e para criar o papel do Analista de Riscos.

Também, identificamos, na pesquisa, que as pessoas que conhecem ou utilizam a

abordagem possuem dificuldade em identificar riscos de software. Com isso, propomos, no

RBTProcess, o questionário baseado em taxonomia, onde a identificação dos riscos técnicos

associados aos requisitos do software é realizada de forma intuitiva, não necessitando de

conhecimento prévio sobre a gerência de riscos.

4.2 Visão Geral O RBTProcess é iterativo, orientado a riscos e possui quatro fases distintas juntamente com

seus marcos, atividades e responsáveis, como mostrado da Figura 4.3.

4.2.1 Fases

O RBTProcess possui quatro fases distintas juntamente com seus marcos e atividades como

mostrado na Figura 4.4.

Page 71: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

55

Figura 4.3 Página do modelo de processo criada pelo EPFComposer [RBTProcess 2008].

Figura 4.4 Fases do RBTProcess.

Planejamento

O foco desta fase é o planejamento inicial dos testes com base na análise dos riscos e tem

como marco a priorização dos requisitos a serem testados. Compreende as disciplinas

Identificar Riscos, Analisar Riscos e Planejar Testes.

Page 72: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

56

Projeto

Nesta fase, os casos de testes planejados são projetados, com base nos riscos identificados.

Compreende a disciplina Projetar Testes. O marco desta fase é a criação de casos de teste que

verificam a existência ou não dos riscos identificados.

Execução

Os casos de testes planejados e projetados são executados. Compreende a disciplina Executar

Testes. O marco desta fase é a execução de casos de teste que verificam se riscos associados

aos requisitos foram mitigados.

Controle

Os resultados das execuções dos testes são coletados, analisados e acompanhados. Na

disciplina Avaliar Testes, os números, estratégias, tempo de execução e solicitações de

mudança são verificados. Na disciplina Controlar Riscos, é realizado o acompanhamento dos

riscos. Os riscos mitigados são eliminados da lista de riscos identificados que é entrada para o

planejamento da próxima iteração. O marco desta fase é o controle dos riscos mitigados

4.2.2 Papéis

Os papéis identificados são os mesmos encontrados em diversos processos de teste de

software como o Gerente de Testes, o Projetista de Testes e o Testador. Apenas o Analista de

Riscos é um papel do processo de gerenciamento de riscos, essencial para identificação,

análise e controle dos riscos associados aos requisitos do software. O Apêndice C fornece

mais detalhes sobre os papéis do RBTProcess.

Analista de Riscos

É responsável pelas atividades da Gerência de Riscos como identificação, análise e controle

de riscos. O analista pode, inclusive, ser membro da equipe de teste. Ele deve possuir

conhecimentos sobre teste de software, identificação e análise dos riscos, além de

conhecimento sobre os requisitos do software a ser testado.

Gerente de Testes

É responsável pela condução e controle das atividades do processo. Alguns dos

conhecimentos necessários para o Gerente de Testes referem-se a processos, projeto e

planejamento dos testes.

Page 73: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

57

Projetista de Testes

É responsável pela criação dos casos de teste para mitigar os riscos identificados. O projetista

necessita de um conhecimento sobre os requisitos do sistema e tecnologia adotada,

ferramentas, técnicas para construção de casos de teste, estratégias e tipos de teste.

Testador

Realiza a execução dos testes projetados e registra solicitações de mudança, quando

necessário. O testador necessita de conhecimento sobre o processo de teste, ferramentas

utilizadas para execução, configuração do ambiente de execução e solicitação de mudança,

além do conhecimento sobre os requisitos do sistema.

4.3 Disciplinas ou Conjuntos de Trabalho Como apresentado no início deste Capítulo, o modelo de processo proposto é constituído de

atividades presentes no gerenciamento de riscos e atividades do processo de teste de software.

As atividades do processo de teste de software sofreram algumas adaptações, uma vez que

essas, agora, são guiadas por riscos.

As disciplinas Identificar, Analisar e Controlar Riscos são provenientes do

gerenciamento de riscos e baseadas no RUP [RUP 2003], Guia PMBOK [PMI 2004] e CMMI

[CMMI 2006].

As disciplinas Planejar, Projetar, Executar e Avaliar Testes são provenientes de

processos de teste, baseadas no IEEE Std. 829-1998: Standard for Software Test

Documentation [IEEE 829 1998], IEEE Std. 1012-1998: Standard for Software Verification

and Validation [IEEE 1012 1998], TMM [Veenendaal 2006] e RUP [RUP 2003].

Nas subseções a seguir, são apresentadas as disciplinas do modelo de processo. Um

maior detalhamento será fornecido às atividades de gerenciamento de riscos e ao impacto das

mesmas nas atividades do processo de teste de software. O modelo de processo completo está

disponível em [RBTProcess 2008]. O Apêndice D fornece mais detalhes sobre as Disciplinas

do RBTProcess.

4.3.1 Identificar Riscos

Tem como objetivo identificar os riscos técnicos associados aos requisitos do software que

podem afetar, de alguma forma, o sucesso do projeto e que também podem ser mitigados

através da execução de testes.

Page 74: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

58

Além do Analista de Riscos que é responsável por esta atividade, o Analista de

Requisito, Gerente e Projetista de Teste e Arquiteto ou Desenvolvedor do Software participam

da identificação dos riscos. A Figura 4.5 apresenta as atividades, responsáveis e principais

artefatos produzidos e/ou consumidos.

Figura 4.5 RBTProcess: Disciplina Identificar Riscos.

Revisar Fontes e Categoria de Riscos

Tem como objetivos avaliar e adaptar as listas de riscos e o questionário baseado em

taxonomia para o software que será testado. Os artefatos disponíveis no processo são

genéricos e podem ser utilizados em qualquer projeto de desenvolvimento. As listas de riscos

fornecidas no RBTProcess são sugeridas por Bach [Bach 1999], em sua abordagem baseada

em heurística, como forma de auxiliar os engenheiros de testes na identificação dos riscos

técnicos ou de produtos.

Além das listas, o questionário baseado em taxonomia de riscos ou Taxonomy Based

Questionnaire (TBQ) [Carr et al 1993], apresentado na Seção 2.2, é utilizado, com algumas

adaptações, para auxiliar a atividade de identificação dos riscos. O questionário completo é

composto por 20 questões que indicam ou não a presença de riscos associados aos requisitos

do software. O Analista de Riscos seleciona as questões que serão utilizadas no questionário,

levando em consideração o domínio do software a ser testado. São avaliados riscos

relacionados à estabilidade, completude, claridade, viabilidade, usabilidade e outros.

Idealmente, esta atividade deve ser realizada logo após a definição dos requisitos ou

funcionalidades a serem desenvolvidos, alterados ou evoluídos.

Page 75: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

59

Responder Questionário (TBQ)

É a primeira etapa da identificação dos riscos. Para cada requisito, os participantes respondem

as perguntas e, de acordo com a resposta, é indicada a existência ou não do risco. Os

participantes não precisam ter qualquer conhecimento sobre riscos de software. Um

representante de cada etapa do processo de desenvolvimento de software (requisito, análise,

projeto, implementação, teste) deve participar desta atividade. Quando possível, o usuário

final também pode responder o questionário. O SEI recomenda cinco participantes para esta

atividade [Carr et al 1993].

Quando todos tiverem respondido, o Analista de Riscos consolida todas as respostas,

extraindo os riscos associados às perguntas, elimina os riscos duplicados e produz uma lista

com os riscos identificados para cada requisito ou funcionalidade.

Esta atividade deve ocorrer logo após a revisão dos requisitos, uma vez que os

requisitos estão sendo estudados naquele momento e existe uma probabilidade maior de todos

se lembrarem do propósito e detalhes de cada requisito ou funcionalidade.

Realizar Reunião de Brainstorm

Esta reunião tem como objetivos validar os riscos levantados na atividade anterior e

identificar riscos associados ao domínio do produto de software. Além disso, os participantes

podem fornecer mais detalhes sobre os riscos identificados que possam auxiliar no projeto dos

casos de teste.

As listas de riscos podem ser utilizadas para guiar a reunião de brainstorm, visando

torná-la mais eficiente. O produto dessa atividade é o refinamento da lista de riscos

identificados para cada requisito ou funcionalidade.

4.3.2 Analisar Riscos

Tem como objetivo a priorização dos requisitos ou funcionalidades do software a ser testado

com base na análise dos riscos técnicos identificados na disciplina Identificar Riscos.

Além do Analista de Riscos, que é responsável por esta atividade, o Analista de

Requisito, Gerente e Projetista de Teste e Arquiteto ou Desenvolvedor do Software participam

da priorização dos riscos. A Figura 4.6 apresenta as atividades, responsáveis e principais

artefatos produzidos e/ou consumidos.

Page 76: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

60

Figura 4.6 RBTProcess: Disciplina Analisar Riscos.

Calcular Exposição ao Risco

As fórmulas utilizadas neste processo para a priorização dos riscos foram propostas por

Amland [Amland 1999] e posteriormente utilizadas por Chen [Chen 2002], em sua estratégia

para execução de testes de regressão baseada em riscos, com algumas adaptações. A fórmula

de Amland foi explicada no Capítulo 3.

As métricas e pesos definidos por Amland foram utilizados nas primeiras versões

deste processo da forma como foram sugeridos pelo autor. No entanto, com a avaliação do

processo através de simulações, algumas adaptações foram necessárias, além da inclusão de

nova métrica (Dependência) à fórmula para que o cálculo de exposição ao risco alcançasse

maior confiabilidade. A Figura 4.7 apresenta as métricas propostas por Amland, com seus

respectivos pesos, além da métrica proposta neste trabalho. A primeira coluna desta tabela

representa o identificador de cada uma das funcionalidades testadas. O nome das

funcionalidades aparece na Tabela 4.3.

Figura 4.7 Métricas para cálculo de exposição ao risco dos requisitos.

Page 77: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

61

Os participantes desta atividade são os mesmos que realizaram a identificação dos

riscos. A escala sugerida pelo RBTProcess para os indicadores de custo e probabilidade vai de

1 até 3. Um guia é fornecido para atribuição desses indicadores de acordo com a atividade

realizada pelo participante. Para a métrica de qualidade, por exemplo, são sugeridos os

valores para os indicadores apresentados na Tabela 4.2.

Tabela 4.2 Exemplo de indicadores para a métrica de qualidade da funcionalidade.

INDICADOR DESENVOLVEDOR TESTADOR ANALISTA DE REQUISITOS

1 Não tem conhecimento das tecnologias/ferramentas utilizadas no desenvolvimento do software

Funcionalidade não apresentou defeitos nas últimas versões.

Requisito está estável

2 Tem conhecimento razoável das tecnologias/ferramentas utilizadas no desenvolvimento do software

Funcionalidade apresentou alguns defeitos nas últimas versões.

Requisito ou funcionalidade tem sofrido poucas alterações

3 Domina a tecnologias/ferramentas utilizadas no desenvolvimento do software

Funcionalidade apresentou muitos defeitos nas últimas versões.

Requisito ou funcionalidade tem sofrido muitas alterações

Priorizar Riscos

Os riscos analisados na etapa anterior são consolidados pelo Analista de Riscos, gerando a

lista de priorização dos riscos. É calculada a média dos valores de exposição ao risco

atribuídas, pelos participantes, a cada funcionalidade. Além disso, o Analista de Riscos

classifica os requisitos, definindo intervalos para o valor de exposição ao risco como

apresentado na Tabela 4.3. No RBTProcess, as funcionalidades com maior exposição ao risco

são testadas primeiro. Em seguida, são testadas as funcionalidades com prioridade média. As

funcionalidades com prioridade baixa somente são testadas se houver tempo disponível.

Tabela 4.3 Lista de priorização dos requisitos. ID. FUNCIONALIDADE REQ. DESENV. TESTE MÉDIA PRIORIDADE

FUNC01 Simulator Properties 0.35 0.64 0.96 0.65 FUNC06 Local States 0.52 0.64 1.08 0.75 FUNC08 Phenomenon-State Relation 0.68 0.78 0.96 0.81 FUNC09 Quantity Tasks 0.60 0.64 1.28 0.84

BAIXA

FUNC03 Global States 0.60 1.44 1.08 1.04 FUNC04 Blocks 0.68 1.36 1.25 1.10 FUNC05 Create Group 0.60 1.44 1.25 1.10

MÉDIA

FUNC07 Create Phenomenon 1.30 1.05 1.28 1.21 FUNC11 Search 1.30 1.72 1.30 1.44 FUNC02 Kernel Configuration 1.50 1.92 1.50 1.64 FUNC10 Group Tasks 1.92 1.65 1.64 1.74

ALTA

Page 78: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

62

4.3.3 Planejar Testes

Tem como objetivo direcionar e controlar as atividades de teste com base na avaliação de

riscos. O Gerente de Testes é o responsável pela atividade, mas ele conta com a participação

do Projetista ou Arquiteto de Testes. As atividades de planejamento são as mesmas de

qualquer processo de teste de software, porém o Gerente de Teste possui a informação de

riscos identificados e exposição ao risco para cada funcionalidade como principal entrada para

definição de escopo, recursos, cronogramas e outros. A Figura 4.8 apresenta as atividades,

responsáveis e principais artefatos produzidos e/ou consumidos.

Figura 4.8 RBTProcess: Disciplina Planejar Testes.

Definir Escopo dos Testes

Consiste na definição dos requisitos que serão testados ou não, tomando, como base, a análise

dos risco. A priorização dos requisitos é realizada a partir dos valores de exposição ao riscos.

O RBTProcess sugere que, a cada iteração, sejam testados, por exemplo, um conjunto de

requisitos de acordo com a sua prioridade. Os requisitos classificados como de baixa

prioridade somente são testados se houver tempo disponível. A Tabela 4.4 apresenta um

exemplo de definição do escopo, utilizando a informação dos riscos da Tabela 4.3 e supondo

que o Gerente tem apenas duas iterações para projetar e executar todos os testes. O Gerente

definiu que, na primeira iteração, serão testados os requisitos com alta prioridade, na segunda,

os requisitos com média prioridade e os requisitos com baixa prioridade são testados se

Page 79: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

63

houver tempo disponível. A cada iteração, esse planejamento é revisto de acordo com o

controle dos riscos.

Tabela 4.4 Definição do escopo dos teste. ESCOPO DA ITERAÇÃO NÚMERO DE RISCOS IDENTIFICADOS

FUNC10 8 FUNC02 5 FUNC11 1

Iteração I

FUNC07 1 FUNC05 7 FUNC04 0 Iteração II FUNC03 1 FUNC09 1 FUNC08 0 FUNC06 3

Caso sobre tempo

FUNC01 3

Definir Estratégia

Diversas estratégias podem ser utilizadas com base na análise dos riscos. Uma delas é, por

exemplo, a automação dos testes para os requisitos classificados como de alta prioridade.

Definir Cronograma

Também com base na análise dos riscos, os requisitos com prioridade alta serão planejados,

projetados e executados nas primeiras iterações. Os requisitos com baixa prioridade só serão

planejados, projetados e executados se houver tempo disponível.

4.3.4 Projetar Testes

Tem como objetivo identificar e descrever os casos de teste para os requisitos e riscos a serem

testados com base na análise de riscos. É nesta atividade que está o grande diferencial da

abordagem RBT, pois, além do documento de requisitos e do planejamento dos testes, o

Projetista de Teste recebe o documento de identificação dos riscos para criação dos cenários

de teste que visam mitigar os riscos identificados. Assim, como na disciplina de Planejamento

de Testes, as atividades são as mesmas, o que muda é a forma como estas serão conduzidas e

realizadas. O Analista de Riscos também participa desta atividade. A Figura 4.9 apresenta as

atividades, responsáveis e principais artefatos produzidos e/ou consumidos.

Page 80: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

64

Figura 4.9 RBTProcess: Disciplina Projetar Testes.

Definir Estratégia de Casos de Teste

Consiste na identificação dos cenários a serem testados, além da definição da abordagem e

tipo de testes que serão utilizados. Considerando a idéia do principle of diverse half-measures

explicada por Bach [Bach 2003], onde ele enfatiza que não é indicado utilizar apenas uma

abordagem de teste, ou seja, não se deve executar somente teste baseado em riscos,

principalmente, porque existe o risco de os requisitos não terem sido analisados corretamente.

Assim, o processo sugere diferentes coberturas para os requisitos, de acordo com sua

importância:

� Requisitos com baixa prioridade: testar somente os casos de teste relacionados

aos riscos, se houver tempo disponível;

� Requisitos com média prioridade: testar os casos de teste relacionados aos

riscos, testar o cenário do fluxo principal e testar possíveis fluxos alterados ou

incluídos durante a iteração;

� Requisitos com alta prioridade: testar os casos de teste relacionados aos riscos e

todos os fluxos do requisito (principal, exceção e alternativo).

Um exemplo de caso de teste criado com base na identificação e análise dos riscos

para os dados apresentados na Figura 4.10, seria criar um caso de teste para a funcionalidade

Group Tasks, incluindo e alterando Group Tasks to tipo Custom, já que este foi identificado

como um requisito incompleto ou mal especificado.

Page 81: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

65

Figura 4.10 Questionário baseado em taxonomia para a funcionalidade Group Tasks.

Especificar Caso de Teste e Descrever Procedimento de Teste

Os casos de teste que foram identificados são agora detalhados seguindo as estratégias

definidas. Para cada risco identificado, testes são criados com o propósito de mitigar os

fatores de riscos. O estilo de criação dos casos de teste para execução recomendado pelo

processo é o independente, de forma que estes possam ser executados em qualquer ordem.

Criar Pacotes de Execução

Criar pacotes para a execução contendo os casos de teste baseado em riscos, ordenados de

acordo com a priorização realizada na atividade Analisar Riscos.

4.3.5 Executar Testes

Esta é a atividade em que, de fato, os riscos são mitigados através da execução de casos de

teste baseado em riscos. Tem como objetivo executar testes e verificar a corretude do

software, avaliando os resultados e registrando os problemas encontrados. O Testador é

responsável por esta atividade e executa os testes na ordem de priorização definida pelo

Projetista de Teste. A Figura 4.11 apresenta as atividades, responsáveis e principais artefatos

produzidos e/ou consumidos.

Figura 4.11 RBTProcess: Disciplina Executar Testes.

Page 82: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

66

Configurar Ambiente de Teste

Antes do início da execução dos casos teste, deve-se configurar o ambiente para a realização

dos testes que podem necessitar, dentre outros recursos, de ferramentas específicas e de base

de dados de teste.

Executar Testes e Reportar Resultados

A principal entrada para esta atividade é a planilha de execução criada pelo Projetista de

Testes. Ao executar os testes, o testador gera os logs com o resultado, como evidência das

execuções e, quando falhas são encontradas, solicitações de mudanças são criadas. Quando

um caso de teste é executado e não apresenta nenhuma falha, para a abordagem RBT significa

que o risco associado ao requisito foi mitigado. Similarmente, um risco é mitigado quando um

caso de teste falha e o defeito encontrado é corrigido e validado.

4.3.6 Avaliar Testes

Tem como objetivo medir quantitativa e qualitativamente o progresso dos testes e produzir

um relatório de avaliação. O Projetista de Testes avalia o resultado da execução dos casos de

teste sem se preocupar com os riscos que foram mitigados. Esta atividade não sofre alterações

para o processo de teste baseado em riscos, uma vez que todo o controle a acompanhamento

dos riscos foi definido na disciplina Controlar Riscos, sob a responsabilidade do Analista de

Riscos. A Figura 4.12 apresenta as atividades, responsáveis e principais artefatos produzidos

e/ou consumidos.

Figura 4.12 RBTProcess: Disciplina Avaliar Testes.

Avaliar Estratégias

Nesta atividade, o Projetista de Testes, de acordo com os resultados, verifica se as abordagens

utilizadas foram satisfatórias.

Page 83: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

67

Avaliar Cobertura

O projetista verifica se os casos de teste executados e seus respectivos resultados alcançaram

a cobertura determinada no plano de teste.

Avaliar Resultado Geral

O Projetista de testes avalia os resultados gerados na atividade Executar Testes e cria o

relatório de resultado dos testes com número de casos de teste planejados, executados e seus

resultados. Além disso, o projetista avalia as estratégias utilizadas e a cobertura dos casos de

testes.

4.3.7 Controlar Riscos

Essa disciplina é responsável pelo acompanhamento dos riscos identificados. O Analista de

Riscos é responsável pela identificação e documentação do percentual de riscos mitigados por

funcionalidade. Além da criação do Relatório de Avaliação dos Riscos, o Analista é

responsável pela atualização do Documento de Identificação e Análise dos riscos, principal

entrada para a atividade de planejamento dos testes. O principal artefato de entrada para esta

atividade é o Relatório de Avaliação dos Testes. A Figura 4.13 apresenta as atividades,

responsáveis e principais artefatos produzidos e/ou consumidos.

Figura 4.13 RBTProcess: Disciplina Controlar Riscos.

Identificar Riscos Mitigados

Através do relatório de resultado dos testes e das solicitações de mudanças criadas, o Analista

de Riscos identifica os riscos mitigados e atualiza o documento de riscos. Além disso, o

Page 84: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

68

analista gera um relatório informando todos os riscos mitigados ou o percentual de mitigação,

criando uma nova lista de priorização dos riscos.

Avaliar Status dos Riscos e Avaliar Resultado Geral dos Riscos

O Analista de Riscos acompanha a evolução e os status dos riscos, reportando o resultado e

atualizando a lista de priorização a cada iteração.

4.4 Relacionamento dos Artefatos Os artefatos com borda pontilhada na Figura 4.14 são originados do processo de teste baseado

em riscos. Os artefatos com sombra fazem parte de processos de teste de software [IEEE 829

1998]. Os demais são alguns dos artefatos criados durante o processo de desenvolvimento de

software, de uma forma geral.

Os documentos de identificação e análise dos riscos são criados pelo Analista de

Riscos na fase de planejamento e atualizados após a execução dos testes, na fase de controle.

O plano de teste é criado, pelo Gerente, levando em consideração os riscos identificados e

analisados e o cronograma do projeto. Os procedimentos de teste contêm os passos

necessários para verificar a existência dos riscos identificados. Os testes são executados na

ordem em que aparecem na planilha de execução, ou seja, na ordem de prioridade dos

requisitos. Solicitações de mudanças são criadas para os defeitos encontrados que, quando

corrigidos, mitigam os riscos associados.

4.5 Métricas As métricas possibilitam quantificar características do processo ou do software e apóiam

atividades importantes do gerenciamento de projeto como planejamento, organização,

controle e melhorias [SMG 2001]. Assim, métricas para teste de software servem como

indicadores para o progresso das atividades de teste e podem também ser utilizadas para

melhorar práticas e atividades.

Nesta Seção, são apresentadas métricas para acompanhamento do progresso, esforço,

custo, estabilidade, qualidade e outras categorias do teste baseado em riscos utilizadas nas

atividades Avaliar Testes e Controlar Riscos do RBTProcess. As métricas estão divididas em

duas categorias:

Page 85: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

69

� Métricas para controle e medição dos casos de teste baseado em riscos,

apresentadas na Seção 4.5.1.

� Métricas para controle e medição das atividades do processo de teste de software

baseado em riscos, apresentadas na Seção 4.5.2.

Figura 4.14 RBTProcess: Relacionamento dos artefatos.

A abordagem Goal Question Metric (GQM), desenvolvida por Victor Basili [GQM

2008], foi utilizada para definição das métricas propostas no RBTProcess. GQM define um

modelo de medição em três níveis como apresentado na Figura 4.15.

Business Goals

Measurement Goals

Question

Metric

Quais são os objetivos do negócio?

O que é necessário para atingir esses objetivos?

Que questões ajudam no planejamento e controle do progresso para alcançar estes objetivos

Que medidas/métricas são necessárias para responder estas perguntas?

Nível Conceitual

Nível Operacional

Nível Quantitativo

Figura 4.15 Níveis do GQM [GQM 2008].

Page 86: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

70

No nível conceitual estão os objetivos da medição que são definidos em termos da

entidade, propósito, atributos de qualidade, ponto de vista e ambiente. No nível operacional,

cada objetivo é refinado em um conjunto de perguntas que representam uma definição

operacional desse objetivo. No nível quantitativo, para cada pergunta, métricas relevantes são

definidas.

4.5.1 Métricas para Controle e Medição de Casos de Teste baseado em Riscos

Para cada requisito ou funcionalidade do produto de software, riscos são identificados e

analisados. Depois, casos de teste são projetados para avaliar as ocorrências dos fatores de

riscos. Quando estes casos de teste são executados e falhas são observadas, os testadores

reportam o defeito para que possa ser corrigido e o risco, relacionado a esse caso de teste,

mitigado.

Amland [Amland 1999] propõe algumas métricas para o teste baseado em riscos em

seu estudo de caso de uma instituição financeira, como: número de testes planejados,

executados e completos; número de defeitos por função; número de horas utilizadas para se

testar por defeito encontrado; número de horas para corrigir um defeito, dentre outras. Além

disso, Konda [Konda 2008] apresenta um conjunto de métricas com o objetivo de medir

precisamente a remoção de defeitos que também pode ser aplicado ao teste baseado em riscos.

A Tabela 4.5 enumera métricas recomendadas para o controle e medição de casos de

teste baseado em riscos. A linha Gn contém o objetivo da medição, que é a informação que

nós queremos adquirir. A linha Qn.m é a pergunta que nos ajuda a planejar, controlar e medir

o progresso dos objetivos. Finalmente, Mn.m é a métrica que temos que coletar para

responder às questões. Exemplos de utilização das métricas são fornecidos na Seção 4.6.

4.5.2 Métricas para Controle e Medição das Atividades do Processo de Teste de Software baseado em Riscos

Esta Seção apresenta métricas que podem ser utilizadas para monitorar a situação

(progresso) das atividades de teste de software baseado em riscos. Elas são utilizadas

principalmente para encontrar gargalos e/ou problemas e melhorar as atividades. Estão

enumeradas na Tabela 4.6.

Page 87: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

71

Tabela 4.5. Métrica para casos de teste baseado em riscos. G1. Verificar se um nível aceitável de mitigação dos riscos foi atingido. Verificar se um nível aceitável de mitigação dos riscos por funcionalidade ou requisito foi atingido. Q1.1. Quantos riscos foram mitigados? M1.1 100*(Número de casos de Teste baseado em Riscos que

passaram/ Número de casos de Teste baseado em Riscos planejados) Q1.2. Quantos riscos foram mitigados por requisito ou funcionalidade?

M1.2 100*(Número de casos de Teste baseado em Riscos que passaram por requisito/Número de casos de Teste baseado em Riscos planejados por requisito)

Q1.3 Quantos riscos foram mitigados por importância?

M1.3 100*(Número de casos de Teste baseado em Riscos que passaram por importância/Número de casos de Teste baseado em Riscos planejados por importância)

G2. Verificar os requisitos mais importantes ou prioritários. Um intervalo pode ser definido a partir do valor de exposição ao risco para identificar requisitos com alta, média ou baixa prioridade. Q2.1. Qual o percentual de requisitos com prioridade alta?

M2.1 100*(Número de requisitos com exposição ao risco alta/ Número de requisitos)

G3. Saber quais as categorias de riscos que apresentam o maior número de riscos. Alguns exemplos de categorias apresentadas pelo SEI para requisitos são: estabilidade, completude e claridade e outras. Q3.1. Qual o percentual de riscos identificados por categoria?

M3.1 100*(Número de riscos por categoria/Número total de riscos)

G4. Verificar o quanto que os riscos estão diminuindo a cada iteração ou ciclo de teste. Q4.1. Quantos riscos foram encontrados por reunião e questionário baseado em taxonomia?

M4.1 100*Número de riscos identificados/Número de reuniões

G5. Verificar se o nível de redução está adequado e se justifica o uso da técnica. Caso contrário, outras técnicas mais efetivas devem ser utilizadas. Q5.1. O custo da técnica de redução está de acordo com o valor de limite?

M5.1 (Cálculo de exposição riscos antes da redução - Cálculo de exposição riscos após da redução)/Custo da redução do risco.

G6. Obter informações necessárias para o planejamento de esforços. Bastante útil, uma vez que os funcionários são pagos por hora. Q6.1. Quanto tempo foi gasto para identificar riscos utilizando o TBQ por funcionalidade?

M6.1 Tempo gasto para responder o TQB/Número de requisitos

Q6.2. Quanto tempo foi gasto para identificar riscos na reunião de brainstorm por funcionalidade?

M6.2. Duração da reunião/Número de requisitos

Q6.3. Quanto tempo foi gasto para analisar riscos por funcionalidade?

M6.3. Tempo gasto para analisar riscos/Número de requisitos

G7. Obter indicativos de qualidade do Teste baseado em Riscos. Q7.1. Qual a quantidade de defeitos encontrados por severidade?

M7.1 Número de defeitos por severidade/Número total de defeitos

G8. Obter informações sobre a eficiência do Teste baseado em Riscos. Q8.1. Qual percentual de defeitos encontrados com Teste baseado em Riscos?

M8.1 100*(Número de casos de teste que falham (porque um defeito foi encontrado)/Número de casos de teste executado)

Q8.2. Quantas solicitações de mudança são criadas por requisito / riscos?

M8.2. Número de solicitações de mudança/Número de requisitos Número de solicitações de mudança/Número de riscos

G9. Obter informações sobre defeitos que não foram capturados com Teste baseado em Riscos. Q9.1. Quantos defeitos foram encontrados por cliente/usuário utilizando teste baseado em riscos?

M9.1 Número de solicitações de mudança criadas pelo cliente/usuário por severidade

G10. Obter informações do tempo requerido para encontrar um defeito com casos de Teste baseado em Riscos. Q10.1. Qual o tempo gasto para encontrar um defeito utilizando casos de Teste baseado em Riscos?

M10.1 Total de horas gasta na execução/número de defeitos encontrados durante esse período

.

Page 88: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

72

Tabela 4.6 Métricas para atividade de teste baseado em riscos. G1. Obter o tempo médio gasto para identificar e analisar riscos por requisito (número de linhas). Q1.1. Qual o tempo médio gasto para analisar riscos por linha de requisito?

M1.1 (Soma (duração da análise de riscos de um requisito/número linhas do requisito))/ Número de requisitos

Q1.2. Qual o tempo médio gasto para identificar riscos por linha de requisito?

M1.1 (Soma (duração da identificação de riscos de um requisito/número linhas do requisito))/Número de requisitos

G2. Obter Informações de produtividade das reuniões de identificação de riscos. Q2.1. Quantos riscos são encontrados por reunião?

M2.1 Número de riscos/Número de reuniões

Q2.2. Quantos riscos são encontrados por reunião por funcionário?

M2.2 (Número de riscos/Número de reuniões)/Número de funcionários

G3. Como saber se os riscos identificados no TQB são úteis para o Teste baseado em Riscos ou pertinentes para o domínio do produto de software. Se uma quantidade grande de riscos está sendo descartada, significa que a identificação está muito abrangente e que ela precisa focar mais nos cenários do projeto para que os riscos relevantes sejam encontrados de forma mais rápida Também, se um número grande de riscos é descartado, pode indicar que os requisitos estão confusos, ambíguos ou com informações desnecessárias. Se certo tipo de risco é sempre descartado, este não deve ser identificado. Q3.1. Quantos riscos foram descartados durante a reunião de brainstorm?

M3.1 Número de riscos descartados/Número total de riscos

Q3.2. Quantos riscos foram descartados durante a reunião de brainstorm por tipo?

M3.2 Número de riscos descartados/Número total de riscos por tipo

G4. Obter Informações sobre a eficiência do cálculo de exposição ao risco. Se muitos requisitos compartilham o mesmo valor de exposição ao risco, a abordagem RBT fica sem sentido já que os requisitos não são priorizados adequadamente. Neste caso, uma métrica diferente deve utilizada para calcular a exposição ao risco. Q4.1. Qual o percentual de casos de teste que compartilham o mesmo valor de exposição aos riscos (RE)?

M4.1 100*(Número de casos de teste com o mesmo valor de RE/Número total de casos de teste)

G5. Avaliar se os riscos identificados são úteis para criação dos casos de testes. Q5.1.Qual o percentual de casos de teste que foram projetados com os riscos identificados?

M5.1 100*(Número de riscos utilizados para projetar casos de teste/Número de riscos identificados

4.6 Avaliação do Modelo de Processo O RBTProcess foi avaliado através de simulações de uso do processo e estudo de caso. A

simulação consiste na execução das atividades do RBTProcess e na produção dos artefatos

com dados de projetos de desenvolvimento de software já concluídos ou fictícios.

Quatro simulações foram realizadas com o objetivo de validar e ajustar atividades,

artefatos, papéis, guias e métricas do processo e também coletar o tempo gasto para as

atividades de identificação e análise dos riscos técnicos associados aos requisitos.

O estudo de caso foi realizado com o objetivo de avaliar a hipótese de que o teste

baseado em risco, através do RBTProcess, encontra os defeitos de forma mais rápida do que

outros tipos de teste apresentados no Capítulo 2.

Page 89: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

73

4.6.1 Simulações Realizadas pela Autora

Foram utilizados documentos de dois projetos de manutenção evolutiva de uma grande

empresa de informática que possui equipe de teste independente. Cada projeto é responsável

pela manutenção de um módulo do mesmo software. Para a simulação, foram necessários os

documentos de requisitos do sistema, o plano do projeto e o número de defeitos encontrados

nas últimas duas versões do software, com o intuito de avaliar a estabilidade e qualidade das

funcionalidades.

O primeiro projeto contém o módulo formado por aproximadamente vinte requisitos,

enquanto que o segundo contém o módulo formando por apenas seis requisitos. A simulação

foi realizada somente pela autora e os projetos de manutenções evolutivas já haviam sido

concluídos.

Resultados Obtidos

A atividade de identificação dos riscos se mostrou totalmente viável para o segundo projeto,

enquanto que, para o primeiro, se mostrou um gargalo, preenchendo a maior parte do tempo,

pois foi necessária a releitura de todos os documentos de requisito para responder, com mais

confiança, o questionário baseado em taxonomia de riscos. Isso reforça a necessidade de

automação desta atividade, principalmente para grandes projetos.

A atividade de análise de riscos foi realizada sem problemas e de forma rápida para

ambos os projetos. As métricas de custo foram identificadas a partir do documento de

requisitos que continha informações sobre a importância e prioridade do requisito para o

cliente. Os valores para as métricas de probabilidade (nova funcionalidade, tamanho e

complexidade) foram extraídas do plano de projeto que informava se a funcionalidade a ser

desenvolvida era nova, seu tamanho e esforço. A empresa realiza análise por ponto de função,

que pode ser utilizada para determinar a complexidade e o tamanho das funcionalidades. A

métrica Projeto/Qualidade (Tabela 3.5) foi definida de acordo com o número de falhas

encontradas por requisito nas duas últimas versões do software.

Em projetos de manutenção evolutiva, as empresas, sempre que possível, testam,

primeiramente, as funcionalidades incluídas e alteradas e, quando há tempo disponível,

realizam testes de regressão nas demais funcionalidades. Ao concluir esta atividade, foi

identificado que a fórmula proposta por Amland [Amland 1999] e explicada na Seção 3.2.2

não se adéqua a este cenário. Quando uma funcionalidade é nova, se os valores de custo para

o cliente e o vendedor, ou seja, o impacto desta funcionalidade for baixa, esta, muito

possivelmente, não será testada no RBTProcess, pois o seu cálculo de exposição ao risco

Page 90: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

74

resultará em um valor muito baixo. Além disso, esta fórmula não considera o impacto de

alterações em uma funcionalidade nas demais. Como exemplo, tivemos uma funcionalidade

que sofreu alteração e foi classificada como de baixa prioridade, porém uma falha nessa

funcionalidade impediria o usuário de realizar, pelo menos, cinqüenta por cento das operações

disponíveis pelo software.

Para resolver este problema, o RBTProcess sugere que, para os casos em que o

desenvolvimento é de manutenções corretivas ou evolutivas, os fluxos ou cenários do

requisitos que foram incluídos ou alterados devem ser testados nas primeiras iterações,

independente do resultado da análise dos riscos. Também, uma nova métrica foi proposta para

tratar do problema de dependência entre as funcionalidades.

A atividade de planejamento dos testes foi realizada seguindo as definições propostas

no processo e explicadas na Seção 4.3.3. Os requisitos a serem testados são os que foram

classificados como de alta e média prioridade. Os requisitos classificados como de baixa

prioridade não fizeram parte do planejamento. Foi também elaborado um cronograma

tomando como base a análise dos riscos.

Na atividade de projeto de teste, foram identificados os testes apenas para a primeira

iteração definida no plano de testes. A estratégia para identificação dos testes utilizada foi a

descrita na Seção 4.3.4 e resultou num conjunto menor de casos de teste. Os riscos

identificados no questionário baseado em taxonomia não foram muito úteis para a criação dos

casos de teste. Para alguns riscos, ficou difícil imaginar cenários que garantissem a mitigação

dos mesmos. Como possível solução, o questionário baseado em taxonomia de riscos foi

revisado e algumas perguntas foram excluídas.

A atividade de execução dos testes não foi realizada, pois não foram criados os

procedimentos de teste.

Para simulação das atividades de avaliação e controle dos testes foram utilizados

dados fictícios e foi percebido que o documento de identificação e análise dos riscos não

guardava o histórico dos riscos mitigados na iteração anterior, uma informação importante

para avaliar a qualidade e evolução do software.

Considerações e Dificuldades Encontradas

Além dos problemas relatados em cada um dos conjuntos de trabalho, não foi possível avaliar

o impacto das atividades durante o desenvolvimento das funcionalidades - onde os requisitos

podem sofrer mudanças - pois ambas as simulações foram realizadas com projetos já

concluídos. Também, como a simulação foi realizada pela autora, que tem todas as atividades

Page 91: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

75

do processo em mente, não foi possível afirmar a qualidade dos artefatos e a descrição do

processo.

Concluímos que, antes de partir para um estudo de caso, onde seriam avaliados, por

exemplo, tempo de realização das atividades e qualidade do produto final, se faz necessária a

simulação do processo por outra pessoa, que não a autora. Também, é importante validar o

processo para projetos de desenvolvimento de software em andamento.

4.6.2 Simulações Realizadas por Engenheiro de Teste com Experiência em Teste de Software

A versão utilizada nesta simulação inclui a correção dos problemas identificados na simulação

realizada pela autora. As características desta simulação foram similares às da simulação

realizada pela autora. O engenheiro de teste utilizou os documentos do módulo formado por

aproximadamente vinte requisitos. O processo foi instanciado e o engenheiro dividiu a

execução do processo em duas iterações: (i) a primeira contendo os requisitos novos ou

alterados e a (ii) segunda contendo os requisitos que não sofreram alterações, com o intuito de

realizar testes de regressão. A simulação também foi realizada quando o projeto de

manutenção evolutiva já havia sido concluído.

Resultados Obtidos

O engenheiro de teste apresentou dificuldades já no momento da instanciação do modelo de

processo, pois ele não sabia de onde extrair, nos documentos do software, as informações

necessárias para a identificação e análise dos riscos, indicando a necessidade de um guia para

instanciação do RBTProcess.

O engenheiro precisou estudar todos os documentos de requisitos e regras de negócio

do sistema para conhecer as funcionalidades, o que tomou um tempo considerável. Diante

dessa situação, o engenheiro sugeriu que as atividades de identificação e análise ocorressem

imediatamente após a revisão dos requisitos a serem desenvolvidos, mantidos ou evoluídos,

pois os participantes estão com praticamente todas as informações das funcionalidades em

mente.

Com relação ao questionário baseado em taxonomia fornecido pelo processo, o

engenheiro identificou que algumas perguntas não estavam claras e necessitavam ser

revisadas. Além disso, sugeriu a remoção de questões que aparentemente estavam repetidas e

questões que necessitavam da participação do cliente, por não serem viáveis para a maioria

Page 92: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

76

dos projetos. Ele apresentou dificuldade para responder as questões não objetivas do

questionário, entretanto, estas foram essenciais para a etapa de criação dos casos de teste.

Com relação à análise dos riscos, para a primeira iteração, a métrica de nova

funcionalidade apresentou um único valor para todos os requisitos, indicando necessidade de

revisão do guia.

Considerações e Dificuldades Encontradas

Apesar de o engenheiro de testes não ter tido tempo para simular as atividades do processo de

teste de software, suas considerações se transformaram em melhorias no questionário baseado

em taxonomia, nas métricas de análise dos riscos, na forma e momento de execução das

atividades de identificação e análise e na criação de guia para instanciação do modelo de

processo.

Também não foi possível avaliar o impacto das atividades durante o desenvolvimento

das funcionalidades ou requisitos.

4.6.3 Simulações Realizadas para Avaliar Métricas e Coletar Tempo de Atividades de Identificação e Análise de Riscos

A versão utilizada nesta simulação inclui a correção dos problemas identificados na simulação

realizada pela autora e pelo engenheiro de testes. Esta simulação foi realizada com o propósito

de avaliar as métricas propostas no processo e coletar os tempos para identificação e análise

dos riscos. Três estudantes do curso de Engenharia da Computação, com conhecimentos

básicos de teste de software participaram como voluntários, realizando as atividades do

modelo de processo e coletando o tempo gasto em cada uma delas. Eles receberam

treinamento do RBTProcess e tiveram um tempo para ler o documento de requisitos do

software, o plano de projeto fictício e o histórico de defeitos reportados por funcionalidade,

também fictícios.

O documento de requisitos utilizado foi o do sistema Health-Watcher, definido por

[Soares 2002], que é um sistema de informações disponibilizado via web que oferece aos

usuários serviços relacionados ao sistema público de saúde, como o suporte ao registro de

reclamações e guia de saúde para o usuário. O documento contém nove requisitos funcionais e

nove requisitos não funcionais. Para esta simulação foram utilizados os requisitos funcionais.

Page 93: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

77

Resultados Obtidos

Para a identificação dos riscos, foi utilizado um questionário baseado em taxonomia de riscos

com oito perguntas relacionadas a quatro categorias de riscos de requisito. A Tabela 4.7

apresenta os valores de algumas métricas que podem ser obtidos com a realização desta

atividade. A métrica M3.1 indica que 45% dos riscos identificados referem-se à estabilidade

do sistema. M1.1 indica que os voluntários gastaram 6.35 minutos para identificar riscos de

requisitos com, aproximadamente, quarenta linhas. Vinte e quatro riscos foram identificados

na reunião de brainstorm (M2.1) e oito riscos foram identificados por participante (M2.2).

Tabela 4.7 Métricas da atividade de identificação de riscos. CASOS DE TESTE BASEADO EM RISCOS M3.1 Estabilidade: 11 / 24 = 45%

Completude: 7 / 24 = 29% Claridade: 3 / 24 = 12% Validade: 3 / 24 = 12%

ATIVIDADES DO TESTE BASEADO EM RISCOS M1.1 6.35 minutos por requisito com ≅ 40 linhas. M2.1 24 riscos por reunião M2.2 24 / 3 (voluntários) = 8 riscos

Para a análise dos riscos, os voluntários forneceram valores para as métricas propostas

na equação de Amland [Amland 1999] e adaptada neste processo. A Tabela 4.8 apresenta a

exposição ao risco das funcionalidades analisadas.

Tabela 4.8 Cálculo de exposição ao risco para o sistema Health-Watcher. REQUISITO/FUNCIONALIDADE EXPOSIÇÃO AO RISCO (RE) PRIORIDADE FR14. Update employee 0.75 Baixa FR13. Register new employee 0.83 Baixa FR10. Login 1.00 Média FR16. Change logged employee 1.00 Média FR11. Register tables 1.07 Média FR02. Specify complaint 1.13 Média FR12. Update complaint 1.13 Média FR15. Update health unit 1.19 Alta FR01. Query information 1.40 Alta

A Tabela 4.9 apresenta os valores de algumas métricas obtidos com a realização desta

atividade. A métrica M6.3 indica que os voluntários gastaram menos que 2.5 minutos para

analisar cada funcionalidade. A métrica M4.1 indica um percentual baixo de funcionalidades

com o mesmo valor de exposição ao risco (RE), indicando que a análise realizada é suficiente

para priorização das funcionalidades.

Tabela 4.9 Métricas da atividade de análise de riscos. CASOS DE TESTE BASEADO EM RISCOS M6.3 < 2.5 minutos por requisito ATIVIDADES DO TESTE BASEADO EM RISCOS M4.1 2 / 9 = 22 %

Page 94: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

78

As informações resultantes destas atividades são os principais insumos para o

planejamento dos testes. A definição de prioridade para as funcionalidades auxilia o Gerente

de Testes a decidir quando, quais e como as funcionalidades serão testadas. A Tabela 4.10

apresenta os resultados para o projeto de casos de teste funcionais e baseado em riscos,

utilizando a estratégia proposta pelo RBTProcess na Seção 4.3.4 e assumindo que:

� Para cada risco identificado, um caso de teste baseado em riscos foi projetado;

� Para cada um dos requisitos foi criado um teste funcional para o fluxo principal;

� Para requisitos com baixa prioridade, foram executados apenas casos de teste

baseado em riscos;

Tabela 4.10 Número de casos de teste por funcionalidade. FUNC. PRIORIDADE NÚMERO

DE FLUXOS

NÚMERO DE CASOS DE TESTE BASEADO EM RISCOS

NÚMERO DE CASOS DE TESTE PROPOSTOS PELO RBTProcess

FR01 Alta 5 1 5 (fluxo) + 1 (risco) = 6 FR15 Alta 6 1 6 (fluxo) + 1 (risco) = 7 FR02 Média 6 5 1(fluxo principal) + 5 (riscos) = 6 FR12 Média 6 4 1(fluxo principal) + 4 (riscos) = 5 FR11 Média 1 4 1(fluxo principal) + 4 (riscos) = 5 FR10 Média 5 4 1(fluxo principal) + 4 (riscos) = 5 FR16 Média 1 3 1(fluxo principal) + 3 (riscos) = 4 FR13 Baixa 7 0 0 (riscos) FR14 Baixa 1 0 0 (riscos) TOTAL 38 22 38

As Tabelas 4.11 e 4.12 apresentam valores fictícios para exemplificar o uso das

métricas extraídas das atividades de execução de casos de teste e controle dos riscos. As

métricas M1.1 e M1.2 apresentam o percentual de execução dos casos de teste baseado em

riscos. A métrica M7.1 indica um número alto de defeitos com severidade muito alta. M8.1

indica a efetividade dos testes baseado em riscos e M8.2 a concentração dos defeitos

reportados.

Tabela 4.11 Resultado da execução dos casos teste baseado em riscos. FUNC. NÚM. DE CASOS

DE TESTE BASEADO EM RISCOS PLANEJADOS

NÚM. DE CASOS DE TESTE BASEADO EM RISCOS EXECUTADOS

NÚM. DE CASOS DE TESTE QUE PASSARAM

NÚM. DE DEFEITOS ENCONTRADOS

FR01 1 1 0 1 FR15 1 1 0 1 FR02 5 5 3 3 FR12 4 4 2 1 FR11 4 0 0 0 FR10 4 0 0 0 FR16 3 0 0 0 FR13 2 0 0 0 TOTAL 24 11 5 6

Page 95: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

79

Tabela 4.12 Métricas da atividade de análise de riscos. CASOS DE TESTE BASEADO EM RISCOS M1.1 11 / 24 = 45 % Executado M1.2 FR01. 100 % Executado

FR15. 100 % Executado M7.1 Severidade:

Muito Alta. 40%, Alta. 20%, Média. 10% Baixa. 25%, Muito Baixa. 5 %

M8.1 06 / 11 = 54 % M8.2 FR01. 1 � 16%

FR15. 1 � 16% FR02. 2 � 50% FR12. 2 � 16%

Resultados Obtidos

A grande maioria das métricas propostas pôde ser validada com a simulação realizada. Os

tempos coletados para atividades de identificação e análise foram relativamente baixos, como

já era esperado, indicando a viabilidade do uso do RBTProcess.

A métrica de número de casos de teste não foi considerada uma boa métrica, pois este

número dependente da forma de escrita dos casos de teste, ou seja, pode-se escrever um caso

de teste que cubra unicamente um cenário, assim como se pode escrever um caso de teste que

cobre mais de um cenário. Para o teste baseado em risco, a métrica que coleta o número de

defeitos encontrados num determinado tempo aplica-se melhor, pois a idéia da abordagem é

explorar, primeiro, as funcionalidades mais críticas, com o objetivo de encontrar defeitos,

com maior severidade, mais cedo.

4.6.4 Estudo de Caso

A versão do RBTProcess utilizada neste estudo de caso contém a correção dos problemas

identificados durante as quatro simulações apresentadas anteriormente. A Figura 4.16

apresenta uma visão geral dos passos executados para a realização do estudo de caso.

� Passo 1: toda equipe do experimento participou de treinamentos sobre conceitos

básicos de teste de software e sobre o RBTProcess. Após este treinamento, o

Gerente de Teste, juntamente com o Gerente de Projeto da equipe da ferramenta

em teste (MPhyScas) fizeram a instanciação do processo, criaram o questionário

baseado em taxonomia de riscos e definiram os papéis da equipe.

Page 96: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

80

Projeto dos Testes

Treinamento da ferramenta

MPhyScas

(2) Identificação

de Riscos (3)

Análise dos Riscos

(4) Planejamento dos Testes

(5)

(6)

Avaliação dos Testes e Controle

dos Riscos

(8)

Treinamento sobre conceitos básicos de teste e RBTProcess

(1)

Execução dos Testes (7)

Casos de Teste baseado em Riscos

Casos de Teste Não baseado em Riscos

Baseado Em Riscos

Não baseado em Riscos

Abordagem Híbrida

Cycle 1

Não baseado em Riscos

Abordagem Híbrida

Baseado Em Riscos

Cycle 2

Figura 4.16 Visão geral do fluxo de execução do estudo de caso.

� Passo 2: a equipe de teste particiou de um treinamento sobre a ferramenta

MPhyScas, que será explicada a seguir.

� Passo 3: após a reunião de validação dos requisitos a serem desenvolvidos, a

equipe MPhyScas executou a atividade de identificação de riscos do RBTProcess.

Ao final, o Analista de Riscos sumarizou os dados de todos os participantes,

removendo insconsistênias e produzindo o documento de identificação de riscos.

� Passo 4: após a identificação dos riscos, a equipe da ferramenta MPhyScas

forneceu valores para as métricas apresentadas na Seção 4.3.2, com o objetivo de

definir o valor do cálculo de exposição ao risco para cada uma das

funcionalidades.

� Passo 5: a partir do valor de exposição ao risco, o Gerente de Teste definiu a

quantidade de casos teste necessária para mitigar os riscos identificados, bem

como a ordem e a suíte de execução dos testes.

� Passo 6: dois tipos de casos de teste foram projetados neste estudo de caso:

Page 97: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

81

o Teste baseado em riscos: o Projetista de Teste projetou casos de teste

baseado em riscos para cada um dos riscos identificados, de acordo com o

que foi apresentado na Seção 4.3.4.

o Teste não baseado em riscos: um membro da equipe da ferramenta

MPhyScas, com treinamento intermediário sobre teste de software,

projetou um caso de teste para cada uma das funcionalidade da ferramenta.

� Passo 7: na execução, foram definidos dois ciclos de execução e três grupos de

testadores que executaram abordagens diferentes de teste em cada um dos ciclos.

Três abordagens de execução foram definidas:

o Abordagem baseada em risco (Riscos): casos de teste baseado em riscos

foram executados na ordem do valor do cálculo de exposição ao risco,

seguindo as atividades do RBTProcess.

o Abordagem não baseada em risco (Funcional): casos de teste funcional

foram executados na ordem de utilização do software definida pelo usuário.

o Abordagem híbrida (Funcional RE): casos de teste funcionais foram

executados na ordem do valor do cálculo de exposição ao risco.

� Passo 8: depois da execução dos casos de teste, os Analista de Riscos e o Gerente

de Projeto analisaram os resultados, removendo inconsistências, defeitos dulicados

e falso defeitos, sumarizando o resultado.

Nas subseções a seguir, são fornecidas as características e os resultados obtidos com a

execução do estudo de caso, de forma detalhada.

Característica

O RBTProcess foi aplicado no desenvolvimento da ferramenta Multi-Physics and Multi-

Scales Solver Environment (MPhyScaS), que é um ambiente para o desenvolvimento

automático de simuladores multi-físicos baseados no Método do Elemento Finito (FEM)

[MPhyScas 2007]. A ferramenta MPhyScas tem como motivação:

� Potencializar o reuso de algoritmos e componentes de software em geral já

implementados e validados.

� Manter componentes de software em uma base de dados única para fácil

localização.

� Automatizar tarefas repetitivas na construção de simuladores.

A ferramenta MPhyScaS está sendo desenvolvida pelo Departamento de Sistema e

Computação da Universidade de Pernambuco (UPE), em parceria com o Departamento de

Page 98: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

82

Engenharia Mecânica da Universidade Federal de Pernambuco (UFPE) com o apoio do Finep,

Cenpes/Petrobras e CNPq. A equipe conta com sete pessoas, duas contratadas recentemente,

trabalhando no desenvolvimento da ferramenta.

O objetivo deste estudo de caso foi avaliar a hipótese de que a abordagem de teste

baseado em risco, definida no RBTProcess, encontra mais rapidamente os defeitos mais

importantes. Para isto, o processo foi instanciado para a realidade do projeto e voluntários

participaram da atividade de execução dos testes, realizando três diferentes abordagens de

teste, apresentadas na Figura 4.16.

A ferramenta MPhyScas está dividida em quatro módulos: (i) repositório de

componentes de software científicos; (ii) interface para modelagem e geração de simuladores;

(iii) interface para entrada de dados e execução de simulação; (iv) framework de simulação.

O módulo de interface para modelagem e geração de simuladores foi testado através do

RBTProcess.

Os papéis definidos e utilizados no RBTProcess foram organizados da seguinte forma:

� Analista de Riscos: autora.

� Gerente de Teste: autora.

� Projetista de Teste: autora e um membro da equipe MPhyScaS.

� Testadores: cinco voluntários, estudantes do curso de Engenharia da Computação

� Gerente de Projeto: membro da equipe MPhyScaS.

� Analista de Sistema: quatro membros da equipe MPhyScaS. Um dos membros da

equipe não participou, pois havia integrado o grupo há pouco tempo.

� Analista de Requisito: este e outros papéis não existem na equipe MPhyScaS,

pois todos realizam todas as etapas de desenvolvimento, inclusive a de teste.

A Tabela 4.13 apresenta as atividades necessárias para a realização do estudo de caso,

destacando os participantes e o momento em que cada uma delas foi executada. Ao final de

cada atividade, os participantes responderam questionários, informando as dificuldades

encontradas e oportunidades de melhoria. Os participantes receberam treinamento sobre os

conceitos básicos de teste de software, sobre o RBTProcess e sobre a ferramenta MPhyScaS.

A Tabela 4.14 apresenta as atividades do RBTProcess realizadas no estudo de caso

com seus respectivos responsáveis e participantes. A equipe MPhyScaS participou das

atividades de identificação e análise dos riscos, que não levaram mais que duas horas para

serem concluídas. A reunião de Brainstorm não foi realizada, por falta de tempo e as dúvidas

e conflitos resultantes da identificação foram resolvidos pelo Gerente de Projeto da equipe.

Page 99: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

83

As atividades do processo de teste foram realizadas pela autora, por falta de recurso

humano, com exceção da atividade de execução dos testes, que foi realizada pelos voluntários

e a atividade de projeto dos casos de teste funcionais que foi realizada por um membro da

equipe MPhyScaS.

Tabela 4.13 Atividades de preparação para realização do estudo de caso. ATIVIDADES RESPON-

SÁVEL PARTICI- PANTES

OBSERVAÇÕES

Treinamento RBT Process

� Apresentar RBTProcess

� Apresentar página do RBTProcess

Gerente de Teste

Gerente do Projeto, Analista de Sistemas, Gerente de Testes, Projetista de Testes, Testadores

� Duração de 1 hora � Ocorreu antes do início da

iteração � Com exceção do Gerente, a

equipe MPhyScaS não pôde participar desta atividade, por conta da incompatibilidade de horários.

Instanciação do Modelo de Processo

� Definir atividades, artefatos e papéis do processo

� Identificar recursos necessários

Analista de Riscos

Gerente do Projeto

� Duração de 2 horas � Ocorreu durante o

planejamento da iteração

Treinamento sobre o MPhyScaS

Gerente do Projeto

Analista de Riscos, Gerente de Testes, Projetista de Testes, Testadores

� Duração de 1 hora

Treinamento Teste de Software

� Registro de resultado dos testes

� Registro de Solicitações de mudança

� Apresentação dos templates

Gerente de Testes

Testadores � Duração 1 hora

Tabela 4.14 Atividades do RBTProcess.

ATIVIDADES RESPON- SÁVEL

PARTICI- PANTES

OBSERVAÇÕES

Revisar Fontes e Categoria dos Riscos

Analista de Riscos

Gerente do Projeto

� Duração de 1h � Questionário foi adaptado

para o projeto de acordo com as funcionalidades a serem testadas

Atividade Identificar Riscos

Responder Questionário

Analista de Riscos

Gerente do Projeto, Analista de Sistemas, Gerente de Testes, Projetista de Testes,

� Durou menos que uma hora por pessoas

� Não ocorreu após a reunião de revisão

� O questionário foi respondido no final do desenvolvimento

� Apenas equipe MPhyScaS

Page 100: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

84

Testadores respondeu ao questionário Realizar Reunião de Brainstorm

Analista de Riscos

Gerente do Projeto, Analista de Sistemas, Gerente de Testes, Projetista de Testes, Testadores

� Não houve tempo para realizar essa reunião, pois a equipe estava concluindo o desenvolvimento

� Analista levou em torno de 2 horas para consolidar os dados e remover ambigüidades com a ajuda do Gerente

Calcular Exposição aos Riscos

Analista de Riscos

Gerente do Projeto, Analista de Sistemas, Gerente de Testes, Projetista de Testes, Testadores

� Durou menos que uma hora por pessoa

� Apenas equipe MPhyScaS informou valores para as métricas

Atividade Analisar Riscos

Priorizar Riscos/Requisitos

Analista de Riscos

� Durou em torno de 2h para consolidar os dados e criar o relatório com as métricas para equipe

Atividade Planejar Testes

Gerente de Testes

Gerente do Projeto

� O tempo desta atividade não foi coletado

� Não houve tempo para produzir todos os artefatos, pois a ferramenta MPhyScaS necessitava ser entregue aos clientes

Atividade Projetar Testes

Projetista de Testes

Gerente do Projeto, Gerente de Testes, Analista de Riscos

� O tempo desta atividade não foi coletado

� Um membro da equipe MPhyScaS projetou os casos de teste funcionais

Atividade Executar Testes

Executar Testes e Reportar Resultados

Testadores Testadores � Os testes foram executados em dois encontros com duração média de 1,5 horas

� Cada testador executou duas diferentes abordagens de teste

Atividade Avaliar Testes

Avaliar Resultado Geral

Projetista de Testes

� O tempo desta atividade não foi coletado

� Foi elaborado relatório com o resultado dos testes para cada abordagem

Atividade Controlar Riscos

Avaliar Resultado Geral dos Riscos

Analista de Riscos

� O tempo desta atividade não foi coletado

� Foi atualizado o documento de priorização dos riscos

Resultados Obtidos

Os resultados apresentados a seguir foram extraídos dos relatórios produzidos para equipe

MPhyScaS, para cada atividade do RBTProcess realizada.

Page 101: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

85

A Tabela 4.15 apresenta os tempos gastos para identificação dos riscos utilizando o

questionário baseado em taxonomia. O tempo foi ainda menor que o do sistema Health-

Watcher e isso se deve ao fato de que os membros da equipe MPhyScaS têm bastante

conhecimento sobre os requisitos, não necessitando a leitura da documentação.

Tabela 4.15 Tempo gasto na atividade de identificação de riscos. TEMPO PARA IDENTIFICAR RISCOS POR FUNCIONALIDADE 2.41 Tempo médio gasto para responder todas as perguntas do questionário para uma funcionalidade em minutos

TEMPO PARA IDENTIFICAR RISCOS POR PESSOA 26.51 Tempo médio para responder todas as perguntas do questionário para todas as funcionalidades em minutos 2.41 x 11 (número de funcionalidades)

TEMPO TOTAL PARA IDENTIFICAR RISCOS 106

Tempo gasto por todas as pessoas da equipe na identificação de riscos em minutos 26.51 x 4 (pessoas)

As Tabelas 4.16 e 4.17 apresentam, respectivamente, a concentração dos riscos por

tipo e por funcionalidade e os tempos gastos para análise dos riscos.

Tabela 4.16 Características dos riscos identificados. QUANTIDADE DE RISCOS IDENTIFICADOS 49 Quantidade de riscos identificados por toda equipe QUANTIDADE DE RISCOS DIFERENTES IDENTIFICADOS 30 Quantidade de riscos diferentes identificados por toda equipe 49 - 19 (riscos repetidos) QUANTIDADE DE RISCOS DIFERENTES IDENTIFICADOS POR FUNCIONALIDADE 30 Quantidade de riscos diferentes identificados por funcionalidade FUNC01-Simulator Properties 3 FUNC02-Kernel Configuration 3 FUNC03-Global States 0 FUNC04-Blocks 1 FUNC05-Create Group 1 FUNC06-Local States 0 FUNC07-Create Phenomenon 7 FUNC08-Phenomenon-State Relation 1 FUNC09-Quantity Tasks 1 FUNC10-Group Tasks 5 FUNC11-Search 8 QUANTIDADE DE RISCOS IDENTIFICADOS POR PESSOA 7.5 Quantidade de riscos diferentes identificados por toda equipe QUANTIDADE DE RISCOS IDENTIFICADOS POR TIPO 30 Stability 2 Completeness 11 Validity 8 Feasibility 2 Clarity 1 Feasibility 6

. É interessante notar que nem sempre as funcionalidades que apresentam mais riscos

são as mais importantes, este comportamento foi também observado na simulação com o

sistema Health-Watcher. As funcionalidades classificadas como de alta prioridade levam em

Page 102: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

86

conta o impacto de falhas no software em produção. Assim, apesar de uma funcionalidade ser

classificada como muito importante para software ela pode não possui um risco alto, porque

está muito bem especificada, com requisito estável ou não vem apresentado falhas durante

utilização. Este, de fato, é o objetivo do teste baseado em riscos: identificar funcionalidades

que são igualmente importantes e que possuem alta probabilidade de apresentar falhas. Além

disto, a análise indicou um problema de completude dos requisitos, que foi, posteriormente,

confirmado pela equipe, por conta da ausência de documento de requisitos. O tempo gasto

para análise dos riscos foi muito pequeno, confirmando a viabilidade de utilização desta

atividade no processo de teste de software.

Tabela 4.17 Tempo gasto para análise dos riscos. TEMPO PARA ANALISAR RISCOS POR FUNCIONALIDADE 1.05 Tempo médio gasto para informar valores para as métricas de análise para uma funcionalidade em minutos

TEMPO PARA ANALISAR RISCOS POR PESSOA 11.55 Tempo médio para informar valores para as métricas de análise para todas as funcionalidades em minutos 1.05 x 11 (número de funcionalidades)

TEMPO TOTAL PARA ANALISAR 46.2 Tempo gasto por todas as pessoas da equipe na análise de riscos em minutos 11.55 x 4 (pessoas)

A Tabela 4.18 apresenta os valores de exposição ao risco para o sistema MPhyScaS.

O planejamento e o projeto seguiram as definições do RBTProcess e foram criados casos de

teste para as funcionalidades classificadas com prioridade alta e média. Para as

funcionalidades com baixa prioridade, só foram criados casos de teste para as que tiveram

algum risco identificado. Os casos de teste baseado em riscos foram executado na ordem de

exposição ao risco, do maior para o menor valor.

Tabela 4.18 Valores de exposição ao risco das funcionalidades do MPhyScaS.

CÁLCULO DE EXPOSIÇÃO AO RISCO FUNC10-Group Tasks 1.74 FUNC02-Kernel Configuration 1.64 FUNC11-Search 1.44 FUNC07-Create Phenomenon 1.21 FUNC04-Blocks 1.10 FUNC05-Create Group 1.10 FUNC03-Global States 1.04 FUNC09-Quantity Tasks 0.84 FUNC08-Phenomenon-State Relation 0.81 FUNC06-Local States 0.75 FUNC01-Simulator Properties 0.65

Page 103: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

87

A Tabela 4.19 apresenta o resultado da execução dos casos de teste funcionais, casos

de teste baseado em riscos e casos de teste funcionais executados seguindo a ordem de

exposição ao risco (RE).

Foram realizados dois ciclos de execução com duração média de 1,5 horas. Sendo que,

para o primeiro ciclo, os testadores gastaram trinta minutos utilizando a ferramenta

MPhyScaS e esclarecendo dúvidas. Cada testador executou uma abordagem de teste diferente

por ciclo, ou seja, um mesmo testador executou duas abordagens diferentes o que pode ter

influenciado no resultado.

Entretanto, é sabido que alguns testadores encontram mais defeitos que outros, mesmo

quando executando o mesmo conjunto de teste, o que também acaba influenciando o resultado

de uma determinada abordagem. Assim, quando um testador executa abordagens diferentes de

teste, o resultado fica melhor balanceado. Como exemplo, neste estudo de caso, um testador

reportou 8 defeitos, equanto que um outro testador, que executou o mesmo conjunto de casos

de teste, reportou apenas 1 defeito. Se o primeiro testador tivesse executado apenas uma

abordagem de teste, esta abordagem acabaria tendo um resultado melhor, por conta da

habilidade do testeador.

Pode-se perceber um número considerável de defeitos encontrados utilizando a

abordagem baseada em riscos. Um ponto que merece destaque é que, apenas mudando a

ordem de execução, os testes funcionais (RE) encontraram o dobro de defeitos da abordagem

Funcional, onde os testes foram executados na ordem de utilização definida pelo usuário.

Além disso, a abordagem baseada em riscos encontrou um maior número de defeitos

com alta severidade que as demais abordagens.

A Tabela 4.20 apresenta a concentração de defeitos por caso de teste executado. A

abordagem Funcional concentrou a maioria dos defeitos nos últimos casos de teste, enquanto

que nas demais, os defeitos se concentraram nos primeiros casos de teste. É interessante

destacar que o caso de teste funcional número 11 explora a mesma funcionalidade do caso de

baseado em risco número 1.

A Tabela 4.21 complementa a informação da Tabela 4.20, onde a abordagem

funcional concentrou a maioria dos defeitos após 30 minutos de execução dos testes. A

abordagem baseada em riscos concentrou um maior número de defeitos antes dos 30 minutos

de execução.

Page 104: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

88

Tabela 4.19 Número e severidade dos defeitos encontrados por abordagem. SEVERI-

DADE TESTADOR CICLO ABORDAGEM QTD. CASOS

DE TESTE EXECUTADOS

QTD. DEFEITOS

REPORTADOS A M B

Testador 1 Ciclo 1 Funcional 7 2 2 Testador 3 Ciclo 2 Funcional 11 4 4 Testador 4 Ciclo 1 Funcional 11 1 1

TOTAL 29 7 1 6

Testador 2 Ciclo 1 Riscos 1 4 2 1 1 Testador 3 Ciclo 1 Riscos 2 4 1 2 1 Testador 5 Ciclo 2 Riscos 4 10 4 4 2

TOTAL 7 18 7 7 4

Testador 5 Ciclo 1 Funcional (RE) 4 8 2 5 1 Testador 1 Ciclo 2 Funcional (RE) 10 1 1 Testador 4 Ciclo 2 Funcional (RE) 10 4 2 2

TOTAL 24 13 4 7 2

Tabela 4.20 Concentração dos defeitos por caso de teste. TESTADOR CICLO ABORDAGEM 1

3

4

5

6

7

8

9

10

11

Testador 3 Ciclo 2 Funcional 1 1 1 1 Testador 1 Ciclo 1 Funcional 1 1 Testador 4 Ciclo 1 Funcional 1

TOTAL 7 1 1 1 1 1 2

Testador 5 Ciclo 2 Riscos 8 2 Testador 2 Ciclo 1 Riscos 4 Testador 3 Ciclo 1 Riscos 4

TOTAL 18 16 2

Testador 4 Ciclo 2 Funcional (RE) 2 1 1 Testador 5 Ciclo 1 Funcional (RE) 2 3 3 Testador 1 Ciclo 2 Funcional (RE) 1

TOTAL 13 4 3 1 3 1 1

Tabela 4.21 Concentração dos defeitos por tempo de execução. TESTADOR CICLO ABORDAGEM

10min 20min

30min

40min

50min

Testador 3 Ciclo 2 Funcional 1 1 2 Testador 1 Ciclo 1 Funcional 1 1 Testador 4 Ciclo 1 Funcional 1

TOTAL 7 3 2 2

Testador 2 Ciclo 1 Riscos 2 1 1 Testador 3 Ciclo 1 Riscos 1 2 1 Testador 5 Ciclo 2 Riscos 3 3 2 2

TOTAL 18 6 6 3 1 2

Testador 5 Ciclo 1 Funcional (RE) 2 3 3 Testador 1 Ciclo 2 Funcional (RE) 1 Testador 4 Ciclo 2 Funcional (RE) 1 1 1 1

TOTAL 13 2 4 4 1 2

Page 105: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

89

A Tabela 4.22 apresenta a concentração dos defeitos por funcionalidade. Independente

da abordagem utilizada, a maioria dos defeitos estão concentrados nas funcionalidades com

maior exposição ao risco apresentadas na Tabela 4.18.

Tabela 4.22 Concentração dos defeitos por funcionalidade. TESTADOR CICLO ABORDAGEM

LO

CA

L

STA

TE

S

CR

EA

TE

P

HE

NO

ME

NO

N

PH

EN

OM

EN

ON

ST

AT

ER

EL

AT

ION

QU

AN

TIT

Y

TA

KS

GR

OU

P

TA

SK

SEA

RC

H

Testador 1 Ciclo 1 Funcional 1 1 Testador 3 Ciclo 2 Funcional 1 1 1 1 Testador 4 Ciclo 1 Funcional 1

TOTAL 7 1 1 1 1 1 2

Testador 5 Ciclo 2 Riscos 8 2 Testador 2 Ciclo 1 Riscos 4 Testador 3 Ciclo 1 Riscos 4

TOTAL 18 0 0 0 0 16 2

Testador 5 Ciclo 1 Funcional (RE) 3 2 3 Testador 1 Ciclo 2 Funcional (RE) 1 Testador 4 Ciclo 2 Funcional (RE) 1 1 2

TOTAL 13 1 4 0 1 4 3

Considerações e Dificuldades Encontradas

Neste estudo de caso, praticamente todas as atividades do RBTProcess puderam ser

executadas, porém, algumas delas ainda foram executadas pela autora, tendo em vista a

dificuldade de encontrar estudos de caso que a equipe pudesse assimilar e realizar o processo

como um todo. Como foi apresentado, o tempo gasto nas atividades de gerência de riscos é

relativamente baixo não gerando uma sobrecarga no processo de teste.

Com relação aos resultados, ainda não é possível afirmar que a abordagem baseada em

riscos, representada pelo RBTProcess, é melhor que a abordagem funcional, que não

considera riscos, pois são necessários mais estudos de caso, para diferentes domínios de

software. O que podemos afirmar é que, para este estudo de caso, a abordagem baseada em

riscos se mostrou mais eficiente, confirmando que encontra os defeitos mais rápido que as

demais, tendo em vista a priorização das funcionalidades.

De acordo com a equipe MPhyScaS, as atividades realizadas não foram difíceis de

serem realizadas, auxiliaram no conhecimento do software e os testes focaram em

Page 106: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

90

funcionalidade realmente importantes. A equipe demonstrou interesse em adotar o

RBTProcess e indica o uso do modelo de processo, inclusive para grandes projetos.

Como melhoria do modelo de processo, a equipe sugeriu revisão do guia para

atribuição de valores das métricas do cálculo de exposição ao risco.

4.7 Resumo do Capítulo Neste Capítulo, foi apresentado o RBTProcess, um Modelo de Processo de Teste de Software

baseado em Riscos com atividade, artefatos e guias. O detalhes de cada atividade do

RBTProcess, bem como os templates estão disponíveis em [RBTProcess 2008] e no Apêndice

C.

Além do modelo, métricas são propostas com o objetivo de medir e controlar a

execução dos casos de teste baseado em riscos, bem como o esforço gasto em cada atividade

do processo, o progresso da execução dos testes e a eficiência das atividades de identificação

e análise dos riscos.

O RBTProcess foi avaliado através de simulações de uso do processo e estudo de caso.

As simulações serviram para refinar as atividades e artefatos do modelo de processo,

enquanto que o estudo de caso possibilitou avaliar o RBTProcess com relação ao número e

severidade dos defeitos encontrado, tempo gasto para encontrar cada defeito e concentração

dos defeitos por funcionalidade.

Vale destacar que, no planejamento inicial deste estudo de caso, estava previsto o uso

da RBTTool, ferramenta de apoio ao teste de software baseado em riscos. No entanto, a

ferramenta não foi concluída a tempo e a consolidação dos dados das atividades de

identificação e análise e todos os artefatos foram produzidos manualmente.

Page 107: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

91

5

RBTTool: Ferramenta de apoio ao Teste de Software baseado em Riscos

Com a necessidade de aumentar a produtividade e qualidade, ferramentas de apoio a

Engenharia de Software ou Computer-Aided Software Engineering (CASE) estão se tornando

imprescindíveis nos ambientes de desenvolvimento de software (ADS). Uma ferramenta

CASE é qualquer software que auxilia as pessoas que trabalham em um ADS (análise,

projeto, implementação e teste) [Loh 1996].

Nesse contexto, apresentamos a RBTTool, uma ferramenta CASE para o teste de

software baseado em riscos. Assim como as demais ferramentas CASE, a RBTTool tem como

objetivo fornecer uma maior qualidade e produtividade nas atividade do teste baseado em

riscos, através da automação de tarefas repetitivas, diminuindo a possibilidade de erros e

inconsistência nos resultados.

Vale salientar que não foram encontradas referências sobre ferramentas de apoio a

abordagem RBT. Apenas [Jorgensen 2004], em seu trabalho de graduação, levantou os

requisitos necessários para a construção de uma ferramenta de apoio à abordagem e construiu

protótipos de interface gráfica para cada funcionalidade, mas, segundo o autor, não houve

tempo suficiente para implementá-las. Além disso, o autor não contemplou, em seu

documento de requisitos, atividades como identificação de riscos, cadastro de diferentes

cálculos de exposição ao risco, planejamento e projeto de teste. Atividades estas que são de

suma importância para o processo de teste de software baseado em riscos.

Os requisitos necessários para a construção da RBTTool foram levantados a partir de

estudo detalhado das principais abordagens RBT, apresentadas no Capítulo 3. É importante

destacar que a RBTTool pode ser utilizada independente do RBTProcess.

Capítulo

Page 108: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

92

5.1 Requisitos A RBTTool está dividia em dois grandes módulos: O módulo de apoio às atividades da

gerência de riscos, que compreende as atividade de identificação, análise e controle dos

riscos, e o módulo de apoio ao processo de teste de software que compreende as atividades de

planejamento, projeto, execução e avaliação dos testes.

O módulo de apoio à gerência de riscos foi priorizado e está em desenvolvimento para

a primeira versão da ferramenta. Este módulo é o que fornece um maior ganho para atividade

RBT, pois contempla atividades que não são de domínio dos engenheiros de teste e que não

são apoiadas pelas ferramentas de teste de software. A Figura 5.1 apresenta os principais

casos de uso para cada um dos módulos apresentados. O Analista de Riscos é ator principal

das atividades de Gerência de Riscos, porém participam também destas atividades, o Gerente

de Teste, Projetista, Testador e membros da equipe do software que será testado.

Figura 5.1 Diagrama de caso de uso da RBTTool.

Page 109: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

93

A seguir, será apresentada uma breve descrição dos casos de uso em desenvolvimento

para a primeira versão. Os detalhes e descrição dos demais casos de uso estão disponíveis na

página da ferramenta em [RBTTool 2008].

� Manter Projetos RBT: permite ao Gerente de Teste incluir, excluir e alterar

projetos de teste de software baseado em riscos. Dentre outras informações, o

Gerente informa os requisitos que fazem parte do projeto, a versão do software que

será testado, os recursos necessários e datas de início e fim da atividade de teste.

� Manter Requisitos: o Gerente de Teste cadastra os requisitos que estão no escopo

dos testes. É possível cadastrar os fluxos de cada requisito informando, inclusive, o

seu tipo (principal, alternativo e de exceção). Nas próximas versões, será possível

importar requisitos de ferramentas de gerenciamento de requisitos disponíveis no

mercado.

� Manter Riscos: o Analista de Riscos inclui na ferramenta riscos que podem ser

identificados no produto de software. O sistema permite que os riscos cadastrados

sejam classificados.

� Manter Questionário: o Analista de Riscos cadastra questionários que podem ser

utilizados na etapa de identificação. Ele cadastra uma ou mais perguntas no

questionário e associa estas perguntas a um risco cadastrado na ferramenta.

� Identificar Riscos: o Analista de Riscos cadastra o questionário utilizando a

ferramenta, exporta para um documento e envia para os participantes da

identificação. Após respondidos, os questionários são importados pela ferramenta,

os dados são processados e sumarizados, resultando em uma lista de riscos

identificados para cada requisito do software em teste.

� Analisar Riscos: o Analista de Riscos define as métricas que serão utilizadas no

cálculo de exposição ao risco, exporta para documento e envia para os

participantes da análise. Quando concluídas, os valores das métricas são

processados e sumarizados, resultando na lista de priorização dos requisitos.

5.2 Material e Método Nesta seção, são descritas as tecnologias, ambiente de desenvolvimento e processos utilizados

no desenvolvimento da RBTTool.

Page 110: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

94

5.2.1 Tecnologias

A seguir, apresentamos uma breve descrição das principais tecnologias utilizadas para construção da RBTTool.

Java

Java é uma linguagem de programação orientada a objetos, desenvolvida pela Sun

Microsystems. Inicialmente, elaborada para ser a linguagem-base de projetos de software para

produtos eletrônicos, Java teve seu grande reconhecimento em 1995, com o crescimento da

web [Cornell et al 2000]. Java foi escolhida para desenvolvimento da RBTTool por ser livre,

amplamente utilizada, multiplataforma e apoiada por diversas ferramentas, também livres.

XML

XML - eXtensible Markup Language é uma recomendação da World Wide Web Consortium

(W3C) [XML 2008] para gerar linguagens de marcação para diferentes necessidades. É um

subtipo da Standard Generalized Markup Language (SGML) ou Linguagem Padronizada de

Marcação Genérica capaz de descrever diversos tipos de dados.

Seu propósito principal é a facilidade de compartilhamento de informações. O formato

XML foi escolhido para persistência dos dados da RBTTool por ser um padrão, de fácil

manipulação, evitando a necessidade de bibliotecas, instalação de ferramentas, necessários

para os bancos de dados.

5.2.2 Ambiente de Desenvolvimento e Frameworks

Nesta Seção, apresentamos o ambiente de desenvolvimento da RBTTool e os frameworks

utilizados.

Eclipse

Eclipse é uma plataforma IDE - Integrated Development Environment focada no

desenvolvimento de ferramentas e aplicações de software. É a IDE Java mais utilizada no

mundo [Eclipse 2008], possui orientação ao desenvolvimento baseado em plug-ins e amplo

suporte ao desenvolvedor com centenas de plug-ins desenvolvidos que procuram atender às

diferentes necessidades. A Eclipse Foundation [Eclipse 2008] mantém vários projetos

envolvendo a sua IDE Eclipse, tornando-a extremamente adaptável às necessidades de cada

cliente.

Page 111: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

95

RCP

RCP - Rich Cliente Plataform [RCP 2008] é uma poderosa plataforma de desenvolvimento

que fornece suporte para criação de aplicações com interfaces gráficas, beneficiando-se de

todas as vantagens do Eclipse. A RCP permite aos programadores desenvolver aplicações sem

reescrever as classes do framework, criando, assim, aplicações com rápido desenvolvimento e

integração, utilizando a linguagem Java. A Figura 5.2 apresenta os componentes da

arquitetura da plataforma RCP, onde a RBTTool aparece como um plug-ins que se integra ao

Eclipse.

Figura 5.2 Componentes da Arquitetura RCP (2008).

XStream

O framework XStream [Xstream 2008] está sendo utilizado para persistência dos dados da

RBTTool. Ele nada mais é que uma biblioteca para serialização de objetos através de XML, de

fácil utilização, pois não necessita de mapeamento para serialização dos objetos.

Ferramentas CASE

A ferramenta REM - Requirement Management, desenvolvida por [Duran 2000], foi utilizada

para documentação, gerenciamento e publicação dos casos de uso. O Jude - Java and UML

Developer Environment [JUDE 2008] foi utilizada para criação dos diagramas de casos de uso

e os modelos de análise e projeto da RBTTool. A ferramenta SVN (SubVersioN) [SNV 2008]

foi utilizada para controle de versão dos artefatos.

Page 112: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

96

5.2.3 Processos de Desenvolvimento e Gerência de Riscos

O processo de desenvolvimento adotado é uma instância do RUP (2003), já apresentado no

Capítulo 2. O desenvolvimento da RBTTool é iterativo, incremental e orientado por casos de

uso. A cada iteração, os requisitos são detalhados e revisados, são criados diagramas de

análise e projeto e os casos de uso são implementados e testados.

Para a gerência de riscos, adotamos o processo Ágil de Gestão de Riscos em

Ambientes de Múltiplos Projetos (GARA) proposto por [Ribeiro e Gusmão 2008]. Esse

processo está sendo desenvolvido, em um trabalho de mestrado do DSC (Departamento de

Sistemas e Computação) da Universidade de Pernambuco, pelo aluno Lúcio Ribeiro. O

processo consiste em apenas quatro etapas, como apresenta a Figura 5.3 produz um único

artefato, a Matriz de Impedimento.

� Visão: consiste na apresentação dos conceitos e objetivos da gerência de riscos.

Realizada apenas uma vez, no início do projeto.

� Especulação: consiste em reuniões de brainstorm, onde a equipe levanta riscos

que podem impedir o andamento das atividades e os prioriza. Também são

estabelecidas estratégias de tratamento de resposta aos riscos. O resultado desta

atividade é a matriz de impedimentos.

� Exploração: consiste na implemetação de ações para os riscos identificados.

� Adaptação: consiste no acompanhamento dos riscos, revendo tratamento de

repostas e comunicando lições aprendidas.

Figura 5.3 Processo Ágil de Gestão de Riscos GARA.

Page 113: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

97

5.3 Estágio Atual de Desenvolvimento Encontra-se em desenvolvimento a primeira versão da RBTTool que contemplará o módulo de

gerenciamento de riscos. Na primeira iteração, foram implementados e testados os casos de

uso Manter Projeto RBT e Manter Requisito. Na segunda iteração, foram desenvolvidos os

casos de uso relacionados à atividade de Identificação de Riscos. Nesta terceira iteração, estão

em desenvolvimento os casos de uso relacionados à atividade de Análise de Riscos.

O Apêndice B apresenta as telas da RBTTool, com um exemplo de utilização.

A equipe RBTTool é composta, atualmente, por quatros membros do DSC da

Universidade de Pernambuco:

� A orientadora desta dissertação, responsável pela coordenação da equipe.

� A mestranda que apresenta este trabalho, responsável pela definição dos requisitos

e testes da RBTTool.

� Um estudante de graduação em fase de conclusão de curso, responsável pelo

estudo e implementação das atividades de identificaçao de riscos.

� Um bolsista de iniciação científica, responsável pelo estudo e implementação das

atividades de análise de riscos e processo de teste. Nas primeiras iterações,

trabalhou junto com estudante de graduação em fase de conclusão de curso no

desenvolvimento da ferramenta.

A Tabela 5.1 apresenta o cronograma de atividades realizadas e a concluir neste ano.

Tabela 5.1 Cronograma de atividades do ano de 2008. Mês/Atividade

Julh

o

Ago

sto

Sete

mbr

o

Out

ubro

Nov

embr

o

Dez

embr

o

Estudo das principais Abordagens RBT Levantamento dos Requisitos para Construção da RBTTool Definição e Estudo das Tecnologias e Ferramentas CASE Configuração do Ambiente de Desenvolvimento Definição da Arquitetura da RBTTool Desenvolvimento 1ª Iteração Desenvolvimento 2ª Iteração Desenvolvimento 3ª Iteração

5.4 Resumo do Capítulo Este capítulo forneceu uma visão da RBTTool, uma ferramenta de apoio à abordagem de teste

baseado em riscos. Para a definição dos requisitos necessários para a construção da RBTTool,

Page 114: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

98

foram estudadas diversas abordagens RBT, não restringindo o seu escopo apenas a atividades

do RBTProcess.

A primeira versão da ferramenta contempla atividades da gerência de riscos como

identificação e análise de riscos, considerando que estas são essenciais para a abordagem RBT

e, em geral, desconhecidas para os engenheiros de teste.

Os grandes desafios enfrentados pela equipe foram (i) identificar os requisitos que

atendessem às principais abordagens disponíveis na literatura e (ii) definir arquitetura,

levando em consideração a plataforma RCP, que possui uma curva de aprendizado inicial

bastante alta.

Page 115: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

99

6

Conclusões

Este Capítulo relata as conclusões obtidas através da realização deste trabalho. A Seção 6.1

destaca as principais contribuições e resultados alcançados fornecidos para a área de teste de

software. A Seção 6.2 apresenta algumas dificuldades e limitações encontradas no decorrer

deste trabalho. A Seção 6.3 fornece uma comparação do RBTProcess com os trabalhos

apresentados no Capítulo 3. Por fim, a Seção 6.4 apresenta trabalhos futuros e em andamento.

6.1 Contribuições e Resultados Alcançados O RBTProcess é um modelo de processo iterativo, orientado a riscos, modelado no nível

“M1” do SPEM - Software Process Engineering Metamodel e descrito utilizando o EPF -

Eclipse Process Framework.

As disciplinas Identificar, Analisar e Controlar Riscos são provenientes do

gerenciamento de riscos e baseadas no RUP [RUP 2003], Guia PMBOK [PMI 2004] e CMMI

[CMMI 2006].

As disciplinas Planejar, Projetar, Executar e Avaliar Testes são provenientes de

processos de teste, baseadas no IEEE Std. 829-1998: Standard for Software Test

Documentation [IEEE 829 1998], IEEE Std. 1012-1998: Standard for Software Verification

and Validation [IEEE 1012 1998], TMM [Veenendaal 2006] e RUP [RUP 2003].

Apesar das diversas abordagens de teste baseado em riscos apresentadas no Capítulo

3, os engenheiros de teste ainda encontram dificuldade em aplicar RBT na prática.

A finalidade do RBTProcess é fornecer conhecimento e recursos necessários para que

os engenheiros de teste possam utilizar a abordagem RBT, beneficiando-se de todas as

vantagens que ela fornece, apresentadas no Capítulo 3.

Capítulo

Page 116: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

100

Além da definição do RBTProcess, outra grande contribuição é a RBTTool, ferramenta

de apoio ao teste de Software baseada em riscos. A RBTTool é independente de processo ou

abordagem, uma vez que ela permite realizar diversas formas de identificação e análise de

riscos disponíveis na literatura.

As simulações de uso de processo e o estudo de caso serviram, respectivamente, para

refinar os componentes do RBTProcess e mostrar que a abordagem RBT, através do

RBTProcess, concentra os esforços de teste nos requisitos de software que possuem maior

probabilidade de apresentar falhas.

Os resultados obtidos no estudo de caso fornecem uma forte indicação de que a

abordagem RBT permite:

� Concentrar os esforços de teste nos requisitos de software que possuem maior

probabilidade de apresentar falhas;

� Mostrar que os defeitos, com maior severidade, podem ser descobertos mais cedo,

tendo em vista que os requisitos mais problemáticos são testados prioritariamente;

� Mostrar que a qualidade do produto final é melhorada, como conseqüência de uma

atividade de testes bem planejada;

� Mostrar que as atividades da gerência de riscos de software, incluídas no processo

de teste de software, não exigem muitos recursos e tempo para execução e, por

fim,

� Fornecer ao gerente de testes subsidios para tomada de decisão.

No entanto, mais estudos de casos, para diferentes domínios de software, necessitam

ser realizados para que os benefícios constatados possam ser generalizados.

6.2 Limitações Encontradas O modelo de processo proposto neste trabalho, RBTProcess, possui algumas limitações que se

espera reduzir com trabalhos futuros.

A atividade de implementação de casos de teste, ou seja, a automatização de casos de

teste não foi tratada em nenhuma versão do RBTProcess.

Sabemos que os riscos técnicos podem aparecer tanto nos requisitos funcionais, como

nos requisitos não funcionais. O RBTProcess considera apenas atividades para os requisitos

funcionais, não fornecendo formas de tratamento para os requisitos não funcionais que, em

geral, são mais difíceis de testar.

Page 117: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

101

Por fim, diversas limitações foram identificadas no estudo de caso. (i) algumas

atividades importantes do processo não puderam ser executadas por falta de disponibilidade

da equipe; (ii) muitas das atividades do processo ainda foram realizadas pela autora; (iii) o

estudo de caso realizado, considerou apenas os requisitos funcionais para a execução das

atividades do processo e (iv) o tempo para realização da atividade de projeto de casos de teste

baseado em riscos e casos de teste funcionais não foram coletadas para comparação.

6.3 Trabalhos Relacionados Comparando o modelo de processo proposto, o RBTProcess, com as demais abordagens

apresentadas no Capítulo 3, tem-se:

� Descrição completa das atividades necessárias para execução de testes funcionais

baseados em riscos, fornecendo uma separação clara das atividades de teste e de

riscos de software, de forma a facilitar a adoção por empresas que ainda não

possuem um processo de teste de software definido, como também para aquelas

que já possuem e estão em constante evolução;

� Utilização e adaptação de questionário baseado em taxonomia de riscos, proposto

pelo SEI [Carr et al 1993], com o propósito de auxiliar a identificação dos riscos

associados aos requisitos do produdo de software e fornecer subsídio para o

projeto dos casos de teste;

� Adaptação e validação do cálculo de exposição a risco, proposto por [Amland

1999], para considerar o impacto de alterações em uma funcionalidade nas demais;

� Fornecimento de guias, templates e métricas para as atividades do processo de

teste de software baseado em riscos;

� Documentação e publicação do modelo de processo na web, utilizando ferramenta

open source que permite instanciação e criação de novos processo.

6.4 Trabalhos Futuros Abaixo segue uma lista de trabalhos futuros, dentre os quais, alguns já estão em

desenvolvimento.

Com relação ao RBTProcess podemos citar como trabalhos futuros:

Page 118: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

102

� Realização de estudos de caso, sem a participação da autora, para diferentes

domínios de software utilizando a RBTTool. A equipe MPhyScas, inclusive,

demonstrou interesse em utilizar novamente o processo.

� Definição de métricas para controle e medição do impacto da adoção do

RBTProcess em uma organização. Essas, apesar de serem muito importantes, não

foram tratadas neste trabalho.

� Fornecer questionário baseado em taxonomia para os diferentes domínios de

software, ou seja, criar um banco de dados de questionários baseado em

taxonomia.

� Realização de estudos sobre padrões de teste de software com o objetivo de

pesquisar os padrões existentes e identificar novos padrões para alguns domínios

de software, verificando a possibilidade da utilização de padrões para projeto de

testes baseados em riscos.

Com relação à RBTTool podemos citar como trabalhos futuros:

� Conclusão da implementação das atividades de Análise de Riscos. Atividade em

andamento.

� Implementação das atividades do processo de teste de software.

� Implementação de arquitetura distribuída para que as atividades sejam realizadas

online pelos participantes e os resultados contabilizados automaticamente pela

ferramenta.

� Implementar técnicas de inteligência artificial para automatizar atividades do

processo de teste baseado em riscos, especialmente as atividades pertencentes ao

gerenciamento de riscos.

Page 119: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

103

Bibliografia

[Amland 1999] Amland, S. Risk Based Testing and Metrics: Risk analysis fundamentals and

metrics for software testing including a financial application case study. In: 5o

International Conference EuroSTAR’99, 1999.

[Bach 1995] Bach, J. The Challenge of Good Enough Software. In: American Programmer,

1995.

[Bach 1999] Bach, J. James Bach on Risk-Based Testing: How to conduct heuristic risk

analysis. In: Software Testing & Quality Engineering Magazine, p.23-28, 1999.

[Bach 2003] Bach, J. Troubleshooting Risk-Based testing. In: Software Testing & Quality

Engineering Magazine, 2003.

[Besson 2004] Besson, S. A Strategy for Risk-Based Testing. Disponível em

<StickyMinds.com>. Acesso em agosto de 2007.

[Boehm 1991] Boehm, B. W. Software Risk Management: Principles and Practices. In: IEEE

Software, v.8, p.32-40, 1991.

[Burnstein et al 1999] Burnstein, I.; Homyen, A.; Suwanassart, T.; Saxena, G.; Grom, R. A

Testing Maturity Model for Software Test Process Assessment and Improvement. In:

Software Quality Professional Magazine, v.1, n.4, 1999.

[Carr et al 1993] Carr, M. J.; Konda, S.L.; Monarch, I.; Ulrich, F. C.; Walker, C. Taxonomy

Based Risk Identification. Technical Report CMU/SEI-93-TR-6. Software Engineering

Institute, Carnegie Mellon University/USA, 1993.

[Chen 2002] Chen, Y. Specification-based Regression Testing Measurement with Risk

Analysis. Dissertação de Mestrado, University of Ottawa/Canada, 2002.

[CMMI 2006] CMMI for Development, Version 1.2. Disponível em

<www.sei.cmu.edu/publications/documents/06.reports/06tr008.html>. Acesso em Janeiro

de 2008.

[Cornell et al 2000] Cornell, G.; horstman, S.; Core Java 2: Fundamentos. 1a edição, Makron

Books, 2000.

Page 120: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

104

[Delamaro et al 2007] Delamaro, M.; Maldonado, J.; Jino M. Introdução ao Teste de

Software. 1a edição, Elsevier, 2007.

[Duran 2000] Duran, A. A Methodological Framework for Requirements Engineering of

Information Systems. Tese de Doutorado, University of Serville/Spain, 2000.

[Eclipse 2008] Projeto Eclipse. Disponível em <http://www.eclipse.org/>. Acesso em Julho

de 2008.

[EPF 2007] Eclipse Process Framework. Disponível em <www.eclipse.org/epf/>. Acesso em

Agosto de 2007.

[Fontoura et al 2004] Fontoura, L.; Price, R. Usando GQM para Gerenciar Riscos em Projetos

de Software. In: 18º Simpósio Brasileiro de Engenharia de Software, 2004.

[Graig e Jaskiel 2005] Graig, R. D.; Jaskiel S. P. Systematic software testing. Artech House

Publishers, 2005.

[Goldsmith 2006] Goldsmith, R. Early and Effective: The Perks of Risk-based Testing. In:

Software Test and Performance Magazine, v.3, p.24-30, 2006.

[GQM 2008] Goal Question Metric Approach (GQM), Disponível em

<https://www.goldpractices.com/practices/gqm/> Acesso em Maio de 2008.

[Graham et al 2007] Graham, D.; van Veenendaal, E.; Evans, I.; Black, R. Foundations of

Software Testing: ISTQB Certification. Thomson Learning, 2007.

[Gusmão 2007] Gusmão, C. Um Modelo de Processo de Gestão de Riscos para Ambientes de

Múltiplos Projetos de Desenvolvimento de Software. Teste de Doutorado, Universidade

Federal de Pernambuco/Brasil, 2007.

[IEEE 829 1998] IEEE Std. 829, Standard for Software Test Documentation, 1998.

[IEEE 1012 1998] IEEE Std. 1012, Standard for Software Verification and Validation, 1998.

[Jorgensen 2004] Jørgensen, L. A Software Tool for Risk-Based Testing. Trabalho de

Graduação, Norwegian University of Science and Technology/Norway, 2004.

[JUDE 2008] Java and UML Developer Environment. Disponível em <http://jude.change-

vision.com/jude-web/product/community.html>. Acesso em Janeiro de 2008.

[Kaner et al 1999] Kaner, C.; Falk, J.; Nguyen, H. Q. Testing computer software. 2a edição,

Wiley, 1999.

[Konda 2008] Konda, R. Measuring Defect Removal Accurately. Disponível em

<http://www.stpmag.com/downloads/stp-0507_testmetrics.htm>. Acesso em Setembro de

2008.

Page 121: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

105

[Lins 2007] Lins, F. Modelagem da mPRIME Ontology em Lógica Descritiva e

Implementação. Trabalho de Graduação, Universidade Federal de Pernambuco/Brasil,

2007.

[Loh 1996] Loh, S. Ambientes de Desenvolvimento de Software e Ferramentas CASE.

Disponível em <http://atlas.ucpel.tche.br/~loh/ads.htm>. Acesso em Julho de 2008.

[Meyers 1979] Meyers, G. J. The Art of Software Testing. John Wiley and Sons, 1979.

[MPhyScas 2007] Multi-Physics and Multi-Scales Solver Environment. Disponível em

<http://www.dsc.upe.br/~mphyscas/MPhyScaS/project.html>. Acesso em Setembro de

2008.

[PMI 2004] PMI – Project Management Institute. A Guide to the Project Management Body

of Knowledge. ANSI/PMI 99-01-2004. Project Management Institute, 2004.

[RBTProcess 2008] RBTProcess – Modelo de Processo de Teste de Software baseado em

Riscos. Disponível em < http://www.dsc.upe.br/~eprs/rbt/process/> Acesso em Outubro

de 2008.

[RBTTool 2008] RBTTool – Ferramenta de Apoio ao Teste de Software baseado em Riscos.

Disponível em <http://www.dsc.upe.br/~eprs/rbt/tool/>. Acesso em Novembro de 2008.

[RCP 2008] Rich Client Platform Wikipedia. Disponível em

<http://wiki.eclipse.org/index.php/Rich_Client_Platform>. Acesso em Junho de 2008.

[Redmill 2004] Redmill, F. Exploring risk-based testing and its implications. In: Software

Testing, Verification and Reliability, v.14, p.3-15, 2004.

[Reffson et al 2006] Reffson, A.; Bezerra, C.; Coutinho, E,; Façanha, F. Análise da Aderência

de um Processo de Teste ao TMM. In: 1o Simpósio Brasileiro de Testes de Software,

SBTS, 2006.

[Ribeiro e Gusmão 2008] Ribeiro, L.; Gusmão, C.; Definição de um Processo Ágil de Gestão

de Riscos em Ambientes de Múltiplos Projetos. In: Hífen Magazine (Uruguaiana), 2008.

[Rios 2005] Rios, E. Análise de Riscos em Projetos de Teste de Software. Alta books, 2005.

[Rosenberg et al 1999] Rosenberg, L. H.; Stapko, R.; Gallo, A. Risk-based Object Oriented

Testing. In: 24o Annual Software Engineering Workshop, NASA SEW24, 1999.

[RUP 2003] Rational Unified Process. Versão 2003. Disponível em

<http://www.wthreex.com/rup/>. Acesso em Janeiro de 2008.

[RUP 2008] IBM Rational Unified Process Wikipedia. Disponível em

<http://pt.wikipedia.org/wiki/Rational_Unified_Process>. Acesso em Janeiro de 2008.

Page 122: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

106

[Sartori 2005] Sartori, L. Melhoria de Processo para Pequenas Empresas. Dissertação de

Mestrado, Universidade de Marília/Brasil, 2005.

[Schaefer 2002] Schaefer H. Strategies for Prioritizing Tests Against Deadlines – Risk Based

Testing. Disponível em <http://home.c2i.net/schaefer/testing/risktest.doc>. Acesso em

Agosto de 2007.

[SEI 2006] Risk Management. Disponível em <http://www.sei.cmu.edu/risk/>. Acesso em

janeiro de 2008.

[SMG 2001] Software Metrics Guide, Disponível em

<http://sunset.usc.edu/classes/cs577b_2001/metricsguide/metrics.html#p31>. Acesso em

Janeiro de 2008.

[SPEM 2005] Software Process Engineering Metamodel. Versão 1.1, 2005.

[Stallbaum et al 2008] Stallbaum, H.; Metzger, A.; Pohl, K. An Automated Technique for

Risk-based Test Case Generation and Prioritization. In: 3rd Workshop on Automation of

Software Test, AST, 2008.

[Soares et al 2002] Soares, S.; Laureano, E.; Borba, P. Implementing Distribution and

Persistence Aspects with AspectJ. In: 17o ACM conference on OOPSLA’ 02, ACM Press,

p.174–190, 2002.

[Sommerville 2003] Sommerville, I. Engenharia de Software, Addison Wesley, 2003.

[SVN 2008] Subversion. Disponível em <http://subversion.tigris.org/>. Acesso em Agosto de

2008.

[Vasconcelos 2007] Modelos de Maturidade para Teste de Software. Disponível em

<www.qualiti.com.br/arquivos/institucional/apresentacaoAlexandreVasconcelos_AMCH

AM.pdf>. Acesso em Janeiro de 2008.

[Veenendaal 2006] van Veenendaal, E. Guidelines for Testing Maturity, STEN Journal, v.4,

2006.

[XML 2008] Extensible Markup Language. Disponível em <http://www.w3.org/XML/>.

Acesso em Julho de 2008.

[Xstream 2008] Xstream. Disponível em <http://xstream.codehaus.org/>. Acesso em Janeiro

de 2008.

Page 123: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

107

Pesquisa sobre a Abordagem de Teste baseado em Riscos

Tem como objetivo principal, investigar o conhecimento dos engenheiros de teste sobre a

abordagem de teste baseado em riscos. Também, identificar possíveis utilizações da

abordagem e o grau de satisfação das pessoas que a estão utilizando.

O Questionário foi respondido por profissionais de tecnologia da informação que trabalham

com teste de software, como, por exemplo, Gerentes de Testes, Analistas de Testes,

Arquitetos de Testes, Projetistas de Testes e Testadores.

Questionário

1. Como você classifica o seu conhecimento sobre a abordagem de Teste Baseado em Riscos

(RBT - Risk-based Testing)? (selecione apenas uma opção)

� Desconheço.

� Já li ou ouvi falar, mas não conheço sua aplicação.

� Conheço e entendo sua aplicação.

� Conheço e já utilizei a abordagem.

1.1 Caso conheça ou já tenha utilizado a abordagem, como você a classifica? (selecione

apenas uma opção)

� Ruim.

� Razoável.

� Boa.

� Ótima.

Apêndice A

Page 124: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

108

Justifique sua resposta da Questão 1.1

2. Qual o seu conhecimento sobre Identificação e Análise de Riscos de Software? (mais de

uma opção pode ser selecionada)

� Não tenho conhecimento.

� Conhecimento acadêmico.

� Conhecimento adquirido através de cursos de aperfeiçoamento.

� Conhecimento adquirido através de prática (no trabalho).

2.1 Como você classifica o seu conhecimento sobre Identificação e Análise de Riscos de

Software? (selecione apenas uma opção)

� Básico.

� Intermediário.

� Avançado.

3. Como você classifica a equipe de teste da empresa onde você trabalha? (selecione apenas

uma opção)

� A empresa não possui equipe de teste independente.

� A empresa possui equipe de teste independente.

� Para alguns projetos, a empresa possui equipe de teste independente.

4. Qual o tamanho da equipe de teste da empresa onde você trabalha? (selecione apenas uma

opção)

� Até 5 pessoas.

� Entre 5 e 10 pessoas.

� Entre 10 e 20 pessoas.

� Mais que 20 pessoas.

5. Qual a localização da empresa onde você trabalha? (selecione apenas uma opção)

� Recife - Porto Digital.

� Recife - RMR.

� Outro Estado.

6. Qual a principal abordagem utilizada na empresa onde você trabalha? (selecione apenas

uma opção)

� Funcional ou Caixa preta

� Estrutural ou Caixa branca

7. Você possui alguma certificação da área de teste? (selecione apenas uma opção)

� Sim.

Page 125: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

109

� Não.

7.1 Se possui certificação, informe o(s) nome(s)?

8. Selecione abaixo a sua última formação completa: (selecione apenas uma opção)

� Graduação.

� Especialização.

� Metrado.

� Doutorado.

9. Informe quanto tempo você trabalha com testes de software: (em anos)

Resultados

Perfil dos participantes

No total, 80 pessoas participaram da pesquisa. Com relação a localização geográfica, 39% dos

entrevistados estão localizados no estado de Pernambuco, sendo que destes, 15% estão

localizados no Porto Digital. Os outros 61% estão localizados nos demais estados do país.

Com relação à formação, 53% dos entrevistados possuem graduação, 26%

especialização, 16% mestrado e 5% doutorado.

Organizações que realizam Atividade de Teste de Software

Apenas 17% dos entrevistados afirmaram que a empresa, na qual trabalham, não possui

equipe independe de teste de software. 47% afirmaram que a empresa possui, normalmente,

equipe de teste independe e 13% afirmaram que, para alguns projetos, a empresa possui

equipe independente. Essa informação é bastante relevante, pois o RBTProcess necessita de

uma equipe de teste independente e bem estruturada.

De acordo com os entrevistados, a maioria das empresas (39%) possui equipes

pequenas para a atividade de teste, com até cinco pessoas. No entanto, quase 30% das

empresas possuem equipes grandes, com mais de 20 pessoas. 31% possuem equipes medianas

entre 5 e 20 pessoas.

Além disto, 90% dos entrevistados afirmaram que as empresas, na qual trabalham,

realizam teste caixa-preta. Apenas 10% informaram a realização de teste caixa-branca.

Conhecimento sobre Riscos de Software

Sobre a gerência de riscos, 24% dos entrevistados informaram não possuir conhecimento

sobre esta área. 28% possuem conhecimento acadêmico, enquanto que 10% fizeram cursos de

Page 126: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

110

aperfeiçoamento na área e 38% adquiriam conhecimento no trabalho. Isto indica que, nos

cursos de graduação, o investimento na área de gerência de riscos deixa a desejar.

Com relação ao nível de conhecimento sobre riscos de software, 10%, 40% e 50%, dos

entrevistados classificam, respectivamente, os seus conhecimentos como avançado,

intermediário e básico. Ou seja, um número muito grande de engenheiros de teste tem

conhecimento básico sobre riscos de software.

Conhecimento sobre Teste de Software

A maioria dos entrevistados (49%) possui entre 2 e 5 anos de experiência na área. Outros 42%

possuem até 2 anos de experiência na área. O restante (9%) possui experiência de mais de 5

anos na área.

Apenas 15% dos entrevistados informaram possuir certificações na área de teste de

software. Sendo a certificação do ISTQB, e sua versão em português (BSTQB), as mais

comuns.

Conhecimento sobre Teste de Software baseado em Riscos

Sobre a abordagem RBT, um número bastante alto (40%) de entrevistados afirmou não

conhecer e nem ter ouvido falar sobre a abordagem. Apenas 8.5% dos entrevistados

afirmaram ter utilizado a abordagem RBT. Destes, 30% e 50% a classificaram,

respectivamente, como boa e ótima. A principal justificativa dos que a classificaram como

razoável (15%) é a falta de conhecimento das atividades da gerência de riscos, que

compromete a precisão dos resultados da identificação e análise dos riscos associados aos

requisitos. Uma característica encontrada nas pessoas que já utilizaram a abordagem é o

conhecimento intermediário ou avançado sobre atividades de gerência de riscos de software.

21.5% dos entrevistados afirmaram conhecer a abordagem e entender a sua aplicação na área.

Destes, 13% e 67% a classificaram, respectivamente, como boa e ótima.

Page 127: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

111

RBTTool: Telas

Tela de Criação de Projeto RBT

Apêndice B

Page 128: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

112

Tela de Inclusão de Requisitos

Tela de Visualização dos Requisitos adicionados a um Projeto RBT

Page 129: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

113

Tela de Inclusão de Questionário em um Projeto RBT

Tela de Inclusão de Perguntas em um Questionário

Tela de Visualização das Perguntas do Questionário

Page 130: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

114

Tela de Identificação de Riscos através de Questionário

.

Page 131: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

115

Tela de Relatório de Resultado da Identificação de Riscos

Page 132: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

116

RBTProcess: Papéis

Role: Analista de Riscos

Responsável pela identificação, análise e controle dos riscos de técnicos de software.

Role Sets: Papéis RBT Process

Relationships

Modifies • Lista de Riscos de Critérios de Qualidade • Lista de Riscos Específica • Lista de Riscos Genérica • Questionário Baseado em Taxonomia • Documento de Identificação dos Riscos • Lista de Priorização dos Riscos • Documento de Análise dos Riscos • Relatório de Avaliação dos Riscos

Staffing

Skills Conhecimento sobre teste de software, identificação e análise dos riscos, além de profundo conhecimento sobre os requisitos do software.

Role: Gerente de Testes

Responsável pela planejamento e acompanhamento das atividades e recursos de testes.

Role Sets: Papéis RBT Process

Relationships

Apêndice C

Page 133: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

117

Additionally Performs

• Responder Questionário TQB • Realizar Reunião de Brainstorm • Calcular Exposição ao Risco

Modifies • Plano de Testes de Software

Staffing

Skills Processo e conceitos de testes de software, gerência de projeto e recursos e outros.

Assignment Approaches

Em alguns processos, o Arquiteto ou Projetista de Testes é responsável pelo planejamento e acompanhamento dos testes.

Role: Projetista de Testes

Responsável pela identificação, criação e avaliação dos casos e procedimentos de testes.

Synonyms: Em alguns processos, essa atividade é realizada pelo Arquiteto de Testes.

Role Sets: Papéis RBT Process

Relationships

Additionally Performs

• Responder Questionário TQB • Realizar Reunião de Brainstorm • Calcular Exposição ao Risco • Definir Escopo do Testes • Definir Estratégias

Modifies • Projeto de Casos de Testes • Especificação de Casos de Testes • Procedimento de Casos de Testes • Planilha de Execução de Testes • Relatório de Avaliação dos Testes

Page 134: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

118

• Plano de Testes de Software

Staffing

Skills O projetista necessita de um conhecimento aprofundado sobre os requisitos do sistema e tecnologia adotada, sobre os riscos, ferramentas, técnicas para construção, estratégias e tipos de testes.

Synonyms Em alguns processos, essa atividade é realizada pelo Arquiteto de Testes.

Role: Testador

Responsável pela execução dos casos de testes e criação das solicitações de mudança.

Role Sets: Papéis RBT Process

Relationships

Additionally Performs

• Responder Questionário TQB • Realizar Reunião de Brainstorm • Calcular Exposição ao Risco

Modifies • Planilha de Execução de Testes • Log de Testes • Solicitação de Mudança

Staffing

Skills O testador necessita de conhecimento sobre o processo de teste, ferramentas utilizadas para execução, configuração do ambiente de execução e solicitação de mudança, além do conhecimento sobre os requisitos do sistema.

Page 135: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

119

RBTProcess: Atividades

Identificar Riscos

Task: Revisar Fontes e Categorias de Riscos

O objetivo dessa atividade é avaliar e adaptar as listas de riscos e o questionário baseado em taxonomia para o software que será testado. Os artefatos disponíveis no processo são genéricos e podem ser utilizados em qualquer projeto de desenvolvimento.

Disciplines: Identificar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers:

Inputs Mandatory: • Lista de Riscos de Critérios de

Qualidade • Lista de Riscos Específica • Lista de Riscos Genérica • Questionário Baseado em Taxonomia

Optional: • Documento de Requisitos • Documento de Riscos do Projeto

Outputs • Lista de Riscos de Critérios de Qualidade • Lista de Riscos Específica • Lista de Riscos Genérica • Questionário Baseado em Taxonomia

Steps

Revisar lista de riscos genérica

Revisar listas de riscos de critérios de qualidade

Revisar listas de riscos específica

Revisar questionário baseado em taxonomia

More Information

Concepts • Riscos de Software

Apêndice D

Page 136: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

120

Task: Responder Questionário TQB

Identificar os riscos técnicos de software associados aos requisitos através da utilização do questionário baseado em taxonomia.

Disciplines: Identificar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers: • Analista de Requisitos • Desenvolvedores de Software • Gerente de Testes • Projetista de Testes • Testador

Inputs Mandatory: • Documento de Requisitos • Questionário Baseado em Taxonomia

Optional: • None

Outputs • Documento de Identificação dos Riscos

Steps

Responder questionário

Consolidar resultados

Key Considerations

• Os participantes não precisam ter qualquer conhecimento sobre os riscos. • O SEI recomenda cinco participantes para esta atividade.

More Information

Concepts • TQB • Riscos de Software

Guidelines • Questionário Baseado em Taxonomia

Task: Realizar Reunião de Brainstorm

Validar os riscos identificados através do questionário baseado em taxonomia.

Disciplines: Identificar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers: • Analista de Requisitos • Desenvolvedores de Software • Gerente de Testes • Projetista de Testes • Testador

Inputs Mandatory: • Documento de Identificação dos Riscos • Lista de Riscos de Critérios de

Qualidade • Lista de Riscos Específica

Optional: • Documento de Requisitos • Documento de Riscos do Projeto

Page 137: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

121

• Lista de Riscos Genérica • Questionário Baseado em Taxonomia

Outputs • Documento de Identificação dos Riscos

Steps

Validar riscos identificados no questionário

Identificar possíveis riscos através do uso de listas

Identificar possíveis riscos que não estão em listas ou questionário

Classificar os riscos identificados

Key Considerations

• São utilizadas as listas de riscos para guiar a reunião. • As reuniões de brainstorm com listas de riscos visam tornar a reunião mais eficiente.

More Information

Concepts • Riscos de Software • TQB

Guidelines • Reunião de Brainstorm • Classificação dos Riscos

Analisar Riscos

Task: Calcular Exposição ao Risco

Para cada requisito, é calculada a sua exposição ao riscos.

Disciplines: Analisar Riscos

Purpose

Priorizar os requisitos de acordo com o risco.

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers: • Analista de Requisitos • Desenvolvedores de Software • Gerente de Testes • Projetista de Testes • Testador

Inputs Mandatory: • Documento de Identificação dos Riscos

Optional: • None

Outputs • Documento de Análise dos Riscos

Main Description

• Três fontes de análise de risco são utilizadas: i. qualidade da função (área) a ser testada P(f). ii. conseqüências de uma falha em uma função do ponto de vista de um cliente em uma situação de produção C(c) e iii. conseqüências de uma falha em uma função do ponto de vista do vendedor do serviço C(v) como mostrado na equação abaixo.

Page 138: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

122

Steps

Calcular probabilidade

Calcular custo

Calcular exposição ao risco

More Information

Guidelines • Cálculo de Exposição ao Risco

Task: Priorizar Requisitos

Priorização dos Requisitios de acordo com a análise de riscos realizada.

Disciplines: Analisar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers: • Analista de Requisitos

Inputs Mandatory: • Documento de Análise dos Riscos

Optional: • Documento de Requisitos

Outputs • Lista de Priorização dos Riscos

Steps

Identificar requisitos com alto Risco

Identificar requisitos com médio Risco

Identificar requisitos com baixo Risco

Planejar Testes

Task: Definir Escopo do Testes

Definir os requisitos que serão testados e os qua não serão testados para cada iteração com base na análise dos riscos,

Disciplines: Planejar Testes

Relationships

Roles Primary Performer: • Gerente de Testes

Additional Performers: • Analista de Requisitos • Projetista de Testes

Inputs Mandatory: • Cronograma do Projeto • Lista de Priorização dos Riscos • Plano de Projeto

Optional: • None

Outputs • Plano de Testes de Software

Page 139: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

123

Steps

Identificar requisitos que serão Testados

Identificar requisitos que NÃO serão Testados

Task: Definir Critérios de Sucesso e Falha dos Testes

Definir critérios de parada e aceitação dos casos de testes.

Disciplines: Planejar Testes

Relationships

Roles Primary Performer: • Gerente de Testes

Additional Performers:

Outputs • Plano de Testes de Software

Task: Definir Cronograma

Definir o cronograma para planejamento, projeto e execução dos testes para cada iteração.

Disciplines: Planejar Testes

Relationships

Roles Primary Performer: • Gerente de Testes

Additional Performers:

Inputs Mandatory: • Cronograma do Projeto • Lista de Priorização dos Riscos • Plano de Projeto

Optional: • None

Outputs • Plano de Testes de Software

Task: Definir Estratégias

Definir estratégias para planejamento, projeto, execução e avaliação dos testes com base na análise dos riscos.

Disciplines: Planejar Testes

Relationships

Roles Primary Performer: • Gerente de Testes

Additional Performers: • Projetista de Testes

Inputs Mandatory: • Cronograma do Projeto • Lista de Priorização dos Riscos • Plano de Projeto

Optional: • None

Outputs • Plano de Testes de Software

Steps

Page 140: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

124

Definir estratégia para requisitos com alto risco

Definir estratégia para requisitos com médio risco

Definir estratégia para requisitos com baixo risco

More Information

Concepts • Estágios dos Testes

Task: Definir Itens e Artefatos de Testes

Identificar itens de testes e definir baselines para cada um deles.

Disciplines: Planejar Testes

Relationships

Roles Primary Performer: • Gerente de Testes

Additional Performers:

Inputs Mandatory: • Plano de Projeto

Optional: • None

Outputs • Plano de Testes de Software

Steps

Identificar itens de testes (testware)

Definir os basealines dos itens de testes

Projetar Testes

Task: Projetar Casos de Testes

Especificar o projeto dos casos de testes definindo cenários, abordagens, tipos de testes e critérios de sucesso e falha para o caso de teste.

Disciplines: Projetar Testes

Relationships

Roles Primary Performer: • Projetista de Testes

Additional Performers:

Inputs Mandatory: • Documento de Requisitos • Lista de Priorização dos Riscos • Plano de Testes de Software

Optional: • None

Outputs • Projeto de Casos de Testes

Steps

Identificar caso de teste

Definir cenários

Definir abordagem

Definir tipo de teste

Page 141: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

125

Definir Critérios de sucesso e falhas do caso de teste

More Information

Concepts • Abordagem de Testes • Cenários de Testes • Tipo de Testes

Guidelines • Tipos de Testes para Riscos Identificados

Task Especificar Casos de Testes

Identificar itens de testes, definir entradas e saídas para o casos de testes e critérios de sucesso e falha.

Disciplines: Projetar Testes

Relationships

Roles Primary Performer: • Projetista de Testes

Additional Performers:

Inputs Mandatory: • Especificação de Casos de Testes

Optional: • None

Outputs • Especificação de Casos de Testes

Steps

Identificar itens de teste

Definir entradas e saídas do casos de testes

Definir pré e pós condições do casos de testes

Dependência dos casos testes

Task: Descrever Procedimento de Testes

Descrever os passos necessários para realização do caso de teste.

Disciplines: Projetar Testes

Relationships

Roles Primary Performer: • Projetista de Testes

Additional Performers:

Inputs Mandatory: • Especificação de Casos de Testes

Optional: • None

Outputs • Procedimento de Casos de Testes

Steps

Task: Criar Pacotes de Execução de Testes

Criar planilhas para execução de acordo com o planejamento dos testes baseado em riscos.

Disciplines: Projetar Testes

Relationships

Roles Primary Performer: Additional Performers:

Page 142: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

126

• Projetista de Testes

Inputs Mandatory: • Especificação de Casos de Testes • Procedimento de Casos de Testes • Projeto de Casos de Testes

Optional: • None

Outputs • Planilha de Execução de Testes

Executar Testes

Task: Configurar Ambiente de Testes

Configurar o ambiente necessário para realização dos testes, respeitando os baselines definidos no plano de testes.

Disciplines: Executar Testes

Relationships

Roles Primary Performer: • Testador

Additional Performers:

Inputs Mandatory: • Planilha de Execução de Testes • Plano de Testes de Software

Optional: • None

Steps

Identificar itens de testes

Configurar ambiente

Task: Executar Testes

Executar os testes, seguindo os precedimentos detalhados e na ordem definida na planilha de execução dos testes.

Disciplines: Executar Testes

Relationships

Roles Primary Performer: • Testador

Additional Performers:

Inputs Mandatory: • Planilha de Execução de Testes • Procedimento de Casos de Testes

Optional: • None

Outputs • Planilha de Execução de Testes

Task: Reportar Resultados

Registra resultado da execução através de logs e solicitações de mudanças.

Disciplines: Executar Testes

Relationships

Page 143: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

127

Roles Primary Performer: • Testador

Additional Performers:

Inputs Mandatory: • Planilha de Execução de Testes

Optional: • None

Outputs • Log de Testes • Solicitação de Mudança

Steps

Manter log de testes

Registrar solicitação de mudança

More Information

Concepts • Classificação dos Defeitos

Avaliar Testes

Task: Avaliar Cobertura

Avaliar a cobertura dos testes com relação aos requisitos do software.

Disciplines: Avaliar Testes

Relationships

Roles Primary Performer: • Projetista de Testes

Additional Performers:

Inputs Mandatory: • Log de Testes • Planilha de Execução de Testes • Plano de Testes de Software • Projeto de Casos de Testes • Solicitação de Mudança

Optional: • None

Outputs • Relatório de Avaliação dos Testes

Task: Avaliar Estratégias

Avaliar as estratégias dos testes com relação aos requisitos do software.

Disciplines: Avaliar Testes

Relationships

Roles Primary Performer: • Projetista de Testes

Additional Performers:

Inputs Mandatory: • Log de Testes • Planilha de Execução de Testes • Plano de Testes de Software • Projeto de Casos de Testes • Solicitação de Mudança

Optional: • None

Page 144: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

128

Outputs • Relatório de Avaliação dos Testes

Task: Avaliar Resultado Geral dos Testes

Avaliar o resultado final dos testes, gerando relatório com percentual de testes executado para os requisitos do software.

Disciplines: Avaliar Testes

Relationships

Roles Primary Performer: • Projetista de Testes

Additional Performers:

Inputs Mandatory: • Log de Testes • Planilha de Execução de Testes • Solicitação de Mudança

Optional: • None

Outputs • Relatório de Avaliação dos Testes

Controlar Riscos

Task: Identificar Riscos Mitigados

Identificar, através dos logs de testes e solicitações de mudanças, quais riscos foram mitigados.

Disciplines: Controlar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers:

Inputs Mandatory: • Documento de Análise dos Riscos • Lista de Priorização dos Riscos • Log de Testes • Relatório de Avaliação dos Testes • Solicitação de Mudança

Optional: • None

Outputs • Relatório de Avaliação dos Riscos

Task: Atualizar Status dos Riscos

Documentar o percentual dos riscos mitigados após bateria de execução dos testes.

Disciplines: Controlar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers:

Page 145: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

129

Inputs Mandatory: • Documento de Análise dos Riscos • Lista de Priorização dos Riscos • Log de Testes • Relatório de Avaliação dos Testes • Solicitação de Mudança

Optional: • None

Outputs • Relatório de Avaliação dos Riscos

Task: Avaliar Resultado Geral dos Riscos

Avaliar o resultado geral, informando o percentual de riscos mitigados por requisito.

Disciplines: Controlar Riscos

Relationships

Roles Primary Performer: • Analista de Riscos

Additional Performers:

Inputs Mandatory: • Documento de Análise dos Riscos • Lista de Priorização dos Riscos • Log de Testes • Relatório de Avaliação dos Testes • Solicitação de Mudança

Optional: • None

Outputs • Relatório de Avaliação dos Riscos

Page 146: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

Livros Grátis( http://www.livrosgratis.com.br )

Milhares de Livros para Download: Baixar livros de AdministraçãoBaixar livros de AgronomiaBaixar livros de ArquiteturaBaixar livros de ArtesBaixar livros de AstronomiaBaixar livros de Biologia GeralBaixar livros de Ciência da ComputaçãoBaixar livros de Ciência da InformaçãoBaixar livros de Ciência PolíticaBaixar livros de Ciências da SaúdeBaixar livros de ComunicaçãoBaixar livros do Conselho Nacional de Educação - CNEBaixar livros de Defesa civilBaixar livros de DireitoBaixar livros de Direitos humanosBaixar livros de EconomiaBaixar livros de Economia DomésticaBaixar livros de EducaçãoBaixar livros de Educação - TrânsitoBaixar livros de Educação FísicaBaixar livros de Engenharia AeroespacialBaixar livros de FarmáciaBaixar livros de FilosofiaBaixar livros de FísicaBaixar livros de GeociênciasBaixar livros de GeografiaBaixar livros de HistóriaBaixar livros de Línguas

Page 147: RBTProcess: Modelo de Processo de Teste de Software ...livros01.livrosgratis.com.br/cp118979.pdf · baseado em Riscos, constituído de atividades da gerência de riscos e de processos

Baixar livros de LiteraturaBaixar livros de Literatura de CordelBaixar livros de Literatura InfantilBaixar livros de MatemáticaBaixar livros de MedicinaBaixar livros de Medicina VeterináriaBaixar livros de Meio AmbienteBaixar livros de MeteorologiaBaixar Monografias e TCCBaixar livros MultidisciplinarBaixar livros de MúsicaBaixar livros de PsicologiaBaixar livros de QuímicaBaixar livros de Saúde ColetivaBaixar livros de Serviço SocialBaixar livros de SociologiaBaixar livros de TeologiaBaixar livros de TrabalhoBaixar livros de Turismo