SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Prof. Nécio de Lima Veras
http://lattes.cnpq.br/8284657916723590
Testes de software
Nécio de Lima Veras
necio.veras@ifce.edu.br
Leituras recomendadasLeituras recomendadas
“A grande maioria das pessoas já teve alguma experiência
com um software que não funcionou como esperado.
Softwares que não funcionam corretamente podem levar a
muitos problemas, incluindo financeiro, tempo e reputação
das empresas. Podendo, inclusive, chegar a influenciar na
integridade das pessoas” [ISTQB 2011].
TestesTestes
 Podemos associar a qualidade de um software
à quantidade de falhas percebidas no mesmo
 O teste de software ajuda a medir e/ou garantir essa
qualidade
 Níveis de Teste
 Unidade (componente)
 Integração (interface entre componentes)
 Sistema (comportamento)
 Aceitação (apropriado para uso)
TestesTestes
 Modos de Testar
 Manual
 Ex.: Inspeção manual de Código
 Automático
 Ex.: Asserção com JUnit
 No contexto de testes automáticos se sobressaem duas
abordagens:
 TDD (Testing-Driven Development) ou Desenvolvimento
dirigido por testes
 BDD (Behavior-Driven Design) ou Projeto guiado por
comportamento
TestesTestes
 TDD se apoia nos passos:
 Escreva o teste, para a funcionalidade, antes de estar
implementada (os testes irão falhar)
 Escreva o código de modo a fazer os teste passar
 Refatore o código
 Repita o processo
 Um exemplo de TDD
 Testar um método que recebe como parâmetro dois
números retorna a sua soma
TestesTestes
TDDTDD
TDDTDD
 1 – Método retorna inicialmente zero (ainda não escrevemos o teste)
Step by stepStep by step
Step by StepStep by Step
 2– Escrevemos o teste
Step by StepStep by Step
 3 – Rodamos o Teste (vermelho, pois a funcionalidade ainda não está
implementada)
Step by StepStep by Step
 4 – Implementamos o código
Step by StepStep by Step
 5 – Rodamos os testes (agora verdes)
Step by StepStep by Step
 6 – Refatoramos o código e rodamos os testes (devem continuar verdes)
Testes (comportamentais)Testes (comportamentais)
 Sobre BDD podemos fazer as seguintes considerações [Fox
e Patterson 2012]:
 BDD faz perguntas sobre comportamentos antes e durante o
desenvolvimento, visando reduzir falhas na comunicação
dentro do projeto.
 Requisitos são escritos como histórias de usuários. São
criadas descrições simples de como a aplicação deve ser
utilizada.
 BDD se concentra no comportamento da aplicação versus a
implementação da aplicação e os testes são conduzidos
utilizando TDD.
Fluxo padrão do BDDFluxo padrão do BDD
Fluxo padrão do BDDFluxo padrão do BDD
Fluxo padrão do BDDFluxo padrão do BDD
Fluxo padrão do BDDFluxo padrão do BDD
ExemploExemplo
 Uma narrativa simples: uma confirmação de inscrição para
um evento (ENUCOMP) faz o participante concorrer a
um sorteio.
Classe que mapeia a históriaClasse que mapeia a história
Classe que testa tudoClasse que testa tudo
ResultadosResultados
Exercícios (TDD)Exercícios (TDD)
● Use o TDD em Java com Junit para criar
testes unitários automatizados de uma classe
chamada Carro com as seguintes
funcionalidades:
– Ligar / Desligar o motor;
– Aceleração de velocidade;
– Frenagem;
– Buzina (método deve retornar uma String);
– Consumo de combustível.
ReferênciasReferências
● ISTQB. (2011). Certified Tester Foundation
Level Syllabus, version 2011.
● MAGALHÃES, R. et al. Fundamentos de
Engenharia de Software para o
Desenvolvimento de Software como Serviço
através do uso de Metodologias Ágeis. In
Anais da Jornada de Informática do Maranhão
e Escola Regional de Computação dos
Estados do Ceará, Maranhão e Piauí. São
Luís-MA, 2012.

Mais conteúdo relacionado

Mais procurados

Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Softwareelliando dias
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalRuan Carvalho
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareRobson Silva Espig
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de softwareWaldemar Roberti
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareBruno Bitencourt Luiz
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...Janynne Gomes
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software caricati
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de PrototipaçãoJuliano Pires
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareDaniela Franciosi
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02Franklin Matos Correia
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Natanael Simões
 

Mais procurados (20)

Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-Incremental
 
Aula2 paradigmas
Aula2 paradigmasAula2 paradigmas
Aula2 paradigmas
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de software
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de Software
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Engenharia de software - Prototipo
Engenharia de software - PrototipoEngenharia de software - Prototipo
Engenharia de software - Prototipo
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 

