SlideShare uma empresa Scribd logo
1 de 31
ENGENHARIA DE
SOFTWARE
TESTE DE SOFTWARE
André Neri
Jander Cerqueira
Agenda
• Introdução
• Fases Fundamentais e Metas dos Testes de Software
• Tipos de Testes
• Projeto de Casos de Testes
2
Através deste vídeo iremos mostrar a necessidade do processo de teste de software
nos projetos de desenvolvimento de softwares, vamos demostrar as técnicas, tipos,
fases, ferramentas, modelos e normas envolvidas na execução dos testes de software
com o intuito de obter um ótimo nível de qualidade dos softwares gerados.
3
No decorrer do desenvolvimento de um sistema existe uma grande
possibilidade de erros principalmente de falha humana, a fim de detectar e
corrigir esses erros utilizamos os testes, que segundo Pfleeger.. “Teste têm
como foco a detecção de defeitos, e existem muitos meios de tornar mais
eficientes e efetivos os esforços a eles relacionados”.
4
Nos projetos de desenvolvimento de software os testes estão diretamente
relacionados com a qualidade como é citado por Pressman. “A atividade de
teste de software é um elemento crítico da garantia de qualidade de software
e representa a ultima revisão de especificação, projeto e codificação.”
5
Na maioria dos casos os testes de software custa cerca de 40% dos
recursos total do projeto, mas quando se trata de sistemas críticos (por
exemplo, controle de voo, monitoração de reatores nucleares) o custo pode
chegar a cinco vezes mais do que as outras etapas do projeto. Porem nem
todas as empresas dedicam-se a essa etapa adequadamente alegando prazo
curto, custo elevado, falta de profissionais adequados, complexidade do software
e até mesmo a falta de conhecimento dos benefícios dos testes de software.
6
7
Fases Fundamentais e Metas
dos Testes de Software.
Os sistemas são divididos em duas fases de testes, os testes de
componentes, onde são testados em partes e teste de sistema quando o
sistema é completamente testado. O alvo dos testes de componentes é através
dos componentes individuais (funções, objetos ou componentes reusáveis) do
programa localizar defeitos. Já o objetivo do teste de sistema é integrar os
componentes, formando o sistema completo assim verifica se o sistema atende
os requisitos funcionais e não funcionais e se comporta de maneira esperada,
e se alguma imperfeição passar pelo teste de componente poderá ser corrigido
pelo teste de sistema.
8
Os testes de software visam duas metas, a primeira meta é demonstrar ao
desenvolvedor e ao cliente que o software atende aos requisitos demostrando
pelo menos um teste por requisito que esteja na documentação, através de um
conjunto de teste é esperado que o programa seja executado como o
esperado sem nenhum tipo de erro.
9
A outra meta é descobrir falhas ou defeitos no software que apresenta
comportamento incorreto, não desejável ou em não conformidade com sua
especificação onde são removidos os travamentos, interações indesejáveis e
dados corrompidos, essa meta usa o teste de defeitos utilizando casos de
testes para mostrar defeitos. Desta forma a principal meta dos testes de
software é provar para os desenvolvedores e clientes que o programa está
apto para ser utilizado.
10
Tipos de Testes
Como observamos anteriormente os testes são divididos em testes de
componentes e teste de sistemas esses testes contem subdivisões que facilita o
teste em cada etapa do projeto. Vamos iniciar falando sobre as fases do teste
de sistema que possui teste de integração, teste de releases e teste de
desempenho. Depois vamos para as fases dos testes de componentes que
abrange teste de interface.
11
Teste de Integração
Esse teste está ligado à descoberta de defeitos do sistema onde é acessado o
código fonte do sistema e todo problema. encontrado tenta-se localizar a
origem, e identificar os componentes afetados. O teste de integração, verifica se
efetivamente os componentes funcionam, em conjunto, se são chamados
corretamente. e se trocam dados no tempo certo.
12
Teste de Integração
A estratégia de integração top-down, é a criação do esqueleto do sistema, e
depois a adição dos componentes a ele, já a integração bottom-up é a
integração de componentes de infra-estrutura que forneça serviços comuns (ex.:
acesso a rede e ao banco de dados) e depois adicionar os componentes
funcionais. A estratégia mais utilizada é a combinação dessas duas estratégias
anteriores com os componentes de infra-estrutura e funcionais adicionados em
incrementos.
13
Teste de Integração
O principal problema no teste de integração é localização dos erros para facilitar a
descoberta de erros é usada a abordagem incremental para integração e teste do
sistema. Primeiramente tem que integrar uma configuração mínima do sistema e
testar, depois vai adicionando componentes e executando novos testes como é
mostrado na figura acima onde A, B, C e D são componentes e T1, T2, T3, T4 e T5
são os testes.
14
Teste de Releases
Com o propósito de mostrar que o programa atende aos requisitos, o teste de
releases também conhecido como teste de caixa-preta e teste funcional tem o foco na
funcionalidade e não na implementação. Procura encontrar erros nas funções
incorretas ou ausentes, erros de interface, erros nas estruturas de dados, erros de
desempenho e erros de inicialização e finalização.
15
Teste de Releases
O método particionamento de equivalência é utilizado para definir um caso de teste
que encontre classes de erros, para reduzir o numero de casos de teste. Avaliando as
condições de entrada através de um conjunto de estados válido ou inválido conhecido
como classe de equivalência.
16
Teste de Releases
Na imagem a acima ilustra o modelo de teste caixa-preta onde são fornecidas as
entradas para o componente ou sistema e são examinadas as saídas; caso a saída
não for a prevista (Oe) o teste detectou um erro. O intuito é fornecer entradas com alto
índice de falha (Ie) como forçar resultados de cálculos muito grandes ou muito
pequenos, forçar geração de saídas invalidas, repetir a mesma entrada e forçar
entradas que causam overflow dos buffers.
17
Teste de Desempenho
Depois que todos os requisitos funcionais foram testados e todas as funções exigidas
estão funcionando é chegado à hora de começar a fazer os testes não funcionais e
um dos pontos que são bastante exigidos é o desempenho. O teste de desempenho
tem um conjunto de outros testes envolvidos como: testes de estresse, testes de
volume, testes de tempo, testes de ambiente, testes de qualidade, testes de
recuperação e testes de manutenção. 18
Teste de Estresse
Porem o teste de estresse é o mais utilizado, na maioria dos casos os sistemas são
projetados para atender um numero especifico de usuários ou transações o teste de
estresse testa o programa além da carga máxima até que ele falhe, o objetivo desse
teste é verificar qual será o impacto do sistema caso aconteça de ultrapassar o limite
projetado e verificar se vai haver surgimento de novos defeitos depois do limite
atingido. 19
Teste de Interface
Os erros de interfaces dos componentes compostos não podem ser identificados
através de testes de objetos ou componentes individuais sendo encontrado apenas na
interação entre as suas partes.
A figura mostra o processo de teste de interface dando uma visão que o teste
não é realizado nos componentes individuais e sim na interface do componente
composto.
20
Projeto de Casos de Testes.
Projeto de casos de teste é o conjunto de entradas e saídas esperadas, que sejam
utilizados tanto nos testes de sistemas como de componentes. Para realizar o projeto
de casos de teste é escolhida uma característica do sistema que será testado, então
ocorre uma seleção das entradas que vai ser executada no teste, depois verifica se as
saídas correspondem com o esperado. Podemos utilizar basicamente três tipos de
abordagens na elaboração do projeto de casos de testes que são: teste baseado em
requisitos, teste de partições, teste estrutural e o teste de caminho que é uma
estratégia de teste estrutural. 21
Teste Baseado em Requisitos.
Na etapa de requisitos do sistema tem que ser definido que os requisitos devem ser
testáveis, ou seja, os requisitos devem ser escritos com o intuito de ser testados
futuramente para verificar se os requisitos foram atendidos como o solicitado. Portanto
teste baseado em requisitos é o conjunto de teste elaborado para cada requisito
registrado na fase de levantamento, essa técnica é essencial para verificar requisitos
vagos ou ausentes.
22
Teste Baseado em Requisitos.
O teste baseado em requisitos é um teste de validação isto é ele demonstra que o
sistema tem seus requisitos adequadamente implementados.
23
Teste Baseado em Requisitos.
Iremos ver um exemplo prático onde é listado um requisito de um sistema e seus
possíveis testes
24
Teste Baseado em Requisitos.
R1 - O usuário será capaz de procurar todo o conjunto inicial do banco de
dados ou selecionar um subconjunto dele.
Os possíveis testes para esse requisito são:
•Iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas,
quando o conjunto de bancos de dados incluírem um ou mais banco de dados.
•Selecionar mais de um banco de dados de um conjunto de banco de dados e iniciar
as buscas pelos itens cuja presença ou ausência são conhecidas. 25
Teste Baseado em Requisitos.
Concluímos que para cada requisito podem ser feitos vários testes para assegurar que
o requisito foi devidamente concluído.
26
Teste de Partições.
O teste de partições visa identificar todas as partições do sistema ou componentes, e
que as entradas e saídas de casos de testes sejam alocadas dentro dessas partições.
As identificações de partições são feitas por meio de especificações na documentação
ou através da experiência dos projetistas que prevê classes que podem conter valores
de entradas com grande probabilidade de erros.
27
Teste Estrutural.
Também conhecido como teste de caixa-branca, o teste estrutural é uma abordagem
onde os testes são derivados do conhecimento da estrutura e da implementação do
software. Avalia o comportamento interno do componente de software, essa técnica
trabalha diretamente sobre o código fonte do componente de software para avaliar
aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos, teste
de caminhos lógicos e códigos nunca executados. O testador tem acesso ao código
fonte da aplicação e pode construir códigos para efetuar a ligação de bibliotecas e
componentes, esta é uma técnica de teste geralmente realizada pelos
desenvolvedores que trabalha diretamente com o código-fonte do sistema.
28
Teste de Caminho.
O teste de caminho tem o objetivo de percorrer cada componente ou o sistema por
completo testando as condições tanto verdadeiras como falsas. O numero de
caminhos é relativamente proporcional ao tamanho do sistema, logo é mais viável a
utilização do teste de caminho na etapa de teste de componentes. O teste faz com
que pelo menos uma vez cada caminho seja executado.
29
Considerações Finais.
Concluímos que o processo de teste de
software faz com que a qualidade, a
credibilidade, a confiança e a competitividade
do software cresçam. Aprendemos também que
os testes estão subdivididos e que a depender
da necessidade podemos utilizar, a combinação
de dois ou mais testes. E que devemos planejar
e deixar uma boa quantidade recursos para
essa etapa do projeto, que em alguns casos
chega ser a etapa mais importante do projeto de
desenvolvimento de um sistema.
30
Referências
SOMMERVILLE, I.; Engenharia de Software. 8ª ed. São Paulo:
Pearson Addison-Wesley, 2007.
PFLEEGER, S. L.; Engenharia de Software: Teoria e Prática. 2ª
ed. São Paulo: Prentice Hall, 2004.
PRESSMAN, R. I.; Engenharia de Software. São Paulo: Pearson
Makron Books, 1995.
31

