SlideShare uma empresa Scribd logo
1 de 13
Engenharia de Software I
Teste de software
Claudio & Iuri
Basicamente podemos dizer que o teste de software segue um roteiro de
passos a serem executados, porém antigamente quando não eram realizados
testes confiávamos somente em um bom projeto e na inteligência do
programador.
De modo geral o teste de software é individualista, pois é traçado uma rotina
de testes conforme a descrição do software que está sendo criado.
Desta maneira temos testes que ocorrem já durante a construção do projeto,
seguindo a complexidade e crescimento do sistema, iniciando pelo menor
contexto.
Teste de software
O que é?
Teste de software
Verificação e validação
Podemos dividir o teste de software em duas situações:
Verificação - Refere-se ao conjunto de tarefas que garantem que o software
implementa corretamente a função específica.
Estamos criando o produto corretamente?
Validação - Refere-se a um conjunto de tarefas que asseguram que o
software foi criado e pode ser rastreado segundo os requisitos do cliente
Estamos criando o produto certo?
Resumidamente a V&V garantem a qualidade do software, revisões
técnicas, auditorias de qualidade e configuração, monitoramento de desempenho,
simulação, estudo de viabilidade, revisão de documentação, revisão de base de
dados, análise de algoritmo, teste de desenvolvimento, teste de usabilidade, teste
de qualificação, teste de aceitação e teste de instalação, além de outras
atividades desenvolvidas são para garantir a qualidade do software.
Teste de software
Verificação e validação
Primeiramente os testes de software são organizados em etapas e pessoas,
temos logo em mente que o criador da arte não quer demonstrar os fracassos
dela, mas é necessário que eles apareçam caso contrário o cliente descobrirá.
Desta forma o programador realiza os testes das unidades individuais
(componentes) do programa, e em alguns casos o de integração.
Logo temos a participação do ITG (independent test group), responsável pela
realização de testes do software juntamente com seus criadores, desta forma
temos o ITG trabalhando lado a lado com os desenvolvedores, que por sua vez
realizam a manutenção imediata de códigos.
Teste de software
Organizando o teste
Teste de Unidade: focaliza o esforço de verificação na menor unidade de projeto do
software, o componente ou módulo de software. Usando como guia a descrição de projeto no nível de
componente, caminhos de controle importantes são testados para descobrir erros dentro dos limites do
módulo. Esse teste enfoca a lógica interna de processamento e as estruturas de dados dentro dos
limites de um componente.
A interface do módulo é testada para assegurar que as informações fluam corretamente para
dentro e para fora da unidade que está sendo testada. A estrutura de dado local é examinada para
garantir que os dados armazenados mantenham sua integridade durante todos os passos na execução
de um algoritmo. Todos os caminhos independentes da estrutura de controle são usados para assegurar
que todas as instruções em um módulo tenham sido executadas pelo menos uma vez. As condições
limite são testadas para garantir que o módulo opere adequadamente nas fronteiras estabelecidas para
limitar ou restringir o processamento.
Teste de software
Tipos de testes
Teste de software
Tipos de testes
Teste de Integração: é uma técnica sistemática para construir a arquitetura
de software ao mesmo tempo que conduz testes para descobrir erros associados
com as interfaces. O objetivo é construir uma estrutura de programa determinada
pelo projeto a partir de componentes testados em unidade.
Teste de software
Tipos de testes
Integração não-incremental (big bang): todos os componentes são
combinados com antecedência. O programa inteiro é testado como um todo. Mas
neste caso são encontrados muitos erros, a correção fica difícil porque o
isolamento das causas é complicado, e uma vez corrigidos novos erros
aparecem.
Integração incremental: o programa é construído e testado em pequenos
incrementos, em que os erros são mais fáceis de isolar e corrigir. As interfaces
têm maior probabilidade de ser testadas completamente, e uma abordagem
sistemática pode ser aplicada.
Aqui citamos outros tipos de testes ainda relacionados a teste do tipo
integração:
● Integração descendente
● Integração ascendente
● Teste de regressão
● Teste de fumaça
Teste de software
Tipos de testes
Teste de software
Tipos de testes
Teste de Sistema: teste de sistema é uma série de diferentes testes cuja
finalidade é exercitar totalmente o sistema.
Embora cada um dos testes tenha uma finalidade diferente, todos
funcionam no sentido de verificar se os elementos do sistema foram integrados
adequadamente e executam as funções a eles alocadas.
Teste de software
Tipos de testes
Alguns testes que são vantajosos para o sistema de software:
Teste de recuperação: é um teste do sistema que força o software a falhar de
várias formas e verifica se a recuperação é executada corretamente.
Teste de segurança: tenta verificar se os mecanismos de proteção
incorporados ao sistema vão de fato protegê-lo contra acesso indevido.
Teste por esforço: usa o sistema de maneira que demande recurso em
quantidade, frequência ou volumes anormais.
Teste de software
Tipos de testes
Teste de desempenho: é projetado para testar o desempenho em tempo de
execução do software dentro do contexto de um sistema integrado.
Teste de disponibilização: exercita o software em cada ambiente no qual ele
deve operar. Além disso, examina todos os procedimentos de instalação e
software especializado de instalação que serão usados pelos clientes e toda a
documentação que será usada para fornecer o software para os usuários finais.
Presman, Roger S. Engenharia de Software, Uma Abordagem Profissional, 7ª
edição, 2011
Teste de software
Referências

