UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE CIÊNCIAS EXATAS E DA TERRA
DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA BACHARELADO EM ENGENHARIA DE SOFTWARE
Gamified Explorer
- Uma
Ferramenta Gamificada para
auxiliar os Testes Exploratórios
João Luca Vinaud Moreira Martins
Natal-RN Novembro de 2018
João Luca Vinaud Moreira Martins
Gamified Explorer
- Uma Ferramenta
Gamificada para auxiliar os Testes Exploratórios
Monografia de Graduação apresentada ao Departamento de Informática e Matemática Aplicada do Centro de Ciências Exatas e da Terra da Universidade Federal do Rio Grande do Norte. Orientadora
Roberta de Souza Coelho
Universidade Federal do Rio Grande do Norte – UFRN Departamento de Informática e Matemática Aplicada – DIMAp
Natal-RN Novembro de 2018
Monografia de Graduação sob o título Gamified Explorer - Uma Ferramenta Gamificada para auxiliar os Testes Exploratórios apresentada por João Luca Vinaud Moreira Martins e aceita pelo Departamento de Informática e Matemática Aplicada do Centro de Ciências Exatas e da Terra da Universidade Federal do Rio Grande do Norte, sendo aprovada por todos os membros da banca examinadora abaixo especificada:
__________________________________________ Dra. Roberta de Souza Coelho
Departamento de Informática e Matemática Aplicada - DIMAP Universidade Federal do Rio Grande do Norte - UFRN
__________________________________________ Dr. Uirá Kulesza
Departamento de Informática e Matemática Aplicada - DIMAP Universidade Federal do Rio Grande do Norte - UFRN
__________________________________________ Dra. Márcia Jacyntha Lucena
Departamento de Informática e Matemática Aplicada - DIMAP Universidade Federal do Rio Grande do Norte - UFRN
Natal-RN, vinte e nove de Novembro de 2018
Agradecimentos
Agradeço primeiramente a minha família por todo suporte durante toda essa jornada da vida, pelos momentos difíceis que juntos foram superados, assim como todos os momentos felizes vividos. Agradeço muito a minha mãe Mar, meu irmão Iago e meu padrasto Marcus pela superação dessa importante etapa na vida. Dedico este trabalho ao meu avô Gilberto que durante o processo de finalização deste trabalho nos deixou e agora banqueteia ao lado de Odin nos salões de Valhalla, junto aos demais campeões.
Agradeço também à minha orientadora, a professora Roberta, por me guiar durante o processo de desenvolvimento deste trabalho e pelos ensinamentos aprendidos ao longo do curso os quais serão fundamentais daqui para frente nessa nova carreira que se inicia.
Agradeço também aos meus colegas de curso que embarcaram comigo em uma árdua e longa jornada durante o curso de Engenharia de Software, pelo companheirismo e amizade.
“Face front, true believers! Excelsior!”
- Stan Lee
Gamified Explorer
- Uma Ferramenta
Gamificada para auxiliar os Testes Exploratórios
R
ESUMOTestes exploratórios são uma importante abordagem de testes de software, onde a procura por bugs é feita pela interação do testador com o sistema em execução. Entretanto, esse processo pode ser muitas vezes repetitivo e maçante. A gamificação tem o objetivo de aplicar conceitos de jogos a processos de trabalho ou sistemas de software. Esses elementos podem ser nível do jogador, pontos de experiência, ranking de jogadores, avatar, missões e recompensas entre diversos outros. O objetivo da aplicação desse conceito é fazer com que a pessoa se sinta mais motivada e engajada a participar do processo ou utilizar um determinado sistema.
O trabalho apresentado nesta monografia é o sistema Web chamado Gamified Explorer que tem como objetivo auxiliar testadores a realizar tarefas de testes exploratórios utilizando um sistema gamificado. A ferramenta permite que um gerente de testes cadastre tarefas de testes a serem executadas por testadores, que por sua vez registram os bugs encontrados durante seu trabalho. A medida que tais tarefas são finalizadas e então validadas pelo gerente, o responsável pela tarefa recebe pontos para competir em um sistema de ranking de usuários além de ganhar experiência, podendo subir de nível e patente, dependendo dos pontos alcançados, além de ganhar recompensas, como medalhas, de forma similar a um jogo eletrônico. O objetivo é fazer com que os testadores tenham maior engajamento ao trabalhar com testes exploratórios.
Palavras-chave:.Teste de software, testes exploratórios, gamificação,
sistema Web
Gamified Explorer
- A Gamified Tool to support
Exploratory Tests
A
BSTRACTGamification in an approach whose goal is to apply game elements (i.e., points, hanking, roles, etc.) on work processes or systems in order to increase the participant motivation. In this work we developed Gamified Explorer a Web-based system that apply game elements to help testers while performing exploratory testing sessions. This tool allows the manager to define testing tasks to be executed. When the tester logs on the system s/he can choose a character to represent her/himself on the system. For each testing task completed s/he earns experience points, and every tester will be ranked according to such points. Tester also earn batches when specific milestones are reached. S/he can also earn medals. The goal of using such elements is to make the testing experience similar to playing an electronic game.
Keywords: Software Testing, Gamification, Exploratory Testing, Manual
Testing, Web-based system.
Lista de Figuras
Figura 1. Tela inicial do sistema Duolingo, apresentando algumas das fases do
curso de inglês e as metas diárias . 18
Figura 2. Sistema de patentes do jogo “League of Legends”. 20 Figura 3. Sistema de Níveis e pontos de experiência de personagens do jogo
“Bravely Second”. 20
Figura 4. Uso da barra de progresso no sistema acadêmico da UFRN. 21 Figura 5. Uso da barra de progresso no site de compras “Mercado Livre” 21 Figura 6. Sistema de achievements e badges do sistema “Duolingo”. 21 Figura 7. Carimbos presentes no jogo “Pokémon Sun”, do console 3DS, que representam conquistas do jogador. 22 Figura 8. Sistema de ranqueamento do jogo “Water Splash game” com destaque para os primeiros colocados. 23 Figura 9. Sistema de recompensas para usuários do “Mercado Livre”. 23 Figura 10. Sistema de compra de benefícios do “ Duolingo” que utiliza uma
moeda virtual.. 24
Figura 11. Cards com objetivos para usuários do “Mercado Livre”. 25 Figura 12. Sistema de criação de avatar virtual para o console Wii. 25 Figura 13. Figura 13 - Protótipo da tela inicial do sistema. 34 Figura 14. Protótipo da tela de detalhamento de uma tarefa. 34 Figura 15. Protótipo da tela de ranking de usuários. 35 Figura 16. Protótipo da tela de perfil de usuário e galeria de badges. 35
Figura 17. Diagrama de classes geral. 36
Figura 18. Interação entre as página web e a camada de controle 37
Figura 19 - Tela de cadastro de tarefas 39
Figura 22 - Tela de listagem de tarefas para validação. 41 Figura 23 - Tela de visualização de tarefa e erros cadastrados. 42 Figura 24 - Segunda parte da tela de detalhamento de uma tarefa. 43 Figura 25 - Função de gerar relatório e download. 48
Figura 26 - Exemplo de relatório. 48
Figura 27 - Ranking de usuários. 49
Figura 28 - Perfil de usuário. 50 Figura 29 - Galeria de badges conquistadas pelo usuário. 50 Figura 30 - Diagrama de casos de uso 51
Lista de Tabelas
Tabela 1 - Elementos de gamificação aplicados no projeto 26 Tabela 2 - Pontos de experiência por tipo de erro. 42 Tabela 3 - Relação de patentes e nível de usuário. 44 Tabela 4 - Relação de badges e conquistas 45 Tabela 5 - Lista de objetivos cumpridos 54
Sumário
1 Introdução 12 1.1 Contexto e Motivação 12 1.2 Objetivos 13 1.3 Organização do Documento 14 2 Fundamentos Teóricos 15 2.1 Teste de Software 15 2.1.1 Testes Exploratórios 15 2.2 Gamificação 172.3 Elementos de jogos aplicados pela gamificação 18 3 Gamified Explorer: Ferramenta para Testes Exploratórios Aplicando
Gamificação 27
3.1 Visão geral 27
3.2 Processo de desenvolvimento da Ferramenta 27
3.3 Requisitos 29
3.4 Elementos de gamificação utilizados no projeto 32
3.5 Protótipos de telas 33
3.6 Diagrama de Classes 36
3.7 Funcionalidades Implementadas 38
3.7.1 Cadastro de tarefas 38
3.7.2 Listagem de tarefas 39
3.7.3 Visualização de tarefa e cadastro de erros 41
3.7.4 Finalização e validação de tarefa 43
3.7.5 Relatório de erros 48
3.7.6 Ranking de usuários 49
3.7.7 Perfil de usuário e galeria de badges 49 3.8 Papéis de Usuário 51
4 Trabalhos Relacionados 52
5 Considerações Finais 54
5.1 Contribuições do Trabalho 56
5.2 Discussões e Lições Aprendidas 56
5.3 Trabalhos Futuros 57
1 Introdução
1.1 Contexto e Motivação
Os testes exploratórios são uma abordagem de testes de software onde se buscam bugs em um software através da interação do testador com o sistema em execução. É uma forma eficaz e eficiente (Caetano, 2017) de se testar um software, onde as ações são definidas pelos próprios testadores durante a execução de uma sessão de teste. Um problema dessa abordagem de testes é que muitas vezes as tarefas executadas são maçantes e repetitivas, de forma a causar desinteresse nos testadores de forma que as tarefas de testes sejam mal executadas, ou executadas de forma apressada, sem realizar uma boa exploração das funcionalidades testadas, deixando escapar diversos possíveis bugs presentes em um sistema.
A gamificação é um processo onde se busca aplicar elementos presentes em jogos digitais, em processos de trabalho, de aprendizado ou até mesmo em sistemas de software. O objetivo é usar esses elementos que fazem os jogos serem tão interessantes e divertidos, que encantam milhões de jogadores pelo mundo, de forma a estabelecer um maior engajamento e um melhor aproveitamento dessas pessoas envolvidas nesses processos ou no uso de determinados softwares. A gamificação é uma forma possível de tornar os testes exploratórios um processo mais interessante para os testadores, aplicando os conceitos em uma ferramenta que auxilie o planejamento e execução desses testes.
1.2 Objetivos
O objetivo principal deste trabalho é apresentar e desenvolver uma solução de software que possa auxiliar o processo de execução de testes exploratórios e que possa trazer um maior engajamento de seus usuários. Os objetivos específicos são:
1. Estudar trabalhos referente a testes exploratórios e ferramentas desenvolvidas para o seu auxílio;
2. Estudar o processo de gamificação e casos reais onde a sua implantação foi bem sucedida;
3. Estudar mecanismos e componentes de jogos digitais que possam ser usado no processo de gamificação;
4. Propor e especificar uma ferramenta de software que auxilie os testes exploratórios, utilizando para tal o processo de gamificação, de forma a tornar os usuários mais engajados e motivados quanto ao uso da ferramenta;
5. Implementar a ferramenta utilizando tecnologias de desenvolvimento para sistemas Web;
6. Fazer um estudo que analise a presença do processo de gamificação dos testes de software em outros trabalhos; 7. Avaliar a ferramenta com testadores reais e analisar seus
reais benefícios.
Ao final deste trabalho será relatado como esses objetivos foram alcançados e quais não puderam ser concluídos.
1.3 Organização do Documento
Esta monografia é organizada em cinco Capítulos, juntamente a este de introdução . O Capítulo 2 descreve os fundamentos teóricos que são a base para este trabalho. Nele serão descritos o que é a área de testes de software, com foco na abordagem dos testes exploratórios. Também será descrito o processo de gamificação, além de diferentes elementos de jogos digitais aplicados nesse processo. o Capítulo 3 apresenta a ferramenta Gamified Explorer, a ferramenta desenvolvida neste trabalho. Será apresentado os requisitos elicitados durante o projeto, os protótipos iniciais do sistema, a hierarquia de classes implementadas, assim como um detalhamento das funcionalidades da ferramenta que foram implementadas. O Capítulo 4 apresenta um estudo sobre artigos e ferramentas que envolvem a aplicação de gamificação no processo de testes de software. O Capítulo 5 apresenta as conclusões finais após o desenvolvimento do projeto, assim como os trabalhos futuros sobre a ferramenta.
2 Fundamentos Teóricos
Este Capítulo detalha os fundamentos teóricos necessários para a composição deste trabalho. A seção 2.1 descreve a área de Teste de Software enquanto que na seção 2.1.1 detalha uma de suas principais abordagens, os Testes Exploratórios. A seção 2.2 descreve o processo de gamificação e a seção 2.3 vai elicitar e descrever alguns elementos de jogos digitais utilizados nesse processo.
2.1 Teste de Software
Testes de software (Bertolino, 2007) é uma importante vertente da Engenharia de Software onde se busca analisar um projeto de software, desde o seu planejamento, até sua versão final e possíveis futuras evoluções a fim de encontrar bugs. O objetivo é fazer com que o software tenha a menor quantidade possível de bugs possível, evitando assim erros, comportamentos inesperados, dentre outros diversos problemas que eles podem acarretar.
Existem diversas abordagens diferentes para se executar testes de software, como testes unitários, testes de integração e testes exploratórios, sendo esta última descrita na próxima seção.
2.1.1 Testes Exploratórios
O teste exploratório é uma abordagem de teste de software ad-hoc ( Caetano, 2017) , ou seja, não segue um plano estrito dos passos que o testador deverá seguir em sua seção. O testador é o responsável por definir durante a execução dos testes o que será testado e como isso será
feito . Mas isso não quer dizer que o testes exploratório seja algo desorganizado e feito de qualquer jeito, sem planejamento nenhum. É um tipo de teste caixa-preta, onde o testador explora as funcionalidades de um sistema implementado a procura de possíveis bugs. Nesse tipo de teste não se analisa os detalhes da implementação, como o código-fonte, os testes são feitos a partir da interação do testador com o sistema em execução. O teste exploratório é eficiente e eficaz (Caetano, 2017) pois utiliza as habilidades do testador de ouvir, pensar e relatar os testes sem necessitar de instruções detalhadas e em tempo real, durante a execução dos testes. .
Jon Bach (Bach, 2006) define uma metodologia de planejamento e execução de testes exploratórios. É definida uma cartilha com breves explicações sobre quais funcionalidades serão testadas e o tempo de duração das sessões de teste, porém sem detalhar o passo a passo de como os testes serão executados, o que é definido e aplicado pela testador em sua sessão. As sessões de testes possuem uma variação no seu tempo de execução, que deve variar entre 30 minutos até duas horas. Sessões muito rápidos, com menos de 30 minutos de duração indicam um teste muito específico, onde não houve uma boa exploração das funcionalidades testadas. Sessões longas em demasia, com mais de 2 horas de duração, indicam testes vagos e sem um objetivo muito claro. Ao fim dos testes, é feito um relatório indicando as funcionalidades testadas, a duração da sessão, a descrição dos possíveis bugs encontrados e os passos realizados para encontrá-los.
Os testes exploratórios podem ser planejados e relatados de forma manual, como por exemplo em planilhas eletrônicas ou escrita em arquivo texto, mas também há ferramentas (caetano, 2017) que auxiliam o testador na execução das suas seções de teste.
2.2 Gamificação
A gamificação é um conceito apresentado primeiramente por Nick Pelling em 2003(Brito 2017) cujo objetivo é aplicar elementos e conceitos presentes em jogos eletrônicos em outros contextos, como educação, processos de trabalho ou em diferentes sistemas computacionais de forma a tornar seus usuários mais engajados. A idéia é aplicar conceitos que tornam os jogos digitais tão interessantes e divertidos nesse outros contextos não relacionados a jogos(Pedreira et. al, 2014). O processo de gamificação é capaz de tornar processos e atividades difíceis e maçantes em tarefas competitivas e divertidas (Fraser 2017).
A gamificação vem sendo amplamente pesquisada e aplicada no contexto de sistemas de software, principalmente aqueles relacionados ao campo da educação (Brito e Galvão, 2017). Um exemplo de sistema conhecido que aplica a gamificação é o site Duolingo [11]. O Duolingo é um sistema Web onde os usuário aprendem idiomas, de forma prática, por meio de exercícios. A medida que uma série de exercícios vai sendo finalizada o usuário é recompensado, ganhando pontos de experiência, subindo de nível e ganhando acesso a tarefas mais difíceis, ganhando posições em um ranking, entre outros benefícios. As tarefas são organizadas em uma estrutura de fases, similar a um jogo digital. A Figura 1 mostra a tela do sistema onde é possível ver a estrutura sequencial de exercício e um painel com objetivos e metas a serem alcançadas.
Figura 1 - Tela inicial do sistema Duolingo, apresentando algumas das fases do curso de inglês e as metas diárias [11]
Na área da computação a gamificação é utilizada principalmente em processos de aprendizagem de programação (Fraser 2017) e nos diferentes processos de engenharia de software (Pedreira et. al 2017).
2.3 Elementos de jogos aplicados pela gamificação
Esta seção apresenta alguns dos conceitos observados em jogos eletrônicos que podem ser usados para gerar um maior engajamento dos usuários em um sistema computacional. Serão listados quais destes elementos foram de fatos usados na implementação do projeto e quais não foram
2.3.1 Nível e pontos de experiência
O sistema de níveis mostra o quão experiente e “forte” é o usuário do sistema. Quanto mais experiente é o usuário e quanto o maior o número de tarefas ele já concluiu, maior é o seu nível. A forma mais comum de representar os níveis é numericamente, sendo que um novo usuário começa no nível um , podendo ter um nível máximo que ele pode alcançar. Usuários de maior nível podem ter acesso a certas funcionalidades ou benefícios que usuários mais iniciantes não possuem. A medida que os níveis vão ficando mais altos , também são exigidas tarefas de maior complexidade do usuário e fica proporcionalmente mais difícil de subir ao próximo nível. Existem outras formas de indicar o nível do usuário que não numericamente. Um exemplo é um sistema de patentes, similares às das forças armadas, como cadete, capitão, general, etc. Outra forma é simplesmente indicando se o usuário é novato, intermediário e avançado, Por exemplo. A figura 2 mostra o sistema de níveis de jogador do “League of Legends” que utiliza um sistema de patentes.
Os pontos de experiência são necessários para que o usuário possa subir de nível. Esse pontos são obtidos concluindo as mais diferentes tarefas. Algumas missões podem ser concluídas a fim de se obter pontos extras. A medida que o nível sobe são necessários mais pontos de experiência para subir ao próximo. Tarefas mais trabalhosas e difíceis podem recompensar o usuário com mais pontos de experiência em comparação a tarefas mais triviais. A figura 3 ilustra o sistema de níveis e experiência do jogo “Bravely Second”, onde após uma batalha os personagens ganham uma certa quantidade de pontos de experiência, além do jogo indicar o seu nível atual assim como quanto falta para alcançarem o próximo nível.
Figura 2 - Sistema de patentes do jogo “League of Legends”
Figura 3 - Sistema de Níveis e pontos de experiência de personagens do
jogo “Bravely Second”
2.3.2 Barra de progresso
A barra de progresso fornece uma visualização do quanto falta para o usuário alcançar um objetivo ou finalizar determinada tarefa. A visualização desse tipo de informação faz com que o usuário fique mais engajado em completar o referido objetivo. A figura 4 retirada do sistema acadêmico da UFRN mostra o progresso do aluno no seu curso e o quanto falta para ele totalizar todas as atividades. A figura 5 mostra uma visualização diferente para a barra de tarefas, que indica quanto falta para o usuário do mercado livre para alcançar um novo nível.
Figura 4 - Uso da barra de progresso no sistema acadêmico da UFRN
Figura 5 - Uso da barra de progresso no site de compras Mercado Livre
2.3.3
Achievements e Badges
Os Achievements são as conquistas que o usuário alcança ao realizar determinada tarefa. Podem ser conquistadas ao chegar a um certo nível, completar uma determinada quantidade de tarefas entre outras.
As badges (insígnia, ou brasão) são a representação visual das conquistas alcançadas pelo usuário onde cada nova badge é adicionada a uma coleção virtual.
Pode existir também uma visualização prévia na coleção de uma badge
não alcançada, indicando o que é preciso ser feita para obtê-la. A figura 7 mostra um exemplo de badge para o jogo Pokémon Sun, na forma de um carimbo virtual.
Figura 7 - Carimbos presentes no jogo “Pokémon Sun”, do console 3DS,
que representam conquistas do jogador.
2.3.4 Ranqueamento
Um sistema de ranking permite destacar os usuários que possuem mais destaque, seja por estarem em nível maior, por terem obtido a maior pontuação ou alcançado o maior número de objetivos. Para evitar que alguns usuários mais antigos e experientes fiquem fixados no topo do ranking este pode ser periódico e ser resetado a cada ciclo. A figura 8 ilustra um exemplo de ranking de jogadores de um jogo de celular, dando destaque para aqueles que acumularam mais pontos.
Figura 8 - Sistema de ranqueamento do jogo “Water Splash game” com
destaque para os primeiros colocados.
2.3.5 Recompensas
Uma recompensa é um benefício, que pode ser real ou virtual que o usuário ganha como recompensa por cumprir um determinado objetivo, como chegar a um certo nível, completar determinada tarefa, usar com frequência o sistema, entre outros. A figura 9 ilustra alguns benefícios que o usuário ganha no Mercado Livre conforme seu nível sobe, à medida que mais compras são feitas. Um dos benefícios é a diminuição do valor com o qual se pode fazer a compra e obter frete grátis.
2.3.6 Dinheiro virtual
A medida que o usuário utiliza o sistema vencendo alguns desafios e completando tarefas ele é recompensado com uma espécie de dinheiro virtual. Com essa moeda ele tem a capacidade de “comprar” recursos que ele não tinha acesso antes. Podem ser acesso a novas funcionalidades, novos itens para customização, recompensas no mundo real, entre outros. A figura 10 mostra alguns do itens que o usuário do sistema Duolingo pode obter com a moeda virtual própria, que podem ajudar no cumprimento de tarefas e no ganho de pontos.
Figura 10 - Sistema de compra de benefícios do “Duolingo” que utiliza
uma moeda virtual
2.3.7 Personalização
A personalização permite ao usuário modificar a interface visual do sistema de acordo com a sua preferência seja por questão estética, ou melhoria na UX. Pode ser uma mudança na cor da interface, nas fontes e tamanho da escrita, realocação de botões e itens da tela, um menu de itens favoritos, entre outros.
2.3.8 Objetivos e missões
São as tarefas que o usuário deve completar a fim de alcançar um objetivo e obter algum tipo de recompensa. Ao concluir uma tarefa o
usuário pode ser recompensado com pontos de experiência, alguma quantia de moeda virtual, pode conquistar um achievement, entre outros. A figura 11 ilustra as missões presentes no sistema do Mercado Livre para que o usuário possa obter mais pontos, necessários para subirem de nível.
Figura 11 - Cards com objetivos para usuários do “Mercado Livre”.
2.3.9 Avatar
O avatar é a representação visual do usuário no sistema. Pode ser uma foto da pessoa, um desenho, um personagem criado no próprio sistema. A imagem 12 mostra um exemplo de avatar.
A Tabela 1 lista todos esses elementos apresentados e diz quais de fato chegaram a ser usados na implementação do projeto. As implementações desses elementos são detalhadas no Capítulo 3.
Elemento de gamificação Uso no projeto
Nível e pontos de experiência Utilizado Barra de Progresso Utilizado Achievements e Badges Utilizado Ranqueamento Utilizado
Recompensas Não Utilizado Dinheiro Virtual Não utilizado Personalização Não Utilizado Objetivos e Missões Não Utilizado
Avatar Utilizado
Tabela 1 - Elementos de gamificação aplicados no projeto
3
Gamified Explorer: Ferramenta para Testes
Exploratórios Aplicando Gamificação
3.1 Visão geral
O objetivo principal deste trabalho era desenvolver uma ferramenta Web que auxiliasse testadores, em uma ambiente de trabalho, a realizar tarefas de testes exploratórios e que esse sistema aplicasse conceitos de gamificação em sua concepção , permitindo uma melhor interação com os usuários e um maior engajamento deles. A partir dessa idéia foi planejada e desenvolvida a ferramenta Gamified Explorer, que será apresentada e detalhada nas próximas seções.
O código fonte da ferramenta implementada pode ser encontrada no repositório Github, pelo link : https://github.com/vinaud/TCC .
3.2 Processo de Desenvolvimento da Ferramenta
A Superintendência de Informática da UFRN (SINFO) [18] é a repartição da universidade responsável pelo desenvolvimento e manutenção dos sistemas informacionais utilizados na instituição, como o sistema acadêmico “SIGAA” e o sistema de gerência de patrimônio “SIPAC”, entre outros. A entidade também é responsável pela gestão e manutenção da rede da universidade, por projetos de pesquisa e inovação, entre outras atividades. A partir da análise do processo de trabalho da SINFO que foi verificada a necessidade de melhoria na execução dos seus testes exploratórios, que hoje são feitos sem apoio de ferramentas próprias para tal. O planejamento da sessão de testes é feito a partir de informações das tarefas de desenvolvimento presentes no sistema Redmine. Com essas informações o testador realiza sua sessão
de testes e então faz um relatório manual, escrevendo em arquivos de texto ou planilhas, descrevendo os possíveis bugs encontrados.
Esta ferramenta foi desenvolvida em três iterações, sendo que ao
final de cada uma nos reunimos com uma gerente de testes da SINFO que avaliou a solução proposta e as funcionalidades implementadas, indicando pontos de melhoria, que foram incorporados na ferramenta em novas iterações. Na primeira iteração foram desenvolvidos e apresentados os protótipos de tela mostrados na seção 3.4, com as primeiras idéias para o sistema e suas funcionalidades mais essenciais. Após esse feedback positivo foi de fato implementada a primeira versão do sistema. Ao término da segunda iteração essa versão inicial foi apresentada e validada pela gerente de testes da SINFO, que sugeriu novas funcionalidades. Foram apresentadas as necessidades das funcionalidades de gerar e fazer download das informações de uma tarefa e o registro de tempo gasto com a realização de uma determinada tarefa.
Recebemos um feedback bastante positivo ao finalização das iterações, estando a ferramenta pronta e já preparada e autorizada para ser implantada no servidor da SINFO. O objetivo era a realização de um estudo de caso envolvendo testadores, realizando uma avaliação qualitativa com eles. Seria feita uma pesquisa posteriormente, onde os testadores analisariam os benefícios que a ferramenta poderia trazer para o dia-a-dia no trabalho e se realmente traria a motivação e engajamento desejados. Entretanto, devido a problemas e o encurtamento do prazo, a avaliação ficou com desdobramento do presente trabalho, a ser realizado como trabalho futuro. Todavia, consideramos o feedback positivo da gerente como sendo um forte indicativo de que a ferramenta poderá sim auxiliar a execução de tarefas de testes exploratórios em um ambiente real de trabalho.
3.3 Requisitos
Nesta seção serão apresentados os diferentes requisitos que foram analisadas e julgados serem necessários para o sistema.
3.3.1 Cadastro de tarefa
O usuário deve ser capaz de cadastrar uma nova tarefa no sistema, a fim de ser realizada por um testador. No momento do cadastro são inseridas informações da tarefa como título, descrição, horas de trabalho esperadas e nível de dificuldade. Após o cadastro a tarefa é associada a um usuário do sistema que será o responsável por cumpri-lá. A tarefa recém-cadastrada possui o status de “aberta”.
3.3.2 Listagem de tarefas
Haverá uma listagem geral onde será exibida uma tabela com as diferentes tarefas cadastradas no sistema, assim como algumas de suas informações como título, um resumo da descrição, a dificuldade e o responsável atribuído a ela. Há uma página também onde o usuário pode ver todas as tarefas atribuídas a ele, sendo separadas entre aquelas que estão “abertas” e aquelas que já foram finalizadas ou até validadas. O gerente de testes também terá acesso a uma listagem de tarefa que receberam o status de “finalizada”, onde ele poderá selecioná-las para fazer a análise de cada uma.
3.3.3 Detalhamento de tarefa
Ao selecionar uma tarefa de uma lista será aberta uma página que exibe os seus detalhes, como título, descrição, dificuldade, usuário
responsável, horas de trabalho esperadas, assim como uma listagem dos erros encontrados pelo usuário responsável.
3.3.4 cadastro de erros da tarefa
Caso a tarefa possua status como “aberta”, é possível que o testador cadastre erros encontrados durante a execução da tarefa. Cada erro possui um título, uma descrição e um tipo, que pode ser visual, banco de dados, comportamento inesperado ou especificação.
3.3.5 Finalização e validação de tarefa
Quando o usuário encerra a sua tarefa e cadastra todos os erros encontrados ele então clica no botão de finalizar, onde a tarefa passa a ter o status “finalizada”. O gerente de teste então analisa a tarefa e caso tudo esteja de acordo, ele clica no botão finalizar onde a tarefa passa a ter o status “validada”, encerrando seu ciclo. Caso o gerente de teste não valide a tarefa ela voltará a receber o status “aberta” onde o testador responsável trabalhará com ela novamente.
3.3.6 Emissão e download de relatório de tarefa
Na tela de exibição das informações de uma tarefa o usuário tem a opção de gerar um relatório no formato de arquivo txt e então fazer o download em sua máquina. Com isso facilita o envio das informações sobre o erros encontrado em cada tarefa para os respectivos desenvolvedores.
3.3.7 Perfil de usuário
Há uma página onde o usuário poderá visualizar suas informações pessoais como nome, username, seu nível e patente, os pontos de experiência e o quanto falta para chegar no próximo nível e a imagem de seu avatar. Nesta página também será exibida uma galeria com todas as badges conquistadas por ele, descrita em 3.3.9.
3.3.8 Ranking de usuários
O ranking lista todos os usuários ativos do sistema, ondernado-os de acordo com a pontuação obtida realizando as suas diversas tarefas. Os usuários com mais pontos ocupam as primeiras colocações no ranking e são destacados.
3.3.9 Galeria de
badges
A galeria exibe uma lista com a imagem de todas as badges que o usuário conquistou durante a realização de testes. Para cada badge há um requerimento para se conquistar, como por exemplo, realizar dez testes. Ao clicar na badge a imagem dela é ampliada e é exibido na tela as suas informações.
3.3.10 Sistemas de pontuação e recompensas
A medida que um usuário conclui suas tarefas e estas são validadas, ele recebe recompensas por isso. Primeiramente ele recebe pontos que o ajudarão a subir no ranking de usuários. Quanto maior a dificuldade da tarefa, maior a quantidade de pontos que ele recebe. Além disso o usuário recebe também pontos de experiência de acordo com os erros encontrados. Cada tipo de erro fornece uma quantidade de pontuação diferente, dependendo da gravidade do erro. Quanto mais erros, mais pontos de experiência é recebido. Ao alcançar uma determinada quantia de experiência, o usuário sobe de nível. De acordo com o nível alcançado, ele pode subir de patente também.
3.3.11 Ciclo de build
Cada tarefa é associada a build atual do sistema. Toda vez que um novo ciclo de build começar, novas tarefas serão cadastradas para os testadores realizarem e os pontos do ranking de usuários serão resetados, indo para 0.
3.4 Elementos de gamificação utilizados no
projeto
Dentre os elementos
de gamificação apresentados na seção 2.3 alguns foram utilizados na concepção do projeto. O principal elemento implantado foi o sistema de nível de usuário e pontos de experiência, aos quais também foi associado o sistema de patentes, onde a medida que o usuário vai completando tarefas, ganha experiência e pode subir de nível e patente. Esse sistema, assim como os outros elementos serão detalhados na seção 3.7.O avatar e a barra de experiência foram utilizados no perfil de usuário. O avatar é a representação do usuário por meio de uma entre algumas imagens pré cadastradas no sistema, que é selecionada no cadastro no usuário . A barra de progresso foi utilizada para mostrar a quantidade de experiência que o jogador possui e o quanto falta para alcançar o próximo nível.
Foram usados também os achievements e as badges. A medida que o usuário atingir determinados achievements ao completar tarefas ele poderá receber uma badge que será exibida em sua galeria pessoal.
Alguns elementos de gamificação descritos na seção 2.3 não foram utilizados na implementação do sistema pois não eram vitais para sua concepção em uma primeira versão. Porém, em trabalhos futuros, eles
poderão ser agregados ao sistema, de forma a trazer mais benefícios ao usuário.
3.5 Protótipos de telas
No início da concepção do projeto foram elaborados esboços de baixa fidelidade das principais telas da versão inicial do projeto. O objetivo era permitir ter uma rápida visualização de como o projeto deveria tomar forma, além de permitir uma avaliação dos stakeholders envolvidos. Para isso foi utilizada a ferramenta Balsamiq Mockups que permite uma fácil e rápida diagramação dos esboços de telas, além de ser possível uma navegação entre esses esboços. As figuras a seguir, foram obtidas ao usar a ferramenta.
A figura 13 ilustra a idéia da página inicial com a lista geral de tarefas. A figura 14 ilustra a primeira idéia da página de detalhamento da tarefa com sua descrição e os erros encontrados. A figura 15 ilustra o ranking de usuários. A figura 16 ilustra a página de perfil de usuário, com seus dados pessoais e a galeria de badges conquistadas.
Figura 13 - Protótipo da tela inicial do sistema.
Figura 15 - Protótipo da tela de ranking de usuários.
A partir desses protótipos foi analisado se a idéia do projeto era viável, se os requisitos projetados de fato seriam úteis, além de permitir identificar a necessidade de outros possíveis requisitos para a
ferramenta.
3.6 Diagrama de Classes
Esta seção apresentará um panorama geral do conjunto de pacotes e classes implementados no sistema. A figura 17 mostra um diagrama das classes presentes e as associações entre elas e figura 18 mostra a interação entre as páginas da interface web com a camada de controle.
Figura 17 - Diagrama de classes geral.
Figura 18 - Interação entre as páginas web e a camada de controle
As classes do sistema estão organizadas em cinco pacotes, que interagem entre si. O pacote “entities” possui quatro classes que representam as entidades do sistema e que são persistidas em um banco de dados. A classe “User” possui as informações pessoais do usuário do sistema. Ela está associada por um conjunto de objetos da classe “ Tarefa” , que possui as informações da cada tarefa registrada no sistema. Esta por sua vez está associada a um conjunto de objetos da classe “Erro”, que são cada um dos erros registrados para uma determinada tarefa. A classe “User” também está associada a um conjunto de objetos da classe “Badge”, que representa cada badge que será conquistada por tal usuário. O pacote “persistence” é responsável pelo controle do acesso ao banco de dados , fazendo consultas e registros dos objetos do pacote “entities”. Para cada objeto há uma classe DAO, Data Access Object, responsável pela sua persistência, com métodos de inserção, leitura e atualização no banco de dados.
O pacote “filesmanager” é responsável pela criação do relatório em arquivo descrito na seção 3.7.5. A classe “GeradorRelatorio” recebe as informações de uma tarefa e gera uma arquivo do tipo txt no servidor, que poderá ser baixada pelo usuário.
O pacote “gaming” é o responsável pelo sistema de nível de usuário e pelo ganho de badges. A classe Game é acionada quando as tarefas de um usuário são validadas e então calcula o ganho de experiência e o possível aumento de nível e subida de patente. A classe “BadgeMaker” é acionada quando o usuário está apto a receber uma nova badge.
O pacote “managedbeans” possui os managed beans do sistema que são as classes responsáveis por fazer a mediação entre a interface Web do sistema e camada de dados.
3.7 Funcionalidades Implementadas
Nesta seção serão listadas e explicadas as funcionalidades do sistema que foram implementadas.
3.7.1 Cadastro de tarefas
O cadastro de uma nova tarefa é feita em uma janela onde o usuário insere o título da tarefa, escreve sua descrição, insere as horas de trabalho sobre a tarefa esperados, além de selecionar em um sistema de avaliação por estrelas qual a dificuldade da nova tarefa, que vai de uma a cinco estrelas. A Figura 19 mostra um exemplo de cadastro nesta tela. Nesse momento a tarefa ainda não possui um usuário associado a ela, o que será feito na tela de visualização da própria tarefa. Toda tarefa nova recebe o status “aberta”.
Figura 19 - Tela de cadastro de tarefas.
3.7.2 Listagem de tarefas
A tela home do sistema exibe uma listagem geral das tarefas, ordenando de acordo com o seu status, como mostrado na Figura 20. Nessa lista são apresentados o ID de cada tarefa, a dificuldade,
representada por estrelas, o título, o status, o responsável e parte da descrição. Ao clicar em uma tarefa o usuário é direcionado para a página de detalhamento da respectiva tarefa.
Figura 20 -Tela home do sistema.
Na barra de menu presente em diversas telas, como aparece na figura 18, no submenu “Tarefas”, há uma opção “Minhas tarefas”. Ao selecionar essa opção o usuário acessa uma página que lista todas as tarefas das quais é responsável. Elas são separadas em duas tabelas diferentes, uma para as tarefas nas quais o responsável ainda vai trabalhar, com status “Aberta” e outra tabela com a tarefas já concluídas pelo usuário, que estão com status “Finalizada” ou “Validada”. A Figura 21 ilustra essa tela.
Figura 21 - Tela de tarefas do usuário.
O gerente de testes da equipe tem acesso a uma outra tela, onde são exibidas também duas tabelas. A primeira lista todas as tarefas que estão com status “Finalizadas”, ou seja, tarefas encerradas pelos usuários
comuns, mas que ainda precisam ser analisadas e validadas. A segunda tabela mostra as tarefas que já foram analisadas e receberam o status de “Validada”. A Figura 22 mostra um exemplo de uso dessa tela.
Figura 22 - Tela de listagem de tarefas para validação
3.7.3 Visualização de tarefa e cadastro de erros
Ao clicar em uma tarefa em uma das listagens apresentadas na seção anterior o usuário é direcionado para a página de detalhamento daquela tarefa. Nessa telas são exibidos o ID da tarefa, o título, a descrição completa, a quantidade de horas a serem trabalhadas, o nível de dificuldade, assim como o usuário responsável, caso já tenha sido atribuído algum. A Figura 23 exemplifica essa tela.
Nessa tela de visualização também são exibidos os erros cadastrados para a tarefa.São exibidos o título, a descrição e o tipo de cada um. Também é exibido o total de pontos de experiência acumulados somando os pontos de cada erro.
Figura 23 - Tela de visualização de tarefa e erros cadastrados
Ainda na tela de visualização de tarefa tem a seção de cadastro de novo erro, como mostra a Figura 24. Ao cadastrar um novo erro a página é atualizada passando a listar o novo erro e somando os pontos de experiência ao já acumulado na tarefa. Cada tipo de erro gera um valor específico de pontos de experiência como mostra a Tabela 2.
Tipo de erro Experiência
Visual 20
Banco de dados 50
Negócio 80
Comportamento inesperado 100
Figura 24 - Segunda parte da tela de detalhamento de uma tarefa
3.7.4 Finalização e validação de tarefa
Após o usuário assumir uma tarefa e cadastrar todos os erros encontrados em sua sessão de teste, ele poderá acionar o botão “Finalizar” para encerrar seu trabalho com a tarefa, cujo status nesse momento passa de “Aberta” para “Finalizada”. A partir desse momento a tarefa aguarda a verificação do gerente de testes da equipe, que analisará a tarefa e os erros encontrados e caso tudo esteja de acordo com o que deveria ser feito, a tarefa poderá ser validada. Essa tarefa será então listada na tela de tarefas pendentes de serem analisadas, como mostra a seção 3.7.2.
Depois que a análise da tarefa é concluída, o botão “Validar” é acionado e a tarefa passa do status “Finalizada” para “Validada”, encerrando assim o ciclo de trabalho dessa tarefa. No momento da validação da tarefa são acionados diversos mecanismos que vão verificar
quais os benefícios serão creditados ao usuário responsável pela tarefa. Primeiramente é verificado quantos pontos de experiência o usuário vai ganhar, de acordo com as tarefas cadastradas na tarefa recém-validada. O total de experiência acumulado pela tarefa é somada a experiência que o usuário já possuía. O próximo passo é verificar se a experiência obtida foi o suficiente para o usuário subir de nível. A quantidade de experiência necessária para a subida de nível e dada pela expressão: xpN = 110 x na , onde xpN são os pontos necessários para subir de nível e na é o nível atual do usuário. Se o usuário atingiu a quantidade de experiência necessária seu nível então é acrescido em uma unidade. Se o usuário ganhou mais experiência para subir de nível do que o necessário, os pontos excedentes são mantidos para o próximo nível. O nível inicial é 1 e quanto maior o nível atual do usuário maior é a experiência necessária para ascender ao próximo nível.
Caso o usuário suba de nível após a validação de uma tarefa é verificado também se ele está apto a subir de patente. A Tabela 3 indica qual o nível necessário a se alcançar para receber uma nova patente.
Patente Emblema Nível Requerido
Iniciante 1 Intermediário 30
Avançado 60
Tabela 3 - Relação de patentes e nível de usuário
No momento da validação é também verificado quantos pontos do ranking o usuário vai ganhar. A quantidade de pontos recebidos depende da dificuldade da tarefa finalizada. Quanto maior a dificuldade, mais pontos são recebidos e somados ao valor que o usuário já possuía. A quantidade de pontos é dada pela expressão p = 100 x d, onde p são os pontos ganhos pela conclusão da tarefa e d é a dificuldade da tarefa, que varia de um a cinco, em valores inteiros.
O processo de validação da tarefa também verifica quais as conquistas alcançadas pelo usuário e se ele deve receber uma badge. A Tabela 4 lista as badges disponíveis no sistema e qual objetivo deve ser alcançado para se conquistar cada uma.
Título Objetivo Emblema
Primeira tarefa Ter a primeira tarefa validada no sistema
Testador iniciante I Ter 10 tarefas
validadas no sistema
Testador iniciante II Ter 20 tarefas
validadas no sistema
Testador
intermediário I Ter 30 tarefas validadas no sistema
Testador
intermediário II Ter 40 tarefas validadas no sistema
Testador
intermediário III Ter 50 tarefas validadas no sistema
Testador avançado I Ter 80 tarefas
validadas no sistema
Testador avançado II Ter 100 tarefas
validadas no sistema
Testador supremo Ter 1000 tarefas
validadas no sistema
Tabela 4 - Relação de badges e conquistas
3.7.5 Relatório de erros
Na tela de visualização de uma tarefa, o usuário tem a opção de gerar um relatório contendendo as informações da tarefa realizada por ele, como mostra a figura 25. O relatório é gerado no formato de um arquivo do tipo txt que é baixado na máquina do usuário. O objetivo desse relatório em arquivo é facilitar o compartilhamento das informações com outras pessoas envolvidas do processo de desenvolvimento de um software, como os programadores responsáveis por determinada funcionalidade . A figura 26 mostra um exemplo de um relatório gerado a partir da tarefa apresentada na figura 23 da seção 3.7.3.
Figura 25 - Função de gerar relatório e download.
Figura 26 - Exemplo de relatório.
3.7.6 Ranking de usuários
A tela de ranking de usuários é acessada a partir do menu principal. Essa tela exibe uma tabela contendo todos os usuários ativos no sistema, sendo que são ordenados de acordo com a pontuação acumulada no ranking. Os dados de cada usuário que são exibidos são: a posição atual no ranking, o ID do usuário, o username, junto da imagem do seu avatar, o nível, o símbolo da sua patente e os pontos do ranking. A Figura 27 mostra como é a tela do ranking de usuários.
Figura 27 - Ranking de usuários.
3.7.7 Perfil de usuário e galeria de
badges
A tela de perfil de usuário é acessada ao clicar no avatar exibido no canto da barra de menu, nas diversas telas. Nessa página são exibidas as informações pessoais do usuário, assim como suas conquistas. To topo são exibidos o nome real do usuário, ao lado do seu username, que é o alias que o representa para os demais usuários e o representa no ranking de usuários. Em seguida é exibido o avatar do usuário, que é uma imagem estática pré-selecionada dentre as demais presentes no sistema, escolhida no cadastro do usuário. Embaixo da imagem é exibida uma barra de progresso, que indica quantos pontos de experiência o usuário precisa conquistar para ascender ao próximo nível. Também são exibidos
o nível atual, a patente e os pontos do ranking acumulados pelo usuário. A Figura 28 ilustra a tela de usuário.
Na tela de perfil também é exibida a galeria de conquistas, como mostra a Figura 29. Essa galeria contém todas as badges já conquistadas pelo usuário. Ao clicar em uma delas, se abre uma janela que mostra os detalhes, como o título e o método que foi necessário para conquistá-la.
Figura 28 - Perfil de usuário.
3.8 Papéis de Usuário
No sistema implementado estão presentes dois tipos de usuário, o testador e o gerente de testes. O testador é responsável por assumir uma tarefa, cadastrar os erros encontrados na referida tarefa e finalizar essa tarefa. Ele também pode visualizar os detalhes da tarefa, o seu perfil de usuário, além do ranking de usuários.
O gerente de testes faz as mesmas funções do testador, além de realizar outras funções. Ele também pode cadastrar novas tarefas no sistema, além de validar tarefas já finalizadas. A Figura 30 mostra um diagrama de casos de uso, mostrando as relações entre os papéis e os casos de uso do sistema Gamified Explorer.
4 Trabalhos Relacionados
Foi feito um estudo onde buscou-se procurar o que já havia sido feito na área de testes exploratórios, aplicando o processo de gamificação. Foi feita uma busca na plataforma Google Scholar, utilizando a expressão gamification “exploratory testing”, que retornou 15 resultados na busca. Dentre eles o artigo de Mantyla e Smolander (Montyla e Smolander 2016) apresenta um estudo onde elucidam elementos de gamificação e exemplos de uso em um ambiente de teste. Lietchi .Demais artigos encontrados ou não são relacionados com o tema da pesquisa ou descrevem o processo de gamificação no ensino de testes de software, mas não na aplicação prática de testes exploratórios.
Foi feita então uma nova pesquisa usando a expressão gamification “software testing”. Foram encontrados apenas quatro resultados, sendo que um era repetição da busca anterior. O trabalho de Parizi (Parizi 2016) descreve o processo de gamificação e sua aplicação no contexto de engenharia de software, mas não especifica algo próprio para os testes de software. Os demais resultados não foram relevantes para o tema pesquisado.
Então foi feita uma busca com uma expressão que fosse mais abrangente, que foi gamification testing. Foram encontrados 18 resultados, sendo quatro repetições das buscas anteriores, um artigo que descrevia a aplicação de gamificação no uso de testes unitários e o restante não eram relacionados ao tema. Na sequência foram utilizadas as expressões “gamification in software testing” e “gamification” ”software testing” onde não foram encontrados novos resultados relevantes.
Por último foi feita uma pesquisa utilizando a expressão allintiltle: gamification testing , onde foram retornados 20 resultados, sendo apenas
um relevante à pesquisa. O artigo de Yujian (Fu e Clarke , 2016) também descreve os benefícios do processo de gamificação e como ele pode ser aplicado ao aprendizado de testes de software.
Além dessa busca sistema foi estudo o artigo Gamification of Software testing (Fraser, 2017) onde o autor apresenta diversas ferramentas onde foram aplicadas os conceitos de gamificação. Dentre as ferramentos tem a CodeFights[12], onde o usuário pode praticar programação controlando um robô e participando de embates contra outros usuários. A Codin Game[13] permite ao usuário controlar os eventos de fases similares a jogos com o código programado por ele. A ferramenta Code Defenders[14] estimula a prática de testes unitários por meio de um jogo onde o código vai evoluindo e os testes desenvolvidos devem ser capazes de identificar os bugs que surgirem. O artigo também apresenta ferramentas para implantar a gamificação no processo de gerência e configurações de mudanças, com plugins para a ferramenta de integração contínua , Jenkins [15].
Durante o desenvolvimento deste trabalho foi descoberta a ferramenta Testing Game (Valle et. al, 2017), de nome parecido com o da ferramenta apresentada neste artigo. O propósito dessa ferramenta é ser um jogo que possa auxiliar estudantes no processo de aprendizagem de conceitos e técnicas de testes de software, mais especificamente o Teste Funcional, o Teste Estrutural e o Teste de Mutação.
5 Considerações Finais
Neste Capítulo serão apresentadas as considerações finais deste trabalho. Serão listadas e discutidas as contribuições do trabalho, as lições aprendidas e os trabalhos futuros que poderão ser realizados no futuro de forma a aprimorar ainda mais a ferramenta apresentada.
Com o desenvolvimento deste trabalho foram alcançados a maior parte dos objetivos programados listados no Capítulo 1, na seção 1.2. A Tabela 5 lista os objetivos apresentados e se foram cumpridos.
Objetivo Descrição Foi Cumprido?
1 Estudar trabalhos referente a testes exploratórios e ferramentas
desenvolvidas para o seu auxílio
Sim
2 Estudar o processo de gamificação e casos reais onde a sua implantação foi bem sucedida
Sim
3 Estudar mecanismos e componentes de jogos digitais que possam ser usado no processo de gamificação
Sim
4 Propor e especificar uma ferramenta de software que auxilie os testes exploratórios, utilizando para tal o processo de gamificação, de forma a tornar os usuários mais engajados e motivados quanto ao uso da ferramenta
5 Implementar a ferramenta utilizando tecnologias de desenvolvimento para sistemas Web
Sim
6 Fazer um estudo que analise a presença do processo de gamificação dos testes de software em outros trabalhos
Sim
7 Avaliar a ferramenta com testadores reais e analisar seus reais benefícios.
Não
Tabela 5 - Lista de objetivos cumpridos
O objetivo 1 foi alcançado onde foi feita uma pesquisa sobre testes
exploratórios nos fundamentos teóricos e com a pesquisa de ferramentas de apoio ao teste exploratório no Capítulo 4 . Os objetivos 2 e 3 foram concluídos com a pesquisa sobre gamificação e elementos de jogos usados nesse processo, no Capítulo 2 e a implantação de alguns desses elementos no sistema desenvolvido. Os objetivos 4 e 5 foram alcançados com o processo de desenvolvimento da ferramenta Gamified Explorer, desde o planejamento até a finalização de sua implementação. O processo foi apresentado no Capítulo 3. O objetivo 6 foi alcançado com a pesquisa de outras ferramentas que apoiem o processo de testes de software, mais especificamente os testes exploratórios e que apliquem a gamificação., como mostrado no Capítulo 4. O objetivo 7 foi o único que de fato não foi alcançado, como é descrito na seção 3.2.
5.1 Contribuições do Trabalho
Durante o desenvolvimento deste trabalho foram obtidas as seguintes contribuições:
● A ferramenta Gamified Explorer. Especificação e
implementação de um sistema Web que auxilie o processo de execução de testes exploratórios, de forma que os usuário sejam engajados ao seu uso.
● Estudo sobre os benefícios da gamificação. Foram
apresentados diversos elementos de jogos digitais que podem ser utilizados no processo de gamificação e como a sua implantação auxilia no engajamento dos usuários em relação ao uso de uma ferramenta.
● Estudo sobre o uso de gamificação em testes exploratórios.
Foi pesquisado e apresentado neste trabalho as diversas aplicações do processo de gamificação em diferentes processos e também em ferramentas computacionais, com foco nos testes de software, assim como a falta do uso desse processo nos testes exploratórios.
5.2 Discussões e Lições Aprendidas
Nesta seção serão apresentadas as lições apreendidas durante a especificação e implementação da ferramenta apresentada no trabalho.
● Benefícios do processo de gamificação. O uso da
gamificação pode ser uma forma interessante e benéfica, de forma a tornar os usuários de determinados mais engajados e interessados em participar do processo. Esse processo de gamificação pode muito bem ser mais utilizado na execução