Evolução do Jogo ItestLearning para o Ensino de Testes de Software: Do Planejamento ao Projeto



Documentos relacionados
itest Learning: Um Jogo para o Ensino do Planejamento de Testes de Software

GARANTIA DA QUALIDADE DE SOFTWARE

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Fundamentos de Teste de Software

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Utilizando a ferramenta de criação de aulas

Projeto 2.47 QUALIDADE DE SOFTWARE WEB

Teste de Software Parte 1. Prof. Jonas Potros

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Projeto de Sistemas I

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO

Sistema de Acompanhamento ao Desempenho do Aluno

Processo de Desenvolvimento de Sites

Gerenciamento de Riscos do Projeto Eventos Adversos

Plano de Gerenciamento do Projeto

PR 2 PROCEDIMENTO. Auditoria Interna. Revisão - 2 Página: 1 de 9

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

INTRODUÇÃO AO MICROSOFT DYNAMICS AX 4.0 FINANCEIRO I

Metodologia para Planejamento, Execução e Controle de Teste de Software. Roteiro

Fundamentos em Teste de Software. Vinicius V. Pessoni

Testes de Software Aula 1

Manual Geral do OASIS

Processo de Implementação de um Sistema de Gestão da Qualidade

Aplicando Avaliações de Contextualização em Processos de Software Alinhados ao nível F do MR-MPS V1.2

Feature-Driven Development

PROFESSOR: CRISTIANO MARIOTTI

Ambiente Virtual de Aprendizagem (AVA) Guia de Estudos Metodologias Jovem de Futuro

Apresentação do Treinamento MSP. Fundamentos

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Sistema Inteligente Não-Linear de Apoio à Aprendizagem 1 Rangel RIGO, Ana Paula Laboissière AMBRÓSIO

CURSO: LICENCIATURA DA MATEMÁTICA DISCIPLINA: PRÁTICA DE ENSINO 4

2 Diagrama de Caso de Uso

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Ajuda ao SciEn-Produção O Artigo Científico da Pesquisa Experimental

IMPLANTAÇÃO DE UM SISTEMA DE AVALIAÇÃO DE DESEMPENHO NA UFG

CHECK - LIST - ISO 9001:2000

MASTER IN PROJECT MANAGEMENT

GERÊNCIA DE INTEGRAÇÃO DO PROJETO

MODELAGEM MATEMÁTICA: PRINCIPAIS DIFICULDADES DOS PROFESSORES DO ENSINO MÉDIO 1

Processos de Desenvolvimento de Software

Desafio Profissional PÓS-GRADUAÇÃO Gestão de Projetos - Módulo C Prof. Me. Valter Castelhano de Oliveira

PLANOS DE CONTINGÊNCIAS

Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais.

Atividade: COBIT : Entendendo seus principais fundamentos

Abordagem de Processo: conceitos e diretrizes para sua implementação

QUESTIONÁRIO ONLINE NO MOODLE 2.x: NOVIDADES E POSSIBILIDADES

PERSPECTIVAS DO PROJETO DE ENSINO FÁBRICA DE SOFTWARE *

ENGENHARIA DE SOFTWARE I

