Fundamentos de Teste de Software



Documentos relacionados
Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Engenharia de Software II

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Fundamentos de Teste de Software

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Reaproveitando algoritmos

Disciplina: Técnicas de Racionalização de Processos Líder da Disciplina: Rosely Gaeta NOTA DE AULA 04 O PROJETO DE MELHORIA DOS PROCESSOS

3.1 Definições Uma classe é a descrição de um tipo de objeto.

PMBoK Comentários das Provas TRE-PR 2009

Gerenciamento da Integração (PMBoK 5ª ed.)

Aula 4 Estatística Conceitos básicos

3 Qualidade de Software

Guia de utilização da notação BPMN

Algoritmos e Programação Parte Teórica

Engenharia de Software II

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

Processos de gerenciamento de projetos em um projeto

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 11 PESQUISA DE MERCADO

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Leslier Soares Corrêa Estácio de Sá / Facitec Abril/Maio 2015

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

IES-300. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

Gestão e estratégia de TI Conhecimento do negócio aliado à excelência em serviços de tecnologia

Exemplo: Na figura 1, abaixo, temos: Clique aqui para continuar, que é a primeira atividade que você precisa realizar para iniciar seus estudos.

Resolução da lista de exercícios de casos de uso

3. Fase de Planejamento dos Ciclos de Construção do Software

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Probabilidade - aula I

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Gerenciamento de Projetos Modulo VIII Riscos

Teste de Software Parte 1. Prof. Jonas Potros

Medindo a Produtividade do Desenvolvimento de Aplicativos

Montagem e Manutenção. Luís Guilherme A. Pontes

Áreas de Conhecimento de Gerenciamento de Projetos

O planejamento do projeto. Tecnologia em Gestão Pública Desenvolvimento de Projetos Aula 8 Prof. Rafael Roesler

Princípios do teste de software

TERCEIRIZAÇÃO NA MANUTENÇÃO O DEBATE CONTINUA! Parte 2

UNIVERSIDADE FEDERAL DE SANTA MARIA COLÉGIO TÉCNICO INDUSTRIAL DE SANTA MARIA Curso de Eletrotécnica

compreensão ampla do texto, o que se faz necessário para o desenvolvimento das habilidades para as quais essa prática apresentou poder explicativo.

O Tema Progresso e o Princípio de Gerenciar por Estágios. Palavras Chave: Estágios de Gerenciamento. Progresso. Controle. Projetos. PRINCE2.

Fundamentos de Teste de Software

GESTÃO ESTRATÉGICA DE CUSTOS EM SAÚDE. Os custos das instituições

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Primeiros passos das Planilhas de Obra v2.6

Eventos independentes

o(a) engenheiro(a) Projeto é a essência da engenharia 07/02/ v8 dá vazão

4.1. UML Diagramas de casos de uso

Os Estilos de Pesquisa na Computação. TCC Profº Carlos José Maria Olguín

PLANEJAMENTO ESTRATÉGICO

Coleta de Dados: a) Questionário

Cursos livres EAD GUIA BÁSICO PARA USO CORPORATIVO.

Fundamentos de Teste de Software

1 Um guia para este livro

As Organizações e a Teoria Organizacional

RECRUTAMENTO E SELEÇÃO

5 Considerações finais

Gerenciamento de Projetos Modulo III Grupo de Processos

Banco de Dados Orientado a Objetos

Unidade I Conceitos BásicosB. Conceitos BásicosB

Perfis. de Investimento

Aula 1. Introdução à Avaliação Econômica de Projetos Sociais

Qualidade é o grau no qual um conjunto de características inerentes satisfaz a requisitos. ISO 9001:2008

Micro Mídia Informática Fevereiro/2009

Exercícios Teóricos Resolvidos

A Conferência Geral da Organização Internacional do Trabalho:

Arquivo original em Inglês: Management/Documents/Risk-IT-Brochure.pdf

Processos de Gerenciamento de Projetos. Planejamento e Controle de Projetos 5 TADS FSR. Processos

