195
Antonio Carlos Silva JOGO EDUCACIONAL PARA APOIAR O ENSINO DE TÉCNICAS PARA ELABORAÇÃO DE TESTES DE UNIDADE São José, 2010

JOGO EDUCACIONAL PARA APOIAR O ENSINO DE TÉCNICAS PARA ...siaibib01.univali.br/pdf/Antonio Carlos Silva1.pdf · ii FOLHA DE APROVAÇÃO Esta página é reservada para inclusão da

Embed Size (px)

Citation preview

Antonio Carlos Silva

JOGO EDUCACIONAL PARA APOIAR O ENSINO DE TCNICAS PARA

ELABORAO DE TESTES DE UNIDADE

So Jos, 2010

UNIVERSIDADE DO VALE DO ITAJACURSO DE MESTRADO ACADMICO EM

COMPUTAO APLICADA

JOGO EDUCACIONAL PARENSINO DE TCNICAS P

DE TESTES DE UNIDADE

Antonio Carlos Silva

So Jos, 20

UNIVERSIDADE DO VALE DO ITAJA CURSO DE MESTRADO ACADMICO EM

COMPUTAO APLICADA

JOGO EDUCACIONAL PARA APOIAR O ENSINO DE TCNICAS PARA ELABORAO

DE TESTES DE UNIDADE

por

Antonio Carlos Silva

Dissertao apresentada como requisito parcial obteno do grau de Mestre em Computao Aplicada.

Orientador: Marcello Thiry, Dr.

So Jos, 2010

A APOIAR O ARA ELABORAO

Dissertao apresentada como obteno do

grau de Mestre em Computao

, Dr.

ii

FOLHA DE APROVAO

Esta pgina reservada para incluso da folha de assinaturas, a ser disponibilizada pela Secretaria do Curso para coleta da assinatura no ato da defesa.

iii

DEDICATRIA

Dedico todos os meus esforos a meus pais, Orlando Geroncio Silva e Telma Regina Silva, aos meus irmos, Camila Cristina Silva e Orlando Geroncio Silva Jnior e a minha noiva e futura esposa Roberta Aracy Melo.

iv

AGRADECIMENTOS

Agradeo ao meu orientador Marcello Thiry pelas grandes contribuies e sem as quais este trabalho jamais existiria.

Agradeo tambm aos membros da banca deste trabalho que deram valiosas contribuies para o enriquecimento da pesquisa.

Agradeo a professora e colega de mestrado Alessandra Zoucas que gentilmente permitiu que a realizao dos experimentos em sua disciplina.

Agradeo ao colega Leonardo Claudio Steil, pois sem ele o jogo no se encontraria em seu estgio atual de desenvolvimento.

Agradeo aos colegas do laboratrio LQPS, Leonardo Tristo e Jos Luiz Silveira, que colaboraram no desenvolvimento e aplicao dos experimentos.

Agradeo a Luciana Fernandes, que com seu talento como designer permitiu ao jogo U-TEST ter a qualidade grfica to elogiada pelos alunos.

Agradeo a todos os alunos das trs turmas que participaram desta pesquisa, pois sem eles no haveriam dados para analisar.

Agradeo a todos os demais que diretamente ou indiretamente contriburam para a elaborao deste trabalho.

v

JOGO EDUCACIONAL PARA APOIAR O ENSINO DE TCNICAS PARA ELABORAO DE TESTES DE

UNIDADE

Antonio Carlos Silva

08/2010

Orientador: Marcello Thiry, Dr.

rea de Concentrao: Engenharia de Software

Palavras-chave: jogos educacionais, jogos srios, ensino de teste de software.

Nmero de pginas: 195

Resumo O teste de software, visto como uma das medidas de qualidade do software tem suas tcnicas e prticas pouco aplicadas pelas empresas, para tal, a falta de profissionais habilitados e disponveis para a implantao destas tcnicas e prticas de teste apontada como um dos principais fatores. O ensino de teste de software, comumente abordado durante a disciplina de Engenharia de Software nos cursos de graduao em Cincia da Computao, tem entre seus principais desafios, permitir ao aluno a experimentao dos conceitos vistos em sala. Este trabalho tem como objetivo apoiar o ensino de teste de software para os cursos de graduao em Cincia da Computao, permitindo que o aluno tenha uma carga prtica atravs da experimentao dos conceitos, tcnicas e prticas de teste de software e um ambiente simulado por um jogo educacional. Constitui parte deste trabalho uma caracterizao do estado da arte em jogos para o ensino de engenharia de software, bem como o projeto, desenvolvimento e a avaliao do uso do jogo U-TEST, junto aos alunos de graduao do curso de Cincia da Computao com o objetivo de determinar o nvel de contribuio deste no apoio ao ensino de teste de software. Como resultado da aplicao de trs diferentes experimentos junto a alunos dos cursos de Cincia da Computao e Tecnlogo em Informtica, ambos abordando avaliaes qualitativas e quantitativas, pode-se verificar uma contribuio positiva do uso do jogo U-TEST, este resultado positivo evidenciado estatisticamente de maneira significativa no primeiro dos experimentos aplicados, para o segundo experimento os resultados no foram significativamente positivos, enquanto que no terceiro experimento no houve a verificao estatstica pela no formao do grupo de controle, em funo das restries discutidas no trabalho, dentre elas a quantidade reduzida de alunos participantes.

vi

JOGO EDUCACIONAL PARA APOIAR O ENSINO DE TCNICAS PARA ELABORAO DE TESTES DE

UNIDADE

Antonio Carlos Silva

08/2010

Advisor: Marcello Thiry, Dr.

Area of Concentration: Software Engineering

Keywords: educational games, serious game, teaching software testing.

Number of pages: 195

Abstract The software testing, seen as a measure of quality of software, has its techniques and practices few applied by companies, just for this, the lack of professionals qualified and available to deploy these techniques and practical test is identified as a major factors. The teaching of software testing, commonly seen in the discipline of Software Engineering in the undergraduate courses in Computer Science, has among its major challenges, allow the student to the experimentation of the concepts seen in class. This work aims to support the teaching of software testing for undergraduate courses in Computer Science, allowing the student has a practice load on experimentation of concepts, techniques and practices for software testing on a simulated environment of educational game. Also part of this work is a characterization of the state of the art of games for the teaching of software engineering, and the design, development and evaluation of the use of the game U-TEST with the students in the graduate course in Computer Science in order to determine the level of contribution of supporting the teaching of software testing. As a result of application of three different experiments with the students of Computer Science and Technology in Computer Science, covering both qualitative and quantitative assessments, a positive contribution of the use of game U-TEST is visible, this positive result is evidenced statistically significantly in the first experiments, for the second experiment, the results were not significantly positive, while the third experiment, no statistical verification by the no formation of control group, according to the constraints discussed at work, among them the amount reduced from participating students.

vii

Lista de Figuras

Figura 1 - Processo de teste para deteco de defeitos .................................................................... 13 Figura 2 Etapas de Teste ................................................................................................................. 15 Figura 3 Viso de teste de caixa branca .......................................................................................... 19 Figura 4 Viso de teste de caixa preta ............................................................................................ 19 Figura 5 Reta para representar parties de equivalncia ............................................................. 21 Figura 6 Notao para grafos de causa-efeito ................................................................................ 22 Figura 7 Notao para grafos de causa-efeito ................................................................................ 22 Figura 8 Modelo ADDIE ................................................................................................................... 36 Figura 9 Atividades Essenciais na etapa de design ......................................................................... 37 Figura 10 Relao entre jogos, simulao e estudos de caso ......................................................... 44 Figura 11 Model of game-based learning ....................................................................................... 45 Figura 12 Interface do jogo SimSE .................................................................................................. 50 Figura 13 Interface do jogo SERPG ............................................................................................... 51 Figura 14 Interface do jogo The Incredible Manager ..................................................................... 52 Figura 15 Interface do jogo Planager .............................................................................................. 54 Figura 16 Interface do jogo SESAM ................................................................................................. 55 Figura 17 Interface do jogo X-MED ................................................................................................. 57 Figura 18 Cartas de engenheiros de software do jogo SimulES ..................................................... 58 Figura 19 Prottipo da interface do jornal ..................................................................................... 67 Figura 20 Prottipo da interface do modo trabalho ....................................................................... 68 Figura 21 Prottipo da interface de fim do projeto ........................................................................ 69 Figura 22 Prottipo da interface do hall da fama ........................................................................... 70 Figura 23 Casos de uso para o jogo U-TEST .................................................................................... 77 Figura 24 Estrutura do banco de dados do jogo U-TEST................................................................. 77 Figura 25 Diagrama de classes de domnio do jogo U-TEST ........................................................... 78 Figura 26 Tela do Adobe Flash para ligao de objetos grficos e classes ..................................... 80 Figura 27 Tela de Entrada do jogo U-TEST ...................................................................................... 81 Figura 28 Animao de entrada desenvolvida na ferramenta Adobe Flash ................................... 82 Figura 29 Tela de Instrues ao Jogador ........................................................................................ 82 Figura 30 Tela com as informaes sobre o jogo ........................................................................... 83 Figura 31 Tela de identificao do jogador ..................................................................................... 84 Figura 32 Tela de cadastro do jogador ........................................................................................... 84 Figura 33 Cdigo em PHP para o login do usurio .......................................................................... 85 Figura 34 Tela para seleo do personagem no jogo ..................................................................... 86 Figura 35 Diagrama de atividades para seleo do projeto ........................................................... 87 Figura 36 Tela de introduo para a seleo do projeto ................................................................ 88 Figura 37 Tela com a animao de exibio do jornal .................................................................... 88 Figura 38 Tela com os detalhes do projeto selecionado ................................................................ 89

