SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Testes de Software Os Primeiros Passos em busca da  Qualidade de Software
Gestão de Testes de Software Conceituação de Testes de Software Metodologia de Testes de Software 1 2 3 4 Temas abordados Planejamento de Testes 5 Técnicas de Testes de Software Porque ocorrem falhas?
TESTE DE SOFTWARE O teste do software é uma das fases do processo de  engenharia de software  que visa atingir um nível de  qualidade  de produto superior.  O objetivo é mesmo o de encontrar defeitos no produto, para que estes possam ser corrigidos pela equipe de  programadores , antes da entrega final.  A maioria das pessoas pensa que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para  encontrar defeitos .  Definindo Teste de Software
TESTE DE SOFTWARE O conceito de teste de software pode ser compreendido através de uma visão intuitiva ou mesmo de uma maneira formal. Existem atualmente várias definições para esse conceito.  De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento  ocorre de acordo com o especificado .  O objetivo principal desta tarefa é  encontrar o número máximo de erros  dispondo do  mínimo de esforço , ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos. Definindo Teste de Software
Em uma situação ideal, nós como programadores, partindo do princípio que somos bons no que fazemos, poderíamos garantir que todos os programas funcionariam corretamente.  Infelizmente esta não é a realidade. Isso porque os programas possuem um grande número de estados com fórmulas complexas, atividades e algoritmos.  O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo aumentam ainda mais a complexidade. Assim, a presença de falhas é inevitável.  Mas o que significa dizer que um programa falhou?  Definindo Teste de Software
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Por que ocorrem falhas?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Por que ocorrem falhas?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Técnicas de Teste de Software
CAIXA PRETA - Neste tipo de teste de software o desenvolvedor dos testes não possui acesso algum ao código fonte do programa .  CAIXA BRANCA - Dentro desta categoria de teste de software o desenvolvedor tem acesso ao código fonte da aplicação e pode construir códigos para efetuar LINKER de componentes . Técnicas popularizadas pelo mercado de software Caixa Preta Caixa Branca  Caixa Branca Caixa Cinza Caixa Cinza Abaixo estão as três técnicas mais conhecidas CAIXA CINZA - Uma definição deste tipo de teste seria um ponto de equilíbrio virtual entre o teste de caixa-branca e o caixa-preta. . Técnicas de Teste de Software
Caixa-Branca  (White Box) Este tipo de teste é desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram  todas as possibilidades do programa .  Dessa maneira, todas as variações originadas por estruturas de condições são testadas. Um exemplo bem prático deste teste é o  JUnit  para desenvolvimento com a linguagem  Java  e para a linguagem  .NET  o  Project  Analyzer . Técnicas de Teste de Software
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Técnicas de Teste de Software
Caixa-Cinza   (Gray Box) Esta técnica aparece com muitas interpretações na literatura de testes. De uma maneira mais clara, o desenvolvedor dos testes não tem acesso ao código fonte da aplicação, porém tem conhecimento dos algoritmos que foram implementados, como também pode  efetuar manipulações em arquivos de entrada e saída do tipo XML ou mesmo acessos ao banco de dados da aplicação  para simples conferência de dados ou alteração de parâmetros considerados nos casos de teste. Outros autores definem caixa-cinza como o  teste de integração ,  onde você vê o sistema até o nível de módulo, mas não pode ver no interior dos módulos .  Ainda é possível encontrar a definição de caixa-cinza como um teste onde algumas partes estão disponíveis como caixa-branca e outras como caixa-preta. Técnicas de Teste de Software
Testes Alpha (Alpha Test)  No processo de desenvolvimento,  os testes preferencialmente devem ser executados antes do produto ser disponibilizado aos usuários.  Esse período  entre o término do desenvolvimento e da entrega é conhecido  como fase alpha e os testes executados nesse período como testes alpha.  No início dos testes da fase alpha são utilizadas   técnicas de caixa-branca .  Posteriormente, os desenvolvedores dos testes aplicam  técnicas de caixa-preta  como complemento da primeira parte de testes.  Fases de Teste de Software
Testes Beta (Beta Test)  Completada a fase alpha de testes,  são lançadas a grupos restritos de usuários versões de teste do sistema , denominadas versões beta. Conseqüentemente este período fica denominado como Fase Beta Fases de Teste de Software
Testes Beta (Beta Test)  Através deste tipo de teste os usuários finais do produto  podem encontrar defeitos peculiares de tarefas costumeiramente executadas por eles.  Visando um maior retorno de informações sobre o mau funcionamento do sistema algumas empresas distribuem as versões betas  para todo o universo de utilizadores.  Paralelamente  podem ser executados testes de caixa-preta  durante essa fase, dando assim maior eficiência no processo. Fases de Teste de Software
Versões Candidatas  (Release Candidates) Ultimamente, e principalmente na comunidade de software livre, é comum utilizar o termo  release candidate  para  indicar uma versão que é candidata a ser a versão final , em função da quantidade de erros encontradas. As RC, como são chamadas,  são um passo além do teste beta , sendo divulgadas para toda a comunidade. Fases de Teste de Software
Categorias de Teste de Software
Teste de Unidade Também conhecido como  teste unitário .  É um tipo de atividade que visa  testar pequenas partes ou unidades do sistema.  O universo alvo desse tipo de teste são  os métodos dos objetos  ou mesmo  pequenos trechos de código.  Assim, o objetivo é o de encontrar falhas de funcionamento dentro de uma  pequena parte do sistema  funcionando  independentemente do todo . Categorias de Teste de Software
[object Object],[object Object],[object Object],[object Object],Categorias de Teste de Software
[object Object],[object Object],[object Object],[object Object],Categorias de Teste de Software
Teste de Sistema Este é um teste de grande importância.  Sua principal filosofia é varrer o sistema em busca de falhas através da utilização do mesmo,  como se fosse um usuário final.  Dessa maneira,  os testes são executados nos mesmos ambientes , com as mesmas condições e  com os mesmos dados de entrada  que um usuário utilizaria no seu dia-a-dia de manipulação do sistema. Categorias de Teste de Software
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Categorias de Teste de Software
[object Object],[object Object],[object Object],[object Object],[object Object],Equipe de Testes de Software
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Equipe de Testes de Software
Por que Testamos Software?
[object Object],[object Object],Por que Testamos Software?
[object Object],[object Object],[object Object],Por que Testamos Software?
Para ilustrar, uma taxa de 15% à 30% de defeitos a cada mil linhas de código é considerada aceitável para a indústria de TI, ou seja, todos os softwares têm defeitos, entretanto, os softwares realmente bons têm  poucos defeitos críticos  não corrigidos; promovendo assim um ambiente mais estável no ponto de vista do usuário final.  O processo de desenvolvimento de software, por mais maduro que seja, ajuda  apenas a reduzir a introdução de defeitos ; contudo os processos também não são perfeitos.  Mesmo os bons softwares, são repletos de defeitos.  “ Porque não existe software perfeito” Por que Testamos Software?
A arquitetura e o desenvolvimento de software são atividades tão peculiares, tão dependentes da criatividade e da natureza imprevisível dos seres humanos que, às vezes, o processo aplicado com sucesso em certo projeto, provavelmente será um completo fracasso em outro projeto.  Quem nunca viveu essa situação tão comum?  “ Porque não existe software perfeito” Por que Testamos Software?
BUG  é  uma palavra genérica para representar qualquer classe de defeito.  Esse termo foi introduzido quando os primeiros computadores, que eram feitos de válvulas, apresentavam algum tipo de problema inexplicável.  Os engenheiros vasculhavam o interior do computador e, às vezes, descobriam que a origem dos problemas eram causados  por insetos de verdade. O Bad Boy dos testes
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],O Bad Boy dos testes
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Entenda o significado
Bottom-up Testing  Nesse tipo de teste cada módulo ou componente é testado individualmente e, pouco a pouco, os demais componentes são combinados e testados. Em alguns casos simuladores são utilizados no lugar dos componentes reais para substituírem alguns componentes que são necessários, porém não estão disponíveis ainda.  Black Box Testing Nessa estratégia, os testes são executados por meio do fornecimento de dados de entrada ao componente sendo testado e pela análise do resultado produzido, no entanto, sem entender ou verificar o processo que produziu o resultado.  Entenda o significado
Configuration Testing Nessa categoria de testes, os testes são executados contra todos os ambientes (hardware e software) suportados. A idéia é manter uma matriz contendo as plataformas/ambientes suportadas e o status da execução dos testes contra essas plataformas/ambientes.  COQ - Cost of Quality Custo gasto em atividades relacionadas ao processo de garantia de qualidade. O COQ inclui o custo de prevenção, medição, correção, materiais, equipamentos, etc.  Debug Processo onde o desenvolvedor depura o programa a fim identificar a causa de um defeito. Veja Também Bug.  Entenda o significado
End-to-End Testing Nessa categoria de teste, os testes contemplam cenários onde a aplicação ou determinado módulo da aplicação é testado do começo ao fim.  Veja também Integration Test e Top-Down Testing.  Integration Testing Neste cenário os diversos sistemas que compõem uma solução de software são combinados e configurados num ambiente semelhante ao ambiente onde serão usados na vida real Dessa forma conseguimos testar o fluxo das operações do começo ao fim do ponto de vista do usuário final. Também conhecido como System Test. .  Entenda o significado
Load Testing Essa categoria de teste tem a função de aplicar uma carga de operações ou transações simultâneas contra a aplicação a fim de conferir se a aplicação atende os requisitos de performance ou resposta. Esse tipo de teste também é conhecido como Performance Testing.  Pass/Fail Criteria Comparação com o resultado esperado de um Test Case a fim de determinar se o teste passou ou falhou.  Recovery Test Classe de testes cuja principal função é avaliar como a aplicação lida com problemas inesperados e desastres.  Entenda o significado
Regression Test Essa abordagem tem a função de garantir que os módulos ou componentes da aplicação que não foram modificadas ainda funcionam corretamente após o programador modificar alguma outra parte da aplicação.  Test Case Conjunto de passos que descrevem um cenário de teste bem definido cuja principal função é comparar as respostas dos estímulos gerados pelos passos com um resultado esperado.  Test Plan Indica um documento que descreve o escopo das atividades de teste, a abordagem, os recursos humanos envolvidos, os módulos que serão testados, o schedule, riscos, etc.  Entenda o significado
Test Suite Indica um conjunto de Teste Cases que são agrupados por algum tipo de atributo em comum.  Test Automation Categoria de teste onde os testes são automatizados por meio da utilização de ferramentas e frameworks especializados para esse tipo de função.  Test Coverage Indica o percentual de tudo o que pode ser testado em relação ao que foi testado até agora.  Top-Down Testing Nessa categoria de teste, a aplicação é testada como um todo do início ao fim do ponto de vista do usuário final. Ou seja, o sistema é compilado completamente e o testador executa os Test Cases simulando situações de uso reais.  Entenda o significado
UAT - User Acceptance Test  ou  Integration Testing Conjunto de testes conduzido de forma garanta que o software atinge as necessidades do usuário final por meio da execução de cenários e dados de testes reais.  Verification Em resumo, o processo de Verification garante que o software está sendo desenvolvido conforme os padrões e processos definidos pela organização.  Validation Basicamente, o processo de Validation garante que o sistema está sendo escrito conforme o que está definido nos requisitos a fim de garantir que o software está sendo desenvolvido para atender as necessidades do cliente.  Entenda o significado
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fixando Categorias de Teste
As Técnicas de Teste mais populares são? TESTE ESTRUTURAL  (Caixa Branca) Técnica de teste que adota critérios para a geração dos casos de teste com a finalidade de  identificar defeitos nas estruturas internas do software , através de situações que exercitem adequadamente todas as estruturas utilizadas na codificação TESTE FUNCIONAL  (Caixa Preta) Técnica de teste que adota critérios para a geração dos casos de teste com a finalidade de  garantir os requisitos funcionais do software  que foi construído sejam plenamente atendidos. Fixando a Técnica de Teste
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fixando escolha do Critério
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Onde aplicamos o Critério?
Categorias ou Níveis, Tipos e Técnicas de Teste
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Software Livre para Testes
[object Object],[object Object],[object Object]
MODELOS TRADICIONAIS  PARA TESTE DE SOFTWARE
Os 7 Conceitos Mágicos de Teste ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ORGANIZANDO-SE PARA OS TESTES  Problemas, cuidados e desafios
Organizando-se para Execução de Testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PROBLEMAS COM TESTES
Problemas com os Testes  ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],Problemas com os Testes
[object Object],[object Object],[object Object],[object Object],Problemas com os Testes
PLANEJAMENTO  DE TESTES
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Planejamento de Testes
[object Object],Planejamento de Testes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Planejamento de Testes
[object Object],[object Object],[object Object],[object Object],Planejamento de Testes
PLANOS DE TESTES O quê devem conter?
[object Object],[object Object],[object Object],[object Object],[object Object],Planos de Teste
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Planos de Teste
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Planos de Teste ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RELAÇÃO ENTRE  OS TESTES E O CMM
[object Object],[object Object],[object Object],[object Object],Testes e CMM
[object Object],[object Object],Testes e CMM
METODOLOGIA DE TESTES
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Metodologia de Testes
[object Object],[object Object],[object Object],[object Object],Metodologia de Testes
Modelo X Metodologia ,[object Object],[object Object]
MODELOS TRADICIONAIS PARA TESTES DE SOFTWARE
MODELO WATERFALL ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],MODELO WATERFALL
MODELO SAWTOOTH ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],MODELO SAWTOOTH
MODELO SHARKTOOTH ,[object Object]
MODELO SHARKTOOTH ,[object Object],[object Object],[object Object],[object Object],[object Object]
MODELO ESPIRAL ,[object Object]
MODELO ESPIRAL ,[object Object],[object Object],[object Object],[object Object],[object Object]
MODELO V ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],MODELO V
MODELO W ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],MODELO W
MODELO BUTTERFLY ,[object Object],[object Object]
MODELO BUTTERFLY ,[object Object],[object Object]
MODELO BUTTERFLY ,[object Object],[object Object]
MODELO BUTTERFLY ,[object Object]
MODELO BUTTERFLY ,[object Object]
CONCLUSÃO
[object Object],[object Object],[object Object],[object Object],Conclusão

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de softwareNorton Guimarães
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Fabrício Campos
 
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
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
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
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testeselliando dias
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 