Mais conteúdo relacionado

Mais procurados

Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
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
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasAlex Camargo
 
Qualidade de software - Gestão de Projetos de Software - BSI
Qualidade de software - Gestão de Projetos de Software - BSIQualidade de software - Gestão de Projetos de Software - BSI
Qualidade de software - Gestão de Projetos de Software - BSIMonnalisa Medeiros
 

Mais procurados (20)

Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
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
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Qualidade de software - Gestão de Projetos de Software - BSI
Qualidade de software - Gestão de Projetos de Software - BSIQualidade de software - Gestão de Projetos de Software - BSI
Qualidade de software - Gestão de Projetos de Software - BSI
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 

Destaque

Garantia da Qualidade Mínima
Garantia da Qualidade MínimaGarantia da Qualidade Mínima
Garantia da Qualidade MínimaJoão Júnior
 
Introducao a automação de testes de softwares
Introducao a automação de testes de softwaresIntroducao a automação de testes de softwares
Introducao a automação de testes de softwaresIntellecta
 
Introducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntroducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntellecta
 
2° Workshop de Testes em Uberlândia - Treinamento em testes de software
2° Workshop de Testes em Uberlândia - Treinamento em testes de software2° Workshop de Testes em Uberlândia - Treinamento em testes de software
2° Workshop de Testes em Uberlândia - Treinamento em testes de softwareJoão Júnior
 
