Fundamentos de Teste de Software

Documentos relacionados
Testes de software - Teste funcional

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

Organização para Realização de Teste de Software

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

05/09/2013. Ciclo de vida de um Sistema de Informação

Organização para Realização de Teste de Software Quando o teste se inicia há um conflito de interesses:

SSC 0721 Teste e Validação de Software

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Padrão para Especificação de Requisitos de Produto de Multimídia

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Engenharia de Requisitos

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Unidade 4 Teste na Implantação do Sistema

Processos de software

RUP RATIONAL UNIFIED PROCESS

Introdução a Teste de Software

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

Engenharia Software. Ení Berbert Camilo Contaiffer

Teste de Software: Teste Funcional. Simone Senger Souza ICMC/USP

Introdução a Testes de Software. Ricardo Argenton Ramos

Engenharia de Software

1. A principal razão de dividir o processo de teste em tarefas distintas é:

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

As técnicas de concepção

Introdução aos Testes de Software

2 Estado da Arte. 2.1.Geração automática de casos de teste

Engenharia de Requisitos

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

Verificação e Validação

Engenharia de Software 2012/3 Aula 5 Modelagem de Sistemas

Máquinas de Estados Finitos. Aula 19 Prof. Abel Guilhermino

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Teste de Software: conceitos, técnicas e benefícios

VERIFICAÇÃO & VALIDAÇÃO

RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES. Prof. Fabiano Papaiz IFRN

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

ENGENHARIA DE USABILIDADE E INTERFACES

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

EXPERIMENTO ALEATÓRIO : Experimento que pode fornecer diferentes resultados, embora seja repetido toda vez da mesma maneira.

ENGENHARIA DE SOFTWARE

Engenharia de Requisitos

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

- 8ª Lista de Exercícios -

O Fluxo de Requisitos

Engenharia de Software.

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Engenharia de Software II

Processos de Software

Teste de Software. Karen Frigo Busolin Novembro / 2010

Engenharia de Software

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

Engenharia de Software. Projeto de Arquitetura

ENGENHARIA DE SOFTWARE O QUE SÃO TESTES? TESTES TESTES TESTES 26/08/2014. São pontuais; São previsíveis; São finitos;

QUALIDADE DE SOFTWARE DEFINIÇÕES / RESUMO. Apostilas de NORMAS, disponíveis no site do professor. Prof. Celso Candido ADS / REDES / ENGENHARIA

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

- 7ª Lista de Exercícios -

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

MÓDULO 16 PLANEJAMENTO DE CONSTRUÇÃO, TESTES E DOCUMENTAÇÃO DO SISTEMA

AVALIAÇÃO DE PRODUTOS DE SOFTWARE

ENGENHARIA DE SOFTWARE

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Engenharia de Requisitos

EEL - USP. Aula 2 Projeto do Produto, do processo e planejamento da produção. Prof. Dr. Geronimo

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

CARACTERÍSTICAS ESTÁTICAS DE SISTEMAS DE MEDIÇÃO

Projeto de um Controlador PID

Arquitetura de software

2. Quais dos seguintes testes não é um teste do tipo funcional?

Guia do Processo de Teste Metodologia Celepar

Análise e Projeto Orientados a Objetos Aula III Concepção Visão Geral do Sistema. Prof. Bruno E. G. Gomes IFRN

Teste de Software. Proj. Desenvolvimento de Software. Prof. Cleverton Hentz. 30 de agosto de Material Apresentado

Análise e projeto de sistemas

Cadeira: Engenharia de Software

ESPECIFICAÇÃO DE PROJETO AUTOR(ES) : João

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Documento de Requisitos SISTEMA DE APOIO À ESCRITA (SAPES)

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos

Qualidade de software. Prof. Emiliano Monteiro

Análise de Sistemas Aula 4

3 Processo de Teste. 3.1.Visão Geral do Processo

Análise e Projeto de Sistemas

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Documento de Projeto de Software

Versão 3.1br. Foundation Level Model Based Tester

RECURSO - QUESTÃO DISSERTATIVA. Protocolo: Identificador:

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 5 Técnicas de Especificação