viii

Figura 39 Cdigo fonte da classe Projeto codificada em ActionScript ........................................... 90 Figura 40 Diagrama de atividades da etapa de entrevista ............................................................. 91 Figura 41 Tela de apresentao da entrevista ................................................................................ 92 Figura 42 Tela de entrevista do projeto .......................................................................................... 92 Figura 43 Tela de feedback da entrevista ....................................................................................... 93 Figura 44 Artefato base para os desafios do jogo .......................................................................... 94 Figura 45 Tela com os exemplos para o artefato ............................................................................ 94 Figura 46 Tela do desafio 1 ............................................................................................................. 95 Figura 47 Tela do desafio 1 exibindo a dica e a resposta do jogador ............................................. 96 Figura 48 Pergunta terica do desafio 1 ......................................................................................... 96 Figura 49 Tela do desafio 2 ............................................................................................................. 97 Figura 50 Tela do desafio 2 com a resposta do usurio ................................................................. 98 Figura 51 Tela do desafio 3 ............................................................................................................. 99 Figura 52 Tela do desafio 3 com a resposta informada pelo jogador ............................................ 99 Figura 53 Tela do desafio 4 ........................................................................................................... 100 Figura 54 Tela do desafio 4 com a resposta informada pelo jogador .......................................... 101 Figura 55 Tela de feedback do encerramento do projeto ............................................................. 102 Figura 56 Tela de ranking do jogo U-TEST .................................................................................... 103 Figura 57 Design de experimento para avaliao do jogo U-TEST ............................................... 110 Figura 58 Resultado da primeira questo do questionrio de percepo do experimento 1 ...... 119 Figura 59 Resultado da ltima questo do questionrio de percepo do experimento 1 ......... 120 Figura 60 Resultado da primeira questo do questionrio de percepo do experimento 2 ...... 123 Figura 61 Resultado da ltima questo do questionrio de percepo do experimento 2 ......... 124 Figura 62 Resultado da primeira questo do questionrio de percepo do experimento 3 ...... 127 Figura 63 Resultado da ltima questo do questionrio de percepo do experimento 3 ......... 128 Figura 64 Resultado consolidado da primeira questo do questionrio de percepo ............... 129 Figura 65 Resultado consolidado da segunda questo do questionrio de percepo ............... 129 Figura 66 Resultado consolidado da terceira questo do questionrio de percepo ................ 130 Figura 67 Resultado consolidado da quarta questo do questionrio de percepo .................. 131 Figura 68 Resultado consolidado da quinta questo do questionrio de percepo .................. 131 Figura 69 Resultado consolidado da sexta questo do questionrio de percepo .................... 132 Figura 70 Resultado consolidado da stima questo do questionrio de percepo .................. 133 Figura 71 Resultado consolidado da oitava questo do questionrio de percepo ................... 133 Figura 72 Resultado consolidado da nona questo do questionrio de percepo ..................... 134 Figura 73 Resultado consolidado da dcima questo do questionrio de percepo ................. 135

ix

Lista de Quadros

Quadro 1. Gneros de jogos digitais .................................................................................................. 25 Quadro 2. Quadro com as principais teorias de aprendizagem ........................................................ 34 Quadro 3. Verbos que definem os objetivos de aprendizagem por nveis cognitivos ...................... 38 Quadro 4. Viso geral sobre o modelo de avaliao ......................................................................... 41 Quadro 5. Contedo x Estilo de Jogo ................................................................................................. 43 Quadro 6. Legenda para caracterizao das solues similares ....................................................... 47

x

Lista de Tabelas

Tabela 1. Resumo comparativo da anlise das solues similares .................................................... 61 Tabela 2. Design Instrucional para Aplicao do jogo U-TEST ........................................................... 64 Tabela 3. Perguntas do pr-teste e ps-teste em relao a taxonomia revisada de Bloom ........... 108 Tabela 4: Resultados de acertos no pr-teste e ps-teste .............................................................. 116 Tabela 5: Classificao das diferenas ............................................................................................. 117 Tabela 6: Clculo de T1 e T2 ............................................................................................................ 117 Tabela 7. Mdia de acertos dos grupos no pr-teste e ps-teste ................................................... 118 Tabela 8: Resultados de acertos no pr-teste e ps-teste .............................................................. 121 Tabela 9: Classificao das diferenas ............................................................................................. 122 Tabela 10: Clculo de T1 e T2 .......................................................................................................... 123 Tabela 11: Resultados de acertos no pr-teste e ps-teste ............................................................ 126

xi

Abreviaturas e Siglas

ABNT Associao Brasileira de Normas e Tcnicas ADDIE Analysis Development Implementation and Evalution ADE Analysis Development and Evalution CBTS Certificao Brasileira de Teste de Software CEEINF-MEC Comisso de Especialistas de Ensino de Computao e Informtica CMMI Capability Maturity Model Integration EAP Estrutura Analtica de Projeto GPL GNU Public License ISD Instructional System Design ISO International Organization for Standardization ISTQB International Software Testing Qualifications Board LGPL Lesser GNU Public License RPG Role Playing Game

xii

Sumrio

Lista de Figuras .................................................................................................................................. vii

Lista de Quadros ................................................................................................................................. ix

Lista de Tabelas .................................................................................................................................... x

Abreviaturas e Siglas ........................................................................................................................... xi

Sumrio .............................................................................................................................................. xii

1 Introduo ................................................................................................................................... 1

1.1 Problema de pesquisa.............................................................................................................. 3

1.1.1 Soluo proposta ................................................................................................................. 5

1.1.2 Justificativa .......................................................................................................................... 7

1.2 Objetivos .................................................................................................................................. 8

1.2.1 Objetivo geral ...................................................................................................................... 8

1.2.2 Objetivos especficos ........................................................................................................... 8

1.3 Delimitao do escopo ............................................................................................................ 8

1.4 Metodologia............................................................................................................................. 8

1.4.1 Metodologia da pesquisa..................................................................................................... 8

1.4.2 Metodologia da aplicao .................................................................................................... 9

1.5 Estrutura do trabalho ............................................................................................................ 10

2 Fundamentao Terica ............................................................................................................ 12

2.1 Teste de Software .................................................................................................................. 12

2.1.1 O processo de teste de software ....................................................................................... 12

2.1.1.1 Qualidade no processo de teste de software .................................................................... 13

2.1.1.2 A organizao dos testes ................................................................................................... 14

2.1.2 Teste de Unidade ............................................................................................................... 16

2.1.2.1 Escopo para o teste de unidade ........................................................................................ 16

2.1.2.2 O que testar no teste de unidade ...................................................................................... 16

2.1.2.3 Artefatos necessrios para o teste de unidade ................................................................. 17

2.1.2.4 O teste de unidade e o processo de desenvolvimento de software ................................. 17

2.1.2.5 Mtricas para o teste de unidade ...................................................................................... 18

2.1.2.6 Abordagens quanto ao teste de unidade .......................................................................... 18

xiii

2.1.2.7 Tcnicas para elaborao de teste de caixa preta para o teste de unidade ..................... 20

2.2 Jogos e Ensino-Aprendizagem ............................................................................................... 23

2.2.1 Jogos .................................................................................................................................. 23

2.2.2 Ensino-Aprendizagem ........................................................................................................ 28

2.2.3 Jogos Educacionais............................................................................................................. 41

3 Estado da Arte ........................................................................................................................... 46

3.1 Caractersticas para anlise de solues similares ................................................................ 46

3.2 Solues similares .................................................................................................................. 47

3.2.1 SimSE .................................................................................................................................. 49

3.2.2 SERPG ............................................................................................................................... 51

3.2.3 The Incredible Manager ..................................................................................................... 52

3.2.4 Planager ............................................................................................................................. 53

3.2.5 SESAM ................................................................................................................................ 55

3.2.6 X-MED ................................................................................................................................ 56

3.2.7 SimulES ............................................................................................................................... 57

3.3 Resumo comparativo entre as solues verificadas .............................................................. 59

4 Projeto do Jogo .......................................................................................................................... 62

4.1 Design Instrucional ................................................................................................................ 62

4.2 Design do Jogo ....................................................................................................................... 66

4.2.1 Descrio do jogo ............................................................................................................... 66

4.2.2 Mecnica do jogo (jogabilidade) ........................................................................................ 66

4.2.3 Funcionalidades da interface com o jogador ..................................................................... 70

4.2.4 Narrativa ............................................................................................................................ 71

4.2.5 Sistema de pontuao do jogo .......................................................................................... 71

4.2.6 Caractersticas tcnicas do jogo ......................................................................................... 72

4.3 Caractersticas do jogo ........................................................................................................... 73

4.3.1 Quanto as caractersticas estruturais de um jogo ............................................................. 73

4.3.2 Definio dos Objetivos Educacionais ............................................................................... 74

4.3.3 Destina-se ao desenvolvimento de habilidades em teste de software ............................. 74

4.3.4 Fornece o feedback ao aluno sobre o seu desempenho ................................................... 74

4.3.5 Classificao do jogo quanto ao gnero ............................................................................ 74

4.3.6 Classificao do jogo quanto interao .......................................................................... 75

xiv

