SlideShare uma empresa Scribd logo
1 de 46
Testes Prof. Dr. Alfredo Goldman  Prof. Dr. Fabio Kon  Departamento de Ciência da Computação IME / USP Lab. XP
Testar    Depurar ,[object Object],[object Object],[object Object],[object Object]
Teste enquanto você escreve código ,[object Object],[object Object],[object Object]
Técnicas básicas ,[object Object],[object Object],[object Object],[object Object],[object Object]
Teste o código em seus limites ,[object Object],[object Object]
Exemplo: int i; char s[MAX]; for(i=0; s[i] = getchar() != ‘’ && i < MAX - 1; i++); s[--i]=‘’; Primeiro erro fácil: // o = tem precedência menor do que o != for(i=0; (s[i] = getchar()) != ‘’ && i < MAX - 1; i++);
Exemplo: int i; char s[MAX]; for(i=0; i < MAX - 1; i++) if ((s[i] = getchar()) == ‘’) break;  s[i]=‘’; Testes: linha vazia ok;  1 caractere ok; 2 caracteres ok; MAX caracteres ok e se o primeiro caractere já é o de fim de arquivo ?
Exemplo: int i; char s[MAX]; for(i=0; i < MAX - 1; i++) if (s[i] = getchar()) == ‘’ || s[i]==EOF) break;  s[i]=‘’; Testes: ok. Mas o que se deve fazer se a string s fica cheia antes do ‘’ Depende, estes caracteres são necessários, ou não ?
Teste de pré e pós condições ,[object Object],double avg(double a[], int n){ int i; double sum = 0.0; for(i = 0; i < n; i++)   sum += a[i]; return sum / n; }
Teste de pré e pós condições ,[object Object],[object Object],[object Object],[object Object],// mudar o return return n <= 0 ? 0.0 : sum / n;
Uso de premissas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programação defensiva ,[object Object],[object Object],if (nota < 0 || nota > 10) // não pode acontecer letra = ‘?’; else if (nota > 9) letra = ‘A’; else ...
Utilizar códigos de erro ,[object Object],[object Object],[object Object],[object Object]
Exemplo: int fatorial( int n){ int fac = 1; while (n--) { fac *= n; } return fac; }
Testes sistemáticos (1/4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testes Sistemáticos (2/4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testes Sistemáticos (3/4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testes Sistemáticos (4/4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Automação de testes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Automação de testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Automação de testes Exemplo de script: for i in Ka_data.*  # laço sobre os testes do old_ka $i > out1  # versao antiga new_ka $i > out2  # nova versao if !cmp -s out1 out2# compara then echo $i: Erro  # imprime mensagem fi done
Automação de testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arcabouço de testes ,[object Object],[object Object]
Arcabouço de testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Como testar funções do math.h ?
Testes de estresse ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testes de estresse Exemplos de erros que podem ser encontrados: char *p; p = (char *) malloc (x * y * z); Conversão entre tipos diferentes: Ariane 5 conversão de double de 64 bits em int de 16 bits => BOOM
Dicas para fazer testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas para fazer testes ,[object Object],[object Object],[object Object],[object Object]
Tipos de teste ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Teste de Software Orientado a Objetos ,[object Object],[object Object],[object Object],[object Object]
Tipos de testes em software OO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Abordagem de McGregor/Sykes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análise de Riscos 1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análise de Riscos 2/2 ,[object Object],[object Object]
Dimensões do Processo de Testes  1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dimensões do Processo de Testes  2/2 ,[object Object],[object Object],[object Object],[object Object]
Papéis no Processo de Testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Planejamento de Testes 1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Planejamento de Testes 2/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testes das Classes (unidades) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testes das Interações ,[object Object],[object Object],[object Object],[object Object],[object Object]
Casos: Teste das interações 1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Casos: Teste das interações 2/2 ,[object Object],[object Object],[object Object],[object Object]
Lembre-se ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O único conceito mais importante de testes é DO IT
Baseado em ,[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Programação defensiva
Programação defensivaProgramação defensiva
Programação defensivaKayo Rayner
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Bernardo Fontes
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnitLeonardo Soares
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Aexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddAexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddCarlos Santana
 
Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Fernando Palma
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 

Mais procurados (20)

TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Programação defensiva
Programação defensivaProgramação defensiva
Programação defensiva
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 
Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?Testando Aplicações Django: Quando, Como e Onde?
Testando Aplicações Django: Quando, Como e Onde?
 
Introdução a testes unitários com jUnit
Introdução a testes unitários com jUnitIntrodução a testes unitários com jUnit
Introdução a testes unitários com jUnit
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
JUnit
JUnitJUnit
JUnit
 
Junit 4.0
Junit 4.0Junit 4.0
Junit 4.0
 
Junit
JunitJunit
Junit
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Aexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddAexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tdd
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
Teste agora! Não deixe para depois!
Teste agora! Não deixe para depois!Teste agora! Não deixe para depois!
Teste agora! Não deixe para depois!
 

Destaque

Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareJeremias Araujo
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo César M Jeveaux
 

Destaque (7)

Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 

Semelhante a Testes de software OO: classes, integração e sistema

Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SWguest8ae21d
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Alex Tercete
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testesAndré Luiz Forchesatto
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 

Semelhante a Testes de software OO: classes, integração e sistema (20)

Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
TDD Primeiro Contato
TDD Primeiro ContatoTDD Primeiro Contato
TDD Primeiro Contato
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SW
 
Aula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SWAula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SW
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
1° Madrugada de Testes
1° Madrugada de Testes1° Madrugada de Testes
1° Madrugada de Testes
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testes
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 

Mais de elliando dias

Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojureelliando dias
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypseelliando dias
 

Mais de elliando dias (20)

Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introduction
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojure
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypse
 

Testes de software OO: classes, integração e sistema

  • 1. Testes Prof. Dr. Alfredo Goldman Prof. Dr. Fabio Kon Departamento de Ciência da Computação IME / USP Lab. XP
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Exemplo: int i; char s[MAX]; for(i=0; s[i] = getchar() != ‘’ && i < MAX - 1; i++); s[--i]=‘’; Primeiro erro fácil: // o = tem precedência menor do que o != for(i=0; (s[i] = getchar()) != ‘’ && i < MAX - 1; i++);
  • 7. Exemplo: int i; char s[MAX]; for(i=0; i < MAX - 1; i++) if ((s[i] = getchar()) == ‘’) break; s[i]=‘’; Testes: linha vazia ok; 1 caractere ok; 2 caracteres ok; MAX caracteres ok e se o primeiro caractere já é o de fim de arquivo ?
  • 8. Exemplo: int i; char s[MAX]; for(i=0; i < MAX - 1; i++) if (s[i] = getchar()) == ‘’ || s[i]==EOF) break; s[i]=‘’; Testes: ok. Mas o que se deve fazer se a string s fica cheia antes do ‘’ Depende, estes caracteres são necessários, ou não ?
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Exemplo: int fatorial( int n){ int fac = 1; while (n--) { fac *= n; } return fac; }
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Automação de testes Exemplo de script: for i in Ka_data.* # laço sobre os testes do old_ka $i > out1 # versao antiga new_ka $i > out2 # nova versao if !cmp -s out1 out2# compara then echo $i: Erro # imprime mensagem fi done
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Testes de estresse Exemplos de erros que podem ser encontrados: char *p; p = (char *) malloc (x * y * z); Conversão entre tipos diferentes: Ariane 5 conversão de double de 64 bits em int de 16 bits => BOOM
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. O único conceito mais importante de testes é DO IT
  • 46.