Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

INTRODUÇÃO 01

Slide 4

Slide 4 text

MOTIVAÇÃO [ ] COMPLEXIDADE dos sistemas desenvolvidos atualmente.

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

SERIOUS 02GAMES& GAMIFICAÇÃO

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

ELEMENTOS DE JOGOS “ ... são definidos como um conjunto de componentes existente em um jogo” (WERBACH; HUNTER, 2012)

Slide 14

Slide 14 text

DINÂMICA MECÂNICA COMPO- NENTES ELEMENTOS DE JOGOS Figura 3: Elemento de jogos dividido em categorias. Baseado em (WERBACH; HUNTER, 2012)

Slide 15

Slide 15 text

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)

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

“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

Slide 20

Slide 20 text

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.

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

TESTE DE 03SOFTWARE

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

“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

Slide 30

Slide 30 text

ASPECTOS CONCEITUAIS: TESTE UNITÁRIO

Slide 31

Slide 31 text

ASPECTOS CONCEITUAIS: TESTE UNITÁRIO Figura 7: Exemplo de arquitetura de web em 3 camadas

Slide 32

Slide 32 text

Figura 8: Foco do teste unitário na arquitetura web 3 camadas ASPECTOS CONCEITUAIS: TESTE UNITÁRIO

Slide 33

Slide 33 text

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.

Slide 34

Slide 34 text

TDD Segundo Beck (2010) TDD é um pouco nebuloso, TDD é uma consciência da lacuna entre decisão e feedback durante a programação.

Slide 35

Slide 35 text

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)

Slide 36

Slide 36 text

TDD Refatoração Teste passando Figura 9: Ciclo de execução do TDD. Baseado em (BECK, 2010) Código do teste

Slide 37

Slide 37 text

REVISÃO BIBLIOGRÁFICA & TÉCNICA 04

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

REVISÃO TÉCNICA

Slide 40

Slide 40 text

Figura 11: Tela inicial do Flexbox Froggy REVISÃO TÉCNICA

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

CONCEPÇÃO & 05DESENVOLVIMENTO

Slide 44

Slide 44 text

CONCEPÇÃO [ TESTE UNITÁRIO ]

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

CONCEPÇÃO [ TESTE UNITÁRIO ] Intro.: TDD Vermelho Verde Azul

Slide 48

Slide 48 text

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.

Slide 49

Slide 49 text

CONCEPÇÃO [ ELEMENTOS DA EXPERIÊNCIA GAMIFICADA ]

Slide 50

Slide 50 text

[ ] [ ] 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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

BASE TECNOLOGÍAS UTILIZADAS ESPECÍFICAS +

Slide 53

Slide 53 text

HTML CSS NodeJs Javascript Webpack BASE ReactJs Firebase D3 TECNOLOGÍAS UTILIZADAS ESPECÍFICAS +

Slide 54

Slide 54 text

DESENVOLVIMENTO

Slide 55

Slide 55 text

PÚBLICO ALVO

Slide 56

Slide 56 text

PÚBLICO ALVO Estudantes da área de desenvolvimento; Jovens aprendizes. Faixa etária 17 a 25 anos

Slide 57

Slide 57 text

PROCESSO DE DESENVOLVIMENTO

Slide 58

Slide 58 text

PROCESSO DE DESENVOLVIMENTO

Slide 59

Slide 59 text

IDENTIDADE VISUAL [Elementos do jogo]

Slide 60

Slide 60 text

IDENTIDADE VISUAL [Interface]

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

OBRIGADO Universidade Presbiteriana Mackenzie - PPGEEC Matheus Marabesi Orientador: Prof. Dr. Ismar Frango Silveira T E S T A B L E