4.3.7 Pode ser utilizado sem a presena de um instrutor .......................................................... 75

4.3.8 O jogo disponibilizado livremente para uso ................................................................... 75

4.3.9 O jogo possui uma avaliao da efetividade de seu uso ................................................... 75

4.3.10 Classificao do jogo quanto plataforma ........................................................................ 75

4.4 Requisitos funcionais do jogo ................................................................................................ 75

4.5 Casos de uso do jogo ............................................................................................................. 76

4.6 Estrutura do banco de dados do jogo .................................................................................... 77

5 Desenvolvimento do Jogo .......................................................................................................... 79

5.1 Tecnologia .............................................................................................................................. 79

5.2 Etapa 1 Telas Iniciais do Jogo .............................................................................................. 81

5.3 Etapa 2 Identificao e Cadastro do Jogador ...................................................................... 83

5.4 Etapa 3 Seleo do Projeto ................................................................................................. 86

5.5 Etapa 4 Entrevista ............................................................................................................... 90

5.6 Etapa 5 Apresentao do Artefato ..................................................................................... 93

5.7 Etapa 6 Desafio 1 ................................................................................................................ 95

5.8 Etapa 7 Desafio 2 ................................................................................................................ 97

5.9 Etapa 8 Desafio 3 ................................................................................................................ 98

5.10 Etapa 9 Desafio 4 .............................................................................................................. 100

5.11 Etapa 10 Encerramento do Projeto .................................................................................. 101

5.12 Etapa 10 Ranking .............................................................................................................. 102

6 Avaliao .................................................................................................................................. 104

6.1 Planejamento do Experimento ............................................................................................ 104

6.1.1 Parte I Definio do Experimento ................................................................................. 105

6.1.1.1 Estratgia de Pesquisa ..................................................................................................... 105

6.1.1.2 Forma de Realizao ........................................................................................................ 106

6.1.1.3 Abordagem de Pesquisa .................................................................................................. 106

6.1.1.4 Estratgia para Seleo de Grupos .................................................................................. 106

6.1.1.5 Questionrios ................................................................................................................... 107

6.1.1.6 Pr-condies .................................................................................................................. 107

6.1.1.7 Design Instrucional .......................................................................................................... 107

6.1.2 Parte II Planejamento do Experimento ......................................................................... 108

6.1.2.1 Seleo do Contexto ........................................................................................................ 108

xv

6.1.2.2 Definio de Hipteses .................................................................................................... 108

6.1.2.3 Variveis de Controle ....................................................................................................... 109

6.1.2.4 Seleo dos Participantes ................................................................................................ 109

6.1.2.5 Design de Experimento Utilizado .................................................................................... 109

6.1.2.6 Planejamento da Instrumentalizao .............................................................................. 110

6.1.2.7 Avaliao da Validade ...................................................................................................... 111

6.1.3 Parte III Operao do Experimento .............................................................................. 112

6.1.4 Parte IV Anlise e Interpretao dos Dados ................................................................. 113

6.1.4.1 Parmetros Populacionais ............................................................................................... 113

6.1.4.2 Teste Utilizado ................................................................................................................. 114

6.1.4.3 Estatstica Utilizada .......................................................................................................... 114

6.1.4.4 Reduo do Conjunto de Dados ...................................................................................... 114

6.1.4.5 Teste de Hipteses ........................................................................................................... 114

6.2 Experimento 1 ...................................................................................................................... 115

6.3 Experimento 2 ...................................................................................................................... 120

6.4 Experimento 3 ...................................................................................................................... 124

6.5 Anlise Qualitativa ............................................................................................................... 128

6.6 Concluso ............................................................................................................................. 135

7 Concluses ............................................................................................................................... 138

7.1 Contribuies da pesquisa ................................................................................................... 140

7.2 Trabalhos futuros ................................................................................................................. 140

8 Referncias .............................................................................................................................. 142

Apndice A Termo de Concordncia ............................................................................................ 150

Apndice B Questionrio de Perfil ................................................................................................ 151

Apndice C Questionrio de Percepo do Jogo .......................................................................... 154

Apndice D Pr-Teste ................................................................................................................... 156

Apndice E Ps-Teste .................................................................................................................... 162

Apndice F Perguntas Realizadas Durante a Entrevista no Jogo .................................................. 168

Apndice G Instncia Parcial do Framework de Avaliao ........................................................... 170

Apndice H Questes acrescentadas ao pr-teste e ps-teste para o Experimento 3 ................ 179

1

1 Introduo

Obter uma melhor qualidade em um produto de software no apenas um aspecto desejado e sim essencial, tendo em vista o custo que uma falha em um software pode causar ao cliente e a empresa responsvel pelo seu desenvolvimento (ROCHA, MALDONADO & WEBER, 2001). Deste modo, justifica-se o investimento em manter um processo de desenvolvimento que possa minimizar estas falhas, identificando-as o quanto antes para que possam ser eliminadas.

Qualidade pode ser definida como o grau no qual um conjunto de caractersticas de uma entidade satisfaz a requisitos ou necessidades explcitas e implcitas (ABNT, 2005; ISO 8402, 1994; IEEE, 1990). As necessidades explcitas, por exemplo, so aquelas definidas em um documento formal, tal como o documento de requisitos (ISO 8402, 1994). J as necessidades implcitas, referem-se a toda necessidade no documentada, seja por ser bvia ou mesmo por no terem sido identificadas, mas que pela gravidade de suas consequncias devem ser atendidas (ISO 8402, 1994). Estas necessidades, de maneira geral, representam as expectativas dos clientes internos e externos, que compreendem todos os envolvidos no processo, dentre eles, patrocinadores do projeto, usurios, desenvolvedores e mantenedores (PFLEEGER, 2004).

Apesar das definies de qualidade apresentarem uma convergncia nos conceitos, que demonstra o comum entendimento da comunidade sobre qualidade, os softwares desenvolvidos, por sua vez, ainda apresentam uma baixa qualidade (STANDISH GROUP, 2005). Embora, a Engenharia de Software tenha sido criada a mais de 40 anos para fornecer os princpios da construo de software com alta qualidade e produtividade (SOMMERVILLE, 2007) (GHEZZI, JAZAYERI & MANDRIOLI, 2003) (PFLEEGER, 2004), o cenrio que se apresenta ainda de imaturidade por parte das empresas desenvolvedoras de software. Em 2004, apenas 29% dos projetos verificados produziram resultados aceitveis dentro das estimativas de custo e tempo. Dentre estes projetos, outros 53% foram concludos e entregaram o resultado esperado com uma diferena significativa entre o estimado e o realizado para custo e tempo. O restante dos projetos, 18% destes, falharam, ou por no serem concludos ou por no entregarem as funcionalidades esperadas (STANDISH GROUP, 2005).

Outra pesquisa, tambm relacionada com projetos de software, junto a 91 empresas desenvolvedoras de software, localizadas essencialmente na Sua e nos Estados Unidos, verificou que, 37% destas empresas afirmam no concluir seus projetos dentro do prazo inicialmente estimado, e 59% destas, frequentemente, tambm no finalizam seus projetos de acordo com o prazo estimado (TORKAR & MANKEFORS, 2003). Nesta mesma pesquisa, quando questionadas sobre o motivo pelo qual os projetos de software no so concludos dentro de suas estimativas de tempo, estas identificam que os principais motivos seriam: (a) a complexidade dos projetos de software desenvolvidos; (b) a complexidade das ferramentas e frameworks utilizados no desenvolvimento; (c) a dificuldade na reteno de recursos humanos qualificados ao longo dos projetos de software. Pode-se verificar que, mundialmente o reduzido nmero de projetos que

2

atenderam as expectativas dos patrocinadores, usurios e desenvolvedores, indica que muitos dos desafios iniciais da Engenharia de Software se fazem ainda presentes, dentre esses, a construo de sistemas que atendam a nveis satisfatrios de qualidade, estabelecidos e acordados por todos os envolvidos no processo de desenvolvimento.

O controle e a garantia da qualidade nos projetos de software so constitudos por atividades e tcnicas que, sistematicamente aplicadas, permitem ampliar as chances de sucesso de um projeto de software no atendimento as expectativas de seus clientes internos e externos (TIAN, 2005). Modelos de capacidade como o CMMI (SEI, 2006), incluem conceitos e prticas que visam aumentar a capacidade e a maturidade dos processos de uma empresa, permitindo um ganho de desempenho e qualidade em seus processos (MUTAFELIJA & STROMBERG, 2008). J padres, como a ISO 9001 (ISO, 2008), descrevem requisitos para serem atendidos pela empresa em seus processos, atividades e tarefas. Seja para os modelos de capacidade ou para padres de processo, ter os processos da empresa controlados, no significa produzir produtos totalmente isentos de defeito, mas sim minimiz-los e identific-los quando ocorrerem.

Alinhada aos modelos e padres de processo, a Engenharia de Software rene atividades e tcnicas que primam por antecipar, de maneira sistemtica, organizada e controlada, a identificao de no conformidades nos produtos do processo de desenvolvimento de software, estas atividades e tcnicas so coletivamente chamadas de verificao e validao ou V&V. Sendo comumente subdividida em atividades e tcnicas estticas e dinmicas, a V&V visa responder questes centrais como: (i) Estamos construindo o software corretamente?; e (ii) Estamos construindo o software correto? (TIAN, 2005) (ISO, 2008).

