Slide 1

Slide 1 text

Adicionando qualidade no software com testes unitários

Slide 2

Slide 2 text

Quem sou eu?

Slide 3

Slide 3 text

O que iremos entender ❏ Uma breve história dos testes ❏ Porque testamos? ❏ Testes automatizados ❏ Testes de Unidade ❏ Testes de Integração ❏ Testes de Sistema ❏ Um pouco de ruby e ruby on rails ❏ Estrutura de um teste unitário ❏ Exemplos de testes unitários em ruby on rails

Slide 4

Slide 4 text

Breve história dos testes ❏ SEMPRE utilizamos testes sejam manuais ou automatizados ❏ Os sistemas, módulos, funções, classes, métodos, todos tem uma entrada e saída prevista. ❏ A garantia que temos que o sistema está funcionando corretamente e vai poder subir para produção são os testes. Sejam manuais ou automatizados.

Slide 5

Slide 5 text

Por que testamos? ❏ Provar que nosso código faz o que deve fazer 😌 ❏ Prevenir “breaking changes” ❏ Encontrar de maneira mais fácil onde nosso código quebra ❏ Escrever a menor quantidade de código de teste possível, sem comprometer com a qualidade dos testes

Slide 6

Slide 6 text

Testes automatizados

Slide 7

Slide 7 text

Testes Unidade ou Unitários ❏ Verificam automaticamente pequenas partes de um código. Normalmente uma classe aferindo sempre a qualidade de código.

Slide 8

Slide 8 text

Testes de Integração ❏ Verificam automaticamente diversas classes de pacotes distintos e podem ainda testar componentes externos.

Slide 9

Slide 9 text

Testes de Sistema ou Interface ❏ Simulam da forma mais fiel possível a interação do usuário com o sistema. Testam as funcionalidades por completo.

Slide 10

Slide 10 text

Antes de continuarmos… Um pouco de Ruby Uma linguagem de programação de código aberto com foco em simplicidade e produtividade. Contém uma sintaxe elegante, natural para leitura e fácil de escrever. Atualmente está na versão 3.1.3

Slide 11

Slide 11 text

Um pouco de Rails Rails é um framework full-stack. Contém tudo que precisamos para construir incríveis aplicações web tanto no front quanto no backend. Atualmente está na versão 7.0.4

Slide 12

Slide 12 text

Voltando para os testes unitários… ❏ Menor Granularidade ❏ Maior quantidade ❏ Mais rápidos ❏ Menor custo

Slide 13

Slide 13 text

Estrutura de um teste unitário 1. Configuração (setup) 2. Exercício (exercise) 3. Verificação (verify) 4. Desconstrução (teardown)

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Uma aplicação com 100% dos testes passando

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Atributo ‘color’ deve ser hexadecimal

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Implementando novos testes de sucesso…

Slide 20

Slide 20 text

Implementando novos testes de falha…

Slide 21

Slide 21 text

Aplicação 100% novamente

Slide 22

Slide 22 text

Referências 1. https://engsoftmoderna.info/cap8.html 2. https://www.ruby-lang.org/en/ 3. https://rubyonrails.org/ 4. https://blog.carbonfive.com/rspec-best-practices/ 5. https://github.com/allefgomes/gdgtalk

Slide 23

Slide 23 text

Obrigado! Deus abençoe!