Testes de SW
Aula 13
Sumário





Objectivos e Responsáveis
Princípios dos Testes
Software fácil de testar
Desenho de casos de teste
Testes
–
Caixa Branca

–
–
Estrutura de controlo
Caixa preta

–
2
Caminho básico
OO
Ambiente, arquitectura e aplicações
Objectivos e Responsáveis

Descobrir erros
–
–

Um bom teste tem uma alta probabilidade de detectar erros não
descobertos
Um teste tem sucesso SE descobrir um erro não detectado
Quem faz
–
–
Engenheiros de SW
Testadores


Engenheiros de SW especialistas em testes
Usuários contratados para o efeito
–
3
Recém licenciada francesa no verão em Londres..
Princípios






4
Os testes deviam detectar desde erros de código até
a satisfação de requisitos
Devem ser planificados
Isolar módulos “suspeitos” e testá-los
profundamente
Começar pelos módulos e terminar no sistema
inteiro
Não é possível fazer testes exaustivos
Realizados por equipas independentes
Software fácil de testar
- características

Observabilidade (o que você vê é o que você testa)
–
–
–
–
–
–
5
–
Saída diferente para cada entrada
Estados e variáveis do sistema podem ser
consultados durante a execução
Estados e variáveis do sistema antigo podem ser
consultados (registos de transacção)
Todos os factores que afectam os resultados são
visíveis
Um resultado incorrecto identifica-se com facilidade
Os erros internos detectam-se automaticamente
O código fonte é acessível
Software fácil de testar
- características

Controlabilidade
(quanto + controlável, + automatizável e optimizável)
–
–
–
–

Todos os resultados possíveis gerados através da combinação
de entradas
Estados e variáveis do sistema são controláveis pelo
programador
Formatos de E/S são estruturados e consistentes
Os testes podem especificar-se, automatizar-se e reproduzir-se
convenientemente
Modularidade
(controlando o âmbito dos testes, os problemas podem ser isolados)
–
–
6
O sistema está construído em módulos independentes
Os módulos podem ser testados independentemente
Software fácil de testar
- características

Simplicidade (há menos que testar)
–
–
–
Simplicidade funcional (características mínimas)
Simplicidade estrutural (que impede propagação de falhas)
Simplicidade do código (selecção de standards, boas práticas
de programação)

Estabilidade (menos mudanças)
–
–
–
–
7
Mudanças não frequentes
Mudanças controladas
Mudanças não invalidam testes
O software lida bem com as falhas
Software fácil de testar
- características

Facilidade de compreensão (+informação, melhores testes)
–
–
–
–

O Desenho foi compreendido
Dependências entre componentes internos foi compreendida
Mudanças ao desenho foram comunicadas
Documentação técnica acessível instantaneamente, está bem
organizada, é exacta, específica e detalhada.
Operatividade (quanto melhor funcionar, + eficientemente se pode
testar)
–
–
–
8
Tem poucos erros
Os erros não bloqueiam a execução dos testes
O produto evolui em fases
Desenho de casos de teste

Caixa preta
–
Testes sobre as interfaces do Produto de SW
Conhecemos a função específica para a qual foi desenhado o
produto. Podemos levar a cabo Testes que demonstram que
cada função está completamente operacional.

Caixa branca
–
9
Testes sobre os detalhes dos procedimentos de cada função
Conhecemos o funcionamento do produto. Podemos desenvolver
testes que asseguram que “todas as peças se encaixam”. Ou seja,
que a operação interna se ajusta às especificações e que todos os
componentes internos foram comprovados de maneira adequada.
casos de teste de Caixa Branca

garantem o exercício de que:
–
–
–
–

Permitem ver
–
–
–

10
Erros lógicos e supostos incorrectos
Fluxo lógico real dum programa
Erros tipográficos
Porém
–

Todos os caminhos independentes são utilizados
Todas as vertentes falsas e verdadeiras das decisões lógicas
Todos os ciclos nos seus limites
Todas as estruturas internas de dados
os testes exaustivos apresentam problemas logísticos tornando
estes testes impossíveis para grandes sistemas de SW
Devemos, então, seleccionar quais são os caminhos lógicos
mais importantes
Teste do caminho básico





11
É uma técnica de teste de caixa branca
Medida da complexidade lógica
Mede o nº de caminhos independentes
Os casos de teste obtidos por este método
garantem que cada instrução seja executada
pelo menos 1 vez
Pode tornar-se impossível, se o sistema for
muito grande..
Testes da estrutura de controlo



Auxiliam as técnicas de Testes de Caixa Branca
Teste da condição
Teste de fluxos de dados
–

caminhos de teste segundo a localização das definições e usos das
variáveis
Testes de ciclos
–
–
–
–
Passar por alto
Passar 1 vez
Passar 2 vezes
Fazer m passos com m<n

–
Fazer n-1, n e n+1

12
exemplo: se o ciclo executa 10 laços, testamos até o laço 3..
exemplo: se o ciclo executa 10 laços, testamos 9, 10 e forçamos 11 laços ..
casos de testes de Caixa Preta
- várias técnicas

Métodos baseados em grafos
–
–
–
Entender os objectos de dados modelados e as suas relações
Definir uma série de testes que verifiquem “que todos os objectos
possuem as relações esperadas entre eles”
Criar um grafo


Método de Particionamento de Equivalencias
–
Analisa as condições de entrada




–

Intervalo, valor específico, membro de um conjunto de valores, booleano
Método da Análise de valores limites
Testes de comparação
Testes da Tábua Ortogonal
–
13
uma colecção de nós que representa os objectos
Domínos de problemas pequenos
Mas que exigem muitas provas exaustivas
(…)
Testes de ambientes, arquitecturas e
aplicações




Testes de interfaces
Testes de arquitectura cliente/servidor
Testes da documentação e facilidades de
ajuda
Testes de sistemas a tempo-real
PLANO DE PROJECTO (lembrem que 40% são testes):
Adicionem estes e outros testes que acharem convenientes…
Principalmente os Testes OO que serão vistos…
14
próxima semana
Testes OO

Processos de SW OO:


16
quando concluir uma iteração de AOO, DOO e Testes OO?
Testes OO para a Lacertae SW
Download

Testes de SW