A anlise esttica, que no compreende a execuo do software propriamente dito, visa identificar problemas nos produtos do desenvolvimento de software. Destaca-se ainda que, estes produtos vo alm do software ou seu cdigo fonte, incluindo tambm toda a produo resultante do processo de desenvolvimento, como o documento de requisitos, o qual deve ser verificado e validado (TIAN, 2005).

As atividades dinmicas envolvem diretamente a execuo do software, e sua forma de aplicao o teste de software. O teste de software pode ser definido como sendo o processo de executar um programa ou sistema com a finalidade de encontrar erros. Teste a medida de qualidade do software (HETZEL, 1987). Caracterizando ainda termos chaves na definio do teste de software, no SWEBOK (IEEE, 2004), encontra-se a definio:

O teste de software consiste em uma verificao dinmica de um comportamento ou programa, com base em um conjunto finito de casos de teste devidamente selecionados a partir de um domnio normalmente infinito de execues, contra um comportamento esperado.

O teste de software corresponde a uma das reas de conhecimento da engenharia de software e esta rea no deve ser vista apenas como uma atividade que tem seu incio somente aps a total codificao do sistema (IEEE, 2004). O teste de software deve ser adotado pelas empresas

3

desenvolvedoras como uma ferramenta indispensvel para as atividades de desenvolvimento (MYERS, 2004).

A verificao dinmica do software possui uma srie de limitaes, que se concentram principalmente no fato de que o domnio dos dados de entrada infinito ou muito grande, tornando invivel o teste exaustivo, que compreenderia testar todas as possibilidades (MALDONADO & FABRRI, 2001). Assim, apesar da intensa busca por um software isento de defeitos, as tcnicas aplicadas podem apenas melhorar a confiana no produto, e mesmo aps a correo de todos os erros que provocaram as falhas j encontradas durante os testes, novos casos de teste poderiam apontar novos erros. Dado este fato, a execuo dos testes de forma planejada e ordenada tem por objetivo cobrir o maior nmero de situaes possveis para evitar defeitos comuns ou mesmo defeitos em processos mais crticos (PEZZ & YOUNG, 2008). Sendo pertinente destacar ainda que, um teste bem sucedido aquele que compreende os objetivos ou critrios de teste estabelecidos (FEWSTER & GRAHAM, 1999) (MALDONADO & FABBRI, 2001).

A seleo das tcnicas e ferramentas de testes adequadas a um determinado contexto est concentrada, essencialmente, no conhecimento e na experincia do profissional de testes (BLACK, 2008). Mesmo a graduao, na formao tecnolgica, pode contribuir na formao destes profissionais (ISTQB, 2007), ao ponto em que o teste de software j abordado em sala, normalmente inserido na disciplina de engenharia de software (CEEINF-MEC, 2002). Para as atividades de ensino de engenharia de software, recomendado que o aluno tenha, alm de uma carga terica, a experimentao prtica (CEEINF-MEC, 2002), onde se concentram grande parte dos desafios no ensino de engenharia de software (CEEINF-MEC, 2002; NAVARRO, 2006; GNATZ et al, 2003).

1.1 Problema de pesquisa

Apesar do teste de software se fazer presente no processo de desenvolvimento, pesquisas demonstram que suas tcnicas e prticas no so totalmente empregadas pelas organizaes de desenvolvimento de software (ROCHA et al, 2006; BERTOLINO, 2004). Na pesquisa realizada por ROCHA et al (2006) foi evidenciado que, embora as organizaes admitam que aplicam testes de software, quase metade (48,5%) das prticas de teste de software so consideradas no-aplicadas e no-importantes. Uma observao relevante que, dentre as prticas consideradas no aplicadas e no importantes, esto todas aquelas relacionadas com a medio e anlise. Includa nesta categoria est, por exemplo, a medio da cobertura dos testes apontada como critrio para determinar a qualidade dos testes (ZHU, HALL e MAY, 1997). Quanto a estes resultados, Rocha et al. (2006) conclui que:

... foi observada uma grande quantidade de prticas consideradas no-importantes e no-aplicadas, independente do tamanho das organizaes. As razes para isso podem ser diversas, tais como: falta de interesse da organizao em relao a essas prticas de teste, falta de conhecimento

4

sobre as prticas, falta de recursos humanos habilitados e disponveis para a sua implantao, falta de apoio da alta gerncia para sua implantao, carncia em abordagens, tcnicas de teste ou ferramentas que apiem essas prticas e que atendam s reais necessidades das organizaes.

Os resultados obtidos por Rocha et al. (2006) confirmam os resultados de outra pesquisa realizada em 2004 que avaliou o teste de software em empresas desenvolvedores de software (BERTOLINO, 2004). Nesta pesquisa, observou-se uma grande distncia entre o que produzido no meio acadmico e o que praticado pelas empresas de software. Segundo o autor da pesquisa, os resultados permitem verificar a imaturidade das organizaes avaliadas quanto aplicao das prticas de teste de software em seu processo de desenvolvimento. Entretanto, nesta concluso no so consideradas, questes como a aplicabilidade e viabilidade das tcnicas de teste no contexto verificado, ainda que academicamente viveis.

Dentre as razes apontadas por Rocha et al (2006) para os resultados obtidos em sua pesquisa, pode-se destacar a falta de conhecimento sobre as tcnicas e prticas de teste em conjunto com a falta de profissionais habilitados para a implantao e uso destas. De encontro a esta demanda, as certificaes profissionais, no apenas na rea de tecnologia, possuem como foco, atestar, atravs de testes padronizados, que um indivduo demonstra um determinado nvel de domnio de uma coleo de competncias exigidas pelo mercado de trabalho.

Neste contexto, diversas certificaes foram criadas para a capacitao e formalizao de profissionais na rea de teste de software (ALATS, 2009; ISEB, 2009; BSTQB, 2009). Por exemplo, para certificao promovida pela International Software Testing Qualification Board - ISTQB (BSTQB, 2009), no exigido do profissional, mas recomendado, que este tenha em seu currculo a graduao em um curso voltado a tecnologia da informao, o qual pode lhe fornecer base a questes gerais como lgica de programao, ou mesmo base a questes especficas do perfil de um testador, como engenharia de software e teste de software, propriamente dito (ISTQB, 2007). Neste ponto reforada a importncia dos cursos de graduao em tecnologia, como Cincia da Computao, por exemplo, que constituem uma base formadora, tambm para profissionais da rea de testes.

O teste de software comumente inserido nos cursos de graduao da rea da computao, atravs da disciplina de Engenharia de Software. Enquanto disciplina acadmica na rea de formao tecnolgica, a engenharia de software pode dar origem a diferentes disciplinas com diferentes nfases, envolvendo aspectos gerenciais, tcnicos, tericos e experimentais (CEEINF-MEC, 2002).

... a nfase no ensino de engenharia de software, pode se dar nas diferentes etapas do processo de desenvolvimento e manuteno de software: engenharia de requisitos, anlise, arquitetura e projeto, programao, testes, manuteno, garantia da qualidade, e gesto do processo de software (CEEINF-MEC, 2002).

5

Dentre os desafios no ensino de engenharia de software, segundo CEEInf-MEC (2002), est a necessidade de assegurar que o estudante adquira experincia na aplicao dos conceitos atravs de prticas de laboratrio e/ou estgios. Assegurar esta experincia torna-se um desafio devido dinmica da engenharia de software, que compreende diferentes tecnologias, projetos, produtos e mtodos, alm da falta de ferramentas que apiem de forma didtica o educador e os alunos neste processo.

Dentre as alternativas abordagem prtica na disciplina de engenharia de software, um experimento realizado junto alunos do curso de graduao em Cincia da Computao da Universidade de Munique, explorou a possibilidade de os alunos trabalharem diretamente em um projeto real de software (GNATZ et al, 2003). Antes da aplicao do experimento, verificou-se que os alunos do terceiro semestre de engenharia de software, possuam pouca capacidade de relembrar os conceitos j abordados, sendo apontado como possvel causa, a pouca prtica vivenciada pelos alunos. O experimento tinha como objetivo central a aplicao dos conceitos e tcnicas de engenharia de software (GNATZ et al, 2003). Os autores conduziram, junto dos alunos, um projeto de software, o qual caracterizou como real, pois envolvia uma demanda de um cliente externo, resultado de uma parceria junto a uma empresa no vinculada a universidade. Como resultado do experimento, Gnatz et al (2003), identificou uma maior motivao e interesse dos participantes na disciplina de engenharia de software.

Outra abordagem prtica no ensino de engenharia de software refere-se aplicao de jogos educacionais (NAVARRO, 2006; BENITTI & MOLLRI, 2008; LUDEWIG, 2003; GRESSE VON WANGENHEIM, THIRY & KOCHANSKI, 2009). Os jogos, de maneira geral, compreendem um conjunto de atividades que podem envolver um ou mais participantes, que comumente desafiam as habilidades fsicas ou mentais dos jogadores, exigindo que estes sigam um conjunto especfico de regras para atingir um determinado objetivo, previamente estabelecido (DEMPSEY, LUCASSEN & RASMUSSEN, 1996). possvel verificar na literatura a pequena quantidade de experimentos realizados com o intuito de verificar a efetividade dos jogos no apoio ao ensino de engenharia de software (NAVARRO, 2006; BENITTI & MOLLRI, 2008; LUDEWIG, 2003; GRESSE VON WANGENHEIM, THIRY & KOCHANSKI, 2009).

1.1.1 Soluo proposta

