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

Melhorando a qualidade derrotando um mutante por vez

Melhorando a qualidade derrotando um mutante por vez

Talk apresentada no TDC SP 2017 em São Paulo.

http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilha-devtest

Você sabe o que significa teste de mutação? É uma técnica que garante a REAL cobertura de testes em sua aplicação contra falhas de implementação.

Essa abordagem é melhor do que uma cobertura por linhas, pois observa se os testes estão cobrindo totalmente todos os cenários possíveis e não apenas se os testes executaram todas as linhas de código implementadas.

Descubra como testes de mutação podem te defender de bugs e defeitos em produção. Nessa palestra você entenderá o conceito e como aplicá-lo em Ruby.

Repositório de exemplo para entender testes de mutação e usado na demonstração da apresentação.

https://github.com/lucasalencar/xmen-danger-room

Ec53838c156a04a96f5bcb1496a69a80?s=128

Lucas André de Alencar

July 20, 2017
Tweet

More Decks by Lucas André de Alencar

Other Decks in Programming

Transcript

  1. Você confia que os testes da sua aplicação vão garantir

    a qualidade do seu projeto?
  2. 100% de cobertura de código já é suficiente?

  3. 100% de cobertura é uma mentira!

  4. Melhorando a qualidade derrotando um mutante por vez

  5. LUCAS ALENCAR RESULTADOS DIGITAIS FULL STACK RUBY ENGINEER

  6. O que é teste de mutação?

  7. Testes unitários garantem que o código está correto

  8. Testes de mutação garantem que os testes estão corretos

  9. O que é uma mutação? Original Mutação Condicional x >=

    20 x > 20
  10. O que é uma mutação? Original Mutação Condicional x >=

    20 x > 20 Operações 2 + 40 2 - 40
  11. O que é uma mutação? Original Mutação Condicional x >=

    20 x > 20 Operações 2 + 40 2 - 40 Parâmetros func(name = 'hello') func(name = nil)
  12. Teste Original Código Original

  13. Teste Original Teste Falha Teste Passa Código Original ! "

  14. Teste Original Teste Falha Teste Passa Código Mutante Código Original

    ! "
  15. Teste Original Teste Falha Teste Passa Código Mutante ! "

    Código Original
  16. Por que usar teste de mutação?

  17. Código tem bugs Testes são código Testes tem bugs

  18. Demo

  19. https://github.com/lucasalencar/xmen-danger-room

  20. Ruby : Mutest Java : PIT Python : Cosmic Ray

    Javascript : Stryker
  21. Identificação de cenários não cobertos Fortalece cobertura da aplicação Melhora

    o código da aplicação Ajuda a encontrar código não utilizado
  22. Melhorando a qualidade derrotando um mutante por vez

  23. LUCAS ALENCAR RESULTADOS DIGITAIS FULL STACK RUBY ENGINEER LUCAS.ALENCAR@RESULTADOSDIGITAIS.COM.BR @LUCASALENCAR

    RESULTADOS DIGITAIS TEM VAGAS!