Executor de testes

O processo “Executor de testes” permite a execução de testes previamente programados no sistema. Este processo foi criado unicamente para a visualização de falha ou sucesso dos testes, assim como os testes são criados unicamente para reportar, quando executados, o sucesso ou falha apenas do que está sendo testado. Este entendimento é importante para que não haja uma falsa expectativa de garantia de funcionamento, dentro do resto do Sistema, daqueles elementos testados.

Apresentação do processo

O processo é aberto com duas grades, a grade “Opções” e a grade “Testes”. Além das grades, o processo também dispõe de três botões, os quais serão detalhados na seção “Botões do processo e botões da grade Testes” mais abaixo.

Nota técnica: A grade “Testes” exibe os dois tipos de testes (unitários “.iut” e de integração “.it”). Conceitualmente, testes unitários não permitem a realização de operações como, consultas, alterações, inserções ou exclusões das informações da base de dados. Permitem apenas testes isolados sobre métodos, propriedades ou funções (unidades de desenvolvimento). Isto é uma medida para que não haja perda de performance durante a execução, já que existe rastreio das alterações realizadas na base. As operações realizadas sobre a base de dados devem ser utilizadas em testes de integração.

A grade “Opções” vem com uma única variável obrigatória, a variável “Modo de execução”. Como este processo permite a execução de uma lista de testes, esta variável permite configurar o comportamento de continuidade da execução dos testes após a falha de um determinado teste. Assim, a opção “Continuar execução se um teste falhar” indica que, apesar de um ou mais testes falharem, o processo continuará executando cada um dos testes selecionados. Por outro lado, a opção “Parar execução se um teste falhar” indica que o processo irá abortar a execução de todos os testes selecionados e ainda não executados até o momento da falha.

Nota técnica: Esta decisão de continuidade após uma falha pode ser definida via código através do evento iJsUnitTree.onFailure. Neste evento, ao retornar um valor lógico verdadeiro, os testes continuarão, caso contrário, serão abortados os testes ainda não executados até o momento da falha.

A grade “Testes” é a principal grade do processo e é através dela que se pode visualizar o resultado da execução dos testes. Mais abaixo, a seção “Detalhamento das colunas da grade Testes” tratará de especificar o significado de cada coluna presente nesta grade.

Botões do processo e botões da grade Testes

Os botões da grade “Testes”, por uma simples questão de facilidade, são repetidos na área de botões do processo. Abaixo, segue o detalhamento de cada botão e seu significado:

  • Executar selecionados: Este botão, naturalmente, dispara a execução dos testes selecionados na grade “Testes”. Este botão está disponível tanto na grade quanto na área de botões do processo.
  • Selecionar testes que falharam: Após uma execução de testes onde alguns tenham falhado, é comum que o desenvolvedor corrija as falhas e volte para o processo selecionando os testes que falharam para nova execução. Este botão junta estas duas ações finais, ou seja, ele descarta a seleção anterior selecionando apenas os testes que falharam e, ao mesmo tempo, re-dispara a execução destes testes. Este botão também está disponível na grade “Testes”.
  • Exibir relatório: Através deste botão, é possível exportar o resultado da execução dos testes selecionados para um relatório em árvore. Diferentemente dos botões anteriormente citados, este não está presente na grade “Testes”.

Abertura e re-abertura do processo:

No intuito de simplificar a experiência do usuário ao máximo, este processo salva todo o ambiente para reuso em uma segunda abertura. O ambiente salvo consta da última expansão feita nos nós da árvore da coluna “Nome” e os últimos registros selecionados. Assim, quando o processo é novamente aberto, a tela que é apresentada será a mesma tela exibida quando o processo foi fechado pela última vez.

Atualização dinâmica das últimas alterações de códigos

É automática a reflexão imediata de cada alteração feita pelo desenvolvedor em qualquer teste ou códigos associados. Em outras palavras, o processo executor dos testes não precisa ser recarregado para que ele passe a ser afetado pelas últimas edições de código.

Detalhamento das colunas da grade Testes

  • Nome: Esta coluna apresenta uma árvore que deve ser utilizada para a localização dos testes que se deseja executar. O conceito de agrupamento pode ser utilizado e, caso se deseje que um grupo de testes seja executado a partir de um dado nó, basta selecionar o nó que todos os testes, a partir dele, estarão selecionados para execução. Dessa forma, se for desejada a execução de todos os testes, basta selecionar o nó raiz identificado pelo nome “Todos”.
  • Resultado: Simples mensagem de sucesso ou falha de cada nó.
  • Tempo Execução: Exibe o tempo de execução de cada nó no formato hh:mm:ss.
  • Sucessos: Totaliza a quantidade de testes bem-sucedidos a partir do nó em que o número está sendo apresentado.
  • Falhas: Semelhante ao comportamento da coluna “Sucessos”, esta coluna totaliza a quantidade de testes malsucedidos a partir do nó em que o número está sendo apresentado.