O presente trabalho pretende apoiar o ensino de teste de software atravs de um jogo educacional que proporcione ao aluno a experimentao dos conceitos e tcnicas de teste de software. O escopo do jogo ser delimitado para apoiar instrutores no ensino de testes de software como parte de uma disciplina de Engenharia de Software em um curso de graduao. As disciplinas de engenharia de software dos cursos de computao comumente apontam Pressman (2006), Sommerville (2007) e/ou Pfleeger (2004) como referncias bibliogrficas (UNIVALI, 2010; PUC-RIO, 2010; UFPA, 2010; UFSC, 2010). Para o teste de caixa preta, Pressman (2006) apresenta as tcnicas de particionamento de equivalncia ou classes de equivalncia, anlise de valor limite e grafo de causa-efeito ou rvore de deciso, enquanto que Pfleeger (2004) apresenta a tcnica de grafos de causa-efeito, e Sommerville (2007), a tcnica de particionamento de equivalncia. Dessa

6

forma, pode-se evidenciar que o instrutor ao abordar as tcnicas de teste de software durante a disciplina de engenharia de software possuir, fundamentadas em sua bibliografia base, as tcnicas de particionamento de equivalncia, anlise de valor limite e grafo de causa-efeito, tcnicas que sero aplicadas durante o jogo proposto.

Para a aplicao das tcnicas de elaborao de casos de teste anteriormente citadas sero propostos ao jogador desafios no nvel de teste de unidade. Segundo CEEInf-MEC (2002), algoritmos ou lgica de programao e linguagens de programao so requisitos para a disciplina de engenharia de software, sendo o teste de unidade um dos primeiros testes aplicados ao software e comumente executados pelo desenvolvedor por sua proximidade com o cdigo ou componentes de cdigo, as unidades, torna-se adequada a sua aplicao aos alunos que se encontram cursando a disciplina de engenharia de software, por conta de seu prvio conhecimento em programao.

As perguntas de pesquisa deste trabalho so:

A utilizao do jogo proposto como apoio para o ensino de teste de software permite uma melhor fixao e compreenso dos conceitos abordados em aula?

O jogo proposto permite, por parte do aluno, a aplicao dos conceitos e tcnicas de teste, possibilitando a criao de um conhecimento do nvel de aplicao?

O jogo proposto considerado uma atividade motivante?

Para responder as perguntas de pesquisa estabelecidas, so tecidas hipteses, que verificadas formalmente fundamentam indcios da corretude destas respostas. Com base nas perguntas de pesquisas e os objetivos deste trabalho so extradas as hipteses:

H1 Os alunos que utilizam o jogo (grupo experimental) apresentam um efeito de aprendizagem1 superior aos alunos que no utilizam o jogo (grupo de controle) nos nveis de lembrana, entendimento e aplicao quanto aos conceitos e tcnicas de teste de unidade.

H2 A aplicao do jogo educacional U-TEST torna o processo de ensino aprendizagem mais atrativo.

As duas primeiras perguntas de pesquisa deste trabalho concentram-se na avaliao da efetividade da aplicao de um jogo educacional como ferramenta para o apoio ao ensino, neste caso especificamente para o ensino de teste de software. Considerando que na literatura ainda no so apresentadas evidncias suficientes sobre o nvel de contribuio dos jogos educacionais para o ensino de engenharia de software de maneira geral (NAVARRO, 2006; BENITTI & MOLLRI, 2008; LUDEWIG, 2003; GRESSE VON WANGENHEIM, THIRY & KOCHANSKI, 2009), este trabalho busca complementar estas pesquisas demonstrando os resultados obtidos com a aplicao de um jogo educacional para apoio ao ensino de teste de software, verificando estatisticamente a hiptese H1.

1 Para este trabalho o efeito de aprendizagem o resultado da diferena das notas do pr-teste e ps-teste, ou seja, o

aluno que apresentar no ps-teste nota superior a obtida no pr-teste tem um efeito de aprendizagem positivo.

7

O objetivo com a terceira pergunta de pesquisa verificar se o jogo proposto e sua aplicao se demonstram adequados do ponto de vista dos aprendizes, identificando se o jogo se demonstra uma atividade motivante para os aprendizes, ou seja, se esta atividade tornou o processo de ensino aprendizagem mais atrativo, que corresponde a hiptese H2. Para responder a esta pergunta e verificar a hiptese levantada ser aplicado um questionrio junto aos alunos que jogarem o jogo proposto.

1.1.2 Justificativa

A ligao comum entre jogos e entretenimento ou diverso tornam os jogos ferramentas que permitem alcanar objetivos a estes no diretamente relacionados, como objetivos educacionais ou publicitrios (RIEBER, 1996). Dado este fator de diverso, bons jogos so intrinsecamente motivacionais e oferecem aos jogadores uma dose constante de desafios e obstculos para serem transpostos (HOGLE, 1996).

Para abordagens como a de aprendizado baseado em problemas (problem based learning - PBL) (VILLIERS, 2002), diversos autores citam os jogos como uma poderosa ferramenta educacional (PRENSKY, 2006; ALDRICH, 2005), pois alm de oferecerem desafios aos aprendizes, requisito da PBL, os jogos so intrinsecamente motivacionais. A motivao do aprendiz, dentre outros, citado por Gagn, Briggs e Wagner (1992), como parte do primeiro de seus nove eventos instrucionais. Os jogos, quando utilizados como ferramentas educacionais, podem permitir ainda, a experimentao de situaes as quais seriam apenas vivenciadas fora do contexto educacional, como por exemplo, situaes diretamente ligadas ao ambiente profissional.

Dentre as alternativas prtica no ensino de engenharia de software, est a possibilidade dos alunos desenvolverem atividades em projetos reais (GNATZ et al, 2003). Alguns dos desafios na aplicao desta alternativa esto relacionados inicialmente com a carga horria da disciplina, que dentre outros problemas, impede que os alunos experimentem os diferentes papis no desenvolvimento de um software, como gerente de projetos, programador, analista ou mesmo testador (GNATZ et al, 2003). Outro fator que dificulta a aplicao desta abordagem, refere-se expectativa dos clientes envolvidos frente inexperincia dos alunos.

J em um ambiente simulado proporcionado por um jogo, o aluno pode realmente experimentar, de forma segura, as alternativas a soluo de um problema e verificar suas consequncias. Mesmo que trgicas estas consequncias se limitam ao ambiente simulado (ALDRICH, 2005), permitindo que o aluno possa rever as estratgias adotadas e aprender tambm a partir de seus erros.

Os jogos identificados durante a pesquisa em sua grande maioria apiam o ensino de engenharia de software de maneira geral (NAVARRO, 2006; BENITTI & MOLLRI, 2008; DANTAS, BARROS & WERNER, 2004; KIELING & ROSA, 2006; LUDEWIG, 2003). Enquanto que a aplicao de jogos especificamente para o ensino de teste de software, no foi identificada nenhuma iniciativa na bibliografia pesquisada, seja para o uso na graduao ou mesmo em cursos especficos na formao de profissionais de testes.

8

1.2 Objetivos

1.2.1 Objetivo geral

Desenvolver um jogo educacional para apoiar o ensino de testes de software em cursos de Computao/Informtica, proporcionando um ambiente para a experimentao de tcnicas e prticas relacionadas a seleo de dados de entrada para o teste de unidade.

1.2.2 Objetivos especficos

1. Estabelecer critrios para o desenvolvimento e avaliao de jogos educacionais na rea de testes de software com base na literatura.

2. Analisar jogos educacionais para o ensino de Engenharia de Software com foco em testes de software de acordo com os critrios estabelecidos.

3. Conceber o jogo para apoiar o ensino de testes de software com base na experimentao de tcnicas e prticas relacionadas.

4. Implementar o jogo educacional para apoiar o ensino de testes de software. 5. Avaliar o jogo atravs de um ou mais experimentos para permitir a verificao das hipteses

levantadas neste trabalho.

1.3 Delimitao do escopo

Este trabalho, de acordo com os objetivos previamente estabelecidos, est limitado anlise de jogos para o ensino de Engenharia de Software, o desenvolvimento de um jogo educacional digital para o apoio ao ensino de teste de software focado em teste de unidade e a avaliao da efetividade deste aplicado disciplina de Engenharia de Software nos cursos de graduao em Cincia da Computao. No constitui objeto de estudo, desenvolver de novos conceitos, abordagens ou tcnicas de teste de software, bem como estabelecer ou definir a proposta de uma nova disciplina ou mesmo modificar a ementa ou conceitos j abordados na disciplina de Engenharia de Software para os cursos de graduao em Cincia da Computao.

1.4 Metodologia

Para melhor compreenso dos mtodos que sero utilizados neste projeto este tpico est dividido em metodologia da pesquisa e metodologia da aplicao.

1.4.1 Metodologia da pesquisa

O mtodo, segundo Hegenberg (1976) o caminho pelo qual se chega a determinado resultado, ainda que esse caminho no tenha sido fixado de antemo de modo refletido e deliberado. O mtodo, do ponto de vista cientfico, engloba a execuo de operaes mentais e materiais com a finalidade de obter uma verdade ou conhecimento sobre um fenmeno ou objeto. Estas

9

atividades ordenadas formam o mtodo cientfico, que permite alcanar o conhecimento cientfico (KAPLAN, 1980).

