SlideShare uma empresa Scribd logo
1 de 10
Testes unitários
  Prof. Leonardo Soares




  Campus Garanhuns
Recapitulando

Como sabemos o uso de testes nos auxilia em dois pontos:
  Saber se o software está conforme os requisitos do cliente
  Identificar se não há comportamentos anormais
Há diferentes formas de testar, cada uma focando em diferentes
partes de nosso software
  Unitários
  Integração
  Sistema
  Aceitação
Testes unitários

Um dos primeiros testes que podemos realizar ocorrem durante a
escrita do código-fonte
Estes testes são realizados pelos desenvolvedores e recebem o
nome de testes unitários, pois focam na menor parte testável do
sistema, chamadas de unidades
  Para sistemas O.O. podemos considerar a menor parte do sistema
  como sendo nossas classes e/ou métodos
Estamos interessados em avaliar se o retorno de nossos métodos
estão de acordo com as expectativas
Definição de testes unitários
                                 Estamos interessados em avaliar como
                                   nossos métodos se comportam sob
                                 diferentes condições de uso. Variando
                                 argumentos passados, analisando seu
               Estamos interessados em isolar o
               comportamento de cada método, em condições normais ou
                               comportamento
                 independente de classesem situações de exceção
                                         e/ou
                       outros métodos

“Teste unitário examina o comportamento de uma
unidade distinta de trabalho”
                                                       Massol, Vincent (Junit
  in Action)
Realizem os testes nos seguintes
              métodos


Calcular imposto com base no salário – calcular( Float salario )
  Imposto 27,5% a partir de 3.743
  Imposto 22,5% a partir de 2.995 até 3.743
  O método deve retornar o valor do imposto a ser pago
Cadastro de pessoa – boolean cadastrar(Pessoa p)
  O método deve retornar TRUE em caso do objeto ser salvo com
  sucesso, FALSE em caso contrário
Utilizando testes unitários


Utilizamos testes unitários para avaliar o comportamento de
métodos (sua saída/retorno) diante de determinadas entradas
Por muitas vezes não fazemos as verificações necessárias,
fazendo as considerações para diferentes entradas para nossos
métodos
Esta verificação deve ser feita de forma individual e
independente, ou seja, durante um teste um método não pode
depender de outros ou de outras classes (mocks e stubs).
Testes unitários na prática


1. Identificamos os métodos que iremos testar
2. Definimos as entradas possíveis para uma condição de
   sucesso e para uma condição de falha
3. Inserimos estes valores e verificamos o retorno de nosso
   método
Identifiquem os possíveis testes


Método para realizar soma
  Recebe como entrada dois números
  Retorna o resultado da soma
Testar um método para realizar depósito em uma conta
bancária
  O método deve receber um flutuante com o valor a ser
  depósitado
  O método deve retornar o valor contido na conta
Identifiquem os possíveis testes

Testar o método para fazer o saque em uma conta
  O método aceita dois valores: valor_saque, valor_saldo
  O método deve retornar um valor referente ao saldo da conta após
  o saque ou -1 em situação de erro
Testar o método para liberar a prova do detran ou não
  O método aceita um valor do tipo Integer com a idade do aluno
  A liberação da prova será mediante ao atendimento dos critérios
  ou não
  O método deve retornar um boolean true caso a prova seja
  liberada ou false em caso contrário
Exercício para casa

Testar o método para discar para um número de telefone
  O método aceita uma string como argumento
  O método retorna um flutuante maior que zero quando o número
  estiver correto, ou zero em caso contrário
  O número deve estar no formato (XX)XXXX-XXXX
  Utilizem expressões regulares

Mais conteúdo relacionado

Semelhante a Introdução a testes unitários

Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
Aline Zanin
 
Investigação Experimental em Psicologia
Investigação Experimental em PsicologiaInvestigação Experimental em Psicologia
Investigação Experimental em Psicologia
Jorge Barbosa
 

Semelhante a Introdução a testes unitários (20)

Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
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
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
Iintegrity Meter
Iintegrity MeterIintegrity Meter
Iintegrity Meter
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Apresentacao teste
Apresentacao testeApresentacao teste
Apresentacao teste
 