Verificação é um processo para se determinar se os produtos, (executáveis ou

PROJETO Pró-INFRA/CAMPUS

softwares que cumprem a função de mediar o ensino a distância veiculado através da internet ou espaço virtual. PEREIRA (2007)

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

INF Introdução a Interação Humano-Computador (IHC)

SOFTWARE EDUCATIVO DE MATEMÁTICA: SHOW MATH

MODELO CMM MATURIDADE DE SOFTWARE

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Tutorial 5 Questionários

Sistema de Gestão de Recursos de Aprendizagem

Processos de gerenciamento de projetos em um projeto

11 de maio de Análise do uso dos Resultados _ Proposta Técnica

Prêmio Inovação UP 2012 Manual de Preenchimento do Formulário

Gerenciamento de Problemas

UM ROTEIRO PARA A EXECUÇÃO DE ATIVIDADES EM UM PROJETO DE INCLUSÃO DIGITAL

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

BANCO DE AULAS E PROJETOS MANUAL DO APLICATIVO

Footprints Service Core. Manual de uso do sistema

Engenharia de Software

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Carga Horária :144h (07/04 a 05/09/2014) 1. JUSTIFICATIVA: 2. OBJETIVO(S):

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

Utilização de modelos virtuais no ensino de desenho técnico para engenheiros florestais

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

OS CONHECIMENTOS DE ACADÊMICOS DE EDUCAÇÃO FÍSICA E SUA IMPLICAÇÃO PARA A PRÁTICA DOCENTE

c. Técnica de Estrutura de Controle Teste do Caminho Básico

ISO/IEC 12207: Gerência de Configuração

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

2.1 Os projetos que demonstrarem resultados (quádrupla meta) serão compartilhados na Convenção Nacional.

Apresentação do Treinamento

DESENVOLVIMENTO DE SOFTWARE EDUCATIVO PARA O PROCESSO DE ALFABETIZAÇÃO SOFTWARE DEVELOPMENT FOR EDUCATIONAL PROCESS OF LITERACY

XIII Encontro de Iniciação Científica IX Mostra de Pós-graduação 06 a 11 de outubro de 2008 BIODIVERSIDADE TECNOLOGIA DESENVOLVIMENTO

Abordagem de Licenciandos sobre softwares educacionais de Química

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

PRÓ-MATATEMÁTICA NA FORMAÇÃO DE PROFESSORES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Ambiente Moodle 2º Semestre de 2010 Modelo A4

JOGOS DIGITAIS NO ENSINO E APRENDIZAGEM DE ENGENHARIA DE SOFTWARE

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Transcrição:

Evolução do Jogo ItestLearning para o Ensino de Testes de Software: Do Planejamento ao Projeto Carla I. M. Bezerra Federal University of Ceará Fortaleza CE, Brazil Campus do Pici, Bloco 942-A, Zip Code 60455-760 55 85 3366-9797 carlabezerra@great.ufc.br José Maria Monteiro Federal University of Ceará Fortaleza CE, Brazil Campus do Pici, Bloco 942-A, Zip Code 60455-760 55 85 3366-9797 monteiro@lia.ufc.br Emanuel F. Coutinho Federal University of Ceará Fortaleza CE, Brazil Campus do Pici, Bloco 942-A, Zip Code 60455-760 55 85 3366-9797 emanuel@virtual.ufc.br Rossana M. C. Andrade Federal University of Ceará Fortaleza CE, Brazil Campus do Pici, Bloco 942-A, Zip Code 60455-760 55 85 3366-9797 rossana@great.ufc.br Ismayle S. Santos Federal University of Ceará Fortaleza CE, Brazil Campus do Pici, Bloco 942-A, Zip Code 60455-760 55 85 3366-9797 ismaylesantos@great.ufc.br ABSTRACT The lack of both practical activities and the participation of computing students in real software development projects make the teaching of software testing a challenge. In this scenario, educational games are interesting to help the learning because they simulate real situations of software projects. The game ItestLearning was originally designed to help the learning of concepts related to the testing planning. Then, this paper presents the evolution of the game ItestLearning to contemplate the teaching of design activities for tests, as well as the results of its evaluation, which was conducted in three different disciplines of Computer Science courses. These results indicated evidences that this game contributes to the learning of software testing. RESUMO A falta de atividades práticas e da participação de estudantes de Computação em projetos de desenvolvimento de software reais torna o ensino de teste de software um desafio. Neste cenário, jogos educativos são interessantes para ajudar na aprendizagem porque simulam situações reais de projetos de software. O jogo ItestLearning foi originalmente projetado para ajudar o aprendizado de conceitos relacionados ao planejamento de testes. Então, este trabalho apresenta a evolução do jogo ItestLearning para contemplar o ensino de atividades de projeto de testes, assim como os resultados de sua avaliação, realizada em três diferentes disciplinas de cursos de Computação. Os resultados indicaram evidências de que este jogo contribui para o aprendizado de teste de software. Descritor de Categorias e Assuntos K.3.2 [Computer and Information Science Education]: Computer science education. Termos Gerais Theory, Design, Verification. Palavras Chaves Testes de Software, Jogos Educacionais, Avaliação. 1. INTRODUÇÃO Segundo Myers [1], o teste de software pode ser definido como o processo de executar um programa com o objetivo de encontrar defeitos. Logo, esse processo é parte fundamental do desenvolvimento de aplicações, sendo considerada uma das principais estratégias para assegurar a qualidade de produtos de software. Dado à relevância das atividades relacionadas ao processo de teste de software, os currículos de referência da Sociedade Brasileira de Computação (SBC) e da Association for Computing Machinery (ACM) abordam assuntos relacionados a este tema, sendo o curso de Engenharia de Software aquele que mais explora a área de teste de software [2]. Contudo, apesar dessa importância, o teste de software recebe pouca atenção nos currículos de graduação, sendo poucas as horas dedicadas ao seu ensino [3]. Além disso, os cursos oferecidos enfrentam dificuldades no ensino de testes de software, como: falta de atividades práticas, dificuldade para motivação, falta de tempo para a transmissão do conhecimento e dificuldades para ensinar as habilidades de elaboração e execução de casos de teste [4]. Jogos têm sido utilizados no auxílio do ensino de diversas áreas do conhecimento [5, 6, 7]. Quando utilizados como ferramentas educacionais, podem permitir a experimentação de situações reais que seriam vivenciadas em um ambiente profissional de desenvolvimento de software [8, 9, 10]. Contudo, os resultados da 184

revisão sistemática conduzida por Pietruchinski et al. [11] trazem evidências de que embora a área de Engenharia de Software tenha sido uma das mais beneficiadas com pesquisas relacionadas a jogos educacionais, ainda existe uma carência por pesquisas relacionadas a jogos educativos. Na literatura existem alguns jogos que auxiliam o aprendizado da atividade de testes de software [3, 12, 13]. Contudo, nenhum dos trabalhos encontrados foca nas atividades de planejamento e projeto de testes. No planejamento de testes são definidos os objetivos dos testes e as atividades para alcançar tais objetivos, enquanto que no projeto de testes tem-se a especificação de como o software deve ser testado [14]. Logo, dado a importância dessas atividades e os benefícios dos jogos educacionais, é interessante que haja um jogo educacional para apoiar o aprendizado dessas atividades, confrontando algumas das dificuldades no ensino de testes. Existem diversos tipos de jogos educacionais, tais como jogos de simulação, aventura, quebra-cabeças, experimentais e motivacionais [15]. Dado o objetivo de apoiar o aprendizado das etapas de planejamento e projeto de testes, decidiu-se desenvolver um jogo educacional de computador do tipo simulação. Este tipo de jogo produz diversas situações da vida real com objetivo de formação, análise ou previsão, combinando as características de um jogo (competição, regras, jogadores) com as da simulação (incorporação de recursos do mundo real) [16]. A versão inicial do jogo, chamado ItestLearning, e sua avaliação foram apresentadas respectivamente por [17] e [18]. Essa versão contemplava apenas as atividades de planejamento de testes de software. O objetivo deste artigo é descrever a evolução deste jogo para a fase de projeto. Uma nova avaliação do jogo também é apresentada, seguindo um modelo específico de avaliação para jogos educacionais descrito por Savi et al. [19]. Este artigo está organizado da seguinte maneira: na Seção 2 são apresentados os principais conceitos relacionados a teste de software; na Seção 3 são descritos os trabalhos relacionados; na Seção 4 é apresentada a evolução do jogo desenvolvido para o ensino de teste; na Seção 5 é descrita a avaliação do ITESTLEARNING; na Seção 6 é realizada uma discussão sobre pontos fortes e sugestões de melhoria do jogo; por fim, a conclusão e trabalhos futuros são apresentadas na Seção 7. 2. TESTE DE SOFTWARE De acordo com o IEEE [20] o teste de software é a verificação dinâmica do funcionamento de um programa utilizando um conjunto finito de casos de teste, adequadamente escolhido dentro de um domínio de execução, em geral, infinito, contra seu comportamento esperado. Essa definição é interessante por destacar que o teste envolve a execução do programa, que o teste exaustivo (com um conjunto infinito de casos de testes) é inviável na prática e que ele compara o comportamento real do sistema contra um comportamento esperado. Neste cenário, cabe apresentar a diferença entre caso de teste e procedimento de teste. A especificação de casos de testes documenta as entradas, saídas esperadas e as condições de execução para um dado teste [21], enquanto que os procedimentos de testes são as sequências de instruções para configuração, execução e avaliação dos resultados de um dado caso de teste [22]. Os testes podem ser classificados quanto ao objetivo. Testes funcionais verificam se o comportamento do sistema está de acordo com as especificações. Testes de usabilidade analisam dentre outras coisas o quão fácil é para o usuário usar o software. Testes de desempenho verificam os requisitos de desempenho do software. Outros tipos de testes e mais detalhes podem ser encontrados em [20]. Além da classificação quanto ao objetivo, os testes podem ser classificados quanto ao nível. Segundo Muller et al. [14] existem quatro níveis de testes: i) Unidade, no qual procura-se defeitos em partes do software que podem ser testadas separadamente; ii) Integração, onde estão os testes caracterizados por testar as interfaces entre os componentes; iii) Sistema, no qual os testes verificam o comportamento de todo o sistema; e iv) Aceitação, que abrange os testes que são frequentemente feitos pelo usuário final e que tem por objetivo estabelecer a confiança no sistema. Apesar da relevância da atividade de testes, é importante ressaltar que sua execução é bastante onerosa porque requer tempo, conhecimento, planejamento, infraestrutura e pessoal especializado [1]. Dessa forma, ferramentas que auxiliem esta atividade, tais como o Selenium [23], o JMeter [24], o Mantis [25] e o TestLink [26] são de grande importância para reduzir os custos envolvidos. Com o objetivo de guiar a execução dos testes deve ser utilizado um processo de teste. Segundo Müller et al. [14], em geral, os processos de testes apresentam as seguintes atividades: Planejamento e controle. O planejamento consiste em definir os objetivos dos testes especificando as atividades para alcançar esses objetivos. A atividade de controle consiste em comparar constantemente o progresso atual contra o planejado. O planejamento pode ser documentado em um documento chamado Plano de Testes, que deve conter dentre outras coisas: recursos, cronograma, itens que serão testados, equipe, e riscos; Análise e Modelagem (Projeto). Nesta atividade, os objetivos gerais do teste são transformados em condições e modelos de teste tangíveis. Um dos principais resultados dessa etapa é o documento de especificação dos casos de testes, onde são descritos os casos e procedimentos de testes; Implementação e execução. Esta é a atividade onde os procedimentos ou roteiros de teste são implementados pela combinação dos casos de teste. Além disso, o ambiente de testes é preparado e os testes são executados; Avaliação do critério de saída e relatórios. Nesta atividade a execução do teste é avaliada mediante os objetivos definidos para produzir um relatório de testes e verificar se são necessários mais testes; e 185

