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

Dmitry Rocha

June 24, 2017
Tweet

More Decks by Dmitry Rocha

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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])
  6. 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
  7. 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
  8. 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])
  9. O que não é? ▶ Não é uma fase; ▶

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

    Não tem como objetivo destruir o software; ▶ Não tem como objetivo encontrar errors;
  11. 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])
  12. 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])
  13. Pontos principais aqui ▶ Separado do software original; ▶ Comparar

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

    saída esperada com saída recebida dado determinada entrada; ▶ Tarefa repetitiva;
  15. Minha definição Teste É algo que testo para ver se

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

    está funcionando =/ Automatizado É algo que automatizo :P