$30 off During Our Annual Pro Sale. View Details »

Adicionando qualidade no software com testes unitários

Adicionando qualidade no software com testes unitários

Allef Gomes

December 05, 2022
Tweet

More Decks by Allef Gomes

Other Decks in Programming

Transcript

  1. Adicionando
    qualidade no
    software com testes
    unitários

    View Slide

  2. Quem sou eu?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. Testes automatizados

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. View Slide

  15. Uma aplicação com 100% dos testes
    passando

    View Slide

  16. View Slide

  17. Atributo ‘color’ deve ser hexadecimal

    View Slide

  18. View Slide

  19. Implementando novos testes de sucesso…

    View Slide

  20. Implementando novos testes de falha…

    View Slide

  21. Aplicação 100% novamente

    View Slide

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

    View Slide

  23. Obrigado!
    Deus abençoe!

    View Slide