Teste de Software
Definição 4.2.4. Sejam i, s ∈ IOLTS(L) então,
4.3 FERRAMENTAS DE GERAÇÃO BASEADAS EM MODELOS 45 Estes testes podem ser visualizados com ferramentas específicas ou editados utilizando editor
de texto comum.
Casos de teste abstratos não estão prontos para executar na IUT, pois os dados e eventos dos testes precisam ter uma ligação com a tecnologia específica que será utilizada para rodas os testes na IUT. É preciso de um elemento concreto que realmente possa interagir com o programa implementado em uma linguagem de programação específica, como exemplo, um tipo inteiro existente no caso de teste abstrato pode ser mapeado como o tipo int de Java no momento em que precisar ser executado. Esses componentes de concretização são chamados de diretivas de execução de testes (test execution directives) que consistem em arquivos XML que fazem a relação dos elementos do modelo (abstratos) com elementos reais da linguagem de programação da aplicação (concretos). O engenho de execução (execution engine) utiliza as diretivas de execução junto com o conjunto de testes abstratos para executar testes sobre a IUT. As informações coletadas durante a execução são persistidas no registro de execução (execution
trace). O registro de execução possui o mesmo formato de um caso de teste (mesmo esquema
XML), de maneira a facilitar a comparação entre os testes e as respostas encontradas durante a execução.
O analisador (analyzer) pode ser usado tanto para analisar a cobertura da execução, tanto para gerar novos casos de teste. O analisador lê o registro de execução e fornece informações de quais métodos e valores do modelo não foram cobertos pelos testes durante a execução. A partir dessas informações, pode ser gerada uma nova versão das diretivas de geração cujos testes resultantes possuirão uma maior cobertura do modelo. O analisador pode ainda agrupar casos de teste que falham para que se tornem apenas um, isso pode ser útil para re-testar o sistema após uma correção de bug. Essa técnica torna mais eficiente a forma de verificar a correção de um bug específico, pois é utilizada uma quantidade menor de testes.
4.3.2 Ferramentas Comerciais
Nas seções seguintes estão descritas brevemente ferramentas comerciais baseadas em modelos de comportamento.
4.3.2.1 TVGS
TVGS é a abreviação para Test Vector Generation System (Sistema Gerador de Teste de Ve- tor) [TVE06]. Essa ferramenta aceita modelos de requisitos e de comportamento do sistema descritos em uma linguagem proprietária chamada TLF (T-VEC Linear Form). É utilizada principalmente na indústria aeroespacial, e não possui qualquer suporte a UML ou qualquer outra linguagem de modelagem largamente difundida. O produto vem com um ambiente grá- fico para criação de modelos SCR [HKL97] (uma notação para modelagem de requisitos de software baseada em tabelas proprietária).
A diretiva de geração se encontra implícita no algoritmo utilizado para gerar os testes, e como resultado da geração são produzidos casos de teste abstratos que incluem as saídas esperadas. Os testes gerados cobrem os valores limites no caminho de decisão (um tipo de cobertura de condicional, ver 4.1.2).
de teste que podem ser executados automaticamente. 4.3.2.2 Conformiq Test Generator
Conformiq Test Generator [Con06] é uma ferramenta produzida pela empresa Conformiq Soft-
ware Ltda. Essa ferramenta aceita como entrada diagramas de estado (statecharts) de UML como o modelo do SUT, que incluem especificações com propriedades de tempo real.
O principal produto da análise do gerador é um simulador de comportamento que pode ser utilizado de várias formas diferentes:
• Modo de lote (batch mode) - Utilizado para gerar casos de teste usando a notação TTCN,
os casos de teste gerados podem ser executados contra a IUT em um momento posterior. Os casos de teste possuem resultados esperados e veredictos.
• Modo Interativo - Permite executar o gerador de testes de forma sincronizada com a IUT.
O comportamento do sistema é verificado em tempo de geração.
• Modo de trace - Uma atividade do sistema pode ser modelada por um trace, que pode
ser rodado através do gerador de testes para verificar se suas entradas e saídas estão conformes ou não, com respeito à especificação.
TTCN (Testing and Test Control Notation) [SW92] é um padrão da ETSI (European Tele-
communications Standards Institute) para casos de teste automáticos que está na sua terceira
versão, TTCN-3. Esse padrão dá suporte a testes caixa-preta automatizados para sistemas rea- tivos distribuídos em tempo real, permitindo múltiplas visões para os testes: 1) notação textual núcleo, no estilo de linguagem de programação; 2) representação gráfica, e, 3) representação tabular. O padrão inclui a descrição padronizada das interfaces de teste para executar casos de teste TTCN-3 em ambientes distribuídos, providos pelos múltiplos fabricantes independentes de ferramentas para telecomunicações.
Essa ferramenta utiliza algoritmos de exploração junto com técnicas de medida de cobertura para selecionar os testes a serem gerados, a página WEB da ferramenta não fornece detalhes adicionais sobre os critérios utilizados.
4.3.2.3 Tau TTCN Suite
Tau TTCN Suite [Tel06a], corresponde a um conjunto de várias ferramentas da Telelogic utili- zadas para criação, simulação e manipulação de modelos SDL [BH89] e casos de teste TTCN- 2 (TTCN versão 2). É capaz de gerar scripts de teste TTCN a partir dos modelos SDL. Este conjunto de ferramentas é um ambiente padrão para teste de conformidade de sistemas de co- municação, é largamente utilizado para testar equipamentos de telecomunicação desde chips de comunicação embutidos até gigantescos aparelhos de switch e serviços de rede inteligentes. Vem com um compilador TTCN-2 que compila os scripts de teste TTCN-2 em código C execu- tável. A literatura disponível para essa ferramenta não indica o critério de seleção empregado na geração dos testes.
4.3 FERRAMENTAS DE GERAÇÃO BASEADAS EM MODELOS 47