SlideShare uma empresa Scribd logo
1 de 25
Teste de Software
INTEGRANTES
 Gabriel Paulino
 Gustavo Rondini
 Matheus Fernando
Professor: Anderson Barbosa
Disciplina: Eng. De Software
Teste de Software
Teste é o processo de executar um
programa com a intenção de encontrar erros
O teste de software é uma análise que nos
fornece dados para estimar a qualidade de um
sistema
Quem faz o teste?
Depende do processo e das partes associadas ao(s) projeto(s). Na
indústria de TI, grandes empresas possuem uma equipe com
responsabilidades para avaliar o software desenvolvido no contexto dos
requisitos dados. Além disso, os desenvolvedores também realizam testes,
chamados de testes de unidade. Na maioria dos casos, os seguintes
profissionais estão envolvidos no teste de um sistema dentro de suas
respectivas capacidades:​
Software Tester
Software Developer
Lider de projeto
Usuário final
Validação & Verificação
Verification Validation
Esta fazendo isso da forma certa? Esta construindo a coisa certa?
Garante que o sistema do software atende a
sua funcionalidade.
Garante que as funcionalidades atendam ao
comportamento esperado.
A verificação ocorre primeiro e inclui a
verificação da documentação, código, etc.
Validação ocorre depois da verificação e
envolve principalmente verificar o produto
como um todo.
Feito por desenvolvedores. Feito por testers.
Tem atividades estáticas pois inclui
revisões e inspeções para ver se o
software está correto ou não.
Tem atividades dinamicas porque
inclui executar o software fazendo o
contrário do que foi proposto pelo
programa.
É um processo objetivo e nenhuma
decisão subjetiva precisa ser feita para
verificar o software.
É um processo subjetivo e envolve
decisões subjetivas sobre o quão
bem o software funciona.
Diferença entre teste e Debugging
 Testing: Testar: Isso envolve a identificação de um
bug/erro/defeito no software sem corrigi-lo.
Normalmente profissionais com experiência em
Qualidade estão envolvidos na identificação de bugs.
Os testes são realizados na fase de testes
 Debugging: Envolve identificar, isolar e corrigir os
problemas/bugs. Os desenvolvedores que codificam o
software conduzem a depuração ao encontrar um erro
no código. Debugar é a parte da White Box ou teste de
unidade. O debbuging pode ser realizada na fase de
desenvolvimento durante a realização do Teste de
Unidade ou em fase durante a correção dos bugs
relatados.
O que é “erro”, “defeito” e “falha”?
Raul Sidnei Wazlawick (2013) define da seguinte maneira:
 Erro: Diferença detectada entre o resultado de uma
computação e o resultado correto ou esperado;
 Defeito: é uma linha de código, bloco ou conjunto de dados
incorretos que provocam um erro observado;
 Falha: é um não funcionamento do software, possivelmente
provocada por um defeito, mas com outras causas
possíveis.
Tipos de teste
Manual Testing
 Este tipo inclui o teste manual do software, ou seja, sem usar
nenhuma ferramenta automatizada ou script. Neste tipo, o
testador assume o papel de um usuário final e testa o software
para identificar qualquer comportamento ou bug inesperado.
Existem diferentes estágios para testes manuais, como teste de
unidade, teste de integração, teste de sistema e teste de
aceitação do usuário.
Os testadores usam um plano de teste, casos de teste ou
cenários de teste para testar o software e garantir a completude
dos testes. Os testes manuais também incluem testes
exploratórios, nos quais os testadores exploram o software para
identificar erros nele.
Quem deve testar?
Desenvolvedor
Conhece o sistema
Mas, ira testar gentilmente
Software Tester
Precisa aprender sobre o sistema
Mas, ira fazer de tudo para “quebra-lo”
Quem é um Software Tester?
Software Tester é quem realiza os testes
e encontra os bugs, caso existam na
aplicação testada.
Tipos de teste
Automation Testing
 Teste automatizado, também conhecido como "Automação de
Teste", ocorre quando o testador escreve scripts e usa outro
software para testar o software. Esse processo envolve a
automação de um processo manual. O Teste Automatizado é
usado para executar novamente os cenários de teste que foram
realizados manualmente, de forma rápida e repetida.
 Além do teste de regressão, o teste automatizado também é
usado para testar a aplicação do ponto de vista de
carregamento, performance e stress. Esse tipo de
teste aumenta a cobertura de testes, melhora a precisão,
economiza tempo e dinheiro em comparação com o teste
manual.
Importância do teste no SDLC
 Todo software precisa passar por um processo de desenvolvimento. As