Pensando em java univali turbinando seus testes
Pensando em java univali   turbinando seus testesPensando em java univali   turbinando seus testes
Pensando em java univali turbinando seus testes
 
DevQA: Como testar os testes unitários?
DevQA: Como testar os testes unitários?DevQA: Como testar os testes unitários?
DevQA: Como testar os testes unitários?
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
Mini curso aula 04
Mini curso aula 04Mini curso aula 04
Mini curso aula 04
 
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
 
Fusc omasp juran_2
Fusc omasp juran_2Fusc omasp juran_2
Fusc omasp juran_2
 
Fusc omasp juran_2
Fusc omasp juran_2Fusc omasp juran_2
Fusc omasp juran_2
 
A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...
 
Variáveis e mensuração
Variáveis e mensuraçãoVariáveis e mensuração
Variáveis e mensuração
 
Curso de fisica universidade DF1 - 2a.ppt
Curso de fisica universidade DF1 - 2a.pptCurso de fisica universidade DF1 - 2a.ppt
Curso de fisica universidade DF1 - 2a.ppt
 
Investigação Experimental em Psicologia
Investigação Experimental em PsicologiaInvestigação Experimental em Psicologia
Investigação Experimental em Psicologia
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Qualidade
QualidadeQualidade
Qualidade
 
Estatística Aplicada à Administração - Aula 08: Tipos de Ensaios
Estatística Aplicada à Administração - Aula 08: Tipos de EnsaiosEstatística Aplicada à Administração - Aula 08: Tipos de Ensaios
Estatística Aplicada à Administração - Aula 08: Tipos de Ensaios
 

Mais de Leonardo Soares

Mais de Leonardo Soares (20)

Introdução a linguagem de programação Lua
Introdução a linguagem de programação LuaIntrodução a linguagem de programação Lua
Introdução a linguagem de programação Lua
 
Depuração de software
Depuração de softwareDepuração de software
Depuração de software
 
Introdução ao HTML4 e HTML5
Introdução ao HTML4 e HTML5Introdução ao HTML4 e HTML5
Introdução ao HTML4 e HTML5
 
Grupo de processos de planejamento - Parte 02
Grupo de processos de planejamento - Parte 02Grupo de processos de planejamento - Parte 02
Grupo de processos de planejamento - Parte 02
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
 
Técnicas de modelagem de testes
Técnicas de modelagem de testesTécnicas de modelagem de testes
Técnicas de modelagem de testes
 
Grupo de processos de planejamento - Parte 01
Grupo de processos de planejamento - Parte 01Grupo de processos de planejamento - Parte 01
Grupo de processos de planejamento - Parte 01
 
Grupos de processos de planejamento
Grupos de processos de planejamentoGrupos de processos de planejamento
Grupos de processos de planejamento
 
Gestão de projetos com PMBoK
Gestão de projetos com PMBoKGestão de projetos com PMBoK
Gestão de projetos com PMBoK
 
Grupos de processos de iniciação - PMBoK
Grupos de processos de iniciação - PMBoKGrupos de processos de iniciação - PMBoK
Grupos de processos de iniciação - PMBoK
 
Introdução a testes de software
Introdução a testes de softwareIntrodução a testes de software
Introdução a testes de software
 
Introdução a gestão de projetos com PMBoK
Introdução a gestão de projetos com PMBoKIntrodução a gestão de projetos com PMBoK
Introdução a gestão de projetos com PMBoK
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHP
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
Criação de formulários e tabelas com HTML
Criação de formulários e tabelas com HTMLCriação de formulários e tabelas com HTML
Criação de formulários e tabelas com HTML
 
Uso de imagens e links com HTML
Uso de imagens e links com HTMLUso de imagens e links com HTML
Uso de imagens e links com HTML
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 

Último

O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 

Último (20)

Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 

