|
|
|
|
移动端

1.13 基于模型的测试与模型检测

《软件测试基础教程》第1章软件测试的基本知识,本章作为一个导引,其目的在于让读者熟悉与软件测试相关的基本概念,建立起全书的框架。在本书后续章节中将要详细阐述的问题,首先在这里被提了出来。读完这章之后,读者就能够在软件测试和软件质量方面提出一些有意义的问题。本节为大家介绍基于模型的测试与模型检测。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-16 21:46

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

1.13 基于模型的测试与模型检测

所谓基于模型的测试,是指对软件行为进行建模以及根据软件的形式化模型设计测试的活动。模型检测是指,用来验证软件特定模型中的一个或多个特性的一类技术。

图1-15说明了模型检测的过程。模型通常是有限状态的,是从一些原始材料中提取出来的。这些原始材料可能是需求文档,在某些情况下还是软件源代码本身。有穷状态模型中的每一个状态的前面都有一个或多个前置特性条件,当软件处于该状态时,这些特性必须满足。例如像x<0一样简单的条件,要求变量x在该状态必须是个负数;也可能涉及更复杂的特性条件,比如定时、同步。

 
图1-15 模型检测的要素

将单个或多个期望的特性条件编码到一个形式化的规约语言中。通常用时态逻辑来描述这些特性。时态逻辑是一种形式化地规约时间特性的语言。然后,将模型与期望的特性输入到模型检测器中。模型检测器将验证指定的模型是否满足给定的特性。

对每一个特性,模型检测器可能得出以下三种答案之一:特性满足,特性不满足,不能确定。针对第二种情况,模型检测器将会提供反例说明为何特性不满足。如果模型检测器在达到迭代次数上限时仍不能终止,就可能会引起第三种情形出现。

在几乎所有的情况下,模型都是实际系统需求的一个简化版本。模型检测器的一个正面判定结论,并不是说该特性在所有的情况下都是满足的。因此,需要进行测试。尽管模型检测器给出了正面的判定结论,还是有必要用测试来确定:至少在一些给定的情况下,软件确实满足该特性。

虽然模型检测和基于模型的测试两者都用到模型,但模型检测用局部特性增强了的有穷状态模型,这些局部特性在个别状态必须满足。局部特性又被称作原子命题(atomic proposition),而增强的模型称作Kripke结构。

概括地讲,模型检测是一个有力的、与基于模型测试互补的技术。两者都不能保证一个应用系统在所有输入条件下都满足某个特性。然而,两者都能给出有用的信息,便于测试人员发现一些不易发现的错误。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

PHP5与MySQL5 Web开发技术详解

本书是目前中文版本第一个真正介绍PHP 5及MySQL 5新增语法与功能的权威宝典! 本书本着精、全、要三宗旨,从理论中延伸,从实践中深入,详...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