Mais conteúdo relacionado

Mais procurados

Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryDo push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryCamilo Ribeiro
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 
Introdução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e DocumentaçãoIntrodução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e DocumentaçãoGTS-CE
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumIsrael Santiago
 
#1 - O que é Teste Unitário
#1 - O que é Teste Unitário#1 - O que é Teste Unitário
#1 - O que é Teste UnitárioMaycon Pires
 
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 PHPMarcelo Rodrigues
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeRafaela Prado
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Danilo Pinotti
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjugBruno Maomeh
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com seleniumMayron Cachina
 
Testando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumTestando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumVictor Serta
 

Mais procurados (20)

Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryDo push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
QA Ninja Conference 2016
QA Ninja Conference 2016QA Ninja Conference 2016
QA Ninja Conference 2016
 
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!
 
Testes de Regressão
Testes de RegressãoTestes de Regressão
Testes de Regressão
 
Introdução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e DocumentaçãoIntrodução as Técnicas de Testes e Documentação
Introdução as Técnicas de Testes e Documentação
 
Automação de Testes
Automação de TestesAutomação de Testes
Automação de Testes
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Qualidade
QualidadeQualidade
Qualidade
 
#1 - O que é Teste Unitário
#1 - O que é Teste Unitário#1 - O que é Teste Unitário
#1 - O que é Teste Unitário
 
Teste Regressão
Teste RegressãoTeste Regressão
Teste Regressão
 
Julho 2016 - Microsoft Test Manager
Julho 2016 - Microsoft Test ManagerJulho 2016 - Microsoft Test Manager
Julho 2016 - Microsoft Test Manager
 
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
 
Guday2015 - GUTS-RS
Guday2015 - GUTS-RSGuday2015 - GUTS-RS
Guday2015 - GUTS-RS
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjug
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
 
Testando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumTestando aplicações Flex com Selenium
Testando aplicações Flex com Selenium
 

Semelhante a Teste de software

Verificação, validação e teste de software ágil
Verificação, validação e teste de software ágilVerificação, validação e teste de software ágil
Verificação, validação e teste de software ágilGilberto Gampert
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKMário Pravato Junior
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geralpaulo peres
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
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 IJoão Lourenço
 
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
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtareFernando Palma
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
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
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 

Semelhante a Teste de software (20)

SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Verificação, validação e teste de software ágil
Verificação, validação e teste de software ágilVerificação, validação e teste de software ágil
Verificação, validação e teste de software ágil
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 
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 é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
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
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Slid qualidade de_software
Slid qualidade de_softwareSlid qualidade de_software
Slid qualidade de_software
 
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
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 

Mais de Claudio Eckert

Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosClaudio Eckert
 
Redes de alta velocidade dwdm
Redes de alta velocidade dwdmRedes de alta velocidade dwdm
Redes de alta velocidade dwdmClaudio Eckert
 
ULA Unidade Lógica Aritmética
ULA Unidade Lógica AritméticaULA Unidade Lógica Aritmética
ULA Unidade Lógica AritméticaClaudio Eckert
 
Roteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SARoteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SAClaudio Eckert
 

Mais de Claudio Eckert (10)

Itil e cobit
Itil e cobitItil e cobit
Itil e cobit
 
DDR5
DDR5DDR5
DDR5
 
Escalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizadosEscalonamento de processos em sistemas virtualizados
Escalonamento de processos em sistemas virtualizados
 
Redes de alta velocidade dwdm
Redes de alta velocidade dwdmRedes de alta velocidade dwdm
Redes de alta velocidade dwdm
 
Trabalho flip flop
Trabalho flip flopTrabalho flip flop
Trabalho flip flop
 
ULA Unidade Lógica Aritmética
ULA Unidade Lógica AritméticaULA Unidade Lógica Aritmética
ULA Unidade Lógica Aritmética
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
Roteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SARoteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SA
 
MPS.BR
MPS.BRMPS.BR
MPS.BR
 

