2.6
Ferramentas de teste baseadas em modelos
As ferramentas MBT disponíveis procuram acima de tudo integrar conjuntamente as etapas de análise de requisitos e de teste, que correspondem a duas etapas distintas no processo de MBT. Sob um ponto de vista positivista, seria óptimo automatizar todo o processo, para que os inputs das ferramentas fossem os requisitos e os outputs fossem os casos de teste incorporando os outputs espectáveis do SUT. Não obstante, existem diversas ferramentas de MBT, quer comerciais quer académicas, que se focam na sua maioria ao nível da transformação dos testes abstractos em scripts de testes executá- veis. Estas permitem ainda controlar, dentro de uma certa granularidade, a selecção e cobertura dos testes. A tabela 2.1 exibe de modo sucinto algumas dessas ferramentas. Como se pode observar, na tabela estão representados os quatro tipos de aborda- gens MBT apresentados anteriormente no sub-capítulo que lhe foi destinado e, em par- ticular, foram evidenciadas através de sombreado aquelas que se baseiam em modelos comportamentais do SUT para gerar casos de teste e respectivos oráculos, tal como a ferramenta proposta nos trabalhos da presente dissertação. A título exemplificativo denote-se também as ferramentas que geram dados de input a partir de modelos de domínio (e.g. AETG Web Service...), as ferramentas que geram casos de teste a partir de modelos de ambiente do SUT (e.g. Ma TeLo) e, por fim, as ferramentas que geram scripts de teste a partir de testes abstractos e que, em particular, partem de notações abstractas, ou similarmente de alto nível (e.g. TAU Tester).
Ainda da tabela, repare-se nos diferentes tipos de notações de modelação utilizados pelas diversas ferramentas.
Para além das ferramentas apontadas nesta tabela podem ser ainda enunciadas ou- tras com grande projecção no meio científico, como é o caso da ferramenta Spec Explo- rer1 desenvolvida pelas equipas de investigação da Microsoft R.
Esta é já uma ferramenta amadurecida de MBT que permite testar sistemas reac- tivos de software orientado a objectos, sendo que através da notação de modelação Spec#, o Spec Explorer [26] cobre aspectos como a criação de objectos dinâmicos, não determinismo e comportamento reactivo, análise de modelos, teste online e offline e execução automática de testes.
O Spec# é uma ferramenta que descende de uma versão light do AsmL2, com al-
guns pontos de similaridade com o ESC/Java para Java, mas que por seu turno assenta sobre código C#. Com esta notação desenvolve-se o código do sistema anotando-o com pré-condições, pós-condições, invariantes, invariantes de ciclo, verificação de desrefe-
1http://research.microsoft.com/en-us/projects/specexplorer 2http://research.microsoft.com/en-us/projects/asml
2. ESTADO DA ARTE 2.6. Ferramentas de teste baseadas em modelos
Ferramenta Organismo Inputs da ferramenta Outputs da ferramenta AETG Web Service Telcordia Technologies Ap-
plied Research
Parâmetros de Input na forma tabular
Casos de Teste Abstract State Machine Lan-
guage (AsmL)
Microsoft XML e palavras Geração de testes baseada na cobertura total das tran- sições de um autómato fi- nito.
Conformiq Test Generator Conformiq Software, Limi-
ted Diagramas de Estado UML Casos de teste no formatoTTCN, incluindo os resulta- dos expectáveis.
Direct-To-Test(DTT) Software Prototype Techno-
logies Modelos em linguagem pró-pria, tabelas causa/efeito Casos de teste incluindooutputs esperados e scripts de testes executáveis GOTCHA-TCBeans IBM Research Laboratory in
Haifa Modelos em linguagem es-pecífica Casos de teste incluindooutputs esperados e plata- forma de tradução de testes Ma TeLo All4Tec Editor de Modelos de Uti-
lização (Estatísticos) através de Cadeias Markovianas
Gera casos de teste a par- tir dos modelos de utiliza- ção de um SUT
MulSaw Massachusetts Institute of Technology
Modelos na linguagem de modelação Alloy ou em JML, incluindo pre e pos condições
Testes baseados em critérios de cobertura
Reactis Reactive Systems, Incorpo-
rated Modeloslink(MatLab) e Linguagemem Simu- de Modelação Stateflow
Simulador de Modelos, con- junto de testes, incluindo re- sultados expectáveis. SDL And MSC based Test
case Generation (SAMS- TAG)
University of Fribourg SDL system specifications,
MSC test purposes Casos de teste no formatoTTCN. SmartTest Smartware Technologies Diagramas de classe e UML Geração de Testes através de técnicas/algoritmos de pairwise
SpecTest George Mason University Modelos em SCR ou UML Testes baseados em critérios de cobertura
TAU Tester Telelogic Modelos TTCN-3 Ambiente de execução para testes TTCN-3
Test Generation with Verifi- cation (TGV)
IRISA and VERIMAG Labo- ratories
Especificação de modelos LOTOS, SDL, ou IF
Casos de teste no formato TTCN, incluindo os resulta- dos expectáveis.
Test Vector Generation Sys-
tem (TVEC) TVEC Technologies Modeloem linguagem proprietáriacomportamental ou em modelos SCR
Casos de teste abstractos e programa de teste executá- vel
The Object-oriented Soft- ware Testing Environment (TOSTER)
Warsaw University of Tech-
nology Diagrama de estados UML Gera e executa os casos deteste e gera os outputs ex- pectáveis
Test Cover TestCover Modelo de domínio dos da- dos de input
Geração de casos de teste recorrendo a técninas de pairwise
TorX University of Twente Modelos LOTOS, PRO-
MELA, ou SDL. Geração de casos de teste ZigmaTEST ATS Modelos (Máquina de esta-
dos finita) Sequência de testes que co-brem as transições da má- quina de estados
Tabela 2.1: Ferramentas de Model-Based Testing (adaptado de [12, 25]) renciação nula,... que permitem a verificação estática do sistema.
O Spec Explorer surgiu tentando colmatar algumas falácias do MBT, como a falta de soluções adequadas para lidar com a explosão de estados, utilização de linguagens de especificação em vez de linguagens de programação correntes, falta de suporte para modelação orientada a cenários (em particular para a composição de cenários com máquinas de estados) e por fim para lidar, quer com a falta de integração com IDEs em