O trabalho em desenvolvimento baseia-se essencialmente na reviso bibliogrfica e aplicao de estudos empricos. A reviso bibliogrfica, tendo como base os principais temas abordados pelo objetivo geral deste trabalho, teste de software, jogos, o processo de ensino-aprendizagem e o uso de jogos na educao, foi conduzida de maneira a cobrir os conceitos mais slidos de cada rea, bem como as novas tendncias (estado da arte). Com a aplicao dos estudos empricos pretende-se apresentar uma contribuio na verificao da efetividade do uso de jogos educacionais no ensino.

O mtodo utilizado para esta pesquisa o indutivo, o mtodo parte de observaes particulares constatadas em um grupo para inferir e definir uma verdade geral provvel (KAPLAN, 1980). A induo baseada nas leis do determinismo, definindo que sob as mesmas circunstncias, as mesmas causas produzem os mesmo efeitos (HEGENBERG, 1976). Por meio da avaliao do jogo proposto junto aos alunos do curso de Cincia da Computao, busca-se verificar estatisticamente as hipteses levantadas. Com isso esta pesquisa ganha um carter indutivo experimental, uma vez que a induo sobre os resultados particulares ser sobre um experimento formal.

Quanto sua natureza esta pesquisa classificada como aplicada, dado que se objetiva gerar conhecimentos para aplicao prtica dirigida soluo de problemas especficos. Neste contexto, esta pesquisa busca verificar a utilizao de jogos educacionais como resposta parte dos desafios enfrentados no ensino de teste de software.

Em relao abordagem do problema, este ter um tratamento quantitativo e qualitativo, visto que a avaliao se dar, primeiramente por meio de uma verificao quantificvel da diferena do desempenho dos alunos que jogaram frente aqueles que no jogaram. A segunda avaliao se dar por meio de uma pesquisa qualitativa apoiada por um questionrio aplicado aos alunos.

Do ponto de vista de seus objetivos este trabalho classificado como uma pesquisa exploratria, tendo como objetivo trazer uma maior familiaridade com o problema de pesquisa. Neste trabalho, esto envolvidos levantamento bibliogrfico e avaliao da soluo construda, onde so analisados os fatores que podem levar a soluo ou no do problema.

Quanto aos procedimentos tcnicos da pesquisa, esta classificada como bibliogrfica e experimental. A pesquisa bibliogrfica tem como objetivo compreender melhor os temas abordados, enquanto que a fase experimental desta pesquisa visa verificar as hipteses e responder as perguntas de pesquisa levantadas neste trabalho.

1.4.2 Metodologia da aplicao

Para o cumprimento dos objetivos estabelecidos, neste trabalho so aplicadas as etapas:

Estudo bibliogrfico: tem como objetivo o estudo dos principais conceitos envolvidos no teste de software, no processo de ensino-aprendizagem, na definio e construo dos

10

jogos e na aplicao destes como ferramentas para apoio ao processo de ensino-aprendizagem.

Levantamento de caractersticas para anlise dos jogos: com base no estudo bibliogrfico so estabelecidas caractersticas que definem os jogos educacionais para apoio ao ensino de engenharia de software e especificamente para o ensino de teste de software.

Pesquisa de solues similares: utilizando como referncia os principais meios de pesquisa disponibilizados, so localizados os jogos educacionais j desenvolvidos para apoio ao ensino de engenharia de software e especificamente para o ensino de teste de software.

Anlise dos jogos: tendo como base as caractersticas estabelecidas para a anlise e os jogos localizados na pesquisa de solues similares, estes so analisados e avaliados com o objetivo de estender o conhecimento sobre jogos educacionais e estabelecer um direcionamento para a construo do jogo proposto.

Projeto do jogo proposto: inicialmente verificada a presena ou no das caractersticas utilizadas para anlise das solues similares com relao ao jogo proposto, em seguida realizada a concepo e projeto do jogo tendo como base a reviso bibliogrfica, onde so apontadas as questes tcnicas de implementao do jogo, bem como as questes educacionais, como o estabelecimento dos objetivos educacionais.

Desenvolvimento do jogo: partindo do projeto segue-se ento para o desenvolvimento da primeira verso do jogo, o qual deve permitir, de acordo com os objetivos estabelecidos, a experimentao dos conceitos de teste de software tendo como foco o teste de unidade.

Projeto do experimento: a avaliao se dar por meio do design de experimento, onde sero indicadas todas as etapas e materiais a serem utilizados na aplicao da avaliao.

Aplicao da avaliao: durante a aplicao da avaliao todos os dados significativos para posterior anlise sero coletados, sendo a avaliao conduzida de acordo com o projeto estabelecido.

Anlise dos resultados e teste de hiptese: os resultados obtidos na avaliao sero analisados e as hipteses de pesquisa estabelecida neste trabalho sero testadas.

Documentao dos resultados: os resultados da aplicao e avaliao do jogo desenvolvido sero registrados neste trabalho, respondendo as perguntas de pesquisa estabelecidas.

Publicao: tendo como base todo o conhecimento construdo durante o trabalho, sero desenvolvidos artigos para publicao em peridicos e eventos da rea.

As etapas apresentadas representam o meio pelo qual sero atingidos os objetivos estabelecidos neste trabalho, determinando ainda um plano de trabalho a ser seguido durante a sua construo.

1.5 Estrutura do trabalho

O trabalho est organizado em 8 captulos correlacionados. O Captulo 1, Introduo, apresentou por meio de sua contextualizao o tema proposto neste trabalho. Da mesma forma foram estabelecidos os resultados esperados por meio da definio de seus objetivos e apresentadas s limitaes do trabalho permitindo uma viso clara do escopo proposto.

11

O captulo 2 apresenta a fundamentao terica, em que so abordados os temas teste de software, jogos e ensino aprendizagem, respectivamente abordados nas sees 2.1 e 2.2. A fundamentao terica sobre teste de software contempla os conceitos fundamentais para a formulao do contedo instrucional do jogo proposto. Os conceitos sobre jogos e ensino-aprendizagem formam a base para o projeto e construo do jogo proposto, indicando inclusive meios para a avaliao da efetividade da aplicao do mesmo.

O captulo 3 apresenta o estado da arte sobre jogos para apoio ao ensino de engenharia de software, permitindo que sejam avaliadas as solues j existentes no que se refere aplicao de jogos educacionais, identificando caractersticas que possam colaborar para a concepo e construo do jogo proposto, bem como na conduo da avaliao de sua efetividade.

O captulo 4 apresenta o projeto do jogo para o apoio ao ensino de teste de software. Inicialmente so levantadas as caractersticas do jogo, tendo como base a lista de caractersticas utilizadas para anlise das solues similares, facilitando o comparativo com as solues analisadas. Em seguida apresentado o design instrucional e o design do jogo, onde so discutidas as questes educacionais, estruturais e mesmo tecnolgicas para a construo do jogo. Por fim apresentada a proposta de avaliao do jogo, a qual guiar a construo do projeto de avaliao.

No captulo 5 so apresentados os detalhes quanto a implementao do jogo desenvolvido e em paralelo so apresentadas as telas do jogo simulando a sua execuo, demonstrando, do ponto de vista do jogador, as diferentes possibilidades de interao.

O captulo 6 compreende os detalhes sobre a avaliao do jogo desenvolvido, tomando como base um framework para a definio de experimentos focados na avaliao dos efeitos de aprendizagem de jogos educacionais para a rea de Engenharia de Software.

No captulo 7 so tecidas as concluses do trabalho relacionando os objetivos identificados inicialmente com os resultados alcanados. So ainda propostas possibilidades de continuao da pesquisa desenvolvida a partir das experincias adquiridas com a execuo do trabalho.

O captulo 8 apresenta as referncias utilizadas para a fundamentao da pesquisa e desenvolvimento deste trabalho. Ordenadas alfabeticamente as referncias representam ainda uma fonte de pesquisa para trabalhos futuros.

12

2 Fundamentao Terica

2.1 Teste de Software

O teste de software uma das atividades no ciclo de desenvolvimento de software que tem como principal objetivo encontrar os defeitos presentes em um software. Esta atividade compreendida por sistemticas aplicaes de testes ao longo de todo o processo de desenvolvimento (MCGREGOR e SYKES, 2001).

O teste de software definido por Hetzel (1987) como: o processo de executar um programa ou sistema com a finalidade de encontrar erros. Teste a medida de qualidade do software, uma definio que estabelece uma meta importante, encontrar erros, assim um teste bem sucedido aquele que revela um erro ainda no descoberto (MYERS, 2004). Entretanto, Fewster e Graham (1999), e Maldonado e Fabbri (2001) destacam que um teste bem sucedido aquele que compreende os objetivos ou critrios de teste estabelecidos.

Segundo Maldonado e Fabrri (2001), a atividade de teste possui uma srie de limitaes, que se concentram principalmente no fato de o domnio dos dados de entrada infinito ou muito grande, tornando invivel o teste exaustivo, o que compreenderia testar todas as possibilidades. Assim, apesar da intensa busca por um software isento de defeitos, as tcnicas aplicadas para garantia da qualidade em sua grande maioria podem apenas melhorar a confiana no produto e mesmo aps a correo de todos os erros que provocaram as falhas encontradas durante os testes, novos casos de teste poderiam apontar novos erros. Dado este fato, a execuo dos testes de forma planejada e ordenada tem por objetivo cobrir o maior nmero de situaes possveis para evitar defeitos comuns ou mesmo defeitos em processos mais crticos (INTHURN, 2001).

