Engenharia de Testes
Transcript of Engenharia de Testes
INTRODUÇÃO A TESTE DE SOFTWARE
Adriana C. NascimentoDanilo DiasLuma da R. SeixasYuko Mitsuya
TESTE
CONCEITO DE TESTE:
“Exame ou prova para avaliar uma capacidade ou aptidão de alguém, ou para determinar a qualidade, natureza ou comportamento de algo.”
(Fonte: Minidicionário da língua Portuguesa)
TESTE DE SOFTWARE
CONCEITO:
“É o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado”.
“É uma das fases do processo de engenharia de software que visa atingir um nível superior da qualidade de software.”
TESTE DE SOFTWARE
É parte de um tema mais amplo chamado Verificação e Validação (V&V), onde:
Verificação - refere-se ao conjunto de atividades que garante que o software implementa corretamente uma função específica, e;
Validação - refere-se ao conjunto de atividades que garante que o software que foi construído atende às exigências do cliente.
TESTE DE SOFTWARE
Logo,
“Testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado.”
TESTE DE SOFTWARE
OBJETIVO:
“Revelar o número máximo de falhas 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”.
TESTE DE SOFTWARE
IMPORTÂNCIA:
Economia:Quanto mais cedo um defeito for encontrado, mais barato é o custo da sua correção;
Qualidade:Devem ser encarados como investimento em qualidade.
TESTE DE SOFTWARE
DEFEITO, ERRO, FALHAS
TESTE DE SOFTWAREElementos Essenciais
Caso de Teste:
• Condição particular a ser testada;
• Composta por valores de entrada, restrições, e resultado ou comportamento esperado.
TESTE DE SOFTWAREElementos Essenciais
Procedimento de Teste:
• Descrição dos passos necessários para executar um caso de teste, ou grupo de casos;
TESTE DE SOFTWAREElementos Essenciais
Critério de Teste:
• Selecionar e avaliar os casos de teste;
• Estabelecer um nível elevado de confiança na correção do produto.
TESTE DE SOFTWARECritérios de Teste
Cobertura de Testes:
• Identificação de partes do programa que devem ser executadas para garantir a qualidade do software;
• Indicar quando o mesmo foi suficientemente testado.
TESTE DE SOFTWARECritérios de Teste
Adequação de Casos de Teste:
• Verificar se um conjunto de casos de teste satisfaz aos requisitos de teste estabelecidos pelo critério;
TESTE DE SOFTWARECritérios de Teste
Geração de Casos de Teste:
• Quando o critério define regras e diretrizes para geração dos casos de teste de um produto que esteja de acordo com o critério de adequação definido.
TIPOS DE TESTE
• Os tipos de teste normalmente são definidos em função das características ou dimensões da qualidade que serão avaliadas no software.
• "A totalidade de características de um produto de
software que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas".(NBR 13596)
TIPOS DE TESTE
• O que são necessidades explícitas e implícitas? • As explícitas são condições e objetivos propostos
por aqueles que produzem o software. • As implícitas são necessidades subjetivas dos
usuários, devem permitir atingir metas como: efetividade, produtividade, segurança e etc.
TIPOS DE TESTE A ISO/IEC 9126 (NBR 13596) fornece um modelo que define 6 amplas categorias de características de qualidade, por sua vez, sub-divididas em sub-características.
Característica Sub-características
Funcionalidade: O conjunto de funções satisfaz as necessidades explicitas e implícitas para a finalidade a que se destina o produto?
Adequação, acurácia, interoperabilidade, segurança de acesso e conformidade.
Confiabilidade: O desempenho se mantém ao longo do tempo e em condições estabelecidas?
Maturidade, tolerância a falhas e recuperabilidade.
Usabilidade: É fácil utilizar o software? Inteligibilidade, apreensibilidade e operacionalidade.
Eficiência: Os recursos e os tempos utilizados são compatíveis com o nível de desempenho requerido para o produto?
Comportamento em relação ao tempo e comportamento em relação aos recursos
Manutenibilidade: Há facilidade para correções, atualizações e alterações?
Analisabilidade, modificabilidade, estabilidade e testabilidade.
Portabilidade: É possível utilizar o produto em diversas plataformas com pequeno esforço de adaptação?
Adaptabilidade, capacidade para ser instalado, capacidade para substituir e conformidade.
TIPOS DE TESTE A escolha do tipo de teste dependerá do grau de importância de cada uma das características de qualidade que serão avaliadas no software. Os tipos de testes mais comuns segundo o Guide to the CSTE Common Body of Knowledge do QAI são:
Tipos de testes Descrição
Teste de Estresse Avalia o desempenho do sistema com um volume de acesso/trasações acima da média esperada em condições extremas de uso.
Teste de Execução Avalia se o sistema atende os requisitos de performance (proficiência) com um volume de acesso/trasanções dentro do esperado.
Teste Contigência Avalia se o sistema retorna a um status operacioal após uma falha.
Teste de Operação Avalia se o sistema (aplicação, pessoal, procedimentos e manuais) pode ser executado corretamente em ambiente de pré-produção.
Teste de Conformidade
Avalia se o sistema foi desenvolvido em consônancia com os padões e metodologia estabelecidos no projeto.
Teste de Segurança Avalia se o sistema foi desenvolvido em consonância com os padrões de segurança da organização.
Teste de Regressão Avalia por meio do ré-teste se uma funcionalidade que estava funcionando ainda funciona após uma modificação no sistema.
Teste de Integração Avalia se a interconexão entre as aplicações funciona corretamente.
PROCESSO ESTRUTURA DETESTE DE SOFTWARE
• Um processo estruturado de software tem a
finalidade de formalizar as fases, atividades, papéis, artefatos e responsabilidades necessárias para o planejamento e a execução dos testes sistematicamente.
PROCESSO ESTRUTURA DETESTE DE SOFTWARE
O ciclo de vida do TMAP é dividido em sete fases distintas, como podemos observar a seguir: • Planejamento: Nesta fase é realizada o planejamento e a
definição geral da estratégia e planos de testes. • Controle:Nesta fase são realizados o controle e a
monitoração das atividades planejadas. • Configuração e manutenção da infra-estrutura:Nesta fase
é preparada e mantida a infra-estrutura(software e hardware) necessária para a plena realização dos testes.
PROCESSO ESTRUTURA DETESTE DE SOFTWARE
• Preparação: É realizado o refinamento da estratégia de testes e plano de testes criados na fase de planejamento.
• Especificação:Nesta fase é realizada a especificação dos casos
de testes e demaisdocumentos. • Execução: É realizada a execução dos testes, reporte do
progresso e indicadores de qualidade. • Conclusão:Fase do processo de testes é avaliada afim de
promover as melhorias para os próximos projetos.
9/29/2010
Níveis de Teste• As atividades de teste são normalmente divididas em
níveis.• Define a fase do processo de desenvolvimento de
software na qual os testes serão realizados.o Teste de unidadeo Teste de integraçãoo Teste de sistemao Teste de aceitação
9/29/2010
Níveis de TesteTeste de Unidade
• Objetiva explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeito de lógica e de implementação em cada módulo, separadamente.
• Universo alvo são pequenos trechos de código.
9/29/2010
Níveis de TesteTeste de Integração
• Visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.
• Integração entre os componentes do sistema (classes, módulos, sub-sistemas, etc).
9/29/2010
Níveis de TesteTeste de Sistema
• Avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final.
• Verificação se o produto satisfaz os seus requisitos.
9/29/2010
Níveis de TesteTeste de Aceitação
• É feita uma simulação, por um grupo restrito de usuários, para a realização de operações de rotina do sistema de modo a verificar se o seu comportamento está de acordo com o solicitado.
• Verifica se o sistema satisfaz os requisitos (funcionais e não funcionais), sob o ponto de vista do usuário final.
9/29/2010
Modelo V• Planejamento e projeto devem ocorrer
de cima para baixo.
9/29/2010
Técnica de Teste de Software• Objetiva encontrar falhas no software.
• São classificadas de acordo com a origem das informações utilizadas para estabelecer os requisitos de teste.
• Pode-se estabelecer uma estratégia de teste que contenple as vantagens e os aspectos complementares dessas técnicas.o Técnica Estruturalo Técnica Funcional
9/29/2010
Técnica Estrutural• Também chamado teste caixa-branca• Técnica de teste que avalia o comportamento
interno do componente de software.• Trabalha diretamente sobre o código fonte do
componente de software e avalia:o Teste condição;o Teste de fluxo de dados;o Teste de ciclos; eo Teste de caminhos lógicos.
9/29/2010
Técnica Estrutural• Os aspectos válidos dependem:
o Da complexidadeo Da tecnologia
• É desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do componente de software.
• Todas as variações de estruturas de condição são testadas.
9/29/2010
Técnica Estrutural• Técnica recomendada para os níveis de Teste de
Unidade e Teste de Integração.• A responsabilidade principal fica a cargo dos
desenvolvedores do sistema.• Auxilia na redução de problemas existentes nas
pequenas funções ou unidades que compõem o software.
9/29/2010
Técnica Funcional• Também chamada de teste caixa-preta.• NÃO considera o comportamento interno do
software.• Os dados de entrada são fornecidos, o teste é
executado e o resultado obtido é comparado a um resultado esperado.
9/29/2010
Técnica Funcional• O componete de software a ser testado
pode ser um método, uma função interna, um programa, um componete, um conjunto de componentes ou mesmo uma funcionalidade.
• É aplicável a todos os níveis de teste.
9/29/2010
Critérios de testeParticionamento de classes de
equivalência
• Divide o domínio da entrada de um programa em classes de equivalência. A partir das quais os casos de teste são derivados
• Minimiza o número de casos de teste de cada classe, pois em princípio todos os elementos de uma classe devem se comportar de maneira equivalente.
• Classe equivalente representa um conjunto de estados válidos e inválidos para uma condição de entrada.
9/29/2010
Critérios de testeAnálise de Valor Limite
• Erros tendem a ocorrer nos limites do domínio de entrada ao invés do centro.
• Explorar os limites dos valores de cada classe de equivalência para preparar os casos de teste.
9/29/2010
Critérios de testeGrafo de Causa-efeito
• Verifica o efeito combinado de dados de entrada.
• As causas (condições de entrada) e os efeitos (ações) são identificados e combinados em um grafo.
9/29/2010
Critérios de testeGrafo de Causa-efeito
• Esse critério é baseado em quatro passos:1.Para cada módulo de causa e efeito são
relacionados, atribuindo-se um identificador para cada um.
• O grafo de causa-efeito é elaborado.• Transforma-se o grafo de causa-efeito
numa tabela de decisão.• As regras da tabela são convertidas em
casos de teste.