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

Introdução a testes automatizados

Introdução a testes automatizados

HackDay 2017.1

63d1307df6bdc998ddc84bf0390c0ff7?s=128

Dmitry Rocha

June 24, 2017
Tweet

Transcript

  1. Dmitry Rocha dev - cm42 Introdução a Testes Automatizados

  2. Dmitry Rocha @dmitryrck

  3. #soudev

  4. codeminer42.com

  5. Testes automatizados

  6. 1. Exemplo funcional;

  7. 1. Exemplo funcional; 2. Definições;

  8. 1. Exemplo funcional; 2. Definições; 3. Workflow do desenvolvedor;

  9. Exemplo funcional

  10. 1 def sum(arr = []) 2 result = 0 3

    4 arr.each do |value| 5 result += value 6 end 7 8 result 9 end Listing 1: Exemplo funcional
  11. 1 % irb -I. -rcode/calc-sum.rb 2 irb(main):001:0> sum([1, 2]) 3

    => 3 4 irb(main):002:0> sum([1, 1, 1]) 5 => 3 6 irb(main):003:0> Listing 2: Exemplo funcional: Teste manual
  12. 1 require "calc-sum" 2 3 if sum([1, 2]) == 3

    4 puts "1 + 2 = 3: okay" 5 else 6 puts "ERROR" 7 end 8 9 if sum([1, 1, 1]) == 2 10 puts "1 + 1 + 1 = 3: okay" 11 else 12 puts "ERROR" 13 end 1 % ruby -Icode ./code/calc-sum-test.rb 2 1 + 2 = 3: okay 3 1 + 1 + 1 = 3: okay
  13. Definições

  14. Definição de um livro

  15. Definição de Livro “ …Não é incomum que uma organização

    de software gaste 40% do esforço de projeto total em teste… ” ([2, Pressman]) Grifo meu
  16. Definição de Livro “ …Surge a fase de testes. O

    engenheiro cria uma série de casos de testes que têm a intenção de ”demolir” o software que ele construiu. ” ([2, Pressman])
  17. None
  18. Definição de Livro “ 18.1.1 Objetivo das atividades de testes

    … 1. A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro ainda não descoberto. 2. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um erro ainda não descoberto. 3. Um teste bem-sucedido é aquele que revela um erro ainda não descoberto. ” ([2, Pressman]) Grifo meu
  19. Definição de Livro “ Se a atividade de teste for

    conduzida com sucesso …, ela descobrirá erros no software. Como um benefício secundário, a atividade de teste demonstra que as funções de software aparentemente estão trabalhando de acordo com as especificações, que os requisitos de desempenho aparentemente está cumprido. ” ([2, Pressman]) Grifo meu
  20. Definição de Livro “ 18.8 Resumo O objetivo principal do

    projeto de casos de testes é derivar um conjunto de testes, que tenha uma alta probabilidade de revelar defeitos no software. ” ([2, Pressman])
  21. None
  22. O que não é?

  23. O que não é? ▶ Não é uma fase;

  24. O que não é? ▶ Não é uma fase; ▶

    Não tem como objetivo destruir o software;
  25. O que não é? ▶ Não é uma fase; ▶

    Não tem como objetivo destruir o software; ▶ Não tem como objetivo encontrar errors;
  26. Definição da Wikipedia

  27. Definição da Wikipedia “ In software testing, test automation is

    the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or add additional testing that would be difficult to perform manually. ” ([1, Wikipedia])
  28. Definição da Wikipedia “ Em teste de software, teste automatizado

    é um uso especial do software (separado do software que será testado) para controlar a execução do testes e comparar a saída com a saída que se espera. Teste automatizado pode efetuar algumas tarefas repetitivas, […] ” ([1, Wikipedia])
  29. None
  30. Pontos principais aqui

  31. Pontos principais aqui ▶ Separado do software original;

  32. Pontos principais aqui ▶ Separado do software original; ▶ Comparar

    saída esperada com saída recebida dado determinada entrada;
  33. Pontos principais aqui ▶ Separado do software original; ▶ Comparar

    saída esperada com saída recebida dado determinada entrada; ▶ Tarefa repetitiva;
  34. Minha definição

  35. Minha definição Teste É algo que testo para ver se

    está funcionando =/
  36. Minha definição Teste É algo que testo para ver se

    está funcionando =/ Automatizado É algo que automatizo :P
  37. None
  38. Minha definição Teste É algo que testo para ver se

    está funcionando =/
  39. Minha definição Teste É algo que testo para ver se

    está funcionando =/ Automatizado É algo que automatizo :P
  40. Ciclo: Red-Green-Refactor

  41. Primeiro projeto https://github.com/dmitryrck/sum- all Instruções no README

  42. Segundo projeto (usando selenium) https://github.com/dmitryrck/sinatra- and-capybara-demo Instruções no README

  43. Test automation. http://en.wikipedia.org/w/index.php?title=Test_ automation&oldid=625222800. Roger S Pressman. Engenharia de software.

    3ª Edição. Makron Books.
  44. None