Introdução a testes de software
Introdução a testes de softwareIntrodução a testes de software
Introdução a testes de softwareLeonardo Soares
 
Process, design, implementation and evaluation of a mobile collaboration layer
Process, design, implementation and evaluation of a mobile collaboration layerProcess, design, implementation and evaluation of a mobile collaboration layer
Process, design, implementation and evaluation of a mobile collaboration layerMauro Pichiliani
 
Automacao de Testes de Softwares
Automacao de Testes de SoftwaresAutomacao de Testes de Softwares
Automacao de Testes de SoftwaresEduardo Souza
 
Como fazer testes de usabilidade
Como fazer testes de usabilidadeComo fazer testes de usabilidade
Como fazer testes de usabilidadeUTFPR
 

Destaque (8)

Garantia da Qualidade Mínima
Garantia da Qualidade MínimaGarantia da Qualidade Mínima
Garantia da Qualidade Mínima
 
Introducao a automação de testes de softwares
Introducao a automação de testes de softwaresIntroducao a automação de testes de softwares
Introducao a automação de testes de softwares
 
Introducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntroducao a analise de testes de softwares
Introducao a analise de testes de softwares
 
2° Workshop de Testes em Uberlândia - Treinamento em testes de software
2° Workshop de Testes em Uberlândia - Treinamento em testes de software2° Workshop de Testes em Uberlândia - Treinamento em testes de software
2° Workshop de Testes em Uberlândia - Treinamento em testes de software
 