Figura 1. Arquitetura projetada para o jogo. Atividades de encerramento de testes. Durante esta atividade são coletados os dados de todas as atividades para consolidar a experiência da execução dos testes. Em se tratando do jogo apresentado neste artigo, o foco foi direcionado para a fase de planejamento e projeto de testes de software, conforme é apresentado em detalhes na Seção 4. 3. TRABALHOS RELACIONADOS Vários jogos têm sido propostos na literatura para apoiar o ensino de Engenharia de Software [8, 9]. Contudo, com relação ao ensino da disciplina teste de software, foram identificados na literatura poucos jogos educacionais [2, 3, 12, 13] os quais são descritos a seguir. BugHunt é uma aplicação web onde o aluno inicialmente tem acesso aos objetivos e a uma série de guias para ajuda [12]. Então, o aluno passa por um conjunto de lições sobre testes caixa-preta, caixa-branca, automação e eficiência de testes. Esta aplicação possui também um conjunto de exercícios e as respectivas soluções. Ao final, um sumário é exibido. O U-Test é um jogo de simulação com foco em teste de unidade, abordando teoria e prática [13]. O jogador assume o papel de um testador responsável pela escrita de testes de unidade para um sistema hipotético. Seu objetivo é aplicar técnicas para a seleção de dados de entrada para o teste de unidade. As regras do jogo são impostas pela interface e o feedback é exibido ao final de cada desafio. Silva et al. [2] propuseram o Jogo da Equipe de Teste de Software (JETS), visando simular interações de uma equipe de teste de software em uma empresa. O jogo é constituído de quatro fases, onde o estudante assume um cargo diferente dentro de uma equipe de testadores (Testador de Software, Analista de Teste, Arquiteto de Teste e Líder da Equipe de Teste). O jogo possui um mecanismo de pontuação, porém não foi apresentada no artigo nenhuma avaliação. Diniz e Dazzi [3] propuseram a utilização de um jogo como estratégia de ensino e aprendizagem, o Jogo das 7 Falhas. O Jogo das 7 Falhas é do tipo single-player onde o jogador assume papel de testador em uma equipe de teste de software de uma empresa fictícia. O objetivo deste jogo é identificar as sete falhas existentes em cada funcionalidade testada, correlacionando-as com uma classe de equivalência ou um valor-limite, no menor tempo possível. O resultado da avaliação quantitativa e qualitativa apresentada por Diniz e Dazzi [3] sugere que este jogo pode ser uma eficiente técnica de ensino a ser utilizada no ensino de teste de caixa-preta. Conforme apresentado nesta seção, nenhum dos jogos encontrados na literatura focam no planejamento e projeto do teste de software, sendo este o diferencial do ItestLearning. Vale ressaltar que o ItestLearning é um jogo de simulação, possui um feedback imediato e um sumário consolidado ao final, assim como um mecanismo de pontuação. 4. O JOGO DIGITAL PARA O ENSINO DE TESTE DE SOFTWARE O jogo denominado ItestLearning 1 [17, 18] provê um ambiente para a realização do planejamento de teste de software através de uma breve descrição de um projeto hipotético. Dessa forma, a evolução do jogo ItestLearning, apresentada neste artigo, simula o projeto de casos de testes a partir de requisitos, estórias do usuário ou casos de uso. O público alvo do jogo são alunos de cursos de graduação da área de computação/informática, os quais possuem disciplinas com conteúdo relacionado ao teste de software. Para o uso deste jogo como meio de aprendizado é necessário que o jogador possua conhecimentos prévios de Engenharia de Software. 4.1. TECNOLOGIA DO JOGO A metodologia adotada para o desenvolvimento do jogo iniciou-se com a elaboração do Game Design Document (GDD), documento que descreve a dinâmica e interface do jogo, refinado em diagramas de atividade e classe para a programação. A linguagem de programação utilizada foi Java, utilizando o framework Java Server Faces. Para isso, a arquitetura foi baseada no padrão MVC (Model-View-Controller - Modelo-Visão-Controlador), que tem como objetivo separar a lógica de negócio da interface do usuário, e controlar o fluxo da aplicação. Como servidor web foi utilizado o Tomcat, como banco de dados o PostgreSql e XHTML na camada de visão. Foram utilizados ainda os frameworks Hibernate, para persistência dos dados, e o Primefaces, suíte de componentes JSF (Java Server Faces) customizados. A Figura 1 exibe a arquitetura definida para o jogo, assim como os relacionamentos entre seus componentes em alto nível. Três camadas foram definidas para esta arquitetura: interface do usuário, controle da aplicação e banco de dados. Na interface do usuário é possível acessar a aplicação através de qualquer navegador web, independente do dispositivo. As requisições dos usuários são repassadas à camada de controle da aplicação, assim como os dados, e direcionados para os devidos responsáveis, consequente processamento, e acesso ao banco de dados quando 1 itestlearning - https://sistemas.quixada.ufc.br/itestlearning/ 186