Especificação do Trabalho

BSC Balance Score Card

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

2 Trabalhos relacionados

Produção musical para jogos eletrônicos

CAPÍTULO 4 CIRCUITOS SEQUENCIAIS II: CONTADORES ASSÍNCRONOS

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Unidade 9: Diálogos deliberativos

Governança de TI. Governança da TI. Visão Geral. Autor: João Cardoso 1

CA Mainframe Chorus for Storage Management Versão 2.0

6. Pronunciamento Técnico CPC 23 Políticas Contábeis, Mudança de Estimativa e Retificação de Erro

TIPOS DE REUNIÕES. Mariangela de Paiva Oliveira. As pessoas se encontram em diferentes âmbitos:

CAPÍTULO 25 COERÊNCIA REGULATÓRIA

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

FASF - FACULDADE SAGRADA FAMILIA - CURSO DE ADM 5º PERIODO CONTROLE INTERNO. Aula 3 e 4

Manual de Risco Operacional

Descrição do Produto. Altus S. A. 1

Normas Internacionais de Avaliação. Preço Custo e valor Mercado Abordagem de valores Abordagens de avaliação

Desenvolvimento de uma Etapa

Bem-vindo ao tópico Múltiplas filiais.

6.1 A Simulação Empresarial tem utilização em larga escala nos cursos de Administração, em seus diversos níveis de ensino no Brasil?

Neo Solutions Manual do usuário Net Contábil. Índice

Gravando Dados e Cópias de CD s com o Nero 6.0 Disciplina Operação de Sistemas Aplicativos I

3 Análise para a definição da estratégia

A efetividade da educação à distância para a formação de profissionais de Engenharia de Produção

Transcrição:

Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 6 Teste Dinâmico: Técnicas de Especificação

SUMÁRIO INTRODUÇÃO... 3 TÉCNICAS BASEADAS NA ESTRUTURA... 4 1. Fluxograma... 5 2. Grafos de Controle de Fluxo... 7 3. Teste de Cobertura de Declaração... 9 TÉCNICAS BASEADAS NA EXPERIÊNCIA... 11 1. Descoberta de Erro... 12 2. Exploratória... 13 CONCLUSÃO... 14 2

INTRODUÇÃO O entendimento das técnicas para elaboração de um projeto de teste é primordial para a consolidação do planejamento e preparação da execução dos testes dentro de um determinado projeto. As técnicas de projeto de teste reúnem as melhores práticas e consolidam padrões para apoiar o processo de elaboração do caso de teste, onde o analista de teste pode, a partir de um conjunto de técnicas existentes, selecionar um subconjunto que melhor se aplica ao contexto do projeto em questão. As técnicas baseadas na especificação, ou caixa preta, abrangem um conjunto de práticas para exercitar um sistema tomando como entrada as especificações deste. Não apenas os requisitos funcionais, mas também os não-funcionais são o ponto de partida para projetar os testes que podem ser através das técnicas: partição em equivalência; análise de valor fronteira; tabelas de decisão e diagramas de transição de estados. Com o objetivo de complementar o conhecimento básico para apoiar o desenvolvimento dos projetos de teste, este capítulo irá abordar as técnicas baseadas na estrutura ou caixa branca e baseadas na experiência. Figura 1: Tipos de Técnicas para Projetar Casos de Teste 3

TÉCNICAS BASEADAS NA ESTRUTURA As técnicas de teste baseadas na estrutura, ou caixa branca, são utilizadas para explorar estruturas ou componentes do sistema nos mais diversos níveis. A estrutura de um sistema pode ser compreendida como tudo aquilo utilizado para a construção de um determinado software como, por exemplo, a estrutura do código, aspectos arquiteturais, estrutura de um menu ou até de uma webpage. Para explorar, no nível de componente, as estruturas de interesse serão as estruturas do programa, como as decisões e loops. No nível de integração, pode-se exercitar como os componentes interagem uns com os outros e, no nível de sistema, como os usuários irão interagir com um menu, por exemplo. Figura 2: Níveis de Teste Caixa Branca Ao invés de verificar se um componente ou sistema funciona corretamente, conforme especificado, as técnicas de caixa branca irão focar na garantia de que um determinado elemento dessas estruturas está executando conforme projetado. Existem diversas técnicas para realização do teste caixa branca. Dentre elas, podemos citar: Fluxograma; Grafos de Controle de Fluxo; e Teste e Cobertura de Declaração. 4