Introdução a testes de software
Introdução a testes de softwareIntrodução a testes de software
Introdução a testes de software
 
Process, design, implementation and evaluation of a mobile collaboration layer
Process, design, implementation and evaluation of a mobile collaboration layerProcess, design, implementation and evaluation of a mobile collaboration layer
Process, design, implementation and evaluation of a mobile collaboration layer
 
Automacao de Testes de Softwares
Automacao de Testes de SoftwaresAutomacao de Testes de Softwares
Automacao de Testes de Softwares
 
Como fazer testes de usabilidade
Como fazer testes de usabilidadeComo fazer testes de usabilidade
Como fazer testes de usabilidade
 

Semelhante a Testes 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 software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 
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 ZaninDevInPF
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
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...Rodrigo Oliveira, Msc, PMP
 
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
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Stanley Araújo
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
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
 

Semelhante a Testes de Software (20)

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
Eng de testesEng de testes
Eng de testes
 
Teste de software
Teste de softwareTeste de software
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 ágil
 
Slid qualidade de_software
Slid qualidade de_softwareSlid qualidade de_software
Slid qualidade de_software
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
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 Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
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...
 
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
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
 
Será que testar é simples?
Será que testar é simples?Será que testar é simples?
Será que testar é simples?
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Teste de software
Teste de softwareTeste de software
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
 

Último

Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfInocencioHoracio3
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASMarcio Venturelli
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAMarcio Venturelli
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx2m Assessoria
 

Último (8)

Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 