Figura 2. Diagrama de atividades do ITESTLEARNING. necessário. Por fim, o fluxo de dados retorna à interface do usuário, exibindo o resultado do processamento. 4.2. MODELAGEM E EXECUÇÃO DO JOGO O jogo é single-player (jogo para somente um jogador), onde o jogador realiza o planejamento e projeto de teste de software a partir da especificação de projeto. A Figura 2 exibe um diagrama de atividades para a representação das ações entre jogador e sistema. As primeiras atividades do diagrama estão relacionadas à fase de planejamento já apresentada em [17, 18]. Para o prosseguimento para fase de projeto de testes, o jogador precisa atingir uma pontuação mínima na fase de planejamento. O jogo inicia com a fase de planejamento, onde o jogador poderá escolher o nível de dificuldade do jogo (fácil, médio, difícil), podendo selecionar o projeto para iniciar o jogo. Os projetos a serem selecionados no jogo são sistemas fictícios que podem variar de acordo com o nível de dificuldade. O nível de dificuldade influencia nas etapas das fases de forma a desafiar o jogador. A primeira fase simula as atividades de planejamento de testes, e é composta por seis etapas. Todas as etapas da fase de planejamento são definidas com base em Silva [27]. As etapas são descritas conforme o seguinte: Etapa 1: o jogador deve escolher os itens do projeto a serem testados (de acordo com a descrição do projeto); Etapa 2: o jogador define quais tipos de teste serão realizados durante o processo de teste (Interface, Usabilidade, Segurança, Estresse, etc.); Etapa 3: o jogador definirá por quais níveis de teste o projeto passará (Unidade, Integração, Sistema, Aceitação, etc.); Etapa 4: serão definidos os critérios de aceitação que farão com que um teste executado seja aprovado ou não (de acordo com a descrição do projeto); Etapa 5: o jogador deve escolher quais ferramentas serão utilizadas no processo de testes (Selenium, JMeter, Marathon, Mantis, etc.); e Etapa 6: o jogador indica quais artefatos podem ser gerados no processo de teste de software (Plano de Teste, Especificação de Casos de Testes, Relatório de Testes, etc.). A Figura 3 apresenta algumas etapas da fase de planejamento, com a pontuação adquirida até o momento pelo jogador. Em se tratando de sistema de pontuação, ressalta-se que o jogador só poderá seguir para a próxima fase quando concluir a atual. Como detalhado anteriormente, cada etapa da fase de planejamento possui vários itens. A cada item marcado corretamente o jogador ganha pontos e a cada marcação de um item não correto o jogador perde pontos. Ao final da fase de planejamento é exibido uma tela com um feedback contendo todo o planejamento feito pelo jogador e um planejamento recomendado para o projeto. A fase de projeto de testes é a extensão da versão inicial do jogo ItestLearning. O principal objetivo desta fase é selecionar os casos de testes válidos de acordo com a descrição de um determinado evento. O início desta etapa ocorre após a finalização da fase de planejamento, seu acesso é dependente de uma obtenção de 70% ou mais de acertos. Esse percentual é definido com base na média de respostas da fase de planejamento do jogo. Os eventos e a dificuldade desta fase estarão relacionados ao projeto escolhido. O nível de dificuldade tem fundamental importância nesta fase, pois a partir da seleção do nível feita ao início do jogo será submetida ao jogador uma diferente perspectiva da narrativa do evento. Cada projeto apresenta no mínimo três eventos relacionados a ele que deverão ser realizados durante essa fase conforme apresentado na Figura 4. Caso o projeto escolhido seja do nível fácil o jogador deverá selecionar os casos de testes válidos baseados em casos de uso. Nos níveis médio e difícil as descrições serão feitas em cima de estórias de usuário e em nível de requisitos, respectivamente. A relação entre o nível de dificuldade e o formato do requisito é que o nível mais fácil possui um maior detalhamento na forma de 187