Destaque

Uma experiência de formação de professores no uso
Uma experiência de formação de professores no usoUma experiência de formação de professores no uso
Uma experiência de formação de professores no usoCaroline Raquel Rodrigues
 
Intertextualidade e Ready Made na propaganda
Intertextualidade e Ready Made na propagandaIntertextualidade e Ready Made na propaganda
Intertextualidade e Ready Made na propagandaTiago Santana
 
Conceitos básicos de usabilidade e acessibilidade
Conceitos básicos de usabilidade e acessibilidadeConceitos básicos de usabilidade e acessibilidade
Conceitos básicos de usabilidade e acessibilidadeNécio de Lima Veras
 
Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013
Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013
Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013Start Link
 
21 rafael santos 22_rafael pereira_8ºb virus e antivirus
21 rafael santos 22_rafael pereira_8ºb virus e antivirus21 rafael santos 22_rafael pereira_8ºb virus e antivirus
21 rafael santos 22_rafael pereira_8ºb virus e antivirusbombasticopt
 
Seminários G9 - Antivirus
Seminários G9 - AntivirusSeminários G9 - Antivirus
Seminários G9 - AntivirusAnderson Andrade
 
2ª Unidade Antivirus
2ª Unidade Antivirus2ª Unidade Antivirus
2ª Unidade AntivirusCleiton Cunha
 

Destaque (20)

Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Design Gráfico - Cores
Design Gráfico - CoresDesign Gráfico - Cores
Design Gráfico - Cores
 
Conceitos e princípios de design
Conceitos e princípios de designConceitos e princípios de design
Conceitos e princípios de design
 
Uma experiência de formação de professores no uso
Uma experiência de formação de professores no usoUma experiência de formação de professores no uso
Uma experiência de formação de professores no uso
 
Storyselling
StorysellingStoryselling
Storyselling
 
Analise sistemas 05
Analise sistemas 05Analise sistemas 05
Analise sistemas 05
 
Analise sistemas 06
Analise sistemas 06Analise sistemas 06
Analise sistemas 06
 
Intertextualidade e Ready Made na propaganda
Intertextualidade e Ready Made na propagandaIntertextualidade e Ready Made na propaganda
Intertextualidade e Ready Made na propaganda
 
Analise sistemas 02
Analise sistemas 02Analise sistemas 02
Analise sistemas 02
 
Conceitos básicos de usabilidade e acessibilidade
Conceitos básicos de usabilidade e acessibilidadeConceitos básicos de usabilidade e acessibilidade
Conceitos básicos de usabilidade e acessibilidade
 
Analise sistemas 03
Analise sistemas 03Analise sistemas 03
Analise sistemas 03
 
Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013
Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013
Apresentação do Kaspersky Antivirus 2013 e Kaspersky Internet Security 2013
 
21 rafael santos 22_rafael pereira_8ºb virus e antivirus
21 rafael santos 22_rafael pereira_8ºb virus e antivirus21 rafael santos 22_rafael pereira_8ºb virus e antivirus
21 rafael santos 22_rafael pereira_8ºb virus e antivirus
 
Virus
VirusVirus
Virus
 
Seminários G9 - Antivirus
Seminários G9 - AntivirusSeminários G9 - Antivirus
Seminários G9 - Antivirus
 
Vírus
VírusVírus
Vírus
 
2ª Unidade Antivirus
2ª Unidade Antivirus2ª Unidade Antivirus
2ª Unidade Antivirus
 
A alegria esta no coração
A alegria esta no coraçãoA alegria esta no coração
A alegria esta no coração
 
Noções de Design Gráfico
Noções de Design GráficoNoções de Design Gráfico
Noções de Design Gráfico
 
Antivírus
AntivírusAntivírus
Antivírus
 

Semelhante a Teste de software

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 testeUniversidade Tiradentes
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de TesteBeatriz Marques
 
Apresentação tcc final
Apresentação tcc finalApresentação tcc final
Apresentação tcc finalJhool Flores
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreCloves da Rocha
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009Ramon Durães
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementRamon Durães
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfRonaldAlves15
 
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 SoftwareCloves da Rocha
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 

Semelhante a Teste de software (20)

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
 
Teste Driven Development
Teste Driven DevelopmentTeste Driven Development
Teste Driven Development
 
Ferramentas Case de Teste
Ferramentas Case de TesteFerramentas Case de Teste
Ferramentas Case de Teste
 
Apresentação tcc final
Apresentação tcc finalApresentação tcc final
Apresentação tcc final
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Agile mobile testing
Agile mobile testingAgile mobile testing
Agile mobile testing
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
 
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
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 

