• Aucun résultat trouvé

Organes de direction et de surveillance

Dans le document Document de référence 2010 (Page 66-71)

O InRob é baseado no conceito de serviço, que são funcionalidades disponibilizadas por cada subsistema para outros módulos. Assim, quando uma entidade inicia a requisição de um serviço, ele espera o relato dessa execução para que ele possa concluir suas tarefas. Assim, esta fase consiste na criação de modelos de comportamento de um determinado serviço, que serão utilizados no processo de geração os testes de interoperabilidade e robustez. Esses modelos são derivados dos documentos de projeto, que descrevem o comportamento esperado dos subsistemas comunicantes, como os requisitos funcionais do sistema e os documentos de projeto.

Perfil de serviço

O primeiro passo do método é a eleição do “Perfil de serviço”, que tem como objetivo definir, em cada estágio de integração, os serviços de maior relevância para que eles sejam priorizados no projeto dos testes.

Modelo nominal do serviço

Após a definição do perfil do serviço, faz-se necessária a construção do modelo no- minal do serviço, que representa o modelo comportamental da interação dos subsistemas comunicantes durante a realização desse serviço.

Para isso, faz-se uso do formalismo TIOA (Timed Input and Output Automata), seguindo-se a premissa de que o controle de testes está restrito ao subsistema comuni- cante que assume o papel de mestre, no qual deve-se verificar tanto as suas saídas quanto as suas entradas, enquanto no outro subsistema deve-se observar apenas as suas saídas.

Na Figura 3.1.2 (b) é apresentado um exemplo de modelo TIOA para um Serviço de Conexão entre dois subsistemas, típico em protocolos de comunicação, e o seu correspon- dente em diagrama de sequência UML, na Figura 3.1.2 (a). O serviço começa com um comando de solicitação de conexão (CNR), vindo do sistema de teste (ST) para o cliente. Em seguida, o cliente envia o comando “cnr” para o servidor, que retorna um “ack” ou um “nack” como resposta.

Figura 3.1.2: Serviço de Conexão: (a) Diag. de Sequência UML (b) Modelos TIOA [39]

Perigos de tempo

Para lidar com as restrições de tempo, o InRob define os perigos de tempo como sendo as antecipações e os atrasos das mensagens trocadas entre os subsistemas, ou seja, corres- pondem às falhas temporais a serem usadas nos testes de robustez do serviço escolhido. Os perigos de tempo são eventos inesperados, causados por defeitos no canal de comunicação ou por problemas de desempenho nesses subsistemas.

São definidos, portanto, dois padrões de requisitos de tempo: “Limite na Resposta”, que restringe o tempo máximo que um evento leva para ser disparado, após uma guarda se tornar verdadeira, gerando um atraso no recebimento de uma resposta; e “Invariância Limitada”, que especifica a antecipação de algum evento para que seja possível verificar se a resposta será ou não ignorada.

Para cada padrão de requisito de tempo, o InRob define duas classes de desvio de tempo, denominadas Desvios Maiores (MD) e Desvios Menores (mD) conforme apresen- tado na Tabela 3.1.1. A partir desses desvios pode-se incluir variações de tempo que extrapolem o limite aceitável para uma operação do sistema (Desvio Maior), ou variações de tempo que estejam dentro da margem de erro (Desvio Menor), definido na especifica- ção, portanto não extrapolando o tempo previsto para uma operação.

Tabela 3.1.1: Classes de desvios de tempo [39]

Desvios - Or dem de T emp o Real Limite na Resp osta Maior (MD+)

Estende significativamente o tempo limitado de resposta es- pecificado com o objetivo de provocar desvios de tempo inacei-

táveis no cenário nominal

Menor (mD+)

Estende insignificantemente o tempo limitado de resposta especificado de forma que o desvio de tempo pode ser aceitável no cenário nominal In v ariância Limitada Maior (MD-)

Desrespeita a restrição de tempo mínimo especificado com a ocorrência significativamente antecipada de um evento com o objetivo de verificar que o evento é ignorado (inaceitável) Menor

(mD-)

Desrespeita a restrição de tempo mínimo especificado com a ocorrência insignificativamente antecipada de um evento com o objetivo de verificar que o evento é aceito (aceitável)

Assim, estende-se os modelos TIOA de interoperabilidade com essas classes de desvios de tempo, o que permite a derivação dos casos de testes de robustez a partir dessas novas transições.

Para emular esses defeitos, o InRob define um mecanismo denominado “Emulador de Defeitos” (FEM - Failure Emulator Mechanism), para emular os defeitos associados aos perigos de tempo, através de atrasos nas mensagens enviadas pelo canal de comunicação, possibilitando aumentar a controlabilidade do sistema em teste sobre os dois subsistemas comunicantes.

Modelo aumentado

Com base nos desvios de tempo (Maiores e Menores), estende-se os modelos TIOA, o que permite a obtenção de casos de testes de robustez. O processo de extensão consiste em dois passos:

i) adicionar de uma nova transição que represente a transição original, acrescida de um desvio de tempo;

ii) analisar os desvios de tempo no comportamento da interação. Deve-se adicionar no- vas transições ou estados nas situações inaceitáveis, caso seja necessário representar o comportamento do sistema frente aos perigos de tempo.

Propósito de teste

Para guiar a seleção de casos de teste e evitar o risco de explosão combinatória, que pode ocorrer com o uso de métodos baseados em busca exaustiva do espaço de estados, são escolhidas uma ou mais propriedades (ou cenários) que definam o objetivo do testador. Esse elemento é conhecido como Propósito de Teste (test purposes) [17].

Os propósitos de teste podem determinar se uma transição, ou sequência de transições, do modelo de estados é alcançada. Além disso, eles também podem especificar restrições de tempo para a conclusão dessas atividades.

Assim, eles têm a função de especificar os cenários de teste de interoperabilidade e de robustez que se deseja avaliar.

3.1.2

Geração de casos de teste

A geração automática dos casos de testes utiliza os propósitos de teste selecionados previamente. A ferramenta de testes deve realizar uma derivação automática de traços de teste e fazer a seleção daqueles que atendam às propriedades, podendo obter mais do que um caso de teste para cada propósito selecionado.

Dans le document Document de référence 2010 (Page 66-71)