1. Fluxograma Um fluxograma é uma estrutura visual simples e representa a forma que um código pode ser lido. Sua representação se dá através de dois símbolos: Retângulos para representarem declarações sequenciais; e Losango para representar as decisões. Mais de uma declaração sequencial pode ser escrita dentro de um único retângulo, contanto que não exista nenhuma decisão na sequência. Qualquer decisão é representada pelo losango, incluindo seus loops associados. Por exemplo, podemos analisar o retângulo com um pseudocódigo que representa um programa sequencial. A segunda figura representa uma estrutura de decisão ou seleção, e a terceira figura representa um fluxograma para uma estrutura de loop. Figura 3: Estruturas de um Fluxograma Vamos analisar o exemplo com base no código mostrado na Figura 4, que contém estruturas não executáveis, presentes antes do Begin e nas linhas brancas do código. 5

Figura 4: Código do Programa MaxadMean Figura 5: Fluxograma do Programa MaxadMean O fluxograma na Figura 5 representa o código da Figura 4. 6

2. Grafos de Controle de Fluxo Os grafos de controle de fluxo fornecem um mecanismo para representar os pontos de decisão e o fluxo de controle dentro de um código. São similares a um fluxograma, exceto pelo fato de que eles apresentam apenas as decisões. A elaboração do grafo se dá através da análise, exclusivamente das declarações que afetam o fluxo de controle. O grafo é feito com dois símbolos: Nós, que representam qualquer ponto onde o fluxo de controle pode ser modificado, ou pontos, onde a estrutura de controle retorna para o fluxo principal; e Arestas, que são as linha que se conectam a qualquer 2 nodos. A área fechada que contém um conjunto de nós e arestas é chamada de região, conforme mostrado na Figura 6. Figura 6: Forma de Representar um Grafo de Controle de Fluxo É possível desenhar sub-grafos para representar estruturas individuais como, por exemplo: IF then else Do While Repeat Until 7

Figura 7: Sub-grafos de Controle de Fluxo Para desenhar um grafo de controle de fluxo, os passos a seguir devem ser seguidos. Primeiramente, devemos fazer a análise do componente para identificar todas as estruturas de controle, conforme a Figura 8 apresentada; Depois, adicionar um nó para cada declaração de decisão e expandir os nodos pela substituição do sub-grafo apropriado, representando a estrutura em um determinado ponto de decisão, de acordo com a Figura 9. Figura 8: Código do Programa MaxadMean com Estruturas de Controle Identificadas 8

Figura 9: Grafo de Controle de Fluxo com seu Sub-grafo expandido 3. Teste de Cobertura de Declaração O teste de cobertura de declaração tem o foco de exercitar todas as declarações de programação, assim como analisar apenas a parte executável do código. Se o objetivo é testar todas as declarações executáveis, tem-se 100% de cobertura das declarações e, nesse caso, não se conta as declarações não executáveis. Figura 10: Objetivos do Teste de Cobertura de Declaração 9

A cobertura do código deve ser mensurada em um projeto de desenvolvimento, haja vista ser uma medida simples, pois um projeto de teste que não tenha exercitado todas as suas estruturas não deve ser considerado completo. Vamos analisar o seguinte exemplo, com o pseudo-código e o fluxograma representados na Figura 11. Figura 11: Pseudo-código e Fluxograma Se você analisar o fluxograma, pode observar que as estruturas executáveis estão representadas pelos retângulos e losangos. Um grafo de fluxo é menos complexo e mostra apenas os detalhes estruturais, em particular onde o programa se ramifica e se reúne. A partir daí, é possível fazer uma versão híbrida do grafo de fluxo para determinar a cobertura de declaração. Para se fazer isso, primeiramente, se constrói um gráfico de controle de fluxo convencional e adiciona-se um nó para cada ramo em que há uma ou mais declarações. Com isso, temos o grafo da Figura 12. 10

