wiki:ExpressoTestCenter/qa

Version 1 (modified by amuller, 16 years ago) (diff)

--

Unit Test

Teste de unidade (unit test), tem como objetivo testar todos os pedaços do software separadamente de forma a garantir um melhor funcionamento do sistema como um todo. Como cada função tem uma especificação de funcionamento qualquer comportamento fora do especificado deve ser alertado.

Cada função pode ser tratada como uma equação matemática de n variáveis sendo estas variáveis argumentos, variáveis globais e variáveis do ambiente. Como por exemplo podemos citar uma função que testa se um número é par ou ímpar. Ela tem uma especificação muito simples porque só depende dos valores de entrada:

function testa_par (argumento){
if (argumento mod 2 == 0){
    return true
else
    return false
}

Esta função não passaria num unit test, pois testa_par("string") tem resultado inesperado. Assim como testa_par(true) também. Por isso é melhor a função abaixo:

function testa_par (argumento){
    if (typeof(argumento) == number) {
        if (argumento mod 2 == 0){
            return true
        else
            return false
    } else
        return null
}

Um bom case de unit test para esta função seria:

for (var i = 0; i < 65536; i+2)
   if (testa_par (i) != true)
        print("UNIT TEST FALHOU EM:",i)

for (var i = 1; i < 65536; i+2)
   if (testa_par (i) != false)
        print("UNIT TEST FALHOU EM:",i)

Além de testar strings, boolean e outros tipos.

Attachments