SlideShare uma empresa Scribd logo
TESTES
O que são e para
que servem?
DIANA UNGARO ARNOS
Desenvolvedora web backend @ Dafiti/GFG
Instrutora @ Caldo Gouveia
OBJETIVOS DO HANGOUT
Ter uma visão geral sobre vários tipos de teste
Entender a importância dos testes unitários
durante o desenvolvimento
Entender o que são testes de software
O QUE SÃO TESTES?
E por que testamos?
1
QUANDO NÃO TESTAMOS...
O QUE SÃO E PARA QUE SERVEM
◦ Procurar e encontrar bugs
◦ Evitam perda de dinheiro e
comprometimento de imagem
◦ Caixa branca ou caixa preta
TIPOS DE TESTE2
Caixa Branca
◦ Acesso ao código
fonte
◦ Projetado de
acordo com
estrutura do
componente
TIPOS DE TESTE
Caixa Preta
◦ Sem acesso ao
código fonte
◦ Baseado nos
requisitos
funcionais
TIPOS DE TESTE
Unitário (Teste de Unidade)
◦ Caixa branca
◦ Unidades inviduais de código (classes e métodos)
Integração
◦ Caixa branca / caixa preta
◦ Integração de componentes do sistema
◦ Identifica erros de interface entre módulos
Sistema
◦ Caixa preta
◦ Baseado nos requisitos do sistema
◦ Segue roteiros definidos em planos de teste
TESTES DE SISTEMA
Garantem que o sistema funciona como um todo.
Alguns dos mais conhecidos entre desenvolvedores:
Aceitação
Utilizado em equipes ágeis.
Donos do produto aceitam ou não
alguma funcionalidade
implementada.
Funcionais
Testam os casos de uso.
Baseados nas especificações de
negócio.
Performance
Testes de carga, stress, estabilidade e
inclusive o fuzz testing (teste do
macaco louco)
Segurança
Garante que os dados sejam acessados
de maneira segura somente por quem é
autorizado.
Pen testing.
TESTES UNITÁRIOS3
TESTES UNITÁRIOS
Grande Objetivo:
Garantir o retorno esperado em todos os casos possíveis
◦ Caminho Feliz
◦ Fluxos Alternativos
◦ Fluxos de Exceção
TESTES UNITÁRIOS
O que é um teste unitário?
TESTES UNITÁRIOS
Quais vantagens isso me traz?
◦ Manutenção mais fácil do código
◦ Refatoração sem medo
◦ Obriga melhor aplicação da programação
orientada a objetos
◦ Serve como documentação
TESTES UNITÁRIOS
Erros mais comuns
◦ Comunicação com banco de dados
◦ Utilizar recursos de rede
◦ Utilizar sistema de arquivos
◦ Necessitar de alterações no ambiente
TESTES UNITÁRIOS
Boas Práticas
◦ Cada teste verifica só um comportamento
◦ Um teste não deve depender do resultado de
outro
◦ Testar apenas métodos públicos
◦ Usar testes parametrizados sempre que possível
◦ Indicar no nome do teste o que está sendo testado
e o resultado esperado
Obrigada!
PERGUNTAS?
@dianaarnos
diana.arnos@gmail.com
www.dianaarnos.com

Mais conteúdo relacionado

Mais procurados

TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian Cunha
Christian Cunha
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
Rangel Javier
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
Frederico Belisario
 
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
Sandro Giacomozzi
 
Testes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGTestes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUG
beiraJUG
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
Caesar Ralf Franz Hoppen
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjug
Bruno Maomeh
 
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHPPHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
Marcelo Rodrigues
 
Mock it with mockito
Mock it with mockitoMock it with mockito
Mock it with mockito
Renan Uchôa
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
Giovanni Bassi
 
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!
Marco Antonio Anibal Damaceno
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Renato Groff
 
JUnit Experience
JUnit ExperienceJUnit Experience
JUnit Experience
Renan Uchôa
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
Igor Rozani
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
Bárbara Cabral da Conceição, CTFL
 
Testes de Unidade - Unidade II
Testes de Unidade - Unidade IITestes de Unidade - Unidade II
Testes de Unidade - Unidade II
João Lourenço
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
Guilherme Chapiewski
 
Qualidade
QualidadeQualidade
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
Bárbara Cabral da Conceição, CTFL
 
Teste baseado em modelos
Teste baseado em modelosTeste baseado em modelos
Teste baseado em modelos
Andreza Pollyana
 

Mais procurados (20)

TDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian CunhaTDD no Community Launch 2010 - Christian Cunha
TDD no Community Launch 2010 - Christian Cunha
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
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
 
Testes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGTestes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUG
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjug
 
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHPPHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP
 
Mock it with mockito
Mock it with mockitoMock it with mockito
Mock it with mockito
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
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!
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
JUnit Experience
JUnit ExperienceJUnit Experience
JUnit Experience
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Testes de Unidade - Unidade II
Testes de Unidade - Unidade IITestes de Unidade - Unidade II
Testes de Unidade - Unidade II
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
Qualidade
QualidadeQualidade
Qualidade
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Teste baseado em modelos
Teste baseado em modelosTeste baseado em modelos
Teste baseado em modelos
 

