LTS综述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
标记变迁系统LTS(Labeled Transition System)是一种传统的被广为接受的基于抽象状态机的状态变迁模型. 标记变迁系统最先分别由 K e l l e r [ 8]和 L i e n[ 9]两人提出来, 而后P l o t k i n在此基础上将变迁系统中增加了一个元: 标记( 动作) [ 1 0]. L T S是形式化一致性测试的一个重要研究方向[ 1 1], 它常常用于形式化地描述分布式系统和协议的行为, 成为这些系统说明、 实现和测试研究的有力工具, 同时也可以对安全协议进行验证[ 1 2]. 另外, L T S还能作为许多形式描述语言的语义模型, 如C C S、 C S P、 L OTO S、 E S T E L L E、 S D L等.
[2008]Model Based Testing with Labelled Transition Systems
模型化测试的分类,依据:模型使用的种类、测试关注的特性方面、涉及的形式化的度、系统的访问和观测度。因此,可分为:形式化的、基于规范的、活跃的、黑盒的、功能性的等测试。
测试的基础是协议规范。
IUT
是个黑盒,我们并不知道其内部细节。
ioco
:定义规范和实现间一致性的形式化关系。
形式化测试
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
关于一致性,假设任何
IUT
的现实实现都可以用
iIUT
被模型化。这里有个
trick
,
MOD
是先验选择的,指向一些通用的实现,一般认为是测试假设。也就是说在
MOD
集合内,存在一个合法的
iIUT
,但不是说这个模型是先验的。
imp є IMPS
×
SPECS
s
∈
SPEC if i imp s
T
⊆
TEST
:
i passes T
⇔∀
t
∈
T : i passes t.
∀
i
∈
MOD : i imp s
⇐⇒
i passes Ts
完全的测试是无限的,最终也是现实上不可能实现的。因此,通常测试集上较弱的实现一般这么说:他们是合理的,那意味着所有正确的实现和一些不正确的实现都可能通过。测试致力于发现错误,而不能保证完全没有错误,完全发现错误是一直耗尽行为。
SOUND
和
exhaustive
genimp
:
SPEC
→
P(TEST)
标号变迁系统:
定义:标号变迁系统是一个四元组
< S, L , T, s0 >
S
是非空有限状态集合;
L
是一个有限的标号集合;
是转换关系;
是初始状态。
标号集合
L
表示系统所有的可观察动作,
特殊的标号
表示不可观察的内部动作。
T
中的元素是一个三元式
,其中
,也可以写成
,表示系统在动作
下从状态
s
到达状态
s
’。将
L
上的所有标号变迁系统记为
LTS
(
L
)。
迹(
Traces
)是
LTS
理论中的重要概念,它是系统可观察动作的一个有限序列。
L
上所有迹的集合用
L*
表示,
表示空序列。
基本跟
LTS
中文版一样。
如上可以看到,
LTS
用树或图来表示并不那么灵活,现实的系统往往有上
billions
的状态,所有完全画出或枚举出他们来是不现实的。因此,定义一种使用
LTS
的语言来表示。称这种语言为
process language
(处理语言)
hide G in B | P
这里
L
是一个标号,B是表示一个行为,
表示行为的一个可数集合,
G L
是标号的一个集合,P是进程名。
动作前缀标定
; B
定义一个行为没能指显动作
,然后表现为B。i;B与
; B
相似,但i表示内部动作
。
选择表达
表示行为的选择,表现为集合
中的一个处理,这个选择取决于前面已经做的第一个转换。使用
表示
的缩写,即表示行为可表现为B1,也可以表现为B2,stop是
的缩写,例如那些不能做任何动作的行为就可以称为死锁进程。
仔细看中文版
输入输出变迁系统IOTS
见中文版。
{S, Lu, LI∪{θ},T,s0}∈IOTS(LU,LI ∪{θ})
T是有限状态,S表示两个特定的状态pass和fail。
3.6提要
LTS是形式化理论中一个基础模型。IOTS类似input/output automata(IOA)和Input-Output State Machines,但他们与经典的FSM和Mealy Machine是不同的。但IOTS与IOA也有不同,区别在于输入使能上面,看参考其他文献。
4实现关系
一般意义上IOTS(LI,LU)与LTS(LI,LU)之间的关系可看做一种实现关系。
主要讲ioco
见中文<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4.2.1
ioco的其他变种包括:TGV-ioco、mioco、tioco、tioco、sioco等,
记得翻译4.3的提要
5使用LTS进行测试
首先介绍测试执行。
转载于:https://blog.51cto.com/hmrose/416850