SUMÁRIO INTRODUÇÃO... 3 TÉCNICAS PARA PROJETO DE CASOS DE TESTE... 3 1. Baseado na Especificação ou Caixa Preta... 5 1.1 Partição em equivalência... 7 1.2 Análise de Valor de Fronteira... 9 1.3 Tabelas de Decisão... 10 1.4 Diagramas de Transição de Estados... 12 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 para 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. Diante desse cenário, esta aula irá apresentar as técnicas para especificação de casos de teste e detalhar a abordagem baseada na especificação. As demais abordagens, baseada na estrutura e na experiência serão detalhadas na aula 6 do módulo 2. TÉCNICAS PARA PROJETO DE CASOS DE TESTE Existem diversas maneiras para projetar os casos de teste, algumas consideradas muito genéricas e outras mais específicas. Elas também podem variar em seu mecanismo de implementação, podendo ser simples, difíceis e complexas. Figura 1: Características das Técnicas de Especificação 3

Nesse contexto, o conjunto de técnicas para apoiar a atividade de elaborar os casos de teste foram organizadas em 3 categorias, que são elas: Baseada na Especificação ou Caixa Preta, onde toma-se como base o que está escrito sobre o sistema, seja em documentos de requisitos, manuais e diagramas, considerando ambos requisitos funcionais e nãofuncionais. Baseada na Estrutura ou Caixa Branca que, por sua vez, utilizam o código como alicerce para a montagem dos casos de teste. Baseada na Experiência do testador em sistemas similares ou experiência geral na atividade de teste. Figura 2: Categorias das Técnicas Existem outras categorizações de técnicas de teste que também podem ser usadas como ferramentas na hora de projetar os testes, no entanto, foi selecionado um subconjunto essencial para formação da base de conhecimento do perfil profissional para área de teste. Como vantagens do uso de técnicas de especificação dos casos de teste pode-se citar: Apoio para realização do trabalho de maneira sistemática e meticulosa, fazendo com que a especificação de teste seja efetiva e eficiente; Síntese das melhores práticas baseadas nas experiências de muitos testadores; e O projeto dos casos de teste pode ser repetido por outras pessoas, onde é possível explicar como o caso de teste foi projetado utilizando uma determinada técnica, o que faz como que o caso de teste tenha mais credibilidade do que aquele que foi projetado sem nenhum embasamento. 4

Figura 3: Vantagens do Uso das Técnicas de Especificação 1. Baseado na Especificação ou Caixa Preta A técnica baseada na especificação foi, originalmente, chamada de caixa preta porque a técnica analisa o funcionamento do sistema e não o que está dentro da caixa da qual não se conhece nada ou quase nada dos detalhes internos do software avaliado. Esta técnica projeta os casos de teste, de acordo com seu nome, tendo como fonte a análise da descrição do produto sem referenciar o trabalho interno do software. O foco, aqui, é a funcionalidade e depende das descrições ou expectativas que se tem em relação ao produto que será testado. Tal expectativa pode estar mapeada na forma de especificações de requisitos, manuais de usuários ou descrições de processos, e os testes são derivados de especificações ou qualquer outro tipo de modelo que contempla o comportamento esperado de um sistema, e não a partir da definição de como o sistema deve agir para alcançar os objetivos. Vale ressaltar que nem todos os sistemas estão definidos através de uma especificação formal e faz-se necessária a elaboração por parte do testador, do modelo de sistema, entrevistando, por exemplo, os stakeholders para compreender as expectativas para o projeto. 5

Figura 4: Características das Técnicas Baseadas em Especificação As especificações podem conter elementos não funcionais, tais como confiabilidade, usabilidade e performance, que são requisitos que também precisam ser testados. As técnicas de projeto de casos de teste podem ser usadas em todos os estágios e níveis de teste, a partir dos testes de alto nível, teste de componente e integração, onde os casos de teste podem ser projetados baseados no projeto e/ou requisitos. Também podem ser usadas em testes de aceitação e de sistema, haja vista que os casos de teste são projetos a partir dos requisitos do sistema. Figura 5: Tipos e Níveis de Aplicação das Técnicas 6