Destaque

Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Diana Ungaro Arnos
 
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersInterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application Developers
iMasters
 
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
iMasters
 
React e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel CoutoReact e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel Couto
iMasters
 
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
iMasters
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
iMasters
 
InterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e PythonInterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e Python
iMasters
 

Destaque (7)

Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
 
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersInterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application Developers
 
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
 
React e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel CoutoReact e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel Couto
 
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
 
InterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e PythonInterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e Python
 

Semelhante a Testes O que são e para que servem? - LadyTalks

Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
cejug
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
Cloves da Rocha
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Domingos Teruel
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
testedesoftwarepe
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
Aline Ferreira
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
João Lourenço
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
Isaac de Souza
 
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
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
elliando dias
 
Teste de software
Teste de softwareTeste de software
Teste de software
Rafael Sanches
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
João Lourenço
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
Diego Pacheco
 
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
DevInPF
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
Adilmar Dantas
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
Engenharia de Software Ágil
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Otavio Augusto
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
Universidade Tiradentes
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
Thiago Ghisi
 
Teste de software
Teste de softwareTeste de software
Teste de software
Nylce Garcia
 
J unit xp
J unit xpJ unit xp
J unit xp
Emir Calife
 

Semelhante a Testes O que são e para que servem? - LadyTalks (20)

Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
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
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
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
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
J unit xp
J unit xpJ unit xp
J unit xp
 

Testes O que são e para que servem? - LadyTalks

  • 1. TESTES O que são e para que servem?
  • 2. DIANA UNGARO ARNOS Desenvolvedora web backend @ Dafiti/GFG Instrutora @ Caldo Gouveia
  • 3. OBJETIVOS DO HANGOUT Ter uma visão geral sobre vários tipos de teste Entender a importância dos testes unitários durante o desenvolvimento Entender o que são testes de software
  • 4. O QUE SÃO TESTES? E por que testamos? 1
  • 6. O QUE SÃO E PARA QUE SERVEM ◦ Procurar e encontrar bugs ◦ Evitam perda de dinheiro e comprometimento de imagem ◦ Caixa branca ou caixa preta
  • 8. Caixa Branca ◦ Acesso ao código fonte ◦ Projetado de acordo com estrutura do componente TIPOS DE TESTE Caixa Preta ◦ Sem acesso ao código fonte ◦ Baseado nos requisitos funcionais
  • 9. TIPOS DE TESTE Unitário (Teste de Unidade) ◦ Caixa branca ◦ Unidades inviduais de código (classes e métodos) Integração ◦ Caixa branca / caixa preta ◦ Integração de componentes do sistema ◦ Identifica erros de interface entre módulos Sistema ◦ Caixa preta ◦ Baseado nos requisitos do sistema ◦ Segue roteiros definidos em planos de teste
  • 10. TESTES DE SISTEMA Garantem que o sistema funciona como um todo. Alguns dos mais conhecidos entre desenvolvedores: Aceitação Utilizado em equipes ágeis. Donos do produto aceitam ou não alguma funcionalidade implementada. Funcionais Testam os casos de uso. Baseados nas especificações de negócio. Performance Testes de carga, stress, estabilidade e inclusive o fuzz testing (teste do macaco louco) Segurança Garante que os dados sejam acessados de maneira segura somente por quem é autorizado. Pen testing.
  • 12. TESTES UNITÁRIOS Grande Objetivo: Garantir o retorno esperado em todos os casos possíveis ◦ Caminho Feliz ◦ Fluxos Alternativos ◦ Fluxos de Exceção
  • 13. TESTES UNITÁRIOS O que é um teste unitário?
  • 14. TESTES UNITÁRIOS Quais vantagens isso me traz? ◦ Manutenção mais fácil do código ◦ Refatoração sem medo ◦ Obriga melhor aplicação da programação orientada a objetos ◦ Serve como documentação
  • 15. TESTES UNITÁRIOS Erros mais comuns ◦ Comunicação com banco de dados ◦ Utilizar recursos de rede ◦ Utilizar sistema de arquivos ◦ Necessitar de alterações no ambiente
  • 16. TESTES UNITÁRIOS Boas Práticas ◦ Cada teste verifica só um comportamento ◦ Um teste não deve depender do resultado de outro ◦ Testar apenas métodos públicos ◦ Usar testes parametrizados sempre que possível ◦ Indicar no nome do teste o que está sendo testado e o resultado esperado

Notas do Editor

  1. só uma introdução Para quem não conhece muito sobre testes
  2. se você não se preocupa com testes
  3. ENCONTRAR = testar provocando erros, não só buscando o caminho feliz se o produto sai com bug, pega mal e dá mais trabalho para refazer caixa branca = vendo código caixa preta = sem ver código BDD codificado = caixa preta