2.1.1 O processo de teste de software

O processo de teste proposto por Hetzel (1987), e tambm referenciado por Macgregor e Sykes (2001), aponta apenas trs atividades, identificadas como:

Anlise: o produto a ser testado analisado com o intuito de identificar caractersticas especiais que devem receber uma maior ateno na construo dos casos de teste;

Construo: alm da definio dos casos de teste, todos os artefatos necessrios para a execuo dos casos de teste so preparados e implementados, caso seja necessrio; e

Execuo e Avaliao: os casos de teste definidos anteriormente so executados e seus resultados so avaliados, a fim de determinar se o resultado obtido foi exatamente o esperado, identificando as possveis falhas do software.

Outro modelo para o processo de testes proposto por Sommerville (2007), tambm apresentado por Maldonado e Fabbri (2001), que diferentemente do processo apresentado anteriormente este

13

composto por quatro atividades e no trs, sendo estas: projeto de casos de teste, preparao dos dados de teste, execuo dos casos de teste e comparao do resultado esperado com o resultado obtido durante a execuo dos casos de teste. Estas atividades ocorrem ainda de forma sequencial, dada a dependncia de uma atividade com a outra, conforme apresentado na Figura 1.

Figura 1 - Processo de teste para deteco de defeitos

Fonte: Sommerville (2007)

Inicialmente, para execuo deste processo, projetam-se os casos de teste, os quais devero gerar artefatos contendo todos os recursos necessrios para a preparao e execuo dos testes, incluindo ainda os resultados esperados para cada teste a ser executado. Para Macgregor e Sykes (2001), um dos maiores desafios envolvidos no teste de software refere-se definio e organizao dos casos de teste, pois desta partiro todas as definies para as prximas atividades, inclusive quanto anlise final.

Seguindo ento o processo proposto, com base nos casos de testes levantados, inicia-se a atividade de preparao dos dados de testes onde estes sero executados e nesta fase que so estruturados os dados que serviro de entrada para a execuo dos testes.

A execuo dos casos de testes se d por trs passos fundamentais, definidos por Inthurn (2001), sendo respectivamente: as entradas, processos e sadas. Onde as entradas j foram definidas na etapa anterior de preparao e os processos a serem executados j foram definidos no projeto dos casos de teste.

Ao fim do processo obtm-se ento um comparativo entre os resultados gerados aps a execuo dos testes com os testes esperados, j levantados na fase inicial, com base neste comparativo possvel identificar se o produto em desenvolvimento esta atendendo aos critrios estabelecidos de forma adequada.

2.1.1.1 Qualidade no processo de teste de software

Para obteno de bons casos de teste, necessrio que as atividades de teste sejam cuidadosamente planejadas, fornecendo um elevado nvel de confiana de que o software trata adequadamente todos os requisitos levantados, para Inthurn (2001): Testes bem planejados so capazes de remover em mdia 60% dos defeitos de um programa. Outro fator que justifica a

14

necessidade de detectar estes defeitos ainda na fase de desenvolvimento do software refere-se ao custo, dado que encontrar erro, aps a fase de implantao, pode gerar grandes perdas financeiras ou mesmo riscos a vida humana.

O projeto dos casos de teste uma das atividades mais importantes no processo de teste, uma srie de tcnicas, critrios e mtodos devem ser analisados para a sua construo (INTHURN, 2001). Estas tcnicas fornecem o suporte necessrio para garantir casos de testes adequados para cada fase do desenvolvimento de um software, pois cada etapa pode gerar diferentes tipos de falhas, o teste alm estar presente em todas as fases de desenvolvimento, precisa ser adequado a cada uma destas etapas, afim de, estabelecer um elevado nvel de qualidade na deteco de erros. A definio dos casos de teste de responsabilidade da equipe de teste, e segundo Pfleeger (2004), a equipe de testes deve ser capaz de escolher dados de teste representativos, para mostrar que todas as combinaes possveis so tratadas apropriadamente.

No entanto, observa-se que os conceitos de qualidade no so totalmente empregados pelas organizaes de desenvolvimento de software, conforme apontado por Rocha et al. (2006), atravs de uma pesquisa realizada com 13 (treze) empresas em 2005. Esta pesquisa teve como objetivo determinar o estado atual das prticas de teste no cenrio de desenvolvimento de software brasileiro. Rocha et al. (2006), constata que as empresas que participaram do experimento consideraram 48,5% das prticas de teste de software no-aplicadas e no-importantes, dentre estas prticas esto todas as relacionadas medio e anlise, includa nesta categoria est a medio da cobertura dos testes, apontado por Zhu, Hall e May (1997) como critrio para determinar a qualidade dos testes. Quanto a estes resultados, Rocha et al. (2006) conclui que:

... foi observada uma grande quantidade de prticas consideradas no-importantes e no-aplicadas, independente do tamanho das organizaes. As razes para isso podem ser diversas, tais como: falta de interesse da organizao em relao a essas prticas de teste, falta de conhecimento sobre as prticas, falta de recursos humanos disponveis para a sua implantao, falta de apoio da alta gerncia para sua implantao, carncia em abordagens, tcnicas de teste ou ferramentas que apiem essas prticas e que atendam s reais necessidades das organizaes.

Os resultados obtidos por Rocha et al. (2006), vem de encontro aos resultados de uma pesquisa realizada por Bertolino (2004), que ao avaliar o teste de software nas organizaes, tambm observou uma grande distncia entre o que produzido no meio acadmico e o que praticado pelas empresas de software. Estes resultados permitem verificar a imaturidade das organizaes avaliadas quanto ao teste de software em seu processo de desenvolvimento.

2.1.1.2 A organizao dos testes

Os testes esto organizados em etapas, conforme ilustrado na Figura 2, a fim de detectar os diferentes tipos de defeitos encontrados em cada uma das fases do desenvolvimento de um

15

software. Para cada uma das etapas aplicado o processo de teste proposto por Hetzel (1987) ou Sommerville (2007) (Figura 1), onde so projetados os casos de teste, os dados de teste so preparados, os casos de teste executados e seus resultados comparados com os resultados esperados, assim obtendo um resultado isolado e independente em cada fase dos testes.

Figura 2 Etapas de Teste

Fonte: Pfleeger (2004)

Cada uma das etapas apontadas por Pfleeger (2004) apresentada resumidamente a seguir:

Teste de unidade: etapa inicial de testes em que cada unidade verificada de forma isolada das demais. O teste de unidade pode ocorrer antes mesmo da implementao das unidades.

Teste de integrao: fase em que o objetivo apontar as falhas decorrentes da interao entre as unidades. A ordem em que a integrao das unidades ocorre tem sua importncia, inclusive para determinar a tcnica que ser utilizada durante os testes.

Teste funcional: conhecido tambm por teste de caminhos de execuo, este consiste na verificao de cada uma das funcionalidades do sistema.

Teste de desempenho: com base principalmente nos requisitos no-funcionais especificados, verificado se o sistema contempla estes de forma adequada;

Teste de aceitao: o software avaliado por um grupo restrito e controlado de usurios, que apontam possveis falhas ainda no detectadas.

Teste de instalao: o software submetido a diferentes ambientes para onde este foi projetado e seu comportamento avaliado, a fim de determinar se existe qualquer restrio quanto ao ambiente onde o software ser executado.

Tendo em vista que o objetivo deste projeto desenvolver e avaliar um jogo para o ensino de teste de software com foco em teste de unidade, a seguir so apresentados mais detalhes sobre a etapa inicial de teste, o teste de unidade.

16

2.1.2 Teste de Unidade

Durante o processo de desenvolvimento de um software, inicialmente o cdigo de cada componente deve ser testado de forma isolada dos outros componentes do sistema, sendo este teste conhecido como teste de unidade, teste de componente ou teste de mdulo (PFLEEGER, 2004). Koomen e Pol (1999, apud RUNESON 2006) definem o teste de unidade como: um teste que deve ser executado pelo programador em um ambiente de testes, que deve demonstrar que o programa atende ao conjunto de requisitos especificados no projeto. Tendo em vista a abrangncia da definio de Koomen e Pol (1999, apud IEEE RUNESON 2006), outra definio apresentada por Withtaker (2000, apud RUNESON 2006), o teste de unidade deve testar os componentes de software de forma individual ou conjunta. O profissional responsvel pelos testes define o domnio de entrada para as unidades em questo, ignorando o resto do sistema.

Apesar de controvrsias definies serem apresentadas quanto ao teste de unidade, um objetivo principal apontado para o teste de unidade: identificar os erros na implementao da unidade, seja de lgica ou mesmo no conformidade com os requisitos (THOMAS et al., 2004).

2.1.2.1 Escopo para o teste de unidade

Uma unidade de um sistema definida por Pfleeger (2004), como um mdulo ou funo para sistemas tradicionais e na forma de classes para os sistemas orientados a objetos. Quanto aos sistemas orientados a objetos, a justificativa para que a unidade seja vista como uma classe levantada por Pressman (2006), pois cada mtodo, com algumas excees, necessita no mnimo de uma preparao da classe onde estes residem para que o mesmo possa ser invocado.

Segundo IEEE (1990, apud MALDONADO e FABBRI 2001), uma unidade um componente de software que no pode ser subdivido. Com base nesta definio, Maldonado e Fabbri (2001) apontam uma unidade como sendo um mtodo de uma classe para os sistemas orientados a objetos.

