Os testes precisam testar os requisitos, e por isso existe uma associação forte entre eles, que pode ser explicitada em forma da rastreabilidade entre casos de teste e requisitos. Como os requisitos descrevem as ações que o software deve executar no caso de uma dada condição, o caso de teste deve descrever esta exata situação. O procedimento de teste, quando possível na forma de vetor de teste, deve definir as entradas que devem ser estimuladas para que a condição desejada seja atingida. Algumas vezes a condição é relativa à própria variável de entrada e algumas vezes a condição diz respeito a variáveis ou estados internos.
Da mesma forma, o requisito dirá qual deve ser a resposta esperada do software, quando estimulado naquelas condições. Deve-se portanto estabelecer no procedimento a verificação de que as saídas do software obtidas na execução do teste, estão de acordo com o comportamento esperado. Normalmente se estabelece uma tolerância sobre os valores obtidos, pois devido a imprecisões numéricas nos cálculos o valor obtido nem sempre é exato com relação ao resultado esperado. A determinação da tolerância deve ser feita de forma a que os testes falhem apenas quando os resultados divergem o suficiente para justificar uma implementação diferente do software para reduzir as imprecisões, o que pode reduzir o desempenho do software. A tolerância deve ser portanto o resultado de um trade-off.
Pode acontecer que um requisito descreva uma ação não observável nas saídas do software, o que deveria ser uma exceção, pois vimos que uma característica dos bons requisitos é a verificabilidade. Um exemplo é um requisito que defina a transição de um estado interno, sem ação. Para poder testá-lo, é necessário juntá-lo a um ou mais requisitos que permitam conferir as consequências deste requisito nas saídas observáveis. Desta forma vários requisitos seriam testados em conjunto e todos eles estariam rastrados para o caso de teste.
Outra situação que acontece quando o software possui estados é a necessidade de testes temporais. Para tratá-los, é necessário definir a sequência de estímulos no tempo de forma a se chegar ao estado desejado para que se possa estimular as entradas e testar as saídas. Pode ser necessário, por exemplo, deixar um sinal indicando falha por tempo suficiente para que o software entre no estado de falha. Para definir os testes temporais, costuma existir no vetor de testes uma coluna que representa o instante de tempo ao lado das colunas que definem os valores de entradas e saídas esperadas. As entradas e saídas são estabelecidas então para cada instante de tempo indicado no vetor de teste. Existem duas variações: na primeira cada ciclo do software é colocado, um por linha; na segunda variação apenas os instantes significativos são listados, e fica subentendido que as entradas se mantém constantes do instante listado em uma linha até o instante listado na linha seguinte.
<<exemplo de vetor de teste>>

Comentários
Postar um comentário