Teste de software

  • 1. Engenharia de Software I Teste de software Claudio & Iuri
  • 2. Basicamente podemos dizer que o teste de software segue um roteiro de passos a serem executados, porém antigamente quando não eram realizados testes confiávamos somente em um bom projeto e na inteligência do programador. De modo geral o teste de software é individualista, pois é traçado uma rotina de testes conforme a descrição do software que está sendo criado. Desta maneira temos testes que ocorrem já durante a construção do projeto, seguindo a complexidade e crescimento do sistema, iniciando pelo menor contexto. Teste de software O que é?
  • 3. Teste de software Verificação e validação Podemos dividir o teste de software em duas situações: Verificação - Refere-se ao conjunto de tarefas que garantem que o software implementa corretamente a função específica. Estamos criando o produto corretamente? Validação - Refere-se a um conjunto de tarefas que asseguram que o software foi criado e pode ser rastreado segundo os requisitos do cliente Estamos criando o produto certo?
  • 4. Resumidamente a V&V garantem a qualidade do software, revisões técnicas, auditorias de qualidade e configuração, monitoramento de desempenho, simulação, estudo de viabilidade, revisão de documentação, revisão de base de dados, análise de algoritmo, teste de desenvolvimento, teste de usabilidade, teste de qualificação, teste de aceitação e teste de instalação, além de outras atividades desenvolvidas são para garantir a qualidade do software. Teste de software Verificação e validação
  • 5. Primeiramente os testes de software são organizados em etapas e pessoas, temos logo em mente que o criador da arte não quer demonstrar os fracassos dela, mas é necessário que eles apareçam caso contrário o cliente descobrirá. Desta forma o programador realiza os testes das unidades individuais (componentes) do programa, e em alguns casos o de integração. Logo temos a participação do ITG (independent test group), responsável pela realização de testes do software juntamente com seus criadores, desta forma temos o ITG trabalhando lado a lado com os desenvolvedores, que por sua vez realizam a manutenção imediata de códigos. Teste de software Organizando o teste
  • 6. Teste de Unidade: focaliza o esforço de verificação na menor unidade de projeto do software, o componente ou módulo de software. Usando como guia a descrição de projeto no nível de componente, caminhos de controle importantes são testados para descobrir erros dentro dos limites do módulo. Esse teste enfoca a lógica interna de processamento e as estruturas de dados dentro dos limites de um componente. A interface do módulo é testada para assegurar que as informações fluam corretamente para dentro e para fora da unidade que está sendo testada. A estrutura de dado local é examinada para garantir que os dados armazenados mantenham sua integridade durante todos os passos na execução de um algoritmo. Todos os caminhos independentes da estrutura de controle são usados para assegurar que todas as instruções em um módulo tenham sido executadas pelo menos uma vez. As condições limite são testadas para garantir que o módulo opere adequadamente nas fronteiras estabelecidas para limitar ou restringir o processamento. Teste de software Tipos de testes
  • 7. Teste de software Tipos de testes Teste de Integração: é uma técnica sistemática para construir a arquitetura de software ao mesmo tempo que conduz testes para descobrir erros associados com as interfaces. O objetivo é construir uma estrutura de programa determinada pelo projeto a partir de componentes testados em unidade.
  • 8. Teste de software Tipos de testes Integração não-incremental (big bang): todos os componentes são combinados com antecedência. O programa inteiro é testado como um todo. Mas neste caso são encontrados muitos erros, a correção fica difícil porque o isolamento das causas é complicado, e uma vez corrigidos novos erros aparecem. Integração incremental: o programa é construído e testado em pequenos incrementos, em que os erros são mais fáceis de isolar e corrigir. As interfaces têm maior probabilidade de ser testadas completamente, e uma abordagem sistemática pode ser aplicada.
  • 9. Aqui citamos outros tipos de testes ainda relacionados a teste do tipo integração: ● Integração descendente ● Integração ascendente ● Teste de regressão ● Teste de fumaça Teste de software Tipos de testes
  • 10. Teste de software Tipos de testes Teste de Sistema: teste de sistema é uma série de diferentes testes cuja finalidade é exercitar totalmente o sistema. Embora cada um dos testes tenha uma finalidade diferente, todos funcionam no sentido de verificar se os elementos do sistema foram integrados adequadamente e executam as funções a eles alocadas.
  • 11. Teste de software Tipos de testes Alguns testes que são vantajosos para o sistema de software: Teste de recuperação: é um teste do sistema que força o software a falhar de várias formas e verifica se a recuperação é executada corretamente. Teste de segurança: tenta verificar se os mecanismos de proteção incorporados ao sistema vão de fato protegê-lo contra acesso indevido. Teste por esforço: usa o sistema de maneira que demande recurso em quantidade, frequência ou volumes anormais.
  • 12. Teste de software Tipos de testes Teste de desempenho: é projetado para testar o desempenho em tempo de execução do software dentro do contexto de um sistema integrado. Teste de disponibilização: exercita o software em cada ambiente no qual ele deve operar. Além disso, examina todos os procedimentos de instalação e software especializado de instalação que serão usados pelos clientes e toda a documentação que será usada para fornecer o software para os usuários finais.
  • 13. Presman, Roger S. Engenharia de Software, Uma Abordagem Profissional, 7ª edição, 2011 Teste de software Referências