父类中各个成员函数的测试采用传统的单元测试技术,可以把传统的基于规约和基于程序的测试技术相结合选择测试集。类中每一个成员函数的测试历史是一个三元组?{m?i(TS?i,test),(TP?i,test)},其中m?i为成员函数;TS?i为基于规约的测试集;TP?i为基于程序的测试集;test标识该测试集是否要(重)运行。??
同一类中成员函数的相互作用的测试实际上是一种集成测试,如何进行这一测试是根据类图来确定的。在类图中,节点表示类中的一个成员函数或数据成员,有向边表示发送消息。测试数据集的选择也可应用基于规约和基于程序的测试方法。测试历史的形式也是一个三元组?{m?i(TIS?i,test),TIP?itest},其中m?i是类图中某一子图的根节点;TIS?i是基于规约的集成测试集;TIP?i?是基于程序的集成测试集; 取表示该测试集要全部(重)运行,取表示部分(重)运行,取表示无需(重)运行。一个类的测试历史是各成员函数测试历史的集合和集成测试历史集合的并集。?
2.3基于流图的类测试技术?
把传统的基于流图的测试技术应用于类测试提出了一种构造类流图的框架。在类流图中,节点表示操作,操作A和操作B之间的有向边表示允许某引用类(client)在调用操作A之后调用操作B,确定节点间是否可以联边的依据是该类的规约。?
传统程序流图的测试充分性准则可以在类流图中找到对应,如类流图的节点覆盖要求测试时的操作序列应使每个操作至少执行一次,分支覆盖要求测试时的操作序列应覆盖类流图中的每条边至少一次。还可以在类流图上给出类似于数据流的定义性出现!引用性出现、定义-引用对等概念。在类流图中,所有对象的定义性出现和引用性出现根据操作(节点)中是否定义或引用该对象来确定,然后在谓词性引用和控制操作。计算性引用和非控制操作之间建立对应关系,从而可以类似地给出数据流准则中的定义覆盖准则、引用覆盖准则和定义-引用路径覆盖准则等。图4给出堆栈类(类名为Stack,T为栈元类型)的类流图,表1给出每个操作的定义性和引用性使用情况。?
基于流图的类测试技术把传统的基于规约的测试应用于类测试,完全依赖于类的实现,系统地而不是随机地产生测试用例,且可全部自动化。?
参考文献?
[1]?龚红仿,孙乐,仝青山,柳湘华.面向对象的类测试方法研究[J].长沙电力学院学报,2006,(8).?
[2]?李军义,高捷,童小娇.面向对象的类的状态测试技术研究[J].计算机应用研究,2005,(12).
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机面向对象的类测试技术研究(2)在线全文阅读。