Mais de Nécio de Lima Veras

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Nécio de Lima Veras
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoNécio de Lima Veras
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNécio de Lima Veras
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsNécio de Lima Veras
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesNécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionaisNécio de Lima Veras
 
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...Nécio de Lima Veras
 

Mais de Nécio de Lima Veras (20)

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Agentes inteligentes com jason
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java swing
Java swingJava swing
Java swing
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionais
 
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
Organizando um Repositório de Objetos de Aprendizagem para dispositivos móvei...
 

Teste de software

  • 1. Prof. Nécio de Lima Veras http://lattes.cnpq.br/8284657916723590 Testes de software Nécio de Lima Veras necio.veras@ifce.edu.br
  • 3. “A grande maioria das pessoas já teve alguma experiência com um software que não funcionou como esperado. Softwares que não funcionam corretamente podem levar a muitos problemas, incluindo financeiro, tempo e reputação das empresas. Podendo, inclusive, chegar a influenciar na integridade das pessoas” [ISTQB 2011]. TestesTestes
  • 4.  Podemos associar a qualidade de um software à quantidade de falhas percebidas no mesmo  O teste de software ajuda a medir e/ou garantir essa qualidade  Níveis de Teste  Unidade (componente)  Integração (interface entre componentes)  Sistema (comportamento)  Aceitação (apropriado para uso) TestesTestes
  • 5.  Modos de Testar  Manual  Ex.: Inspeção manual de Código  Automático  Ex.: Asserção com JUnit  No contexto de testes automáticos se sobressaem duas abordagens:  TDD (Testing-Driven Development) ou Desenvolvimento dirigido por testes  BDD (Behavior-Driven Design) ou Projeto guiado por comportamento TestesTestes
  • 6.  TDD se apoia nos passos:  Escreva o teste, para a funcionalidade, antes de estar implementada (os testes irão falhar)  Escreva o código de modo a fazer os teste passar  Refatore o código  Repita o processo  Um exemplo de TDD  Testar um método que recebe como parâmetro dois números retorna a sua soma TestesTestes
  • 9.  1 – Método retorna inicialmente zero (ainda não escrevemos o teste) Step by stepStep by step
  • 10. Step by StepStep by Step  2– Escrevemos o teste
  • 11. Step by StepStep by Step  3 – Rodamos o Teste (vermelho, pois a funcionalidade ainda não está implementada)
  • 12. Step by StepStep by Step  4 – Implementamos o código
  • 13. Step by StepStep by Step  5 – Rodamos os testes (agora verdes)
  • 14. Step by StepStep by Step  6 – Refatoramos o código e rodamos os testes (devem continuar verdes)
  • 15. Testes (comportamentais)Testes (comportamentais)  Sobre BDD podemos fazer as seguintes considerações [Fox e Patterson 2012]:  BDD faz perguntas sobre comportamentos antes e durante o desenvolvimento, visando reduzir falhas na comunicação dentro do projeto.  Requisitos são escritos como histórias de usuários. São criadas descrições simples de como a aplicação deve ser utilizada.  BDD se concentra no comportamento da aplicação versus a implementação da aplicação e os testes são conduzidos utilizando TDD.
  • 16. Fluxo padrão do BDDFluxo padrão do BDD
  • 17. Fluxo padrão do BDDFluxo padrão do BDD
  • 18. Fluxo padrão do BDDFluxo padrão do BDD
  • 19. Fluxo padrão do BDDFluxo padrão do BDD
  • 20. ExemploExemplo  Uma narrativa simples: uma confirmação de inscrição para um evento (ENUCOMP) faz o participante concorrer a um sorteio.
  • 21. Classe que mapeia a históriaClasse que mapeia a história
  • 22. Classe que testa tudoClasse que testa tudo
  • 24. Exercícios (TDD)Exercícios (TDD) ● Use o TDD em Java com Junit para criar testes unitários automatizados de uma classe chamada Carro com as seguintes funcionalidades: – Ligar / Desligar o motor; – Aceleração de velocidade; – Frenagem; – Buzina (método deve retornar uma String); – Consumo de combustível.
  • 25. ReferênciasReferências ● ISTQB. (2011). Certified Tester Foundation Level Syllabus, version 2011. ● MAGALHÃES, R. et al. Fundamentos de Engenharia de Software para o Desenvolvimento de Software como Serviço através do uso de Metodologias Ágeis. In Anais da Jornada de Informática do Maranhão e Escola Regional de Computação dos Estados do Ceará, Maranhão e Piauí. São Luís-MA, 2012.