engenharia de testes

Post on 11-Jun-2015

3.948 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related