Estratégias de Teste de Software

31
Estratégias de Teste de Estratégias de Teste de Software Software Uma estratégia de teste de software Uma estratégia de teste de software integra métodos de projeto de integra métodos de projeto de casos de teste numa série bem casos de teste numa série bem planejada de passos, que resultam planejada de passos, que resultam na construção de um software bem na construção de um software bem sucedido sucedido A estratégia de teste fornece um A estratégia de teste fornece um roteiro que descreve os passos a roteiro que descreve os passos a serem conduzidos como parte do serem conduzidos como parte do teste teste

description

Estratégias de Teste de Software. Uma estratégia de teste de software integra métodos de projeto de casos de teste numa série bem planejada de passos, que resultam na construção de um software bem sucedido - PowerPoint PPT Presentation

Transcript of Estratégias de Teste de Software

Page 1: Estratégias de Teste de Software

Estratégias de Teste de Estratégias de Teste de SoftwareSoftware

Uma estratégia de teste de software Uma estratégia de teste de software integra métodos de projeto de casos integra métodos de projeto de casos de teste numa série bem planejada de teste numa série bem planejada de passos, que resultam na de passos, que resultam na construção de um software bem construção de um software bem

sucedidosucedido A estratégia de teste fornece um A estratégia de teste fornece um

roteiro que descreve os passos a roteiro que descreve os passos a serem conduzidos como parte do serem conduzidos como parte do teste teste

Page 2: Estratégias de Teste de Software

Estratégias de Teste de Estratégias de Teste de SoftwareSoftware

Planejamento de testePlanejamento de teste Passos a serem executadosPassos a serem executados EsforçoEsforço TempoTempo Recursos necessáriosRecursos necessários

Projeto de casos de testeProjeto de casos de teste Execução de teste Execução de teste Coleta e avaliação de dadosColeta e avaliação de dados

Page 3: Estratégias de Teste de Software

Estratégias de Teste de Estratégias de Teste de SoftwareSoftware

Quem faz?Quem faz? Gerente de projetoGerente de projeto Analistas de softwareAnalistas de software Especialistas em testeEspecialistas em teste

Porque é importante?Porque é importante? Se é conduzido ao acaso, tempo é Se é conduzido ao acaso, tempo é

desperdiçado, esforço desnecessário desperdiçado, esforço desnecessário é despendido e erros se infiltram sem é despendido e erros se infiltram sem serem descobertos.serem descobertos.

Page 4: Estratégias de Teste de Software

Estratégias de Teste de Estratégias de Teste de SoftwareSoftware

Qual é o produto do trabalho?Qual é o produto do trabalho? Uma especificação de teste que Uma especificação de teste que

documenta abordagem da equipe de documenta abordagem da equipe de software para o teste, definindo um software para o teste, definindo um plano que define estratégias e passos plano que define estratégias e passos específicos de testes e os testes que específicos de testes e os testes que serão conduzidosserão conduzidos

Como garanto que fiz corretamente?Como garanto que fiz corretamente? Revisando a especificação de teste antes Revisando a especificação de teste antes

do mesmo, avaliando a completeza dos do mesmo, avaliando a completeza dos casos e das tarefas de teste casos e das tarefas de teste

Page 5: Estratégias de Teste de Software

Características Genéricas de Características Genéricas de uma Estratégia de Testeuma Estratégia de Teste

O teste começa em um nível de componente e O teste começa em um nível de componente e prossegue para fora, em direção à integração de prossegue para fora, em direção à integração de todo o sistema baseado em computador.todo o sistema baseado em computador.

Diferentes técnicas de testes são adequadas em Diferentes técnicas de testes são adequadas em diferentes momentos.diferentes momentos.

O teste é conduzido pelo desenvolvedor do O teste é conduzido pelo desenvolvedor do software e, para grandes projetos, por um grupo software e, para grandes projetos, por um grupo independente.independente.