Figura 3. Fase de planejamento de testes. casos de uso, facilitando o jogador a definir os casos de testes. Já no nível médio o jogador possui como base o requisito na forma de estórias de usuário, com menos detalhamento do que no nível fácil. O nível difícil está representado na forma de especificação de requisitos simples sem formato, o que torna a dificuldade para o jogador ainda maior. A dinâmica da fase de projeto de testes funciona de modo semelhante à fase de planejamento do jogo. O evento será apresentado ao jogador através de uma narrativa mostrada de acordo com o nível de dificuldade que está sendo aplicado como explicado anteriormente. A partir da leitura desta descrição é necessário escolher quais casos de testes, representados pelas alternativas, serão válidos para aquele evento. É importante ressaltar, que foi definido um padrão simples para projetar os casos de testes do jogo de forma a não deixar as opções extensas e facilitar a seleção delas. Após a seleção, o jogador deverá avançar e então lhe será apresentado um novo evento com uma nova descrição e casos de teste a serem analisados. O aluno deve ter atenção durante a execução da fase de projeto de testes utilizando todos os recursos disponíveis, pois não será possível a troca das alternativas depois do avanço de um evento para outro. A pontuação desta etapa será calculada em cima da mesma obtida na primeira fase do jogo podendo aumentar ou até mesmo reduzir o desempenho geral do jogador. Ao final da fase de projeto de testes, após o jogador ter selecionado os casos de testes que considerou válido para cada evento apresentado, ele poderá ter a visualização da sua pontuação geral. Da mesma forma que a fase de planejamento é fornecida uma tela com um feedback, onde é possível visualizar os casos de testes que foram marcados para os eventos que foram feitos e verificá-los com um resultado sugerido da fase. Neste momento, o jogo poderá ser encerrado ou gravar nome e pontuação no ranking, tudo isso feito através dos ícones presentes. Tanto na fase de planejamento de testes como na fase de projeto de testes é possível o aluno executar o jogo com o mesmo projeto ou com outro projeto para melhorar sua nota no ranking. A Figura 5 exibe a tela final da fase de projeto, após a seleção dos casos de testes pelo usuário, com os casos selecionados pelo jogador e os casos válidos. Figura 4. Fase de projeto de testes. 188