Para Thomas et al. (2004), a definio de unidade reflete diretamente no escopo para definio dos casos de teste, considerando ainda duas opes de escopo para o teste de unidade, a primeira delas refere-se definio j citada por Pfleeger (2004), onde uma unidade vista como uma classe do sistema, e uma segunda, j apresentada por Maldonado e Fabbri (2001), em que a unidade definida como um mtodo de uma classe. Isto significa que ao assumir que uma unidade do sistema ser, por exemplo, um mtodo de uma classe, deve-se ento definir casos de teste para cada mtodo.

2.1.2.2 O que testar no teste de unidade

Tendo em vista o objetivo do teste de unidade, que garantir a qualidade de forma isolada de cada unidade do sistema, Inthurn (2001) define alguns pontos que devem ser contemplados na verificao das unidades, sendo estes:

A interface com a unidade;

17

A estrutura de dados local; As condies limite; Os caminhos bsicos; e Os caminhos de tratamento de erros.

Alguns dos pontos de verificao apresentados por Inthurn (2001), como a verificao da estrutura de dados local ou mesmo os caminhos bsicos, por exemplo, em sistemas orientados a objetos levam a necessidade de conhecer a estrutura interna de uma classe ou mtodo. Com base neste fato, Macgregor e Sykes (2001) e Thomas (2004), apresentam a verificao da interface da unidade como nico ponto de verificao, apoiando-se principalmente nos requisitos para cada unidade.

Esta divergncia, quanto ao que testar em cada unidade, ganha destaque na literatura, definindo ainda duas diferentes abordagens, em que uma tem como base a estrutura interna da classe e outra somente a estrutura externa, conforme apresentado na seo a seguir.

2.1.2.3 Artefatos necessrios para o teste de unidade

Independente da abordagem utilizada no teste de unidade, certos artefatos de software podem ser desenvolvidos para o teste de unidade, permitindo simular a execuo de unidade ou mesmo o seu isolamento das demais unidades (MALDONADO & FABBRI, 2001).

O artefato responsvel pela ativao da unidade a ser testada nominado por Maldonado e Fabbri (2001), como driver, suas principais funes esto em preparar o ambiente para a unidade e conduzir a simulao. Outro artefato que pode-se fazer presente, decorre da necessidade de algumas unidades em interagir com outras para realizar determinada tarefa, partindo do princpio do isolamento, para evitar que esta unidade tenha contato direto com outra, para realizao dos testes so criados stubs, estes simulam o comportamento ou a funcionalidade de uma unidade, de forma simplificada ou mesmo de forma esttica. Em sistemas orientados a objetos, segundo Maldonado e Fabbri (2001), os drivers so vistos como a classe a qual o teste est verificando, pois esta a principal responsvel por preparar um ambiente para a invocao de determinado mtodo, enquanto que os stubs substituem as outras classes (unidades) as quais a unidade em teste interage.

2.1.2.4 O teste de unidade e o processo de desenvolvimento de software

Alguns modelos geis de desenvolvimento como o XP (Extreme Programming), possuem o teste de unidade como parte fundamental do processo de desenvolvimento. Este modelo proposto por Beck (1999, apud PRESSMAN 2006) tem como base pequenas interaes que possuem trs momentos diferentes: planejamento, projeto e uma etapa para codificao e teste. Esta ltima etapa refere-se codificao e testes de forma quase que simultnea, onde testes de unidade e integrao so realizados constantemente, mesmo sem a codificao completa da unidade. Em geral estes testes de unidade possuem como base uma viso funcional da classe, testando suas funcionalidades, invocando seus mtodos e comparando os resultados obtidos com os resultados esperados, isto significa uma viso de caixa preta para os testes de unidade.

18

A tcnica TDD fortalece a necessidade da construo de testes de unidade, antecipando ainda a definio dos casos de teste antes mesmo da codificao, segundo Beck (2002), um cdigo s pode ser escrito se houver um teste para verific-lo. Com esta definio Beck (2002), define a base para a tcnica TDD.

2.1.2.5 Mtricas para o teste de unidade

A anlise de cobertura e adequao dos testes consiste em verificar se um conjunto de casos de teste satisfaz aos requisitos estabelecidos pelos critrios de teste selecionados, so os critrios de teste que determinam quantos e quais casos de teste so suficientes para testar um sistema (ZHU, HALL e MAY, 1997).

Para Maldonado e Fabbri (2001) a anlise de cobertura, assim denominada, consiste em determinar o percentual de elementos necessrios por um critrio de teste que foram executados pelo conjunto de casos de teste.

Segundo Maldonado e Fabbri (2001), os critrios de teste podem ser utilizados de duas maneiras no processo de teste de software, sendo estes:

Critrio de adequao de casos de teste: quando o critrio de teste utilizado para verificar se um conjunto de casos de teste j estabelecidos satisfaz aos requisitos estabelecidos.

Critrio de gerao de casos de teste: quando o critrio utilizado para gerar um conjunto de casos de teste.

Os critrios para avaliao ou adequao dos casos de teste para o teste de unidade so apresentados por Zhu, Hall e May (1997) em trs categorias:

Critrios com base na estrutura: especificam a cobertura de testes com base na estrutura interna da aplicao, indicando, por exemplo, quantas vezes um trecho de cdigo deve ser exercitado por um caso de teste para atender ao critrio.

Critrios com base em falhas: verifica a cobertura de um conjunto de casos de teste baseado no nmero de falhas encontradas, uma das tcnicas utilizadas por este critrio, refere-se incluso de falhas no cdigo, para verificar quantos destes so detectados pelos casos de teste.

Critrios com base em erros: com base em uma anlise prvia do cdigo so identificados pontos considerados mais propensos a erros, estes pontos so chamados de subdomnios e para cada subdomnio so determinadas condies para que um caso de teste atenda ao critrio.

2.1.2.6 Abordagens quanto ao teste de unidade

A taxonomia sugerida por Coward (1997, apud PEDRYCZ & PETERS 2001), classifica os testes de software em testes de caixa branca, onde a estrutura interna do software de grande importncia para gerao dos casos de teste e os testes de caixa preta, que tm como base os requisitos

19

estabelecidos para o sistema, sem levar em considerao a estrutura interna do software. Para o teste de unidade as duas abordagens so vlidas, caixa branca e caixa preta.

O objetivo dos testes de caixa branca exercitar todas as estruturas internas do sistema, de forma a garantir que o cdigo implementado possui o comportamento desejado. Conforme a Figura 3, um teste de caixa branca deve observar os possveis caminhos na estrutura interna e verific-los (PFLEEGER, 2004).

Figura 3 Viso de teste de caixa branca

Fonte: Barti (2002)

A grande desvantagem desta abordagem, segundo Barti (2002), est no fato de que os membros da equipe de testes devem ter grande experincia na linguagem de desenvolvimento utilizada no projeto e conhecimento sobre a arquitetura interna do sistema, isto leva a uma equipe de testes composta principalmente por componentes da equipe de desenvolvimento.

Diferente do teste de caixa branca, o teste de caixa preta tem por objetivo testar o software sob uma perspectiva externa, analisando se este compreende os requisitos do sistema de forma adequada, no tendo como objetivo testar como o problema tratado, ou mesmo como foi implementado, mais sim, se este tratado e se o resultado obtido o esperado (BARTI, 2002), a Figura 4 ilustra a definio do teste de caixa preta.

Figura 4 Viso de teste de caixa preta

Fonte: Barti (2002)

A abordagem de caixa preta para os testes de unidade tem por finalidade verificar se as unidades implementam os requisitos atribudos a estas, esta verificao inclui o teste de cada funcionalidade apresentada pela unidade, fornecendo dados de entrada e comparando os resultados obtidos com os resultados esperados. Assim para esta abordagem a principal

20

desvantagem apontada por Barti (2002), est na ausncia de uma verificao mais minuciosa do cdigo fonte da unidade.

2.1.2.7 Tcnicas para elaborao de teste de caixa preta para o teste de unidade

A elaborao dos casos de teste, sejam estes de caixa preta ou branca, apoiada por tcnicas que visam de maneira geral, uma melhor cobertura com um conjunto reduzido de casos de teste (DELAMARO, MALDONADO & JINO, 2007). Estas tcnicas permitem uma melhor eficincia e mesmo eficcia na atividade de teste de software, podendo ento gerar melhores resultados a custos reduzidos, se comparadas simples utilizao de testes aleatrios, ou testes exaustivos quando possvel (BLACK, 2008). As tcnicas de caixa preta aplicadas ao teste de unidade so comumente aplicadas tambm a outros nveis de teste (PRESSMAN, 2006), visto que estes se apiam na especificao ou documentao de uma funcionalidade ou comportamento.

As tcnicas de partio por equivalncia, anlise de valor limite e grafo de causa efeito so comumente abordadas nas bibliografias bsicas (PRESSMAN, 2006; PFLEEGER, 2004; SOMMERVILLE, 2007) das disciplinas de engenharia de software nos cursos de graduao em cincia da computao (UNIVALI, 2010; UFPA, 2010; UFSC, 2010; PUC-RIO, 2010). Em funo de este trabalho estar focado no desenvolvimento e avaliao de um jogo educacional para o apoio ao ensino de teste de software nos cursos de graduao, somente as tcnicas anteriormente citadas sero abordadas com maior aprofundamento, ainda que a tcnica de teste funcional sistemtico esteja presente na bibliografia complementar (DELAMARO, MALDONADO & JINO, 2007)