wiki:ExpressoTestCenter/qa

Análise de testes e Quality Assurance

Testes de caixa preta

São testes de funcionalidades, orientados a entrada e saída.

Validação manual

Validação automatizada

Existe complementos para o navegador Firefox que permite criar macros. Um deles é o  imacros. Um script de criação de regras está anexado como exemplo.

Testes de caixa-branca

São testes orientados a comportamento de código ou fluxo de processamento.

Testes de desempenho php ou inatingíbilidade de código

Podem ser testados como no exemplo abaixo

$time_start = microtime(true);
<codigo>
$time_end = microtime(true);
$Benchmarking1 = ($time_end - $time_start);
$time_start = microtime(true);
<codigo>
$time_end = microtime(true);
$Benchmarking2 = ($time_end - $time_start);

Por último imprimir relatório na tela ou em variável de sessão.

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)[[PageOutline(1-3, Conteúdo)]]
   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.

Usando JsUnit no ExpressoMail

Faça download de todos os arquivos em anexo e digite:

cat jsUnit_part* > jsUnit.tar.bz2
tar -xjvf jsUnit.tar.bz2
firefox jsunit/testRunner.html

Carregue o arquivo tests/jsUnitExpressoMail.html e clique em run

Realizando testes de desempenho do JavaScript

Tickets relacionados #188, #53

Attachments