目录
⊙MBT 是什么?
⊙PRE/POST 模型是什么?
⊙如何建立PRE/POST模型?
⊙OCL是什么?
⊙OCL怎么建立PRE/POST模型?
⊙PRE/POST模型MBT 实践
一、MBT是什么
MBT中文名称为基于模型的测试, 基于模型的测试属于软件测试领域的一种测试方法。按照此方法,测试用例可以完全或部分的利用模型自动产生。以上所说的模型通常是指对被测系统(SUT,system under test)某些(通常是功能性的)方面的描述。
模型一般都是对被测系统(SUT, system under test)预期行为动作的抽象描述。这些测试用例的集合就是我们平时所称的抽象测试套件(abstracttest suite). 抽象测试套件不可以直接执行于需测试的系统,因为他们不在同一抽象级别。
下图为MBT整体的流程
MBT核心点在于:
如何选择模型
如何生成用用例
如何校验结果
模型直接决定后面两个要素如何进行。
MBT中模型通常有下列几种
前置后条件模型:Pre and post condition models (State based, OCL)
基于转换的模型:Transition based models (FSM, labeled transition systems)
随机模型:Stochastic models (Markov chains)
数据流模型:Data-flow models(Lustre)
其中转换和前置后置条件模型是最常用的模型。对于面向数据的系统(例如网络接口),前置后置条件模型是比较适用的,转换模型例如有限转态机模型(FSM)则比较适合面向交互系统(例如UI系统) .
本文主要讲述PRE/POST模型在网络接口测试MBT中的使用和实践。
二、PRE/POST 模型是什么
网络接口通常是基于一定的契约/约定来执行的.
如我们有一个类Person, 它有一个setAge方法
Class Person {
Public: