Escolar Documentos
Profissional Documentos
Cultura Documentos
Funcionais
Engenharia de Software
Prof. Dr. Fábio Aiub Sperotto
fabio.sperotto@ifsc.edu.br
Introdução
●
Os testes caixa-preta (teste funcional ou comportamental) se relacionam
a área de testes que não dependem da estrutura interna de um
programa, não depende do acesso ao código-fonte.
●
São testes executados nas entradas de um programa. Teste estrutural
analisa código (caixa-branca), teste funcional analisa mais a interface
(caixa-preta).
●
São baseados na especificação do que deve acontecer no programa,
esta especificação é usada para derivar os casos de teste.
●
Não é alternativa aos textes de caixa-branca, servem como
complementares.
Etc…
●
O que avalia é se o software domina a informação processada.
3
Os Testes Funcionais
●
Para elaborar e aplicar:
4
Particionamento
●
Usar classes de equivalência é necessário porque não podemos testar
todos os elementos de cada conjunto;
●
Cenário: testar todos os valores de cada parcela de um pagamento a
crédito que, além da variação entre 1 e 12 parcelas, o valor a ser pago
pode ser literalmente qualquer valor.
●
Para simplificar afim de não testar as infinitas possibilidades, o domínio
em questão é dividido em partições ou classes equivalentes
(subconjuntos do domínio):
– Intervalo de valores;
●
Determinar o particionamento (Pressman & Maxim, 2021):
●
Intervalo: as entradas são na forma de intervalo de valores [0..10].
●
Conjunto determinado de valores. Exemplo: tabela de imposto de
renda para obrigatoriedade na declaração.
8
Tipos de Classes
●
Entrada do tipo “deve ser de tal forma”. Exemplo: a data da venda
de um item deve ser maior (mais recente) que a data de chegada no
estoque para histórico contábil.
9
Diretrizes para execução dos Testes
10
Exemplo 1
●
“Considerando a cadeia de caracteres (string) “computação” definida
como X e uma outra string como Y. Se Y estiver contida em X retornar
true, false do contrário”.
●
Exemplos:
11
Exemplo 1
●
Depois de definir as classes, elaborar os casos de teste.
12
Exemplo 2
●
“Dado uma cadeia de entrada que deve possuir entre 1 e 10 caracteres e
uma outra entrada com um caractere. Uma busca pelo caractere é válida
se o caractere estiver presente, caso contrário retorna-se -1. Caso a
cadeia de caracteres de entrada possuir menos que 1 ou mais que 10
caracteres, independente do caractere buscado, deve-se retornar uma
mensagem “entre com um tamanho entre 1 e 10””.
●
Exemplos:
13
Exemplo 2
14
Análise de Valor Limite (BVA)
●
Quando se trabalha com faixas de valores, podemos nos deparar com
alguns bugs que acontecem nas fronteiras de cada classe, isto é, nos
limites que fazem intervalo de uma classe com a outra.
●
Análise de Valor Limite é uma técnica complementar recomendada para
testar uma determinada função com valores limites de cada classe e seus
valores subsequentes ou antecedentes (Valente, 2020).
●
Em vez de selecionar qualquer elemento de uma classe de equivalência,
a BVA conduz à seleção de casos de teste nas "bordas" da classe
(Pressman & Maxim, 2021).
15
Análise de Valor Limite (BVA)
●
Segundo Pressman & Maxim (2021):
●
Se uma condição de entrada especifica um intervalo limitado por valores a e b,
deverão ser projetados casos de teste com valores a e b imediatamente acima e
abaixo de a e b.
●
Se uma condição de entrada especifica um conjunto de valores, deverão ser
desenvolvidos casos de teste que usam os números mínimo e máximo. São testados
também valores imediatamente acima e abaixo dos valores mínimo e máximo.
●
Aplique as diretrizes 1 e 2 às condições de saída. Por exemplo, suponha que um
programa de análise de engenharia precisa ter como saída uma tabela de temperatura
versus pressão. Deverão ser projetados casos de teste para criar um relatório de
saída que produza o número máximo (e mínimo) permitido de entradas da tabela.
●
Se as estruturas de dados internas do programa prescreveram fronteiras (p. ex., uma
tabela tem um limite definido de 100 entradas), não se esqueça de criar um caso de
teste para exercitar a estrutura de dados na fronteira.
16
Análise de Valor Limite - IR
●
Voltando ao exemplo do imposto de renda (IR): “A funcionalidade deve retornar a
alíquota de deducação de IR acordo com o valor de salário fornecido como
entrada. Deve ser utilizada como referência a tabela da Receita Federal com os
intervalos para os grupos de salários. Caso um valor negativo de salário for
informado, então deve ser retornada uma mensagem “Informe somente valores
positivos””.
17
Exemplo 3 - IR - Faixa de Valores
Faixa 1
Faixa 2
Faixa 3
Faixa 4
Faixa 5
Partição ou Classes
Entrada Classe válida Classe inválida
18
Exemplo 3 - IR – Análise Valor Limite
Faixa 1
Faixa 2
Faixa 3
Faixa 4
Faixa 5
Partição ou Classes
Entrada Classe válida Classe inválida
Continua
19
Exemplo 3 - IR – Partições/Classes
Partição ou Classes
Entrada Classe válida Classe inválida
20
Exemplo 3 - IR – Casos de Teste
Casos de Teste
1 S = 1700,00 0 1,7
2 S = 2100,00 7,5 2
3 S = 3000,00 15 3
4 S = 3900,70 22,5 4
Continua
8 S = 2826,65 7,5 2,8,9
21
Exemplo 4
●
“Um identificador válido deve começar com uma letra e conter apenas
letras, dígitos e “_”. Além disso, deve ter no mínimo um caractere e no
máximo seis caracteres de comprimento”.
●
Exemplos:
22
Exemplo 4
23
Discussões e Considerações Finais
●
Os testes funcionais de caixa-preta não se importam com a estrutura
interna da implementação, o seu foco está nas saídas do programa.
●
Não existe a possibilidade de testar um programa para todas as entradas
possíveis, para todas as faixas, então precisamos apenas testar para
cada um e utilizar quando possível a técnica complementar de análise de
valor limite.
24
Discussões e Considerações Finais
●
A real classificação depende de como testes são escritos:
25
Referências Extras
●
Valente, Marco Tulio. Engenharia de Software Moderna: Princípios e
Práticas para Desenvolvimento de Software com Produtividade, Editora:
Independente, 395 páginas, 2020. Disponível em
https://engsoftmoderna.info/
●
Perin, Alexandre. Testes Caixa-Preta – Engenharia de Software. Notas de
aula. 20 slides, 2022.
●
PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software. Grupo A,
2021. E-book. ISBN 9786558040118. Disponível em:
https://app.minhabiblioteca.com.br/#/books/9786558040118/ Acesso em: 26
fev. 2024.
26