Figura 5. Avaliação do jogo na escala motivação. Primeiramente foram apresentados conceitos introdutórios do Planejamento de Testes e Projeto de Testes e posteriormente foi aplicado o jogo em sala de aula. Foi escolhido um dos projetos do nível fácil para que todos os alunos executassem o mesmo projeto com o mesmo nível de dificuldade. Como o jogo é web, cada aluno executou o jogo individualmente e posteriormente preencheu o questionário de avaliação online 2. O questionário online utilizou a metodologia de avaliação apresentada adaptada ao contexto do jogo. 5.2. ANÁLISE DOS RESULTADOS As respostas do questionário de avaliação do jogo pelos alunos foram consolidadas na planilha fornecida pelo modelo de avaliação [31]. Uma análise qualitativa e quantitativa dos resultados foi realizada, gerando gráficos de frequência que indicam a porcentagem de notas atribuídas para cada item. Para cada componente foram gerados gráficos para análise dos resultados. Para fim de uma melhor visualização, os gráficos das Figuras 5, 6 e 7 exibem valores percentuais apenas para as respostas com frequência acima de 5%, apesar de que os demais estão representados graficamente. Para o cálculo da pontuação utilizou-se a média aritmética simples da soma dos valores das escalas +1 e +2 de cada um dos 2 Questionário Online de Avaliação do itestlearning - http://zip.net/bhmzsk subcomponentes. Assim é possível calcular a pontuação para cada subcomponente individualmente. Para o cálculo da pontuação do componente, o mesmo procedimento foi realizado, utilizando todos seus subcomponentes. Esse resultado é apresentado em pontos percentuais. A Figura 5 apresenta a Motivação. O jogo apresentou um resultado positivo na maioria dos itens avaliados, obtendo-se 73% de pontuação com as escalas +1 e +2, reforçando que a maioria dos alunos concordou com as características avaliadas relacionadas à motivação do jogo. Ainda em relação à Figura 5, o subcomponente satisfação foi atendido com 60,2% de pontuação do total de respostas dos alunos, demonstrando a satisfação por concordarem que terão oportunidades de utilizar na prática o que aprenderam com o jogo. Mesmo assim, foi o critério pior avaliado da Motivação. O subcomponente confiança foi o que obteve maior pontuação nos seus itens com atendimento de 76,9%, demonstrando que os alunos sentiram confiança durante as fases do jogo. O subcomponente relevância obteve uma porcentagem de concordância média de 73,05%, indicando que o funcionamento do jogo está adequado ao aprendizado, que o conteúdo do jogo é relevante para o ensino de planejamento, e que o jogo está conectado a outros conhecimentos que o aluno já possuía. Ainda na Figura 5, o subcomponente atenção também recebeu o percentual mais alto de concordância, com média de 76,9%, o que indica que os alunos permaneceram atentos com as variações no 189

Figura 6. Avaliação do jogo na escala experiência do usuário. jogo, e tiveram interesse no desenvolvimento das atividades. Pela análise é possível concluir que a Motivação do jogo foi atingida, no entanto o quesito de satisfação necessita de melhorias. A Figura 6 apresenta os resultados das respostas dos alunos relacionadas à escala de Experiência do Usuário. Neste componente foi obtida uma média de 49%, onde apenas um item foi atendido. Por ordem decrescente de percentual de concordância obteve-se: imersão (75,6%), desafio (56,4%), interação social (51,2%), diversão (30,75%) e competência (30,7%). A imersão obteve o maior percentual de concordância. Os itens de percepção do tempo e preocupações do dia a dia praticamente coincidiram com a avaliação. Por outro lado os itens com menores percentuais foram diversão e competência, relacionados ao ritmo monótono e atendimento dos objetivos do jogo por meio de habilidades próprias. O ritmo adequado do jogo deve ser ajustado. Por fim, foram avaliados itens relacionados à aprendizagem do aluno, conforme a Figura 7. A maior parte dos subcomponentes recebeu um percentual de concordância acima de 70%. Pode-se concluir que o jogo foi eficiente na aprendizagem devido a sua facilidade de uso e que a experiência do jogo irá contribuir para experiência profissional do aluno. O subcomponente pior avaliado foi o relacionado à aprendizagem na disciplina, com 51,3%. Essa pontuação é um pouco contraditória em relação ao subcomponente relacionado à eficiência para a aprendizagem, que obteve 66,6%. Os demais subcomponentes foram bem avaliados, indicando uma aprendizagem positiva. Concluindo esta avaliação, por ordem decrescente de importância para os alunos: Motivação com 73%, Aprendizagem com 70% e Experiência do Usuário com 49%. Percebe-se que ajustes relacionados ao usuário são necessários em relação aos subcomponentes competência, diversão, desafio, interação social e imersão. Muitos desses elementos estão associados à interação do usuário com a aplicação e relação direta com a interface do jogo. Comparando as três turmas entre si (Figura 8), percebeu-se que Motivação em vários aspectos foram semelhantes e todos foram positivos. Design do jogo, conteúdo e satisfação foram bem semelhantes. Destacaram-se itens relacionados à variação do jogo, funcionamento adequado e confiança com as maiores distorções entre turmas. Porém no componente Experiência do Usuário descrito na Figura 6, dos sete subcomponentes, três foram negativos: ritmo adequado, habilidade própria no atendimento dos objetivos e eficiência. E foram os únicos itens com pontuação negativa de toda a avaliação. Porém as médias foram entre 0 e - 0.5, indicando que não foram tão mal avaliados, sendo potenciais pontos de melhoria. Por fim, o componente Aprendizagem de maneira geral foi positivo em todas as turmas. O subcomponente mais baixo foi associado ao aprendizado na disciplina, e o mais alto relacionado à interface e controle do jogo. 190