O teste e a depuração são atividades diferentes, O teste e a depuração são atividades diferentes, mas a depuração deve ser acomodada em qualquer mas a depuração deve ser acomodada em qualquer estratégia de teste.estratégia de teste.

Page 6: Estratégias de Teste de Software

Verificação e Validação Verificação e Validação

(V&V)(V&V) VerificaçãoVerificação

Conjunto de atividades que garante que o Conjunto de atividades que garante que o software implementa corretamente uma função software implementa corretamente uma função específica.específica.

““Estamos construindo o produto Estamos construindo o produto corretamente?”corretamente?”

ValidaçãoValidação Conjunto de atividades diferente que garante Conjunto de atividades diferente que garante

que o software construído corresponde aos que o software construído corresponde aos requisitos do cliente.requisitos do cliente.

““Estamos construindo o produto certo?Estamos construindo o produto certo?

Page 7: Estratégias de Teste de Software

Verificação e Validação Verificação e Validação (V&V)(V&V)

verificação e validação abrangem um amplo verificação e validação abrangem um amplo conjunto conjunto

de atividades SQA( garantia da qualidade de de atividades SQA( garantia da qualidade de SW), SW),

que inclui: Revisões técnicas formais;que inclui: Revisões técnicas formais; Auditoria de qualidade;Auditoria de qualidade; Monitoramento de Monitoramento de

desempenho,desempenho, Simulação,Simulação, Estudo de viabilidade,Estudo de viabilidade, Revisões,Revisões, Análises eAnálises e Testes.Testes.

Page 8: Estratégias de Teste de Software

Estágios do TesteEstágios do Teste

TesteTeste de Unidade: É aplicado para de Unidade: É aplicado para validar os menores elementos validar os menores elementos testáveis do testáveis do softwaresoftware, as classes , as classes básicas e os componentes, no básicas e os componentes, no modelo de implementação. Verifica modelo de implementação. Verifica se os fluxos de dados e de controle se os fluxos de dados e de controle estão funcionando como esperado. estão funcionando como esperado.

Page 9: Estratégias de Teste de Software

Estágios do TesteEstágios do Teste

TesteTeste dede IntegraçãoIntegração: É executado : É executado para garantir que os componentes do para garantir que os componentes do modelo de implementação modelo de implementação funcionam apropriadamente quando funcionam apropriadamente quando combinados. O combinados. O testeteste de integração de integração revela partes incompletas ou erros revela partes incompletas ou erros na interface entre os pacotes. na interface entre os pacotes.

Page 10: Estratégias de Teste de Software

Estágios do TesteEstágios do Teste

Teste de validação:Teste de validação:Os Os requisitos estabelecidos como requisitos estabelecidos como parte da análise de requisitos parte da análise de requisitos são validados em contraste com são validados em contraste com o software que acabou de ser o software que acabou de ser construído.construído.

Page 11: Estratégias de Teste de Software

Estágios do TesteEstágios do Teste

Teste de sistema: Teste de sistema: O software os O software os outros elementos do sistema são outros elementos do sistema são testados como um todo.testados como um todo.

Page 12: Estratégias de Teste de Software

Teste de UnidadeTeste de Unidade

São testadas :São testadas : InterfacesInterfaces Estruturas lógicas de dadosEstruturas lógicas de dados Condições limiteCondições limite Caminhos independentesCaminhos independentes Caminhos de manipulação de erros Caminhos de manipulação de erros

Page 13: Estratégias de Teste de Software

Teste de UnidadeTeste de Unidade

Erros mais comuns:Erros mais comuns: Precedência aritmética incorretaPrecedência aritmética incorreta Operações em modo mistoOperações em modo misto Inicialização incorretaInicialização incorreta Falta de precisãoFalta de precisão Representação incorreta de uma Representação incorreta de uma

expressão simbólica expressão simbólica

Page 14: Estratégias de Teste de Software

Teste de UnidadeTeste de Unidade

Problemas quanto a manipulação de Problemas quanto a manipulação de erros:erros:

1- a descrição do erro é ininteligível1- a descrição do erro é ininteligível2- o erro mencionado não corresponde ao 2- o erro mencionado não corresponde ao

erro erro encontrado.encontrado.3- a condição de erro provoca a intervenção 3- a condição de erro provoca a intervenção

do sistema antes da manipulação do erro.do sistema antes da manipulação do erro.4- o processamento da condição de exceção 4- o processamento da condição de exceção

está incorreto.está incorreto.5- a descrição do erro não fornece 5- a descrição do erro não fornece

informação suficiente para ajudar na informação suficiente para ajudar na localização da causa do erro.localização da causa do erro.

Page 15: Estratégias de Teste de Software

Procedimentos de Teste de Procedimentos de Teste de UnidadeUnidade

Elaborar um componente Elaborar um componente pseudocontrolador,pseudocontrolador, ou ou PseudocontroladoPseudocontrolado

PseudocontroladorPseudocontrolador Programa que aceita dados do caso de Programa que aceita dados do caso de

teste e passa tais dados ao componente teste e passa tais dados ao componente (a ser testado) e imprime resultados (a ser testado) e imprime resultados relevantes.relevantes.

PseudocontroladoPseudocontrolado Substituem módulos que são Substituem módulos que são

subordinados (chamados pelo) subordinados (chamados pelo) componente a ser testado.componente a ser testado.

Page 16: Estratégias de Teste de Software

Teste de IntegraçãoTeste de Integração

““Se todos os módulos funcionam Se todos os módulos funcionam individualmente,individualmente,

porque você duvida que vão funcionar, porque você duvida que vão funcionar, quando colocados em conjunto?”quando colocados em conjunto?”

O problema é exatamente esta interface O problema é exatamente esta interface entre os módulos pois:entre os módulos pois: Um módulo pode ter um efeito imprevisto ou Um módulo pode ter um efeito imprevisto ou

adverso sobre o outro;adverso sobre o outro; Subfunções quando combinadas podem não Subfunções quando combinadas podem não

produzir a função principal desejada;produzir a função principal desejada;

Teste de integração é necessário pois Teste de integração é necessário pois conduz testes para descobrir erros conduz testes para descobrir erros associados a esta interface.associados a esta interface.

Page 17: Estratégias de Teste de Software

Abordagens do Teste de Abordagens do Teste de IntegraçãoIntegração

Big-BangBig-Bang

IntegraçãoIntegração descendente descendente ( top_down)( top_down)

Integração ascendente Integração ascendente (botom_up)(botom_up)

Page 18: Estratégias de Teste de Software

Big-Bang:Big-Bang:

O programa inteiro é testado de O programa inteiro é testado de

uma só vez.uma só vez.

Normalmente resulta em caos!Normalmente resulta em caos!

Page 19: Estratégias de Teste de Software

IntegraçãoIntegração descendente descendente ( top_down) ( top_down)

É uma abordagem incremental para a É uma abordagem incremental para a construção da estrutura de um construção da estrutura de um programa.programa.

Os módulos são integrados movendo-Os módulos são integrados movendo-se descendentemente pela hierarquia se descendentemente pela hierarquia de controle, começando com o módulo de controle, começando com o módulo principal. principal.

Os módulos subordinados podem ser Os módulos subordinados podem ser incorporados à estrutura primeiro-em-incorporados à estrutura primeiro-em-profundidade ou primeiro-em-largura.profundidade ou primeiro-em-largura.

Page 20: Estratégias de Teste de Software

Integração ascendente Integração ascendente (botom_up)(botom_up)

Começa a construção e testes com Começa a construção e testes com módulos atômicos.módulos atômicos.

Os componentes são integrados de Os componentes são integrados de baixo para cima.baixo para cima.

A necessidade de pseudocontrolados A necessidade de pseudocontrolados é eliminada é eliminada

Page 21: Estratégias de Teste de Software

Teste de regressãoTeste de regressão Cada vez que um módulo novo é Cada vez que um módulo novo é

