O ciclo de vida de um teste executado usando o Trade Federation é composto de quatro estágios separados, projetados em torno de interfaces definidas formalmente.
Interfaces definidas
- Provedor de compilação : fornece uma compilação para teste, baixando os arquivos apropriados, se necessário.
- Target Preparer : Prepara o ambiente de teste, possivelmente incluindo instalação de software e configuração de dispositivo.
- Teste : Executa teste(s) e reúne os resultados do teste. Pode ser qualquer teste JUnit, embora nossa interface IRemoteTest seja projetada especificamente para funcionar bem no ambiente da Federação de Comércio.
- Ouvinte de invocação de teste (relatório de resultados) : escuta os resultados do teste, geralmente com a finalidade de encaminhar os resultados do teste para um repositório ou exibi-los para o executor de teste.
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 destina-se a permitir a reutilização. Usando esse design, o desenvolvedor pode criar um teste uma vez e, em seguida, o integrador pode criar diferentes configurações para executar esse teste em diferentes ambientes. Por exemplo, eles podem criar uma configuração que executará um teste em uma máquina local e despejará o resultado em stdout. Eles poderiam então criar uma segunda configuração que executaria o mesmo teste, mas usaria um ouvinte 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 teste em algum lugar.
É conveniente observar aqui que um Configuration junto com seus argumentos de linha de comando (conforme fornecido pelo Test Runner) é conhecido como Command . Quando o TF emparelha um Command com um ITestDevice
e o executa, o objeto subsequente é conhecido como Invocation . Resumindo, uma Invocação abrange uma execução completa de teste de TF, em todo o seu ciclo de vida.
Componentes de configuração adicionais
- Device Recovery : mecanismo para recuperar a comunicação do dispositivo em caso de perda.
- Logger : coleta dados de registro alimentados por trades.
Saída de palco e erros
Cada estágio de uma invocação é executado sequencialmente e tem um objetivo específico. Esta seção descreve as saídas e erros usuais de cada estágio.
Construir provedor
Este estágio 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 nesta fase é a falha ao baixar ou localizar os arquivos solicitados.
Um erro neste estágio resulta em relatar diretamente o erro e nenhum teste sendo executado.
Preparação do alvo
Esta etapa configura os estados necessários para o alvo em testes. Este estágio pode alterar o dispositivo ou a configuração do host conforme necessário para a chamada de teste fornecida.
Erros comuns neste estágio geralmente envolvem falha na configuração do dispositivo em um determinado estado (por exemplo, falha no flash) e falha na localização dos arquivos necessários para a configuração.
Um erro neste estágio resulta na execução da limpeza de destino, no relatório do erro e na execução de nenhum teste.
testes
Esta etapa executa os testes solicitados no alvo previamente preparado e reporta todos os resultados da execução do teste.
Erros comuns nesta fase geralmente envolvem a indisponibilidade do alvo em teste ou algum erro causando a execução parcial dos testes. Esses erros são problemas de infraestrutura que afetam a própria execução do teste, em oposição a uma falha de um único caso de teste.
Um erro neste estágio resulta na interrupção da execução do teste, na execução da limpeza do destino, no relatório do erro e na obtenção de resultados parciais.
Relatórios de resultados
Esta etapa reporta os resultados e erros aos serviços configurados (por exemplo, servidores e arquivos locais).
Embora os relatores de resultados individuais possam ter erros, eles estão isolados uns dos outros (um relator não vê os erros do outro). Esses erros afetam apenas os relatórios de resultados de um repórter individual e os erros podem ser visualizados nos logs.
,O ciclo de vida de um teste executado usando o Trade Federation é composto de quatro estágios separados, projetados em torno de interfaces definidas formalmente.
Interfaces definidas
- Provedor de compilação : fornece uma compilação para teste, baixando os arquivos apropriados, se necessário.
- Target Preparer : Prepara o ambiente de teste, possivelmente incluindo instalação de software e configuração de dispositivo.
- Teste : Executa teste(s) e reúne os resultados do teste. Pode ser qualquer teste JUnit, embora nossa interface IRemoteTest seja projetada especificamente para funcionar bem no ambiente da Federação de Comércio.
- Ouvinte de invocação de teste (relatório de resultados) : escuta os resultados do teste, geralmente com a finalidade de encaminhar os resultados do teste para um repositório ou exibi-los para o executor de teste.
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 destina-se a permitir a reutilização. Usando esse design, o desenvolvedor pode criar um teste uma vez e, em seguida, o integrador pode criar diferentes configurações para executar esse teste em diferentes ambientes. Por exemplo, eles podem criar uma configuração que executará um teste em uma máquina local e despejará o resultado em stdout. Eles poderiam então criar uma segunda configuração que executaria o mesmo teste, mas usaria um ouvinte 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 teste em algum lugar.
É conveniente observar aqui que um Configuration junto com seus argumentos de linha de comando (conforme fornecido pelo Test Runner) é conhecido como Command . Quando o TF emparelha um Command com um ITestDevice
e o executa, o objeto subsequente é conhecido como Invocation . Resumindo, uma Invocação abrange uma execução completa de teste de TF, em todo o seu ciclo de vida.
Componentes de configuração adicionais
- Device Recovery : mecanismo para recuperar a comunicação do dispositivo em caso de perda.
- Logger : coleta dados de registro alimentados por trades.
Saída de palco e erros
Cada estágio de uma invocação é executado sequencialmente e tem um objetivo específico. Esta seção descreve as saídas e erros usuais de cada estágio.
Construir provedor
Este estágio 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 nesta fase é a falha ao baixar ou localizar os arquivos solicitados.
Um erro neste estágio resulta em relatar diretamente o erro e nenhum teste sendo executado.
Preparação do alvo
Esta etapa configura os estados necessários para o alvo em testes. Este estágio pode alterar o dispositivo ou a configuração do host conforme necessário para a chamada de teste fornecida.
Erros comuns neste estágio geralmente envolvem falha na configuração do dispositivo em um determinado estado (por exemplo, falha no flash) e falha na localização dos arquivos necessários para a configuração.
Um erro neste estágio resulta na execução da limpeza de destino, no relatório do erro e na execução de nenhum teste.
testes
Esta etapa executa os testes solicitados no alvo previamente preparado e reporta todos os resultados da execução do teste.
Erros comuns nesta fase geralmente envolvem a indisponibilidade do alvo em teste ou algum erro causando a execução parcial dos testes. Esses erros são problemas de infraestrutura que afetam a própria execução do teste, em oposição a uma falha de um único caso de teste.
Um erro neste estágio resulta na interrupção da execução do teste, na execução da limpeza do destino, no relatório do erro e na obtenção de resultados parciais.
Relatórios de resultados
Esta etapa reporta os resultados e erros aos serviços configurados (por exemplo, servidores e arquivos locais).
Embora os relatores de resultados individuais possam ter erros, eles estão isolados uns dos outros (um relator não vê os erros do outro). Esses erros afetam apenas os relatórios de resultados de um repórter individual e os erros podem ser visualizados nos logs.