Ciclo de vida do teste do TF

O ciclo de vida de um teste executado usando a Trade Federation é composto por quatro estágios separados, projetados em torno de interfaces formalmente definidas.

Interfaces definidas

  • Provedor de build: fornece um build para teste, fazendo o download dos arquivos apropriados, se necessário.
  • Target Preparer: prepara o ambiente de teste, possivelmente incluindo a instalação de software e a configuração do dispositivo.
  • Teste: executa testes e coleta os resultados. Pode ser qualquer teste JUnit, embora nossa interface IRemoteTest seja projetada especificamente para funcionar bem no ambiente da Trade Federation.
  • Listener de invocação de teste (relatório de resultados): detecta os resultados do teste, geralmente para encaminhar os resultados do teste a um repositório ou mostrá-los ao Test Runner.

A entidade de teste fundamental no TF é uma configuração (config). Uma configuração é um arquivo XML que declara os componentes do ciclo de vida de um teste.

Essa separação do ciclo de vida do teste tem como objetivo permitir a reutilização. Com esse design, o desenvolvedor pode criar um teste uma vez, e o integrador pode criar diferentes configurações para executar esse teste em diferentes ambientes. Por exemplo, eles podem criar uma configuração que vai executar um teste em uma máquina local e despejar o resultado no stdout. Eles poderiam criar uma segunda configuração que executaria o mesmo teste, mas usando um listener de invocação de teste diferente para armazenar os resultados do teste em um banco de dados. Uma terceira configuração pode ser projetada para executar esse teste continuamente em um laboratório de testes em algum lugar.

É conveniente observar aqui que uma configuração com os argumentos de linha de comando (fornecidos pelo Test Runner) é conhecida como comando. Quando o TF associa um comando a um ITestDevice e o executa, o objeto subsequente é conhecido como uma invocação. Em resumo, uma invocação abrange uma execução completa do teste de TF em todo o ciclo de vida.

Outros componentes de configuração

Saída e erros da etapa

Cada etapa de uma invocação é executada sequencialmente e tem uma meta específica. Esta seção descreve as saídas e os erros usuais de cada etapa.

Provedor de build

Essa etapa cria e gera um objeto IBuildInfo que contém todas as referências de arquivos necessárias para configurar e executar os testes.

O erro mais comum nessa fase é a falha no download ou na localização dos arquivos solicitados.

Um erro nessa etapa resulta no relatório direto do erro e na não execução de testes.

Preparação do destino

Esta etapa configura os estados necessários para o destino nos testes. Essa etapa pode alterar a configuração do dispositivo ou do host conforme necessário para a invocação de teste.

Erros comuns nessa fase geralmente envolvem a falha na configuração do dispositivo em um determinado estado (por exemplo, falha na inicialização) e a falha na localização dos arquivos necessários para a configuração.

Um erro nessa etapa resulta na execução da limpeza de destino, no relatório do erro e na não execução de testes.

Testes

Essa etapa executa os testes solicitados no destino preparado anteriormente e informa todos os resultados da execução do teste.

Erros comuns nessa fase geralmente envolvem o alvo em teste estar indisponível ou algum erro que causa a execução parcial dos testes. Esses erros são problemas de infraestrutura que afetam a execução do teste, e não uma falha de um único caso de teste.

Um erro nessa fase resulta na interrupção da execução do teste, na execução da limpeza do destino, no registro do erro e na obtenção de resultados parciais.

Relatórios de resultados

Essa etapa informa os resultados e erros aos serviços configurados (por exemplo, servidores e arquivos locais).

Embora os acionadores de resultados individuais possam ter erros, eles são isolados uns dos outros. Um acionador não vê os erros de outro. Esses erros afetam apenas os relatórios de resultados de um informante específico, e os erros podem ser visualizados nos registros.