Was ist angesagt? (20)

Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
 
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 - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Carreira de QA
Carreira de QA Carreira de QA
Carreira de QA
 
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
 
İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 

Ähnlich wie Testes De Software - Uma Visão Geral

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
 
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
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
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
 
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
 
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
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
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
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
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
 
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
 

Ähnlich wie Testes De Software - Uma Visão Geral (20)

SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
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
 
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
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
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
 
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
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
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
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
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
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia 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
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - 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
 
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
 

Testes De Software - Uma Visão Geral

  • 1. Testes de Software Os Primeiros Passos em busca da Qualidade de Software
  • 2. Gestão de Testes de Software Conceituação de Testes de Software Metodologia de Testes de Software 1 2 3 4 Temas abordados Planejamento de Testes 5 Técnicas de Testes de Software Porque ocorrem falhas?
  • 3. TESTE DE SOFTWARE O teste do software é uma das fases do processo de engenharia de software que visa atingir um nível de qualidade de produto superior. O objetivo é mesmo o de encontrar defeitos no produto, para que estes possam ser corrigidos pela equipe de programadores , antes da entrega final. A maioria das pessoas pensa que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para encontrar defeitos . Definindo Teste de Software
  • 4. TESTE DE SOFTWARE O conceito de teste de software pode ser compreendido através de uma visão intuitiva ou mesmo de uma maneira formal. Existem atualmente várias definições para esse conceito. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento ocorre de acordo com o especificado . O objetivo principal desta tarefa é encontrar o número máximo de erros dispondo do mínimo de esforço , ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos. Definindo Teste de Software
  • 5. Em uma situação ideal, nós como programadores, partindo do princípio que somos bons no que fazemos, poderíamos garantir que todos os programas funcionariam corretamente. Infelizmente esta não é a realidade. Isso porque os programas possuem um grande número de estados com fórmulas complexas, atividades e algoritmos. O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo aumentam ainda mais a complexidade. Assim, a presença de falhas é inevitável. Mas o que significa dizer que um programa falhou? Definindo Teste de Software
  • 6.
  • 7.
  • 8.
  • 9. CAIXA PRETA - Neste tipo de teste de software o desenvolvedor dos testes não possui acesso algum ao código fonte do programa . CAIXA BRANCA - Dentro desta categoria de teste de software o desenvolvedor tem acesso ao código fonte da aplicação e pode construir códigos para efetuar LINKER de componentes . Técnicas popularizadas pelo mercado de software Caixa Preta Caixa Branca Caixa Branca Caixa Cinza Caixa Cinza Abaixo estão as três técnicas mais conhecidas CAIXA CINZA - Uma definição deste tipo de teste seria um ponto de equilíbrio virtual entre o teste de caixa-branca e o caixa-preta. . Técnicas de Teste de Software
  • 10. Caixa-Branca (White Box) Este tipo de teste é desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do programa . Dessa maneira, todas as variações originadas por estruturas de condições são testadas. Um exemplo bem prático deste teste é o JUnit para desenvolvimento com a linguagem Java e para a linguagem .NET o Project Analyzer . Técnicas de Teste de Software
  • 11.
  • 12. Caixa-Cinza (Gray Box) Esta técnica aparece com muitas interpretações na literatura de testes. De uma maneira mais clara, o desenvolvedor dos testes não tem acesso ao código fonte da aplicação, porém tem conhecimento dos algoritmos que foram implementados, como também pode efetuar manipulações em arquivos de entrada e saída do tipo XML ou mesmo acessos ao banco de dados da aplicação para simples conferência de dados ou alteração de parâmetros considerados nos casos de teste. Outros autores definem caixa-cinza como o teste de integração , onde você vê o sistema até o nível de módulo, mas não pode ver no interior dos módulos . Ainda é possível encontrar a definição de caixa-cinza como um teste onde algumas partes estão disponíveis como caixa-branca e outras como caixa-preta. Técnicas de Teste de Software
  • 13. Testes Alpha (Alpha Test) No processo de desenvolvimento, os testes preferencialmente devem ser executados antes do produto ser disponibilizado aos usuários. Esse período entre o término do desenvolvimento e da entrega é conhecido como fase alpha e os testes executados nesse período como testes alpha. No início dos testes da fase alpha são utilizadas técnicas de caixa-branca . Posteriormente, os desenvolvedores dos testes aplicam técnicas de caixa-preta como complemento da primeira parte de testes. Fases de Teste de Software
  • 14. Testes Beta (Beta Test) Completada a fase alpha de testes, são lançadas a grupos restritos de usuários versões de teste do sistema , denominadas versões beta. Conseqüentemente este período fica denominado como Fase Beta Fases de Teste de Software
  • 15. Testes Beta (Beta Test) Através deste tipo de teste os usuários finais do produto podem encontrar defeitos peculiares de tarefas costumeiramente executadas por eles. Visando um maior retorno de informações sobre o mau funcionamento do sistema algumas empresas distribuem as versões betas para todo o universo de utilizadores. Paralelamente podem ser executados testes de caixa-preta durante essa fase, dando assim maior eficiência no processo. Fases de Teste de Software
  • 16. Versões Candidatas (Release Candidates) Ultimamente, e principalmente na comunidade de software livre, é comum utilizar o termo release candidate para indicar uma versão que é candidata a ser a versão final , em função da quantidade de erros encontradas. As RC, como são chamadas, são um passo além do teste beta , sendo divulgadas para toda a comunidade. Fases de Teste de Software
  • 17. Categorias de Teste de Software
  • 18. Teste de Unidade Também conhecido como teste unitário . É um tipo de atividade que visa testar pequenas partes ou unidades do sistema. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código. Assim, o objetivo é o de encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando independentemente do todo . Categorias de Teste de Software
  • 19.
  • 20.
  • 21. Teste de Sistema Este é um teste de grande importância. Sua principal filosofia é varrer o sistema em busca de falhas através da utilização do mesmo, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes , com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do sistema. Categorias de Teste de Software
  • 22.
  • 23.
  • 24.
  • 25. Por que Testamos Software?
  • 26.
  • 27.
  • 28. Para ilustrar, uma taxa de 15% à 30% de defeitos a cada mil linhas de código é considerada aceitável para a indústria de TI, ou seja, todos os softwares têm defeitos, entretanto, os softwares realmente bons têm poucos defeitos críticos não corrigidos; promovendo assim um ambiente mais estável no ponto de vista do usuário final. O processo de desenvolvimento de software, por mais maduro que seja, ajuda apenas a reduzir a introdução de defeitos ; contudo os processos também não são perfeitos. Mesmo os bons softwares, são repletos de defeitos. “ Porque não existe software perfeito” Por que Testamos Software?
  • 29. A arquitetura e o desenvolvimento de software são atividades tão peculiares, tão dependentes da criatividade e da natureza imprevisível dos seres humanos que, às vezes, o processo aplicado com sucesso em certo projeto, provavelmente será um completo fracasso em outro projeto. Quem nunca viveu essa situação tão comum? “ Porque não existe software perfeito” Por que Testamos Software?
  • 30. BUG é uma palavra genérica para representar qualquer classe de defeito. Esse termo foi introduzido quando os primeiros computadores, que eram feitos de válvulas, apresentavam algum tipo de problema inexplicável. Os engenheiros vasculhavam o interior do computador e, às vezes, descobriam que a origem dos problemas eram causados por insetos de verdade. O Bad Boy dos testes
  • 31.
  • 32.
  • 33. Bottom-up Testing Nesse tipo de teste cada módulo ou componente é testado individualmente e, pouco a pouco, os demais componentes são combinados e testados. Em alguns casos simuladores são utilizados no lugar dos componentes reais para substituírem alguns componentes que são necessários, porém não estão disponíveis ainda. Black Box Testing Nessa estratégia, os testes são executados por meio do fornecimento de dados de entrada ao componente sendo testado e pela análise do resultado produzido, no entanto, sem entender ou verificar o processo que produziu o resultado. Entenda o significado
  • 34. Configuration Testing Nessa categoria de testes, os testes são executados contra todos os ambientes (hardware e software) suportados. A idéia é manter uma matriz contendo as plataformas/ambientes suportadas e o status da execução dos testes contra essas plataformas/ambientes. COQ - Cost of Quality Custo gasto em atividades relacionadas ao processo de garantia de qualidade. O COQ inclui o custo de prevenção, medição, correção, materiais, equipamentos, etc. Debug Processo onde o desenvolvedor depura o programa a fim identificar a causa de um defeito. Veja Também Bug. Entenda o significado
  • 35. End-to-End Testing Nessa categoria de teste, os testes contemplam cenários onde a aplicação ou determinado módulo da aplicação é testado do começo ao fim. Veja também Integration Test e Top-Down Testing. Integration Testing Neste cenário os diversos sistemas que compõem uma solução de software são combinados e configurados num ambiente semelhante ao ambiente onde serão usados na vida real Dessa forma conseguimos testar o fluxo das operações do começo ao fim do ponto de vista do usuário final. Também conhecido como System Test. . Entenda o significado
  • 36. Load Testing Essa categoria de teste tem a função de aplicar uma carga de operações ou transações simultâneas contra a aplicação a fim de conferir se a aplicação atende os requisitos de performance ou resposta. Esse tipo de teste também é conhecido como Performance Testing. Pass/Fail Criteria Comparação com o resultado esperado de um Test Case a fim de determinar se o teste passou ou falhou. Recovery Test Classe de testes cuja principal função é avaliar como a aplicação lida com problemas inesperados e desastres. Entenda o significado
  • 37. Regression Test Essa abordagem tem a função de garantir que os módulos ou componentes da aplicação que não foram modificadas ainda funcionam corretamente após o programador modificar alguma outra parte da aplicação. Test Case Conjunto de passos que descrevem um cenário de teste bem definido cuja principal função é comparar as respostas dos estímulos gerados pelos passos com um resultado esperado. Test Plan Indica um documento que descreve o escopo das atividades de teste, a abordagem, os recursos humanos envolvidos, os módulos que serão testados, o schedule, riscos, etc. Entenda o significado
  • 38. Test Suite Indica um conjunto de Teste Cases que são agrupados por algum tipo de atributo em comum. Test Automation Categoria de teste onde os testes são automatizados por meio da utilização de ferramentas e frameworks especializados para esse tipo de função. Test Coverage Indica o percentual de tudo o que pode ser testado em relação ao que foi testado até agora. Top-Down Testing Nessa categoria de teste, a aplicação é testada como um todo do início ao fim do ponto de vista do usuário final. Ou seja, o sistema é compilado completamente e o testador executa os Test Cases simulando situações de uso reais. Entenda o significado
  • 39. UAT - User Acceptance Test ou Integration Testing Conjunto de testes conduzido de forma garanta que o software atinge as necessidades do usuário final por meio da execução de cenários e dados de testes reais. Verification Em resumo, o processo de Verification garante que o software está sendo desenvolvido conforme os padrões e processos definidos pela organização. Validation Basicamente, o processo de Validation garante que o sistema está sendo escrito conforme o que está definido nos requisitos a fim de garantir que o software está sendo desenvolvido para atender as necessidades do cliente. Entenda o significado
  • 40.
  • 41. As Técnicas de Teste mais populares são? TESTE ESTRUTURAL (Caixa Branca) Técnica de teste que adota critérios para a geração dos casos de teste com a finalidade de identificar defeitos nas estruturas internas do software , através de situações que exercitem adequadamente todas as estruturas utilizadas na codificação TESTE FUNCIONAL (Caixa Preta) Técnica de teste que adota critérios para a geração dos casos de teste com a finalidade de garantir os requisitos funcionais do software que foi construído sejam plenamente atendidos. Fixando a Técnica de Teste
  • 42.
  • 43.
  • 44. Categorias ou Níveis, Tipos e Técnicas de Teste
  • 45.
  • 46.
  • 47. MODELOS TRADICIONAIS PARA TESTE DE SOFTWARE
  • 48.
  • 49. ORGANIZANDO-SE PARA OS TESTES Problemas, cuidados e desafios
  • 50.
  • 52.
  • 53.
  • 54.
  • 55. PLANEJAMENTO DE TESTES
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. PLANOS DE TESTES O quê devem conter?
  • 61.
  • 62.
  • 63.
  • 64. RELAÇÃO ENTRE OS TESTES E O CMM
  • 65.
  • 66.
  • 68.
  • 69.
  • 70.
  • 71. MODELOS TRADICIONAIS PARA TESTES DE SOFTWARE
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 90.