Figura 12: Grafo de Controle de Fluxo Híbrido Com base nessa estrutura, 100% de cobertura do código pode ser alcançada através da escrita de um único caso de teste que segue o caminho acdfgh. Se você definir A=2 e X=2, todas as declarações serão executadas pelo menos uma vez. TÉCNICAS BASEADAS NA EXPERIÊNCIA As técnicas baseadas em experiência são aquelas em que se recorre quando não há especificação adequada para utilizar com base e criar os casos de teste. Também conhecidas como exploratórias, as técnicas não sistemáticas podem ser vistas como uma forma suplementar às sistemáticas. Elas podem ser utilizadas antes ou depois da aplicação dos métodos sistemáticos, no entanto, nunca devem ser encaradas como a única forma de realização dos testes em um projeto. Elas utilizam a experiência do usuário e do testador para determinar as áreas mais importantes do sistema onde possíveis erros acontecerão. Mesmo quando há especificação disponível, vale à pena complementar os testes estruturados com as técnicas baseadas na experiência. 11

Figura 13: Características das Técnicas Baseadas na Experiência As técnicas podem variar desde uma abordagem simplista, como o teste ad hoc e descoberta de erro, até as mais sofisticadas como o teste exploratório. Todas fazem uso do conhecimento e experiência de quem está realizando os testes ao invés de sistematicamente explorar o sistema. 1. Descoberta de Erro Descoberta de Erro é a técnica onde a experiência do testador é utilizada para antecipar falhas que possam vir ocorrer em um sistema e projetar testes para atingir essas falhas. Se aplicada após a utilização de técnicas sistemáticas e pode destacar áreas suspeitas e aspectos da aplicação que não foram vistos anteriormente. A principal desvantagem da técnica é que sua efetividade varia de acordo com a experiência de quem irá executá-la. No entanto, se um grupo de testadores e usuários contribuírem para a construção de uma lista dos possíveis erros e os testes para atacálos, a fraqueza da técnica pode ser facilmente superada. 12

Figura 14: Características da Descoberta de Erro 2. Exploratória O teste exploratório é a técnica que combina a experiência do testador com uma abordagem estruturada para testar onde as especificações estão inadequadas ou indisponíveis e onde existe a pressão do tempo. Pode ser entendido como uma forma estruturada de buscar erros e usar seus resultados para decidir o caminho a ser seguido, se devemos ou não continuar o teste. O teste exploratório, simultaneamente, aprende, projeta e executa os testes. Dessa forma, o teste exploratório maximiza a quantidade de teste que pode ser alcançada dentro de um intervalo pré-definido de tempo. Figura 14: Característica do Teste Exploratório 13

CONCLUSÃO Portanto, nesse curso finalizamos as principais técnicas para apoiar a escrita dos casos de teste e a apostila irá complementar o que apresentamos na aula. A tabela abaixo consolida as técnicas apresentadas nesse modulo. No entanto, a literatura e prática de mercado é bastante abrangente e existem outras técnicas que não foram abordadas nesse curso e podem ser utilizadas para otimizar o processo de elaboração dos casos de teste. Tabela 1: Técnicas para Especificação de Casos de Teste Tipo Baseado na Especificação ou Caixa Preta Baseado na Estrutura ou Caixa Branca Baseado na Experiência Técnica Partição em equivalência Análise de Valor de Fronteira Tabelas de Decisão Diagramas de Transição de Estados Fluxograma Grafos de Controle de Fluxo Teste de Cobertura de Declaração Descoberta de Erro Teste Exploratório 14