预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于SFTA和等价类的软件测试用例设计方法研究与应用基于SFTA和等价类的软件测试用例设计方法研究与应用摘要:为了解决软件测试时高可靠性安全性要求,测试用例设计的充分性和有效性不足的问题,软件故障树分析结合等价类原则解决了测试用例设计的充分性和有效性问题。通过对软件的故障模式进行分析,在建立软件故障树的基础上获得了软件故障树的最小割集。以最小割集为模型,结合等价类划分方法实现了测试用例设计,并根据该方法开发了测试用例自动生成工具。通过测试项目实际应用表明,采用该方法进行测试用例设计可以满足测试的充分性和有效性要求。关键词:软件测试;测试用例;故障树;等价类中图分类号:TN06?34;TP311.5文献标识码:A文章编号:1004?373X(2013)21?0128?040引言随着计算机科学技术的不断发展,软件在各个行业中发挥着越来越重要的作用,在许多领域中软件实现的功能已达到整个系统功能的80%。因此,软件系统的质量往往决定着系统的质量,有时由软件缺陷引发的故障造成的后果会非常严重。例如文献[1]中20世纪80年代美国发生的放射治疗机软件错误,导致五名患者受到超计量辐射死亡的严重事故。随着软件应用的深入和广泛,特别是,应用于高铁、银行、医疗、军事和航天航空领域的软件,其软件的质量更加需要关注,如果这些系统中发生由软件缺陷引发的事故,其后果将是无法预料的。目前,软件测试仍是保证软件质量的重要手段之一,而软件测试最关键的环节之一就是测试用例设计,测试用例设计的充分性决定着测试的有效性。采用何种测试用例设计方法满足测试的有效性和充分性要求是软件测试领域不断深入探索研究的课题。软件故障树分析[2](SFTA)是一种自顶向下的软件可靠性和安全性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全产生重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件)。利用SFTA分析的结果可以确定软件测试的重点和内容。等价类划分方法是一种黑盒测试方法[3],它将软件的输入划分为若干个数据类,从中得到测试用例的输入。等价类划分的测试用例设计是基于对输入条件的等价类进行评估,是软件黑盒测试中最常采用的方法之一。本文将SFTA和等价类划分方法相结合提出了一种有效的测试用例设计方法,并实现了测试用例的自动生成。1软件故障树及最小割集SFTA技术是应用较为广泛的软件安全性分析方法,将此方法用于软件测试时,主要应用于软件黑盒测试的测试用例设计。对于那些高可靠安全要求的软件应在进行安全性分析的基础上,进行测试用例的设计以便实现测试用例的有效覆盖。1.1建立软件故障树软件故障树的建立是软件故障树分析中最基本同时也是最关键的一项工作。软件故障树简单地说是由一些逻辑和事件符号构建而成的。由于软件故障树的准确性直接影响到对软件的分析,因此,在建立软件故障树时需要开展必要的准备工作。软件故障树的建立通常包括:收集并分析有关技术资料,选择要分析的顶事件和构建故障树。1.1.1收集并分析有关技术资料软件故障树建立的完善程度直接影响基于最小割集的测试用例集合的有效性,因而需要软件故障树的建立者广泛地掌握并使用有关方面的'知识和经验。这些知识和经验获取主要依靠对相关资料的学习和对软件的熟悉,需要掌握的内容主要应包括:软件系统的体系结构设计、软件的功能、系统的范围、软件之间的接口关系和运行环境等;识别人为因素对软件系统的影响;识别软件在不同的运行模式下的状态,以及不同模式之间的相互转换关系。另外,在建立故障树时应征求有经验的设计人员、用户等的意见,以便保证软件故障树的正确性。对于软件关键等级较高的软件,一般情况下,软件研制人员已完成了软件安全性分析。测试人员可以在此基础上开展进一步的分析。1.1.2选择要分析的顶事件利用故障树进行软件分析常遇到的问题就是构建的故障树过于复杂,很难利用其进行有效的测试用例设计。为了避免这一难题,在构建故障树时可以将软件故障树分层构建,先按照软件单个功能项为单位进行构建,在逐渐延伸至顶事件。这种顶事件确定方法也符合确认测试对所有功能进行测试的实际要求。顶事件的确定可以与确认测试的测试项的确定一起完成。当一个测试项有多个子测试项时,可以将子测试项做为顶事件。采用这种方法不仅避免了软件故障树过于复杂的问题,也更符合测试工作的需要与流程。将软件故障树分析与测试项的分解、测试用例的设计紧密结合,更有利于测试用例的自动生成。1.1.3构建故障树软件故障树中使用的符号包括事件符号和逻辑门符号两类。事件符号用以表示故障事件,逻辑门符号用以表示故障事件之间的逻辑关系。建立软件故障树通常采用演绎法。所谓演绎法是指首先选择要分析的顶事件(即不希望发生的故障事件)作为故障树的“根”。然后分析导致顶事件发生的直接原因(包括所有事件或条