metodologias de desenvolvimento de software são usadas para sistemas
de informação baseados em computador. O crescimento da informação
tem que passar por várias fases/etapas, conhecidas como Ciclo de Vida do
Desenvolvimento de Sistemas (SDLC).
Requisitos
Analise
Design
Codificar
Teste
Implementação
Manutenção
Planejamento de teste
Test Plan
 Um plano de testes é uma abordagem sistemática para testar
um sistema, ou seja, um software. O plano geralmente
contém uma compreensão detalhada de qual será o fluxo de
trabalho de teste final.
Caso de teste
 Um caso de teste é um procedimento específico de
teste para um requisito particular
Inclui:
 Identificacao do requisito específico testado
 Critérios de sucesso/falha do caso de teste
 Etapas específicas para executar o teste
 Dados dos testes
Níveis de teste
 Teste de Unidade
 Teste de Integração
 Teste de Sistema
 Teste de usabilidade
 Teste de funcionabilidade
 Teste de Performance
 Teste de segurança
 Smoke Testing
 Alpha Testing
 Teste de aceitação
 Beta Testing
 Teste de Regressão
 Monkey Test
Teste unitário
 Testa cada modulo individualmente.
 Segue o teste de caixa branca (acesso ao código)
 Feito pelos desenvolvedores
Teste de integração
 After completing the unit testing and dependent
modules development, programmers connect the
modules with respect to HLD for Integration Testing
through below approaches.
Teste de sistema
 Após completar os testes de Unidade e Integração utilizando
técnicas de teste de caixa branca, a equipe de
desenvolvimento lança uma compilação .exe (com todos os
módulos integrados) para realizar testes de caixa preta.
 Dentro do teste de sistema, temos:
 Teste de usabilidade
 Teste funcional
 Teste de performance
 Teste de segurança
Teste de usabilidade
 Durante este teste, a equipe de testes concentra-se na
facilidade de uso da interface da compilação. Isso inclui os
seguintes subtestes:
 Teste de User Interface : Facilidade de uso (interface precisa ser
facilmente entendível pelo usuário final)
 Look & Feel : Atrativa
 Speed in interface : Menor número de tarefas para concluir a
tarefa.
Teste funcional
 Objetivo de verificar o comportamento da aplicação.
 Verificaaassertividadedasaídadedados.
 Validação de dados e Integração, ou seja, se as entradas estão
corretas ou não.
Teste de performance
 LOAD TESTING Também conhecido como Teste de Escalabilidade.
Durante este teste, engenheiros de teste executam a compilação da
aplicação sob a configuração e carga esperadas pelo cliente para
estimar o desempenho.
 Teste de etresse – Durante este teste, os engenheiros de teste
estimam a carga máxima, ou seja, o número máximo de usuários
que a aplicação pode suportar. Para isso, utilizam a configuração
esperada pelo cliente e executam testes para estimar a carga
máxima que a aplicação pode lidar.
 DATA VOLUME TESTING — Time de teste conduz este teste para
descobrir o limite máximo de dados que a aplicação suporta.
Teste de segurança
 Testar o quão bem o sistema protege contra acesso não
autorizado interno ou externo, danos intencionais, etc.
Smoke testing
 O teste de fumaça (Smoke Testing) é um teste de software não
exaustivo que visa verificar se as funções mais cruciais de um
programa estão funcionando, sem se preocupar com detalhes mais
finos.
Alpha Testing
 Aplicacao é testada por um grupo seleto de usuário final.
 Realizado em condições controladas, sob supervisão do
desenvolvedor.
Teste de aceitação
 Uma avaliação formal realizada para determinar se um sistema
atende ou não aos seus critérios de aceitação e para permitir
que o cliente decida se deve ou não aceitar o sistema.
 A etapa de teste de aceitação é a última ação de teste antes da
implantação do software. O objetivo do teste de aceitação é
garantir que o software esteja pronto e possa ser utilizado pelo
usuário final para executar as funções para as quais o software
foi desenvolvido.
Beta Testing
 Realizado antes da entrega final ao usuário.
 Antes do lançamento final do software ser disponibilizado aos
usuários para teste, onde não haverá condições controladas e o
usuário será livre para fazer o que quiser no sistema para encontrar
erros.
Teste de regressão
 Testes com o objetivo de determinar se as correções de bugs
foram bem-sucedidas e não criaram novos problemas. Além disso,
este tipo de teste é realizado para garantir que nenhuma
degradação da funcionalidade de linha de base tenha ocorrido.
Monkey Testing
 Testando a aplicação de forma aleatória, como pressionar teclas
de forma irregular e tentar causar falhas no sistema, sem casos
de teste ou cenários específicos - é o chamado teste de
"monkey testing".
OBRIGADO!

Mais conteúdo relacionado

Semelhante a SLIDEPRELIMINAR.pptx

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
 
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
 
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
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
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
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtareFernando Palma
 
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 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
 
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
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POAAline 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 SoftwareCamilo Ribeiro
 