Nesse contexto, as técnicas para projeto, baseadas na Especificação, são: Partições em equivalência Análise de Valor de Fronteira Tabelas de Decisão Diagramas de Transição de Estados 1.1 Partição em equivalência A técnica Partição em Equivalência é baseada em uma ideia simples de que, em muitos casos, as entradas de um programa podem ser divididas em grupos de entradas similares, que são conhecidos como partições. Figura 6: Partição em Equivalência Com base nessa ideia, observe o exemplo a seguir: Um programa aceita valores inteiros e rejeita qualquer outra coisa. O intervalo de inteiros é infinito, mas o computador irá limitar para um valor finito na direção positiva e negativa. Vamos supor que o programa aceite entre -10.000 e +10.000 e se imaginarmos que o programa separa os números em dois grandes grupos, positivos e negativos, o total de inteiros pode ser dividido em 3 partições: Os valores menores que 0 (zero); 0 (zero); e Os valores maiores que zero. Cada um será, portanto, conhecido como partição em equivalência porque todo valor, dentro da partição, é exatamente equivalente a qualquer outro valor da mesma partição. 7

Também é necessário testar partições não válidas. Para o exemplo mostrado é observado que existe um maior número de partições não válidas do que válidas, onde é o caso que existem mais maneiras de fornecer inputs incorretos do que corretos. Para consolidar, teríamos: Entradas válidas: inteiros entre -10.000 e +10.000. Partição válida: o Os valores menores que 0 (zero); o 0 (zero); e o Os valores maiores que zero. Partição não válida: o Menores que -10.000, Maiores que +10.000, números reais e caracteres não numéricos. Vamos analisar um outro exemplo. Uma transportadora cobra R$29,50 para entregas se o pacote pesa menos de 2Kg, R$39,50 se o pacote pesa entre 2Kg e menos que 5Kg, e R$50,00 se o pacote pesar 5kg ou mais. Qual seria um conjunto de casos de teste válidos utilizando partição em equivalência? As partições válidas são: o Menor que 2kg; o Entre 2Kg e menos que 5Kg; e o Maior que 5kg; Conjunto de entradas válidas: o 1Kg custando R$29,50; o 3,5Kg custando R$39,50; e o 5Kg custando R$50,00. Figura 7: Vantagem da Partição em Equivalência 8

Como vantagem do uso desta técnica pode-se citar a redução do número de casos de teste a serem escritos, haja vista que os valores dentro de uma partição são tratados exatamente da mesma forma por um programa, e é necessário testar apenas um dos valores como representante da partição. 1.2 Análise de Valor de Fronteira Observa-se que uma grande quantidade de erros acumula-se nas fronteiras. A técnica Análise de Valor de Fronteira identifica 2 valores em cada fronteira da partição. Figura 8: Análise de Valor de Fronteira Por exemplo, se um programa deve aceitar uma sequência de números entre 1 e 10, a maior probabilidade de falhas serão: Que valores logo após o fim do limite são erroneamente aceitos; ou Que valores bem próximos ao fim do limite são rejeitados incorretamente. O valor de fronteira é o valor no limite da classe em equivalência. As partições têm fronteiras ou limites. Por exemplo, uma partição de inteiros entre 1 e 99 tem como menor valor o número 1 e maior o número 99, que são, portanto, chamados de valores de fronteiras. Os valores não válidos, por sua vez, também possuem fronteiras, sendo 0 no limite inferior e 100 como limite superior. Para consolidar, teríamos: Entradas válidas: inteiros entre 1 e 99. Fronteiras válidas: o 1 como menor número, e o 99 como maior. Fronteira não válida: 9

o 0 no limite inferior, e o 100 no limite superior. Existe uma variação da técnica que busca 3 valores em cada fronteira, incluindo mais um valor, além de utilizar o valor da fronteira. Para o exemplo acima, a fronteira inferior seria 0, 1, 2 e a superior 98, 99, 100 Considere o seguinte exemplo: Se uma prova tem o limite de aprovação em 40%, mérito em 60% e distinção em 80%, alguns valores fronteiras seriam: Aprovação: 39%, 40% e 41%; Mérito: 59%, 60% e 61%; e Distinção: 79, 80 e 81. Figura 8: Vantagem da Técnica Análise de Valor de Fronteira Como vantagem do uso dessa técnica pode-se citar a possibilidade de se encontrar mais falhas e o foco concentra-se nas fronteiras onde a densidade dos defeitos, de acordo com a experiência, é maior. 1.3 Tabelas de Decisão As especificações geralmente contêm regras de negócio que definem o funcionamento do sistema e as condições em que cada função opera. Decisões individuais são normalmente simples, mas o efeito geral dessas condições lógicas pode ser um tanto quanto complexo. Como testador, é necessário garantir que cada combinação em que essas condições ocorrem sejam testadas. As tabelas de decisões são, portanto, um mecanismo para capturarem todas as decisões lógicas de um sistema. 10

