Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testable - A gamified tool to improve unit test teaching

Marabesi
October 30, 2019

Testable - A gamified tool to improve unit test teaching

Due the evolving complexity of software development, professionals in the field increasingly need to master different phases of the software development process, including the testing phase.

In this sense, software testing has its place in undergraduate courses, but the literature points out that due attention and importance is not given by students and the academic curriculum. One of the possible causes that can be cited is the way this content is offered, which is usually part of a Software Engineering discipline, perceived by students as boring and not important to their career.

In this sense, this paper aims to propose Testable, a gamified tool for learning software testing, aimed at increasing student engagement.

Marabesi

October 30, 2019
Tweet

More Decks by Marabesi

Other Decks in Research

Transcript

  1. UMA FERRAMENTA GAMIFICADA PARA AUXILIAR O ENSINO DE TESTE DE

    SOFTWARE Universidade Presbiteriana Mackenzie - PPGEEC Matheus Marabesi Orientador: Prof. Dr. Ismar Frango Silveira T E S T A B L E
  2. MOTIVAÇÃO [ ] COMPLEXIDADE dos sistemas desenvolvidos atualmente. [ ]

    As matrizes curriculares de cursos de graduação da área de computação possuem uma CARGA HORÁRIA REDUZIDA a respeito de teste de software.
  3. MOTIVAÇÃO [ ] COMPLEXIDADE dos sistemas desenvolvidos atualmente. [ ]

    As matrizes curriculares de cursos de graduação da área de computação possuem uma CARGA HORÁRIA REDUZIDA a respeito de teste de software. [ ] A FALTA DE DEDICAÇÃO dos desenvolvedores/alunos à fase de testes de um software.
  4. OBJETIVO [ ] Desenvolver uma FERRAMENTA GAMIFICADA voltada ao o

    ensino de testes unitários para alunos de cursos de graduação na área de Computação. GERAL
  5. OBJETIVO [ ] Revisão para visualizar o estado da arte

    no que diz respeito ao ensino de teste de software e à utilização de gamificação como estratégia de ensino. ESPECÍFICOS
  6. OBJETIVO [ ] Revisão para visualizar o estado da arte

    no que diz respeito ao ensino de teste de software e à utilização de gamificação como estratégia de ensino. [ ] Desenvolver uma ferramenta gamificada para ensino de testes de software, especificamente o Teste Unitário, para delimitação de escopo da pesquisa. ESPECÍFICOS
  7. OBJETIVO [ ] Revisão para visualizar o estado da arte

    no que diz respeito ao ensino de teste de software e à utilização de gamificação como estratégia de ensino. [ ] Desenvolver uma ferramenta gamificada para ensino de testes de software, especificamente o Teste Unitário, para delimitação de escopo da pesquisa. [ ] Avaliar e analisar a aplicação desta ferramenta em uma turma de graduação. ESPECÍFICOS
  8. SERIOUS GAME “Ao contrário de jogos de entretenimento, serious games

    são jogos desenvolvidos com o objetivo de educar ou treinar ao invés de pura diversão” (MICHAEL; CHEN, 2006) (ADAMS; DORMANS, 2012).
  9. ELEMENTOS DE JOGOS “ ... são definidos como um conjunto

    de componentes existente em um jogo” (WERBACH; HUNTER, 2012)
  10. DINÂMICA MECÂNICA COMPO- NENTES ELEMENTOS DE JOGOS Figura 3: Elemento

    de jogos dividido em categorias. Baseado em (WERBACH; HUNTER, 2012)
  11. DINÂMICA MECÂNICA COMPO- NENTES DINÂMICA “A parte mais abrangente dos

    elementos de jogos, a que possui o maior nível de abstração.” (Werbach e Hunter, 2012)
  12. DINÂMICA MECÂNICA COMPO- NENTES MECÂNICA Brown (2014) define arquitetura de

    software como as decisões tomadas em um projeto que não se pode reverter sem um nível mínimo de esforço, decisões que requerem um esforço para mudarem e que não são fáceis de mudar em uma tarde.
  13. DINÂMICA MECÂNICA COMPO- NENTES COMPONENTES são a última parte do

    todo que são os elementos de jogos. Da mesma forma que a dinâmica é o modelo mais abstrato dos elementos, os componentes são o oposto. Eles são a parte mais concreta dos elementos de dinâmica e mecânica (WERBACH; HUNTER, 2012).
  14. GAMIFICAÇÃO “O uso de elementos de jogos e técnicas de

    game design em um contexto que não é um jogo.” Kevin Werbach & Dan Hunter
  15. “A gamificação é comumente confundida com a aplicação de jogos,

    mas possui alguns tópicos chaves que se diferenciam. Na gamificação é possível utilizar apenas um elemento de jogo (mas não é restrito a), como por exemplo as badges para engajar a uma pessoa a alcançar um objetivo, enquanto em um jogo é comumente utilizado mais de um.” (KAPP; BLAIR; MESCH, 2012). GAMIFICAÇÃO
  16. Tabela baseada nas definições de (KAPP; BLAIR; MESCH, 2012): [

    JOGO ] Há um início, meio e fim claros para um jogo. - Existe um estado vencedor definido. - Os jogadores sabem quando eles ou alguém completou o jogo. - Um jogo normalmente tem vários elementos de jogos.
  17. Tabela baseada nas definições de (KAPP; BLAIR; MESCH, 2012): [

    JOGO ] [ GAMIFICAÇÃO ] Há um início, meio e fim claros para um jogo. - Existe um estado vencedor definido. - Os jogadores sabem quando eles ou alguém completou o jogo. - Um jogo normalmente tem vários elementos de jogos. A intenção é usar elementos de jogos para incentivar a se envolverem com o conteúdo e progredirem e direção a um objetivo. - É possível usar apenas um elemento do jogo para engajar.
  18. Tabela baseada nas definições de (KAPP; BLAIR; MESCH, 2012): [

    JOGO ] [ GAMIFICAÇÃO ] [ SIMULAÇÃO ] Há um início, meio e fim claros para um jogo. - Existe um estado vencedor definido. - Os jogadores sabem quando eles ou alguém completou o jogo. - Um jogo normalmente tem vários elementos de jogos. A intenção é usar elementos de jogos para incentivar a se envolverem com o conteúdo e progredirem e direção a um objetivo. - Um ambiente realístico. - É possível usar apenas um elemento do jogo para engajar. Os jogadores podem praticar comportamentos e experimentar os impactos de suas decisões.
  19. Kapp, Blair e Mesch (2012) ressaltam os motivos errados para

    se escolher gamificação. Dentre eles estão: GAMIFICAÇÃO Jogos são legais/ divertidos
  20. Kapp, Blair e Mesch (2012) ressaltam os motivos errados para

    se escolher gamificação. Dentre eles estão: GAMIFICAÇÃO Jogos são legais/ divertidos Todo mundo ama jogos
  21. Kapp, Blair e Mesch (2012) ressaltam os motivos errados para

    se escolher gamificação. Dentre eles estão: GAMIFICAÇÃO Jogos são legais/ divertidos Todo mundo esta usando gamificação Todo mundo ama jogos
  22. Kapp, Blair e Mesch (2012) ressaltam os motivos errados para

    se escolher gamificação. Dentre eles estão: GAMIFICAÇÃO Jogos são legais/ divertidos Todo mundo esta usando gamificação Todo mundo ama jogos É facil de se criar um jogo
  23. TESTE DE SOFTWARE “ Testar destina-se a mostrar que um

    programa faz o que se propõe a fazer e descobrir defeitos antes de ser colocado em uso.” Ian Sommerville
  24. “Verificação se refere as tarefas que garante que o software

    implementa corretamente as especificações. Validação se refere a diferentes tarefas que garante que o software construído está de acordo com as necessidade do cliente (os requisitos)” (PRESSMAN, 2014) (SOMMERVILLE, 2017) TESTE DE SOFTWARE
  25. Figura 8: Foco do teste unitário na arquitetura web 3

    camadas ASPECTOS CONCEITUAIS: TESTE UNITÁRIO
  26. TESTE UNITÁRIO Sommerville (2017) define teste unitário como o processo

    de testar diferentes componentes de um programa, como por exemplo metodos e classes.
  27. TDD Segundo Beck (2010) TDD é um pouco nebuloso, TDD

    é uma consciência da lacuna entre decisão e feedback durante a programação.
  28. TDD Teste unitário (do inglês Unit Test) se popularizou através

    da metodologia TDD (em português: Desenvolvimento Guiado por Testes) onde o programador começa a escrever o código do teste antes do código do software de fato (JANZEN, 2005)
  29. TDD Refatoração Teste passando Figura 9: Ciclo de execução do

    TDD. Baseado em (BECK, 2010) Código do teste
  30. REVISÃO BIBLIOGRÁFICA [ ] Delimitação da busca nos congressos (WEI,

    CLEI, SIGCSE) [ ] Período de 5 anos (2012 - 2017) CATEGORIA CLEI WEI SIGSE Teste e engenharia de software 8 3 1 Edu. e eng de software 3 8 0 Educação 1 13 0 Gamificação 1 0 0 Educação e gamificação 4 25 0
  31. Figura 11: Tela inicial do Flexbox Froggy Figura 12: Tela

    inicial do How HTTPS Works REVISÃO TÉCNICA
  32. Figura 11: Tela inicial do Flexbox Froggy Figura 12: Tela

    inicial do How HTTPS Works Figura 13: Tela inicial do Regex Crossword REVISÃO TÉCNICA
  33. CONCEPÇÃO [ TESTE UNITÁRIO ] Tabela 3: Descrição detalhada dos

    assuntos abordados Introdução: Teste unitario Programação estruturada Programação Orientada a Objetos
  34. CONCEPÇÃO [ TESTE UNITÁRIO ] Introdução: Teste unitario Introduzir os

    conceitos base para o usuário de quais aspectos da programação é possível utilizar teste unitário. Exemplificação da utilização de teste unitário com o paradigma da programação estruturada, com exemplos de funções que são passíveis de teste e funções que não são passíveis de teste. Utilizar os conceitos apresentados na sessão anterior acrescentando a utilização de classes. Programação estruturada Programação Orientada a Objetos Tabela 3: Descrição detalhada dos assuntos abordados
  35. CONCEPÇÃO [ TESTE UNITÁRIO ] Tabela 3: Descrição detalhada dos

    assuntos abordados Intro.: TDD Apresenta a técnica TDD para o usuário. Exemplificando o que é o TDD, quais os seus benefícios e pontos negativos. Primeira etapa do ciclo TDD, exemplicar o proposito de se escrever o codigo anteriormente ao código de produção. Terceira e última etapa do ciclo TDD, exemplificar o propósito da refatoração(se necessária) e a confiança de se alterar o código e garantir que não existem efeitos colaterais. Vermelho Verde Azul Segunda etapa do ciclo TDD, exemplificar a importância de se alterar o código de produção com a menor alteração possível, apenas para que o teste unitário passe. Mudando de estado do vermelho para o verde.
  36. [ ] [ ] Manrique (2013c) CONCEPÇÃO [ ELEMENTOS DA

    EXPERIÊNCIA GAMIFICADA ] ROSA Onboarding [ ] AMARELO Late Onboarding AZUL Late Midgame [ ] VERDE Endgame [ ] ROXO/EPIC Everlasting experienc [ ] LARANJA Midgame
  37. Figura 15: Testable: experiência gamificada CONCEPÇÃO [ ELEMENTOS DA EXPERIÊNCIA

    GAMIFICADA ] [ Tutorial ] [ Experience ] Points [ Random ] Rewards [ Free Lunch ] [ Epic ] Challenge [ In-Came ] Currency