Testes de Software

  • 1. ENGENHARIA DE SOFTWARE TESTE DE SOFTWARE André Neri Jander Cerqueira
  • 2. Agenda • Introdução • Fases Fundamentais e Metas dos Testes de Software • Tipos de Testes • Projeto de Casos de Testes 2
  • 3. Através deste vídeo iremos mostrar a necessidade do processo de teste de software nos projetos de desenvolvimento de softwares, vamos demostrar as técnicas, tipos, fases, ferramentas, modelos e normas envolvidas na execução dos testes de software com o intuito de obter um ótimo nível de qualidade dos softwares gerados. 3
  • 4. No decorrer do desenvolvimento de um sistema existe uma grande possibilidade de erros principalmente de falha humana, a fim de detectar e corrigir esses erros utilizamos os testes, que segundo Pfleeger.. “Teste têm como foco a detecção de defeitos, e existem muitos meios de tornar mais eficientes e efetivos os esforços a eles relacionados”. 4
  • 5. Nos projetos de desenvolvimento de software os testes estão diretamente relacionados com a qualidade como é citado por Pressman. “A atividade de teste de software é um elemento crítico da garantia de qualidade de software e representa a ultima revisão de especificação, projeto e codificação.” 5
  • 6. Na maioria dos casos os testes de software custa cerca de 40% dos recursos total do projeto, mas quando se trata de sistemas críticos (por exemplo, controle de voo, monitoração de reatores nucleares) o custo pode chegar a cinco vezes mais do que as outras etapas do projeto. Porem nem todas as empresas dedicam-se a essa etapa adequadamente alegando prazo curto, custo elevado, falta de profissionais adequados, complexidade do software e até mesmo a falta de conhecimento dos benefícios dos testes de software. 6
  • 7. 7 Fases Fundamentais e Metas dos Testes de Software.
  • 8. Os sistemas são divididos em duas fases de testes, os testes de componentes, onde são testados em partes e teste de sistema quando o sistema é completamente testado. O alvo dos testes de componentes é através dos componentes individuais (funções, objetos ou componentes reusáveis) do programa localizar defeitos. Já o objetivo do teste de sistema é integrar os componentes, formando o sistema completo assim verifica se o sistema atende os requisitos funcionais e não funcionais e se comporta de maneira esperada, e se alguma imperfeição passar pelo teste de componente poderá ser corrigido pelo teste de sistema. 8
  • 9. Os testes de software visam duas metas, a primeira meta é demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos demostrando pelo menos um teste por requisito que esteja na documentação, através de um conjunto de teste é esperado que o programa seja executado como o esperado sem nenhum tipo de erro. 9
  • 10. A outra meta é descobrir falhas ou defeitos no software que apresenta comportamento incorreto, não desejável ou em não conformidade com sua especificação onde são removidos os travamentos, interações indesejáveis e dados corrompidos, essa meta usa o teste de defeitos utilizando casos de testes para mostrar defeitos. Desta forma a principal meta dos testes de software é provar para os desenvolvedores e clientes que o programa está apto para ser utilizado. 10
  • 11. Tipos de Testes Como observamos anteriormente os testes são divididos em testes de componentes e teste de sistemas esses testes contem subdivisões que facilita o teste em cada etapa do projeto. Vamos iniciar falando sobre as fases do teste de sistema que possui teste de integração, teste de releases e teste de desempenho. Depois vamos para as fases dos testes de componentes que abrange teste de interface. 11
  • 12. Teste de Integração Esse teste está ligado à descoberta de defeitos do sistema onde é acessado o código fonte do sistema e todo problema. encontrado tenta-se localizar a origem, e identificar os componentes afetados. O teste de integração, verifica se efetivamente os componentes funcionam, em conjunto, se são chamados corretamente. e se trocam dados no tempo certo. 12
  • 13. Teste de Integração A estratégia de integração top-down, é a criação do esqueleto do sistema, e depois a adição dos componentes a ele, já a integração bottom-up é a integração de componentes de infra-estrutura que forneça serviços comuns (ex.: acesso a rede e ao banco de dados) e depois adicionar os componentes funcionais. A estratégia mais utilizada é a combinação dessas duas estratégias anteriores com os componentes de infra-estrutura e funcionais adicionados em incrementos. 13
  • 14. Teste de Integração O principal problema no teste de integração é localização dos erros para facilitar a descoberta de erros é usada a abordagem incremental para integração e teste do sistema. Primeiramente tem que integrar uma configuração mínima do sistema e testar, depois vai adicionando componentes e executando novos testes como é mostrado na figura acima onde A, B, C e D são componentes e T1, T2, T3, T4 e T5 são os testes. 14
  • 15. Teste de Releases Com o propósito de mostrar que o programa atende aos requisitos, o teste de releases também conhecido como teste de caixa-preta e teste funcional tem o foco na funcionalidade e não na implementação. Procura encontrar erros nas funções incorretas ou ausentes, erros de interface, erros nas estruturas de dados, erros de desempenho e erros de inicialização e finalização. 15
  • 16. Teste de Releases O método particionamento de equivalência é utilizado para definir um caso de teste que encontre classes de erros, para reduzir o numero de casos de teste. Avaliando as condições de entrada através de um conjunto de estados válido ou inválido conhecido como classe de equivalência. 16
  • 17. Teste de Releases Na imagem a acima ilustra o modelo de teste caixa-preta onde são fornecidas as entradas para o componente ou sistema e são examinadas as saídas; caso a saída não for a prevista (Oe) o teste detectou um erro. O intuito é fornecer entradas com alto índice de falha (Ie) como forçar resultados de cálculos muito grandes ou muito pequenos, forçar geração de saídas invalidas, repetir a mesma entrada e forçar entradas que causam overflow dos buffers. 17
  • 18. Teste de Desempenho Depois que todos os requisitos funcionais foram testados e todas as funções exigidas estão funcionando é chegado à hora de começar a fazer os testes não funcionais e um dos pontos que são bastante exigidos é o desempenho. O teste de desempenho tem um conjunto de outros testes envolvidos como: testes de estresse, testes de volume, testes de tempo, testes de ambiente, testes de qualidade, testes de recuperação e testes de manutenção. 18
  • 19. Teste de Estresse Porem o teste de estresse é o mais utilizado, na maioria dos casos os sistemas são projetados para atender um numero especifico de usuários ou transações o teste de estresse testa o programa além da carga máxima até que ele falhe, o objetivo desse teste é verificar qual será o impacto do sistema caso aconteça de ultrapassar o limite projetado e verificar se vai haver surgimento de novos defeitos depois do limite atingido. 19
  • 20. Teste de Interface Os erros de interfaces dos componentes compostos não podem ser identificados através de testes de objetos ou componentes individuais sendo encontrado apenas na interação entre as suas partes. A figura mostra o processo de teste de interface dando uma visão que o teste não é realizado nos componentes individuais e sim na interface do componente composto. 20
  • 21. Projeto de Casos de Testes. Projeto de casos de teste é o conjunto de entradas e saídas esperadas, que sejam utilizados tanto nos testes de sistemas como de componentes. Para realizar o projeto de casos de teste é escolhida uma característica do sistema que será testado, então ocorre uma seleção das entradas que vai ser executada no teste, depois verifica se as saídas correspondem com o esperado. Podemos utilizar basicamente três tipos de abordagens na elaboração do projeto de casos de testes que são: teste baseado em requisitos, teste de partições, teste estrutural e o teste de caminho que é uma estratégia de teste estrutural. 21
  • 22. Teste Baseado em Requisitos. Na etapa de requisitos do sistema tem que ser definido que os requisitos devem ser testáveis, ou seja, os requisitos devem ser escritos com o intuito de ser testados futuramente para verificar se os requisitos foram atendidos como o solicitado. Portanto teste baseado em requisitos é o conjunto de teste elaborado para cada requisito registrado na fase de levantamento, essa técnica é essencial para verificar requisitos vagos ou ausentes. 22
  • 23. Teste Baseado em Requisitos. O teste baseado em requisitos é um teste de validação isto é ele demonstra que o sistema tem seus requisitos adequadamente implementados. 23
  • 24. Teste Baseado em Requisitos. Iremos ver um exemplo prático onde é listado um requisito de um sistema e seus possíveis testes 24
  • 25. Teste Baseado em Requisitos. R1 - O usuário será capaz de procurar todo o conjunto inicial do banco de dados ou selecionar um subconjunto dele. Os possíveis testes para esse requisito são: •Iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas, quando o conjunto de bancos de dados incluírem um ou mais banco de dados. •Selecionar mais de um banco de dados de um conjunto de banco de dados e iniciar as buscas pelos itens cuja presença ou ausência são conhecidas. 25
  • 26. Teste Baseado em Requisitos. Concluímos que para cada requisito podem ser feitos vários testes para assegurar que o requisito foi devidamente concluído. 26
  • 27. Teste de Partições. O teste de partições visa identificar todas as partições do sistema ou componentes, e que as entradas e saídas de casos de testes sejam alocadas dentro dessas partições. As identificações de partições são feitas por meio de especificações na documentação ou através da experiência dos projetistas que prevê classes que podem conter valores de entradas com grande probabilidade de erros. 27
  • 28. Teste Estrutural. Também conhecido como teste de caixa-branca, o teste estrutural é uma abordagem onde os testes são derivados do conhecimento da estrutura e da implementação do software. Avalia o comportamento interno do componente de software, essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos, teste de caminhos lógicos e códigos nunca executados. O testador tem acesso ao código fonte da aplicação e pode construir códigos para efetuar a ligação de bibliotecas e componentes, esta é uma técnica de teste geralmente realizada pelos desenvolvedores que trabalha diretamente com o código-fonte do sistema. 28
  • 29. Teste de Caminho. O teste de caminho tem o objetivo de percorrer cada componente ou o sistema por completo testando as condições tanto verdadeiras como falsas. O numero de caminhos é relativamente proporcional ao tamanho do sistema, logo é mais viável a utilização do teste de caminho na etapa de teste de componentes. O teste faz com que pelo menos uma vez cada caminho seja executado. 29
  • 30. Considerações Finais. Concluímos que o processo de teste de software faz com que a qualidade, a credibilidade, a confiança e a competitividade do software cresçam. Aprendemos também que os testes estão subdivididos e que a depender da necessidade podemos utilizar, a combinação de dois ou mais testes. E que devemos planejar e deixar uma boa quantidade recursos para essa etapa do projeto, que em alguns casos chega ser a etapa mais importante do projeto de desenvolvimento de um sistema. 30
  • 31. Referências SOMMERVILLE, I.; Engenharia de Software. 8ª ed. São Paulo: Pearson Addison-Wesley, 2007. PFLEEGER, S. L.; Engenharia de Software: Teoria e Prática. 2ª ed. São Paulo: Prentice Hall, 2004. PRESSMAN, R. I.; Engenharia de Software. São Paulo: Pearson Makron Books, 1995. 31