Figura 7. Avaliação do jogo na escala aprendizagem do jogo. 6. DISCUSSÃO DOS RESULTADOS Informações qualitativas sobre pontos fortes do jogo e sugestões de melhoria foram coletadas durante as avaliações dos alunos. Em relação aos pontos fortes indicados pelos alunos, alguns pontos podem ser destacados. O ponto mais citado foi à questão da interface intuitiva e fácil interação do jogo com o usuário. Essa afirmação acaba corroborando com o item de Design do jogo na avaliação quantitativa. O segundo ponto considerado forte pelos alunos foram as questões, tanto no formato quanto entendimento. O aprendizado também foi destacado como o terceiro ponto mais citado. A questão de aprendizagem também foi um ponto forte considerado na avaliação quantitativa. Outros aspectos citados como ponto forte foram: representação de situações reais das atividades de testes, desafio para os casos de testes, abrangência do conteúdo, níveis de dificuldade adequados e plataforma web. Algumas sugestões de melhoria foram identificadas pelos alunos. Excluindo erros ortográficos e defeitos da aplicação, identificados pelos alunos, a sugestão de melhoria mais citada no jogo foi a melhoria da interface, seguido do mecanismo de pontuação e elaboração das questões. Segundo os alunos, a pontuação pode ser melhor distribuída entre as questões do jogo. Outras melhorias sugeridas foram: inclusão de animações, melhorar o design de telas, deixar a aplicação mais dinâmica, inserir um tutorial, deixar o ranking obrigatório e diversificar as questões e as respostas. Em relação à inclusão de animações e a dinamicidade da aplicação, os alunos sugeriram que devem ser incluídos elementos como personagens e sons que possibilitem essa maior interação com o jogador, de forma à possibilitar uma melhor experiência com o usuário. A Figura 9 exibe apenas os itens que mais se destacaram na avaliação. Alguns itens comentados pelos alunos foram bem pontuais, tais como: utilização contínua de checklist deixa o jogo monótono, o ranking deve ser obrigatório para aumentar a motivação dos alunos, melhorar a forma como o jogo é finalizado (interface e feedback), e balancear as respostas em termos de respostas verdadeira e falsas. De maneira geral, os alunos exercitaram as etapas de planejamento e projeto de testes, por meio da ferramenta, - - Te po a ia e te es ue i as i has p eo upações do diaa-dia, fi uei total e te o e t ado o jogo. Eu ão pe e i o te po passa e ua to jogava, ua do vi o jogo a a ou. Expe i ia do Usuá io - Tu as, e Me se ti ais o a ie te do jogo do ue o u do eal, es ue e do do ue estava ao eu edo. Este jogo ade uada e te desafiado pa a i, as ta efas ão são uito fá eis e uito difí eis. - - - O jogo evolui u it o ade uado e ão fi a o óto o ofe e e ovos o stá ulos, situações ou va iações de atividades. - - Co segui ati gi os o jetivos do jogo po eio das i has ha ilidades. - - Tive se ti e tos positivos de efi i ia o dese ola do jogo Figura 8. Avaliação da experiência do usuário entre as três turmas. 191

Figura 9. Pontos fortes e sugestões de melhoria identificados na avaliação. utilizando conceitos existentes em testes de software. 7. CONCLUSÕES E TRABALHOS FUTUROS Este trabalho apresentou uma evolução do jogo digital de simulação ItestLearning para contemplar o ensino de atividades de projeto de testes de software. Também foi apresentada uma avaliação de todas as fases do jogo, planejamento e projeto de testes de software em três disciplinas de diferentes cursos relacionados à computação. O jogo foi avaliado conforme um modelo específico para jogos educacionais. Conclui-se que os alunos permaneceram atentos às variações do jogo, a facilidade de uso está adequada, e a experiência do jogo irá contribuir para experiência profissional do aluno. Sendo assim, por ordem decrescente de importância para os alunos, os componentes obtiveram os seguintes resultados: Motivação (73%), Aprendizagem (70%) e Experiência do Usuário (49%). Pontos fortes do jogo destacados pelos alunos foram: interface intuitiva, elaboração das questões, fácil interação, representação de situações reais das atividades de testes, desafio para os casos de testes, abrangência do conteúdo, níveis de dificuldade adequados e plataforma web. Como pontos de melhoria destacaram-se: melhoria do mecanismo de pontuação, inclusão de animações, melhorar design de telas, dinamismo, ranking obrigatório e diversificar questões e respostas. Como continuação desse trabalho pretende-se estender o jogo para incluir as atividades relacionadas à execução dos testes. Inicialmente será implementada a execução de testes funcionais de modo a aplicar os casos de testes selecionados na fase de projeto em protótipos executáveis por projetos. Pretende-se assim, possibilitar ao aluno simular todas as atividades de testes de software, de modo a aproximá-lo de um ambiente real de desenvolvimento de software. Também será investigado um mecanismo de interação entre aluno e professor, que permita um feedback ao aluno mais personalizado e uma abordagem mais adequada para a pontuação do jogo. Para validar essas modificações, serão realizadas outras avaliações do jogo com turmas de cursos de computação como, Engenharia de Software, Ciências da Computação e Sistemas de Informação. 8. AGRADECIMENTOS Os autores agradecem aos alunos do curso de Sistemas de Informação do Campus Quixadá pelo desenvolvimento e evolução do itestlearning. Também agradecemos a Universidade Federal do Ceará por financiar o projeto que originou este trabalho. 9. REFERÊNCIAS [1] Myers, G. (2004). The Art of Software Testing. John Wiley & Sons, 2th edition. [2] Silva, T. G.; Müller, F. M.; Bernardi. G. (2011a) Panorama do Ensino de Engenharia de Software em Cursos de Graduação Focado em Teste de Software: Uma Proposta de Aprendizagem Baseada em Jogos. In RENOTE - Revista Novas Tecnologias na Educação, ISSN 1679-1916. [3] Diniz, L. L., Dazzi, R. L. S. (2011) Jogo Digital para o Apoio ao Ensino do Teste de Caixa-Preta. In: X Simpósio Brasileiro de Qualidade de Software (SBQS), Curitiba. [4] Wangenheim, C. G.; Silva, D. A. (2009) Qual conhecimento de engenharia de software é importante para um profissional de software? In Anais do Fórum de Educação em Engenharia de Software, Fortaleza [5] de Andrade, A. F., Madeira, C. A. G., & Melo, H. H. A. (2013). Batalha de Vetores Virtual: uma proposta de jogo pedagógico para o ensino de biociências. XVIII Conferência Internacional sobre Informática na Educação (TISE). Porto Alegre, Brasil. [6] dos Reis, S. C., Panciera, R. J., Gomes, A. F., & Menezes, V. P. (2013). Da pesquisa à ação: conectando pressupostos teóricos e pedagógicos no desenvolvimento de um jogo de Inglês interdisciplinar em 3D. XVIII Conferência Internacional sobre Informática na Educação (TISE). Porto Alegre, Brasil. [7] Furtado, A., Vallerius, D., & Barone, D. (2013). O Jogo Digital como Motivador do Interesse pela Literatura Brasileira em Alunos do Ensino Médio. XVIII Conferência Internacional sobre Informática na Educação (TISE). Porto Alegre, Brasil. [8] Monsalve, E. S., Werneck, V. M. B., Leite, J. C. S. P. (2010) SimulES-W: Um Jogo para o Ensino de Engenharia de Software. In: III Fórum em Educação de Engenharia de Software (FEES), Salvador. [9] Gonçalves, R. Q., Thiry, M., Zoucas, A. (2011) Avaliação da Aprendizagem em Experimentos com Jogo Educativo de Engenharia de Requisitos. In: X Simpósio Brasileiro de Qualidade de Software (SBQS), Curitiba. 192

