Visão Geral
O Test RealTime integra três ferramentas de teste:
-
O Teste de Unidade automatiza os testes do componente de software C e Ada.
-
O Teste de Objeto é uma abordagem orientada por objeto para testar o comportamento do código C++.
-
O Teste do Sistema é um ambiente poderoso para testes dos aplicativos baseados em mensagem.
A escolha da ferramenta de teste que deve ser utilizada com o aplicativo depende do ambiente de desenvolvimento e da
natureza do aplicativo. Para cada ferramenta de teste, é necessário desenvolver um script de teste dedicado.
Antes de gravar os testes reais no seu aplicativo, o Test RealTime requer que você crie o projeto de teste e vincule-o
a um aplicativo em teste.
Etapas da Ferramenta
Para criar um script de teste no Test RealTime, faça o seguinte:
-
Execute o Assistente de Teste do Componente
-
Digite os Dados de Teste e os Resultados Esperados
-
Modifique o Comportamento do Stub
O Test RealTime oferece um assistente de teste de componente que, quando executado, analisa o código fonte especificado
e gera um sistema de ferramentas de teste totalmente executável. Tudo o que resta para o desenvolvedor certificar-se de
que o código fonte seja testado conforme desejado é definir o comportamento do stub (consulte a segunda Etapa da
Ferramenta) e digitar os dados de teste e os resultados esperados (consulte a terceira Etapa da Ferramenta).
NOTA: O uso do assistente de teste de componente não é obrigatório - todos os arquivos e o código necessários para
suportar um teste podem ser gerados manualmente. No entanto, o assistente pode facilitar bastante. Em ambas as formas,
a execução e o relatório do teste são automatizados.
É possível acessar o assistente de teste do componente de uma das duas formas a seguir. Ambos os métodos consideram que
um projeto do Test RealTime já esteja aberto
-
Selecione o link Atividades localizado no lado esquerdo da Página Inicial do Test RealTime. Selecionando esse link,
é exibida uma lista com as três atividades principais que podem ser escolhidas pelo desenvolvedor. Para executar
testes do componente, o desenvolvedor agora deve selecionar o link Teste do Componente.
-
Clique com o botão direito do mouse em um arquivo de origem/classe/método/função/procedimento no Navegador do
Recurso da Janela Projeto, localizado no lado direito do Test RealTime. A seleção da opção Teste... no menu pop-up
abre o assistente de teste do componente.
A principal diferença entre esses dois métodos para iniciar o assistente de teste do componente é que a primeira opção
requer que o usuário selecione o(s) arquivo(s) de origem que contém as funções/métodos/procedimentos a serem testados -
a segunda opção já sabe qual arquivo de origem será utilizado e, assim, ignora as etapas iniciais do assistente de
teste do componente.
Em ambos os casos, o desenvolvedor solicitará a seleção de um Modo de Teste - Typical ou Expert. A diferença principal
está relacionada ao comportamento desejado do stub. Como um lembrete, um stub é "um componente que contém a
funcionalidade de testes" - ou seja, um componente projetado para agir de forma predefinida para facilitar os testes de
algum outro componente do sistema. No Modo Typical, o Test RealTime gerará automaticamente um gabarito stub para
qualquer função/método/procedimento explicitamente mencionado no(s) arquivo(s) de origem selecionado(s). O Modo Expert
permite selecionar adicionalmente componentes não mencionados explicitamente no(s) arquivo(s) de origem escolhido(s).
De qualquer forma, a funcionalidade real desses stubs será definida posteriormente - consulte a segunda Etapa da
Ferramenta a seguir.
Quando o assistente for executado até a conclusão, o Test RealTime cria um nó no projeto ativo. Esse nó contém uma
referência para o(s) arquivo(s) de origem selecionado(s) assim como para os arquivos obrigatórios para a criação do
sistema de ferramentas de teste. Esses arquivos adicionais devem ser modificados para:
-
definir o comportamento do stub
-
especificar a data utilizada para realizar as funções/métodos/procedimentos em teste
-
especificar resultados esperados para cada conjunto de dados de entrada
Para as linguagens C, C++ e Ada, o sistema de ferramentas de teste, os stubs de teste e as linguagens do script de
teste foram construídos pelo Rational Software para acomodar as complexidades específicas dessas linguagens. Para Java,
o Test RealTime utiliza Java como a linguagem do script de teste e baseia o sistema de ferramentas de teste e as
estruturas do stub de teste na estrutura JUnit (http://www.junit.org).
Para obter informações
detalhadas, consulte o capítulo Graphical User Interface ->Activity Wizards->Component Testing Wizard do
Rational Test RealTime User Guide.
Os scripts de teste gerados pelo assistente de teste do componente podem ser executados imediatamente. No entanto, até
que o desenvolvedor especifique os dados reais com os quais conduzir o componente em teste - assim como os valores de
saída esperados - o teste não será muito útil nem informativo.
Cada linguagem suportada pelo Test RealTime facilita a criação de teste de uma forma diferente; cada abordagem foi
otimizada para as características exclusivas de cada linguagem. C++ é mais exclusivo, porque não somente pode
padronizar os testes a serem gerados e executados, mas também podem ser feitas verificações opcionais do contrato. As
verificações do contrato agem como asserções - são utilizadas para verificar itens como condições prévias/posteriores e
invariantes.
Para obter informações
detalhadas sobre as linguagens C e Ada, consulte o capítulo a seguir no Rational Test RealTime User Guide:
Para obter informações
detalhadas relacionadas à linguagem C+, consulte os capítulos a seguir no Rational Test RealTime User Guide:
Para obter informações
detalhadas relacionadas à linguagem Java+, consulte os capítulos a seguir no Rational Test RealTime User Guide:
Os componentes são projetados para agir de forma específica. Esses componentes, independentemente do seu nível de
granularidade, devem responder a um determinado conjunto de entradas em um específico conjunto predefinível de saídas.
"Predefinível" significa que os resultados podem ser especificados, de forma explícita ou em algoritmo, antes da
execução do teste.
Muito freqüentemente, os componentes requerem a assistência de outros componentes no sistema para executar sua
funcionalidade. Esses outros componentes podem ser tão simples como uma função adicional ou tão grandiosos como um
subsistema inteiro localizado em outro lugar no sistema. De qualquer forma, não é incomum para o desenvolvedor
constatar que seus esforços de testes do componente são atrapalhados pelo fato de que os componentes do qual o seu
código dependem não existem, ou pelo menos ainda não estão funcionando confiavelmente. O ato do stub compensa essa
dificuldade. (De fato, o stub pode ser utilizado para garantir o funcionamento correto, eliminando toda a dependência
no código de terceiros.)
É responsabilidade do desenvolvedor simular corretamente componentes do qual o componente em teste dependa. Simulação
correta significa que a funcionalidade de stub deve ser suficientemente precisa para garantir que o êxito ou a falha do
componente em teste sempre possa ser rastreado para o componente em si, em vez das informações incorretas produzidas
pelos stubs.
O Rational Test RealTime facilita a criação de stubs por meio de linguagens de script de teste suportadas.
Especificamente, para obter informações sobre a criação de stubs de teste:
Para obter informações
detalhadas sobre as linguagens C e Ada, consulte o capítulo a seguir no Rational Test RealTime User Guide:
Para obter informações
detalhadas relacionadas à linguagem C+, consulte os capítulos a seguir no Rational Test RealTime User Guide:
Para obter informações
detalhadas relacionadas à linguagem Java+, consulte os capítulos a seguir no Rational Test RealTime User Guide:
-
Automated Testing->Component Testing for Java->Java Testing Overview->Java Stub Harness
Para Obter Mais Informações
Para obter informações detalhadas sobre como executar a campanha de teste, consulte o Mentor de Ferramenta Executando Testes Utilizando o Rational Test RealTime.
|