Semelhante a SLIDEPRELIMINAR.pptx (20)

Teste de software
Teste de softwareTeste de software
Teste 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
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
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
 
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
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 
XII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do MestreXII Café e CODE - Provocações do Mestre
XII Café e CODE - Provocações do Mestre
 
Slid qualidade de_software
Slid qualidade de_softwareSlid qualidade de_software
Slid qualidade de_software
 
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?
 
Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Aula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptxAula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.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
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introduçã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
 
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
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
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
 

SLIDEPRELIMINAR.pptx

  • 2. INTEGRANTES  Gabriel Paulino  Gustavo Rondini  Matheus Fernando Professor: Anderson Barbosa Disciplina: Eng. De Software
  • 3. Teste de Software Teste é o processo de executar um programa com a intenção de encontrar erros O teste de software é uma análise que nos fornece dados para estimar a qualidade de um sistema
  • 4.
  • 5. Quem faz o teste? Depende do processo e das partes associadas ao(s) projeto(s). Na indústria de TI, grandes empresas possuem uma equipe com responsabilidades para avaliar o software desenvolvido no contexto dos requisitos dados. Além disso, os desenvolvedores também realizam testes, chamados de testes de unidade. Na maioria dos casos, os seguintes profissionais estão envolvidos no teste de um sistema dentro de suas respectivas capacidades:​ Software Tester Software Developer Lider de projeto Usuário final
  • 7. Verification Validation Esta fazendo isso da forma certa? Esta construindo a coisa certa? Garante que o sistema do software atende a sua funcionalidade. Garante que as funcionalidades atendam ao comportamento esperado. A verificação ocorre primeiro e inclui a verificação da documentação, código, etc. Validação ocorre depois da verificação e envolve principalmente verificar o produto como um todo. Feito por desenvolvedores. Feito por testers. Tem atividades estáticas pois inclui revisões e inspeções para ver se o software está correto ou não. Tem atividades dinamicas porque inclui executar o software fazendo o contrário do que foi proposto pelo programa. É um processo objetivo e nenhuma decisão subjetiva precisa ser feita para verificar o software. É um processo subjetivo e envolve decisões subjetivas sobre o quão bem o software funciona.
  • 8. Diferença entre teste e Debugging  Testing: Testar: Isso envolve a identificação de um bug/erro/defeito no software sem corrigi-lo. Normalmente profissionais com experiência em Qualidade estão envolvidos na identificação de bugs. Os testes são realizados na fase de testes  Debugging: Envolve identificar, isolar e corrigir os problemas/bugs. Os desenvolvedores que codificam o software conduzem a depuração ao encontrar um erro no código. Debugar é a parte da White Box ou teste de unidade. O debbuging pode ser realizada na fase de desenvolvimento durante a realização do Teste de Unidade ou em fase durante a correção dos bugs relatados.
  • 9. O que é “erro”, “defeito” e “falha”? Raul Sidnei Wazlawick (2013) define da seguinte maneira:  Erro: Diferença detectada entre o resultado de uma computação e o resultado correto ou esperado;  Defeito: é uma linha de código, bloco ou conjunto de dados incorretos que provocam um erro observado;  Falha: é um não funcionamento do software, possivelmente provocada por um defeito, mas com outras causas possíveis.
  • 10. Tipos de teste Manual Testing  Este tipo inclui o teste manual do software, ou seja, sem usar nenhuma ferramenta automatizada ou script. Neste tipo, o testador assume o papel de um usuário final e testa o software para identificar qualquer comportamento ou bug inesperado. Existem diferentes estágios para testes manuais, como teste de unidade, teste de integração, teste de sistema e teste de aceitação do usuário. Os testadores usam um plano de teste, casos de teste ou cenários de teste para testar o software e garantir a completude dos testes. Os testes manuais também incluem testes exploratórios, nos quais os testadores exploram o software para identificar erros nele.
  • 11. Quem deve testar? Desenvolvedor Conhece o sistema Mas, ira testar gentilmente Software Tester Precisa aprender sobre o sistema Mas, ira fazer de tudo para “quebra-lo”
  • 12. Quem é um Software Tester? Software Tester é quem realiza os testes e encontra os bugs, caso existam na aplicação testada.
  • 13. Tipos de teste Automation Testing  Teste automatizado, também conhecido como "Automação de Teste", ocorre quando o testador escreve scripts e usa outro software para testar o software. Esse processo envolve a automação de um processo manual. O Teste Automatizado é usado para executar novamente os cenários de teste que foram realizados manualmente, de forma rápida e repetida.  Além do teste de regressão, o teste automatizado também é usado para testar a aplicação do ponto de vista de carregamento, performance e stress. Esse tipo de teste aumenta a cobertura de testes, melhora a precisão, economiza tempo e dinheiro em comparação com o teste manual.
  • 14. Importância do teste no SDLC  Todo software precisa passar por um processo de desenvolvimento. As metodologias de desenvolvimento de software são usadas para sistemas de informação baseados em computador. O crescimento da informação tem que passar por várias fases/etapas, conhecidas como Ciclo de Vida do Desenvolvimento de Sistemas (SDLC). Requisitos Analise Design Codificar Teste Implementação Manutenção
  • 15. Planejamento de teste Test Plan  Um plano de testes é uma abordagem sistemática para testar um sistema, ou seja, um software. O plano geralmente contém uma compreensão detalhada de qual será o fluxo de trabalho de teste final.
  • 16. Caso de teste  Um caso de teste é um procedimento específico de teste para um requisito particular Inclui:  Identificacao do requisito específico testado  Critérios de sucesso/falha do caso de teste  Etapas específicas para executar o teste  Dados dos testes
  • 17. Níveis de teste  Teste de Unidade  Teste de Integração  Teste de Sistema  Teste de usabilidade  Teste de funcionabilidade  Teste de Performance  Teste de segurança  Smoke Testing  Alpha Testing  Teste de aceitação  Beta Testing  Teste de Regressão  Monkey Test
  • 18. Teste unitário  Testa cada modulo individualmente.  Segue o teste de caixa branca (acesso ao código)  Feito pelos desenvolvedores Teste de integração  After completing the unit testing and dependent modules development, programmers connect the modules with respect to HLD for Integration Testing through below approaches.
  • 19. Teste de sistema  Após completar os testes de Unidade e Integração utilizando técnicas de teste de caixa branca, a equipe de desenvolvimento lança uma compilação .exe (com todos os módulos integrados) para realizar testes de caixa preta.  Dentro do teste de sistema, temos:  Teste de usabilidade  Teste funcional  Teste de performance  Teste de segurança
  • 20. Teste de usabilidade  Durante este teste, a equipe de testes concentra-se na facilidade de uso da interface da compilação. Isso inclui os seguintes subtestes:  Teste de User Interface : Facilidade de uso (interface precisa ser facilmente entendível pelo usuário final)  Look & Feel : Atrativa  Speed in interface : Menor número de tarefas para concluir a tarefa. Teste funcional  Objetivo de verificar o comportamento da aplicação.  Verificaaassertividadedasaídadedados.  Validação de dados e Integração, ou seja, se as entradas estão corretas ou não.
  • 21. Teste de performance  LOAD TESTING Também conhecido como Teste de Escalabilidade. Durante este teste, engenheiros de teste executam a compilação da aplicação sob a configuração e carga esperadas pelo cliente para estimar o desempenho.  Teste de etresse – Durante este teste, os engenheiros de teste estimam a carga máxima, ou seja, o número máximo de usuários que a aplicação pode suportar. Para isso, utilizam a configuração esperada pelo cliente e executam testes para estimar a carga máxima que a aplicação pode lidar.  DATA VOLUME TESTING — Time de teste conduz este teste para descobrir o limite máximo de dados que a aplicação suporta.
  • 22. Teste de segurança  Testar o quão bem o sistema protege contra acesso não autorizado interno ou externo, danos intencionais, etc. Smoke testing  O teste de fumaça (Smoke Testing) é um teste de software não exaustivo que visa verificar se as funções mais cruciais de um programa estão funcionando, sem se preocupar com detalhes mais finos. Alpha Testing  Aplicacao é testada por um grupo seleto de usuário final.  Realizado em condições controladas, sob supervisão do desenvolvedor.
  • 23. Teste de aceitação  Uma avaliação formal realizada para determinar se um sistema atende ou não aos seus critérios de aceitação e para permitir que o cliente decida se deve ou não aceitar o sistema.  A etapa de teste de aceitação é a última ação de teste antes da implantação do software. O objetivo do teste de aceitação é garantir que o software esteja pronto e possa ser utilizado pelo usuário final para executar as funções para as quais o software foi desenvolvido. Beta Testing  Realizado antes da entrega final ao usuário.  Antes do lançamento final do software ser disponibilizado aos usuários para teste, onde não haverá condições controladas e o usuário será livre para fazer o que quiser no sistema para encontrar erros.
  • 24. Teste de regressão  Testes com o objetivo de determinar se as correções de bugs foram bem-sucedidas e não criaram novos problemas. Além disso, este tipo de teste é realizado para garantir que nenhuma degradação da funcionalidade de linha de base tenha ocorrido. Monkey Testing  Testando a aplicação de forma aleatória, como pressionar teclas de forma irregular e tentar causar falhas no sistema, sem casos de teste ou cenários específicos - é o chamado teste de "monkey testing".