Introdução a testes unitários

  • 1. Testes unitários Prof. Leonardo Soares Campus Garanhuns
  • 2. Recapitulando Como sabemos o uso de testes nos auxilia em dois pontos: Saber se o software está conforme os requisitos do cliente Identificar se não há comportamentos anormais Há diferentes formas de testar, cada uma focando em diferentes partes de nosso software Unitários Integração Sistema Aceitação
  • 3. Testes unitários Um dos primeiros testes que podemos realizar ocorrem durante a escrita do código-fonte Estes testes são realizados pelos desenvolvedores e recebem o nome de testes unitários, pois focam na menor parte testável do sistema, chamadas de unidades Para sistemas O.O. podemos considerar a menor parte do sistema como sendo nossas classes e/ou métodos Estamos interessados em avaliar se o retorno de nossos métodos estão de acordo com as expectativas
  • 4. Definição de testes unitários Estamos interessados em avaliar como nossos métodos se comportam sob diferentes condições de uso. Variando argumentos passados, analisando seu Estamos interessados em isolar o comportamento de cada método, em condições normais ou comportamento independente de classesem situações de exceção e/ou outros métodos “Teste unitário examina o comportamento de uma unidade distinta de trabalho” Massol, Vincent (Junit in Action)
  • 5. Realizem os testes nos seguintes métodos Calcular imposto com base no salário – calcular( Float salario ) Imposto 27,5% a partir de 3.743 Imposto 22,5% a partir de 2.995 até 3.743 O método deve retornar o valor do imposto a ser pago Cadastro de pessoa – boolean cadastrar(Pessoa p) O método deve retornar TRUE em caso do objeto ser salvo com sucesso, FALSE em caso contrário
  • 6. Utilizando testes unitários Utilizamos testes unitários para avaliar o comportamento de métodos (sua saída/retorno) diante de determinadas entradas Por muitas vezes não fazemos as verificações necessárias, fazendo as considerações para diferentes entradas para nossos métodos Esta verificação deve ser feita de forma individual e independente, ou seja, durante um teste um método não pode depender de outros ou de outras classes (mocks e stubs).
  • 7. Testes unitários na prática 1. Identificamos os métodos que iremos testar 2. Definimos as entradas possíveis para uma condição de sucesso e para uma condição de falha 3. Inserimos estes valores e verificamos o retorno de nosso método
  • 8. Identifiquem os possíveis testes Método para realizar soma Recebe como entrada dois números Retorna o resultado da soma Testar um método para realizar depósito em uma conta bancária O método deve receber um flutuante com o valor a ser depósitado O método deve retornar o valor contido na conta
  • 9. Identifiquem os possíveis testes Testar o método para fazer o saque em uma conta O método aceita dois valores: valor_saque, valor_saldo O método deve retornar um valor referente ao saldo da conta após o saque ou -1 em situação de erro Testar o método para liberar a prova do detran ou não O método aceita um valor do tipo Integer com a idade do aluno A liberação da prova será mediante ao atendimento dos critérios ou não O método deve retornar um boolean true caso a prova seja liberada ou false em caso contrário
  • 10. Exercício para casa Testar o método para discar para um número de telefone O método aceita uma string como argumento O método retorna um flutuante maior que zero quando o número estiver correto, ou zero em caso contrário O número deve estar no formato (XX)XXXX-XXXX Utilizem expressões regulares

Notas do Editor

  1. Implementarcolocandotodososvalores. Imposto -> colocarosvaloresassumidos e tambémcolocar um valor 0 ounegativo | Avaliarretorno
  2. Fornecerexemplospara o ponto 1)
  3. Quaismétodosdevemsertestados?Como podemosfazeristo?
  4. Testes primeiroponto: quaisquernúmeros, verifiquem se o métodoretorna o valor correto. Incluamvalorescorretos e vejam se osretornossãooscorretosTestes segundoponto: númeropositivomaiorque zero, zero, negativo
  5. Testes para a primeiracondição? 20, 100 [sucesso] / 20, 10 [ falha ] (primeiro valor maiorque o segundo) / 0, 0 [falha] (O métododeveaceitar o saquecaso o saldosejamaiorouigual)Testes para a segundacondição? 18 oumaiorque 18 / menorque 18 / número 0 ounegativo
  6. Quaisseriamospossívels testes para a primeiracondição? (82)3033-2267 [sucesso] / (123) 1234-3456 [falha] / 1234-3456 [falha] / (82) 30332267 [falha] / null [falha]Testes para a segundacondição? 20, 100 [sucesso] / 20, 10 [ falha ] / 0, 0 [falha] (O métododeveaceitar o saquecaso o saldosejamaiorouigual)