adicionado como parte do teste de adicionado como parte do teste de integração, o software se modifica. integração, o software se modifica. Estas modificações podem causar Estas modificações podem causar problemas em funções que antes problemas em funções que antes funcionavam sem problemas.funcionavam sem problemas.

O teste de regressão é a re-O teste de regressão é a re-execução de um subconjunto de execução de um subconjunto de testes que já foram conduzidos testes que já foram conduzidos para garantir que as modificações para garantir que as modificações não produzam efeitos indesejáveis não produzam efeitos indesejáveis

Page 22: Estratégias de Teste de Software

Teste de ValidaçãoTeste de Validação Verifica se o software funciona como esperado pelo Verifica se o software funciona como esperado pelo

cliente.cliente.Formas de se validar:Formas de se validar:Teste da caixa-preta:Teste da caixa-preta: demonstra conformidade com os demonstra conformidade com os

requisitos ( definir classes de testes, casos de teste)requisitos ( definir classes de testes, casos de teste)

Revisão da configuração:Revisão da configuração: certificar-se de que todos os certificar-se de que todos os elementos da configuração do software tenham sido elementos da configuração do software tenham sido adequadamente desenvolvidos e catalogados e tenham adequadamente desenvolvidos e catalogados e tenham detalhes que permitam apoiar a fase de suporte ao ciclo detalhes que permitam apoiar a fase de suporte ao ciclo de vida.de vida.

Teste Alfa e BetaTeste Alfa e Beta: conduzidos pelo cliente. : conduzidos pelo cliente. - No teste alfa o desenvolver está presente.- No teste alfa o desenvolver está presente. - O teste Beta é conduzido pelo cliente em seu - O teste Beta é conduzido pelo cliente em seu

ambiente, ambiente, sem o desenvolvedor estar presente.sem o desenvolvedor estar presente.

Page 23: Estratégias de Teste de Software

Teste de Sistema Teste de Sistema É um série de diferentes testes cuja finalidade É um série de diferentes testes cuja finalidade

principal é exercitar por completo o sistema principal é exercitar por completo o sistema baseado em computador.baseado em computador.

Teste de recuperaçãoTeste de recuperação Força o software a falhar e verifica se a recuperação Força o software a falhar e verifica se a recuperação

é adequadamente realizada.é adequadamente realizada.Teste de segurançaTeste de segurança Verifica se os mecanismos de proteção incorporados Verifica se os mecanismos de proteção incorporados

a um sistema vão protegê-lo de invasão imprópria.a um sistema vão protegê-lo de invasão imprópria.Teste de estresseTeste de estresse Executa um sistema de modo que demanda Executa um sistema de modo que demanda

recursos em quantidade, freqüência e volumes recursos em quantidade, freqüência e volumes anormais.anormais.

Teste de desempenhoTeste de desempenho Testa o desempenho do software durante a Testa o desempenho do software durante a

execução, no contexto de um sistema integrado.execução, no contexto de um sistema integrado.

Page 24: Estratégias de Teste de Software

Outras categorias de TesteOutras categorias de Teste

Page 25: Estratégias de Teste de Software

Tipos de TesteTipos de Teste

TesteTeste de Funcionalidadede Funcionalidade: Enfatiza : Enfatiza a validação das funcionalidades a validação das funcionalidades requeridas nos serviços, métodos e requeridas nos serviços, métodos e use cases.  use cases. 

TesteTeste de Integridadede Integridade: Avalia a : Avalia a robustez (resistência à falhas) do robustez (resistência à falhas) do sistema, a flexibilidade da linguagem, sistema, a flexibilidade da linguagem, a sintaxe e a usabilidade do código. a sintaxe e a usabilidade do código.

Page 26: Estratégias de Teste de Software

Tipos de TesteTipos de Teste

