• Nenhum resultado encontrado

Gamified Explorer - uma ferramenta gamificada para auxiliar os testes exploratórios

N/A
N/A
Protected

Academic year: 2021

Share "Gamified Explorer - uma ferramenta gamificada para auxiliar os testes exploratórios"

Copied!
61
0
0

Texto

(1)

 

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 

 

(2)

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 

(3)

                                 

(4)

   

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   

(5)

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 

 

 

(6)

Gamified Explorer

​ - Uma Ferramenta 

Gamificada para auxiliar os Testes Exploratórios 

 

R

ESUMO

 

Testes 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 

(7)

   

Gamified Explorer

​- A Gamified Tool to support 

Exploratory Tests 

 

     

A

BSTRACT

 

Gamification 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.   

 

 

 

 

 

 

(8)

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. 3​4 Figura 14. Protótipo da tela de detalhamento de uma tarefa. 3​4 Figura 15. ​Protótipo da tela de ranking de usuários. 3​5 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 

(9)

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. 4​8

Figura 26 - Exemplo de relatório. 4​8

Figura 27 - Ranking de usuários. 4​9

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     

 

 

 

 

 

 

 

 

 

 

 

 

(10)

 

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 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(11)

Sumário 

    1​​ ​Introdução 1​​2  1.1 Contexto e Motivação 1​2  1.2 Objetivos 1​3  1.3 Organização do Documento 1​4  2 ​​Fundamentos Teóricos 1​​5  2.1 Teste de Software 1​5  2.1.1 Testes Exploratórios 1​5  2.2 Gamificação 1​7 

2.3 Elementos de jogos aplicados pela gamificação 1​8  3 Gamified Explorer: Ferramenta para Testes Exploratórios Aplicando               

Gamificação 2​​7 

3.1 Visão geral 2​7 

3.2 Processo de desenvolvimento da Ferramenta 27 

3.3 Requisitos 2​9 

3.4 Elementos de gamificação utilizados no projeto 32 

3.5 Protótipos de telas 33 

3.6 Diagrama de Classes  3​6 

3.7 Funcionalidades Implementadas 3​8 

3.7.1 Cadastro de tarefas 3​8 

3.7.2 Listagem de tarefas 3​9 

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 4​8 

3.7.6 Ranking de usuários 4​9 

3.7.7 Perfil de usuário e galeria de badges 4​9  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 5​6 

5.3 Trabalhos Futuros 5​7 

(12)

 

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.  

(13)

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. 

   

(14)

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.                        

(15)

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á       

(16)

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.  

(17)

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. 

(18)

   

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 

   

(19)

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.  

(20)

 

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. 

(21)

 

 

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. 

 

 

(22)

 

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. 

   

(23)

 

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. 

 

 

(24)

 

 

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       

(25)

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. 

 

 

(26)

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 

             

(27)

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       

(28)

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. 

(29)

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       

(30)

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. 

(31)

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.  

       

(32)

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       

(33)

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. 

(34)

 

Figura 13 - Protótipo da tela inicial do sistema. 

 

(35)

 

Figura 15 - Protótipo da tela de ranking de usuários. 

 

(36)

 

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.   

(37)

  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. 

(38)

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”. 

(39)

 

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.  

(40)

 

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       

(41)

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. 

(42)

  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 

 

(43)

 

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       

(44)

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 

(45)

    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 

(46)

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 

(47)

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 

(48)

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. 

(49)

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       

(50)

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. 

 

(51)

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.  

  

(52)

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       

(53)

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. 

           

(54)

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 

(55)

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.  

(56)

5.1 Contribuições do Trabalho 

Durante o desenvolvimento deste trabalho foram obtidas as        seguintes contribuições: 

  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       

Referências

Documentos relacionados

- SISTEMA VIÁRIO - ADEQUADO - VINHAÇA “ALTO TEOR DE K” - PERÍODOS DE CHUVA.. Luz, Pedro Henrique 2005 61.  REDE ADUTORA –

Excluindo as operações de Santos, os demais terminais da Ultracargo apresentaram EBITDA de R$ 15 milhões, redução de 30% e 40% em relação ao 4T14 e ao 3T15,

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes

da quem praticasse tais assaltos às igrejas e mosteiros ou outros bens da Igreja, 29 medida que foi igualmente ineficaz, como decorre das deliberações tomadas por D. João I, quan-

A Lista de Fauna Ameaçada de Extinção e os Entraves para a Inclusão de Espécies – o Exemplo dos Peixes Troglóbios Brasileiros.. The List of Endangered Fauna and Impediments

Em São Jerônimo da Serra foram identificadas rochas pertencentes à Formação Rio do Rasto (Grupo Passa Dois) e as formações Pirambóia, Botucatu e Serra Geral (Grupo São

Essa tarefa não tem a necessidade de interface com o usuário, tornando-se uma boa candidata ao processamento em lotes, normalmente utilizados como a divisão