Slide 1

Slide 1 text

Teste em API Rest com Node.js Kirmayr Tomaz

Slide 2

Slide 2 text

Quem sou eu ? Kirmayr Tomaz • Bacharel em Sistemas de Informação (UFAM); • Certificação CTFL(Certified Tester Foundation Level); • 3 anos de experiência com desenvolvimento web; • atualmente estou trabalhando na Fermen.to como Full Stack Web Developer.

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

somos uma startup de tecnologia focada na criação de produtos digitais.

Slide 5

Slide 5 text

Uma breve introdução das características necessárias. Teste de Software Necessidade de automação de teste Automação de teste Exemplificação prática do projeto Teste em API REST Apresentação 01 02 03

Slide 6

Slide 6 text

Teste de Software

Slide 7

Slide 7 text

O que é Teste de Software ? O teste de software é uma maneira de verificar todas as solicitações de funcionalidades de um sistema buscando encontrar suas falhas antes de chegar ao cliente final, entregando-lhe um produto consistente, seguro e funcional.

Slide 8

Slide 8 text

É necessário Testar?

Slide 9

Slide 9 text

É necessário Testar?

Slide 10

Slide 10 text

• Insatisfação do Cliente É necessário Testar?

Slide 11

Slide 11 text

• Insatisfação do Cliente • Perda de Credibilidade É necessário Testar?

Slide 12

Slide 12 text

• Insatisfação do Cliente • Perda de Credibilidade • Perda Econômica É necessário Testar?

Slide 13

Slide 13 text

Custo de Falhas De acordo com Boehm e Basili [ Boehm & Basili, 2001 ], 80% do retrabalho é originário de 20% dos defeitos.

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Associado à causa de um comportamento incorreto. (Defeito) Um comportamento incorreto, ou seja, a consequência. Defeito/Falha Descreve uma condição particular a ser testada Caso de teste Execução de todos os testes para uma versão do produto em um determinado ambiente Rodada (Bateria) de Teste Conceitos 01 02 03

Slide 16

Slide 16 text

Automação de teste

Slide 17

Slide 17 text

Automação de teste é o uso de software para controlar a execução do teste de software, a comparação dos resultados esperados com os resultados reais, a configuração das pré- condições de teste e outras funções de controle e relatório de teste. O que é automação de teste ?

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Não possui estado entre essas comunicações, ou seja, cada comunicação é independente e uniforme (padronizada) precisando passar toda informação necessária. Comunicação através de JSON Não possui estado entre essas comunicações, ou seja, cada comunicação é independente e uniforme (padronizada) precisando passar toda informação necessária. Não possui estado de comunicação Assim cada implementação não depende da outra e se torna mais escalável. Definição de cliente e servidor API REST 01 02 03

Slide 20

Slide 20 text

json is a friend

Slide 21

Slide 21 text

cada byte conta 1 mb = 1 tb

Slide 22

Slide 22 text

Teste em API REST

Slide 23

Slide 23 text

Frameworks de teste em node

Slide 24

Slide 24 text

ame: (front-end) fe-manaus ersion: (1.0.0) 1.0.0 escription: Projeto de teste em api rest ntry point: (index.js) est command: mocha test it repository: eywords:test,mocha,rest,chai,supertest uthor: Kirmayr Tomaz cense: (ISC) Configurando Projeto e uma pasta para seu projeto, entre na pasta e digite em sua linha de comando.

Slide 25

Slide 25 text

Mocha Framework de teste JavaScript, que possibilita a cobertura dos testes tanto no back-end quanto no front- end. Devido sua flexibilidade e simplicidade aceita os estilos de teste TDD, BDD e QUnit.

Slide 26

Slide 26 text

Como instalamos Mocha?

Slide 27

Slide 27 text

Como criamos um test ?

Slide 28

Slide 28 text

Como executar o teste ?

Slide 29

Slide 29 text

Ignorando Suite de teste (skip) Para ignorar uma suite de teste ou caso de teste basta inserir após describe ou it .skip que todo a estrutura será ignorada

Slide 30

Slide 30 text

Ignorando Suite de teste

Slide 31

Slide 31 text

Hooks Utilizado para pre e pós condição de teste • Before - Antes de iniciar um conjunto de testes • After - Depois de finalizar um conjunto de testes • BeforeEach - Antes de cada teste • AfterEach - Depois de cada teste

Slide 32

Slide 32 text

O que vamos utilizar? Supertest

Slide 33

Slide 33 text

Instalando should.js e supertest.js

Slide 34

Slide 34 text

Configurando supertest.js HTTP://localhost:3000

Slide 35

Slide 35 text

Configurando supertest.js HTTP://localhost:3000

Slide 36

Slide 36 text

Configurando supertest.js

Slide 37

Slide 37 text

Configurando should.js

Slide 38

Slide 38 text

Cadastrando um usuário no sistema • Nome • cpf • identidade • sexo • escolaridade • data de nascimento • Estado de nascimento • Cidade de nascimento • Empresa onde trabalha • Setor que trabalha • Tempo na empresa • email • senha • Regra de negócio 1: Todos os campos são obrigatórios • Regra de negócio 2: Campo nome, identidade, estado,cidade,empresa,setor,carg o,tempo na empresa, email, senha são strings • Regra de negócio 3: Serão validos para o campo sexo (masculino, feminino, Homo e trans) • Escolaridade - será permitido valores no intervalo de 0 a 100 • Tempo de profissão e data de nascimento serão permitidos do tipo data.

Slide 39

Slide 39 text

Código

Slide 40

Slide 40 text

Configurações Utilizando Gulp e Mocha https://www.npmjs.com/package/gulp-mocha Mocha com Promisses http://tobyho.com/2015/12/16/mocha-with-promises/

Slide 41

Slide 41 text

Referências • Whatsapp web - http://www.tecmundo.com.br/whatsapp/86096-whatsapp-web-brecha-seguranca-deixou-200-mil-u suarios-vulneraveis.htm • IFOOD WEB h ttp://g1.globo.com/tecnologia/blog/seguranca-digital/post/falha-em-site-de-delivery-ifood-permiti a-alterar-precos-de-pedidos.html • Artigo Engenharia de Software - Introdução a Teste de Software http://www.devmedia.com.br/artigo-engenharia-de-software-introducao-a-teste-de-software/803 5#ixzz43FeKj3ai • Santos Site - http://g1.globo.com/tecnologia/noticia/2011/02/falha-em-site-do-santos-gera-boato-sobre-ida-de- ganso-para-corinthians.html • Facebook - http://oglobo.globo.com/sociedade/tecnologia/aluno-de-harvard-tem-estagio-no-facebook-cance lado-apos-apontar-falha-no-sistema-da-rede-17209000 • Construindo uma RESTful API – Parte 1 http://www.devmedia.com.br/construindo-uma-restful-api-parte-1/29904#ixzz43HjsdmT6 • http://pt.stackoverflow.com/questions/45783/o-que-%C3%A9-rest-e-restful • https://pt.wikipedia.org/wiki/Automação_de_teste

Slide 42

Slide 42 text

www.fermen.to facebook.com/fermen.to [email protected] Obrigado [email protected]