TesteTeste de Cargade Carga: Avalia a resposta do : Avalia a resposta do sistema em condições extremas de carga sistema em condições extremas de carga de informações. Um de informações. Um testeteste de carga é, na de carga é, na verdade, um verdade, um testeteste de performance voltado de performance voltado para a avaliação do sistema em condições para a avaliação do sistema em condições extremas ou de limite. extremas ou de limite.

TesteTeste de Performancede Performance: Monitora o perfil : Monitora o perfil do tempo, incluindo execução de fluxo, do tempo, incluindo execução de fluxo, acesso a dados, funcionalidade e chamadas acesso a dados, funcionalidade e chamadas ao sistema para identificar o gargalo e ao sistema para identificar o gargalo e processos ineficazes. processos ineficazes.

Page 27: Estratégias de Teste de Software

Tipos de TesteTipos de Teste

TesteTeste de Configuraçãode Configuração: Assegura : Assegura as funcionalidades pretendidas dos as funcionalidades pretendidas dos diferentes hardwares e/ou softwares diferentes hardwares e/ou softwares de configuração. de configuração.

Page 28: Estratégias de Teste de Software

Tipos de TesteTipos de Teste

TesteTeste de Ciclo de Negóciosde Ciclo de Negócios - Garante - Garante que o sistema funciona apropriadamente que o sistema funciona apropriadamente durante um ciclo de atividades relativas ao durante um ciclo de atividades relativas ao negócio e que ao final desse ciclo todos os negócio e que ao final desse ciclo todos os resultados esperados foram obtidos. resultados esperados foram obtidos.

TesteTeste de Interfaces do Usuáriode Interfaces do Usuário - - Assegura que o comportamento, Assegura que o comportamento, requisitos, projeto gráfico e navegacional requisitos, projeto gráfico e navegacional definidosdefinidos

Page 29: Estratégias de Teste de Software

TesteTeste de Recuperação de de Recuperação de FalhasFalhas - Garante que o sistema - Garante que o sistema atende aos requisitos definidos atende aos requisitos definidos para recuperação de falhas. para recuperação de falhas. Normalmente as seguintes Normalmente as seguintes situações são abordadas: situações são abordadas: 

Falta de energia no cliente; Falta de energia no cliente; Falta de energia no servidor; Falta de energia no servidor; Perda da comunicação cliente-servidor; Perda da comunicação cliente-servidor; Problemas no sistema operacional; Problemas no sistema operacional; Problemas de endereçamento de Problemas de endereçamento de

memória; memória; Ou qualquer outro erro que faça com Ou qualquer outro erro que faça com

que o sistema aborte de forma abrupta que o sistema aborte de forma abrupta sua execuçãosua execução. .

Page 30: Estratégias de Teste de Software

Tipos de TesteTipos de Teste TesteTeste de Instalação: Assegura a de Instalação: Assegura a

instalação, como desejada, nos diferentes instalação, como desejada, nos diferentes hardwares e/ou softwares de configuração hardwares e/ou softwares de configuração e sob diferentes condições como, por e sob diferentes condições como, por exemplo, espaço em disco insuficiente. exemplo, espaço em disco insuficiente.

TesteTeste de Estrutura: Focaliza a avaliação de Estrutura: Focaliza a avaliação do design. Normalmente é realizado para do design. Normalmente é realizado para aplicações voltadas para a Web, aplicações voltadas para a Web, garantindo que todos os links estejam garantindo que todos os links estejam conectados. conectados.

Page 31: Estratégias de Teste de Software

Tipos de TesteTipos de Teste TesteTeste de Concorrência: Valida a de Concorrência: Valida a

capacidade do sistema de lidar com capacidade do sistema de lidar com múltiplos atores requisitando múltiplos atores requisitando recursos (dados, memória) ao recursos (dados, memória) ao mesmo tempomesmo tempo

TesteTeste de Usabilidade: Focaliza nos de Usabilidade: Focaliza nos fatores humanos, estética, fatores humanos, estética, consistência da interface com o consistência da interface com o usuário, help on-line e agentes, usuário, help on-line e agentes, manual e material de treinamentomanual e material de treinamento