Figura 9: Características da Tabela de Decisão A tabela de decisão deve ter uma estrutura que lista todas as condições de entrada e todas as ações que podem surgir a partir delas, e estão estruturadas de forma que as linhas representam as condições e suas possíveis ações. As regras de negócio que envolvem combinações de condições para produzir um conjunto de ações estão organizadas no topo. Portanto, cada coluna representa um possível caso de teste, haja vista que ele aborda as entradas e saídas esperadas. Figura 10: Tabela de Decisão O número de condições e ações pode ser um tanto quanto alto, mas geralmente o número de combinações que produz uma ação é relativamente pequeno. Por esta razão, não é necessário entrar com todas as combinações de condições dentro da tabela de decisão, mas restringi-las às combinações que correspondem a regras de negócio. Como exemplo, podemos citar o seguinte cenário: Um supermercado tem um programa de fidelidade oferecido para todos os clientes. Os clientes que possuem o cartão de fidelidade gozam do beneficio de desconto adicional em todas as compras (regra 3) ou acumulação de pontos de fidelidade (regra 11

4), que podem ser convertidos em vouchers para o supermercado ou pontos equivalentes na rede de parceiros. Clientes sem o cartão de fidelidade recebem um desconto adicional somente se gastarem mais de R$100,00 em qualquer visita à loja (regra 2), caso contrário, somente as promoções ofertadas a todos os clientes se aplicam. Figura 11: Tabela de Decisão do Exemplo do Supermercado A partir da tabela de decisão pode-se determinar casos de teste através do ajuste dos valores para as condições e determinação da saída esperada. Por exemplo, pela regra 1 podemos ter um cliente normal com uma transação de R$50,00 e checar se nenhum desconto foi aplicado. Caso o mesmo cliente realize uma operação de R$150,00 um desconto deve ser aplicado. Dessa forma, cada coluna da tabela de decisão representa um caso de teste. 1.4 Diagramas de Transição de Estados O diagrama de transição de estados é uma técnica similar à tabela de decisão, no entanto o foco é o sistema do qual suas saídas estão atreladas às mudanças nas condições de entrada, ou mudanças de estados. Em outras palavras, o comportamento está atrelado ao estado atual e no anterior, e a transição é o gatilho para mudar o comportamento do sistema. Transições são causadas por eventos que podem gerar saídas (outputs) e/ou mudanças de estado. Um evento é qualquer coisa que age como gatilho para mudança, podendo ser uma entrada do sistema ou algo dentro do sistema que muda por alguma razão. Em alguns casos um evento gera um output, em outros o evento muda o estado interno do sistema, gerando um output e, ainda, em outros um evento pode causar um output e uma mudança de estado. O que acontece para cada mudança é sempre deduzido por uma mudança de estado no diagrama. 12

Figura 12: Características do Diagrama de Transição de Estado Como exemplo, podemos citar o cenário abaixo: Um relógio de escalar tem 2 modos: Tempo e Altímetro. No modo Tempo, se pressionar modo, o relógio muda para o modo Altímetro e, se pressionado novamente, retorna para o modo Tempo. Enquanto o relógio estiver no modo Altímetro, se o botão SET for pressionado, nenhum efeito é gerado. Quando o relógio estiver no modo Tempo, se pressionar o botão SET, o relógio muda para SET HRS, e o display de tempo pode ser incrementado se o botão SET for pressionado. Se o botão Modo for pressionado enquanto o relógio estiver em SET HRS, o relógio muda para SET MIN, onde se o botão SET for pressionado, os minutos são incrementados. Se o botão modo for pressionado, o relógio retorna para o modo Tempo. Observe que nem todos os eventos têm um efeito em todos os estados. Onde o evento não tiver nenhum efeito, em um determinado estado é normalmente omitido, mas pode ser representado por uma seta que inicia e retorna para o mesmo estado, indicando que não cabem transições, o que também é conhecida como transação nula. 13

12: Exemplo do Diagrama de Transição de Estado CONCLUSÃO Portanto, vimos nesse capítulo como as técnicas podem apoiar a execução dos testes a partir da melhoria do contexto dos casos de teste baseado nas técnicas de especificação com foco em especificação. Tais técnicas podem ser aplicadas no projeto no escopo de casos de teste considerados necessários. As demais técnicas, baseada na estrutura e na experiência, serão vistas em detalhes na próxima aula. 14