基于模型的测试综述
2016年1月
摘 要
面向对象软件开发应用越来越广泛,自动化测试也随之被程序员认可和接受,随之而来的就是基于UML的软件开发技术的大范围普及和基于模型的软件测试技术的普遍应用。基于模型的测试是软件编码阶段的主要测试方法之一,具有测试效率高、排除逻辑复杂故障测试效果好等特点。本文描述了基于模型的测试的模型以及建模标准,并介绍基于模型的测试的基本过程以及支持工具,同时通过七个维度对基于模型的测试方法进行描述。最后分析基于模型的测试的优缺点并列举了应用案例。
关键词:软件测试,基于模型的测试,软件模型,测试工具
I
目 录
摘 要 ................................................ I 1 引言 ......................................................................................................... 2 2 基于模型的测试、模型以及建模标准 ................................................ 2
2.1基于模型的测试............................................................................................... 2 2.2基于模型的测试的模型................................................................................... 3 2.3建模标准........................................................................................................... 4
3 基于模型的测试的基本过程及支持工具 ............................................ 5
3.1基于模型的测试的基本过程........................................................................... 5 3.2支持工具........................................................................................................... 6
4 分类 ......................................................................................................... 7
4.1 模型主体.......................................................................................................... 7 4.2 模型冗余程度.................................................................................................. 7 4.3 模型特征.......................................................................................................... 7 4.4 模型表示法...................................................................................................... 7 4.5 测试用例选择标准.......................................................................................... 8 4.6 测试用例生成技术.......................................................................................... 8 4.7 联机、脱机测试用例生成.............................................................................. 9
5 基于模型的测试的工具Spec Explorer ............................................... 9
5.1 Spec Explorer .................................................................................................... 9 5.2 连接测试用例和待测系统.............................................................................. 9 5.3 静态模型和实例模型.................................................................................... 11
6 基于模型的测试的优缺点 .................................................................. 11 参考文献 .................................................................................................. 13
1
1
引言
在软件开发的生命周期中,测试是一个非常重要的阶段。软件测试[1]通过为
特定测试目的而设计的测试用例的执行情况,与预期的软件行为进行一致性对比,从而判定软件错误所在,以此确保软件的可靠性和正确性。
由于软件产品的固有的复杂性质,软件测试的难度也就不言而喻。传统的测试方法被认为是繁琐的、强工作量且容易出错。应运而生的基于模型的测试开始受到日渐广泛的关注。基于模型的测试(Model-Based Testing)[2]是一种系统化的测试方法,可被应用于软件生命周期早期阶段的产品的测试,并且它使完全自动化测试成为可能,其特点是:在产生测试例和进行测试结果评价时,都是根据被测试应用程序的模型及其派生模型(一般称作测试模型)进行的。
基于模型的测试深受工业界的青睐,原因如下:一是工业界通常需要验证软件产品的系统行为。在产品设计的早期,基于模型的测试的使用有利于帮助找出不清晰的、易存在二义性的软件系统规格说明(―即编码前的分析设计模型/文档‖)。二是基于模型的测试方法使得大量不重复的、有意义的测试用例产生变得可能。三是使用基于模型的测试一旦系统规格说明发生改变,只需要对测试模型进行修改就可以轻松地达到更新测试用例的目的。
本文组织如下,首先介绍了基于模型的测试及其特点,分析了主要的测试模型及如何选择合适的测试模型,重点是有限状态机模型、UML模型和马尔可夫链模型,并且提出了建模的标准;接着介绍基于模型的测试的基本过程以及支持工具,再通过七个维度对基于模型的测试方法进行描述,并对每一个维度探讨了可能取值,然后与其他软件测试技术相比,分析基于模型的测试的优缺点,最后列举了一些基于模型的测试的应用案例。 2
基于模型的测试、模型以及建模标准
2.1基于模型的测试
首先应该要明确软件模型的概念,是指用抽象化的方式对软件行为和软件结构进行阐述,软件行为可以通过一系列的输入输出逻辑和数据流分析来表示,软件结构则是通过部署图、流程图等图形方式直观表述,基于模型的测试就是通过上述两种抽象化方式产生测试用例。相比于针对程序代码本身的测试,而基于模型的测试方法不仅可以有效地提高测试效率,提高测试例生成的自动化程度,进行测试失效辨识,也有利于评价测试结果。
基于模型的测试是对被测系统的模型化,然后根据模型特性,完全或者部分
2