[10] Silveira, J. L.; Thiry, M.; Zoucas, A. C. (2013) SPI City: Jogo Educacional para Apoiar o Ensino de Melhoria de Processo de Software. In: XII Simpósio Brasileiro de Qualidade de Software - SBQS, 2013, Salvador, BA. p. 51-65. [11] Pietruchinski, M. H.; Neto, J. C.; Malucelli, A.; Reinehr, S. (2011) Os jogos educativos no contexto do SBIE: uma revisão sistemática de Literatura. Anais do Simpósio Brasileiro de Informática na Educação SBIE. [12] Elbaum, S., Person, S. e Dokulil, J. (2007) Bug hunt: making early software testing lessons engaging and affordable. In: 29th International Conference on Software Engineering (ICSE'07), Minneapolis, p. 688 697. [13] Silva, A. C. (2010) Jogo Educacional para Apoiar o Ensino de Técnicas para Elaboração de Testes de Unidade. Dissertação de Curso de Mestrado, Computação Aplicada, UNIVALI, São José. [14] Müller, T.; Graham, D.; Friedenberg, D. e Veendendal, E. (2007) Base de Conhecimento para Certificação em Teste - Foundation Level Syllabus. ISTQB - Comissão Internacional para Qualificação de Teste de Software. [15] Dempsey, J.; Rasmussen, K; Lucassen, B. (1994) Intructional Gaming: implication for instructional technology. Annual Meeting of Association for Educacional Communications and Technology, Nashville. [16] Jones, K. (1995) Simulations: a handbook for teachers and trainers. London: Third Edition Routledge. [17] Farias, F., Moreira, C., Coutinho, E., Santos, I. S. (2012) itest Learning: Um Jogo para o Ensino do Planejamento de Testes de Software. In: V Fórum de Educação em Engenharia de Software (FEES 2012), Natal. [18] Bezerra, C. I. M., Coutinho, E. (2013) Avaliação do Jogo itestlearning: Um Jogo para o Ensino de Planejamento de Testes de Software. In: WEI - XXI Workshop sobre Educação em Computação (WEI 2013), Maceió. [19] Savi, R.; Wangenheim, C., Borgatto, A., (2011a). Um Modelo de Avaliação de Jogos Educacionais na Engenharia de Software. Anais do ITESTLEARNINGV Simpósio Brasileiro de Engenharia de Software (SBES 2011), São Paulo. [20] IEEE (2004). SWEBOK - Guide to the software engineering body of knowledge. IEEE Computer Society. [21] IEEE (1998). IEEE Standard for Software Test Documentation, IEEE Std 829-1998, IEEE Computer Society. [22] IEEE (1990). IEEE Standard Glossary of Software Engineering Terminology, IEEE Std.610.12-1990, IEEE Computer Society [23] Selenium (2014). Ferramenta que automatiza testes funcionais ou de aceitação. Disponível em http://docs.seleniumhq.org/. Último acesso em agosto de 2014. [24] JMeter (2014). Ferramenta que automatiza a execução de testes de desempenho. Disponível em https://jmeter.apache.org/. Último acesso em agosto de 2014. [25] Mantis (2014). Ferramenta para o registro de Bugs (defeitos). Disponivel em http://www.mantisbt.org/. Último acesso em agosto de 2014. [26] TestLink (2014). Ferrramenta para documentação de casos de testes. Disponível em http://testlink.org/. Último acesso em agosto de 2014. [27] Silva, A. R. (2011b) Uma Metodologia de Testes em Software para Micro e Pequenas Empresas Estruturada em Multicritério. Dissertação de Curso de Mestrado, Informática Aplicada, UNIFOR, Fortaleza. [28] Kirkpatrick, D. L. (1994) Evaluating Training Programs - The Four Levels. Berrett-Koehler Publishers, Inc. [29] Keller, J. M. (1987) Development and use of the ARCS model of motivational design. Journal of Instructional Development, v. 10, n. 3, p. 2 10. [30] Bloom, B. S. (1956) Taxonomy of educational objectives: The classification of educational goals Handbook I, cognitive domain. New York; Toronto. [31] Savi, R.; Wangenheim, C., Borgatto, A. (2011b) "Análise de um modelo de avaliação de jogos educacionais". Disponível em: https://sites.google.com/site/savisites/avaliacaode-jogoseducacionais. 193