- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SPIN功能测试用例生成方法研究
基于SPIN功能测试用例生成方法研究
摘要摘要:提出了一种自动生成系统功能测试用例的新方法。该方法使用Promela语言对软件系统的状态和行为进行描述建模,使用LTL公式描述测试覆盖标准,然后将该组LTL公式和描述状态行为的Promela模型输入SPIN模型检测工具,并利用模型检测工具自动生成相应的证据路径,最后结合正例将路径转化成满足相应覆盖标准的系统功能测试用例,并以电梯系统模型对该方法作出了诠释。
关键词关键词:功能测试用例;SPIN;模型检测;Promela建模
DOIDOI:10.11907/rjdk.161463
中图分类号:TP306文献标识码:A文章编号文章编号2016)007000103
0引言
软件测试是指新开发出来的软件运用于实际生产前,对其需求的分析、设计规格的说明以及最终编码的复核审查,它是保证软件质量的关键步骤。利用最少的时间和测试用例来找到软件开发过程中各阶段潜在的错误以保证该开发软件的质量,是软件测试的最终目的和终极目标。
为改变近年来人们对软件测试用例生成全靠手工完成的状况,同时满足自动化生成测试用例的需求,本文提出一种基于SPIN工具的系统功能测试用例自动化生成方法。首先,将待测系统的行为及状态基于符号的执行从源代码中抽取出来;然后,使用一组线性时态逻辑(LTL)公式描述特定的覆盖标准;最后,将建立好的Promela模型与代表系统属性的LTL公式一起输入到SPIN中进行检测。如此,就将模型检测工具的自动化验证过程转化成了测试用例生成过程,即SPIN生成的与LTL公式相对应的证据路径。图1为基于SPIN的自动生成测试用例技术框架。
1基于SPIN的测试用例生成基本思路
SPIN是由美国贝尔实验室开发出来的模型检测器,它主要用来对非实时系统模型进行检测,即验证某个有穷状态的系统是否满足利用LTL公式描述的属性。本文将系统功能测试用例生成的问题转化为一个模型检测问题,将生成测试用例的问题变换成验证模型检测中“状态不可达”、“不存在此条路径”等性质的问题。通过建立SUT行为模型,将一个测试覆盖标准构建为模型检测器的验证条件,并将模型检测得到的反例变换成测试用例集。由于模型检测工具能够利用生成的反例来解释违反了应满足系统性质的情况,因而此种反例很适合作为功能测试的路径。
为了利用模型检测过程得到的反例来生成测试用例集,需要取反用时序逻辑公式描述的测试覆盖标准,即假设测试覆盖标准永不为真,对原有的时序逻辑描述特性进行否定。检测时,若检测到系统与某个时序逻辑描述不一致,就会生成反例,说明模型不满足性质的原因,这是可能的一个测试用例的序列。当反复验证所有性质时,可以得到一系列能实现测试覆盖标准的测试用例的序列。2系统建模与模型检测
采用模型检测技术对被测系统和测试覆盖标准进行形式化描述,本文采用Promela描述被测系统,用 LTL 描述测试覆盖标准。2.1Promela建模
不是一般的程序语言,而是一款专用来描述并发系统的模型语言,用来建模有限状态系统。它类似于C语言的语法结构,能够动态地创建并行进程,进程间的通讯通过消息通道来实现,通讯方式有2种:异步、同步。由Promela建立的模型组成包括进程、消息通道、对象和变量等,如图3所示。
2.2LTL公式逻辑描述
与CTL相比较,LTL更适合对并发程序的性质进行验证,所以本文使用的是LTL逻辑公式。在SPIN中,LTL算子包含有、||、→、!和3种时序算子:① p:表示p在未来的某个状态点成立;② p:表示p在未来的所有状态点都成立;③ p∪q:表示p在所有状态点都成立直到遇到第一个状态点使q成立。在iSpin中,必须对每一个用到的LTL符号增加一个宏定义,即声明p、q所代表的等式。 2.3SPIN检测
SPIN由贝尔实验室用ANSI C开发,可在所有UNIX操作系统版本中使用,也可在安装了Windows 95以上版本、Linux等操作系统中使用。 SPIN工具的思想是求两个自动机的交集,如果为空集,则安全特性得到验证,否则输出不满足该安全特性的行为轨迹。
采用形式化公式来表达,即证明M?b是否成立,其中,M表示模型,表示时态逻辑公式。分别将转换成自动机A,将M转换成AM,即相当于证明:
2.4反例分析
SPIN采用双重深度优先搜索方式进行状态搜索,遇到反例路径后就退出搜索,并将路径打印到一个后缀名为“.trail”的文件里。这种方法的优点是完全自动化,系统若不满足给定的性质,检验结果就给出反例,生成的反例反映一个状态变换的路径,该路径包括一序列步骤,相应状态的取值在每一步骤中都会被给出。可以用系统简化的模型来反例跟踪,再结合
您可能关注的文档
最近下载
- 腹透腹膜炎的护理.pptx VIP
- 肌电图设备可行性报告.docx
- 网络短剧推广方案策划.pptx VIP
- 2020年中央空调市场报告-艾肯网.pdf VIP
- 人工智能赋能中学化学教学的探索.pptx VIP
- 高中化学新人教版必修一离子方程式正误判断及离子共存课件.ppt VIP
- 解放上海红色戏剧小品《我记得你,你就活着》台词剧本手稿.doc VIP
- 生成式人工智能应用实战课件 第7章 AIGC信息获取与数据分析.pptx VIP
- 2024—2025学年河南省开封高级中学高一上学期第一次月考物理试卷.doc VIP
- 2025下半年全国房地产经纪人考试(房地产交易制度政策)综合试题及答案.docx VIP
文档评论(0)