基于故障树的计算机测试用例自动生成_第1页
基于故障树的计算机测试用例自动生成_第2页
基于故障树的计算机测试用例自动生成_第3页
基于故障树的计算机测试用例自动生成_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于故障树的计算机测试用例自动生成

计算机广泛应用于复杂和及时的设备和生产过程中。当计算机在运行时错误或失效时可能造成人员伤亡、财产损失甚至引发环境污染。在这些监视和控制系统中使用的软件被称为安全软件(safety-criticalsoftware)。它们的可靠性和安全性受到人们的重视。如何保障安全软件的质量,防止灾难性事故的出现是人们面临的亟待解决的问题。软件测试是软件生产中必不可少的质量保障手段。长期以来,软件测试大多用手工进行的,测试用例往往是靠直觉、经验产生的,并且测试效率和开销都很难满足需求,对质量的提高起不到保证作用。独立于开发商和用户的软件第三方测试常常采用黑盒测试技术,黑盒测试是通过对软件需求规格说明书的层层分解来划分输入空间,然后生成相应的测试用例来对软件进行测试的,因此如何提高软件测试过程的自动化程度是当务之急。本文提出了运用故障树分析技术对系统各模块发生故障概率进行分析从而找出对系统安全性影响较大的关键性模块,然后运用在故障树基础上求出的安全事件的最小割集来划分测试用例数据类型集并自动产生测试用例的一种测试方法。1建立故障树进行诉讼“故障树分析”(FaultTreeAnalysis)以下简称FAT。它是通过对可能造成产品故障的硬件、软件、人为等因素进行分析,画出产生故障原因的各种可能组合方式和其发生概率的一种分析技术。在运用故障树分析软件可靠性时,首先确定在软件运行中将会出现的故障作为顶上事件,将所有的顶上事件组成一个顶上事件表,也可以称之为软件故障顶上事件表。对于每一个顶上事件都应该有一个故障树与之对应。对于每一个顶上事件根据系统的逻辑结构,对顶上事件做出因果关系分析,找出导致顶上事件发生的所有可能的原因,再跟踪找出导致这些原因的更基本的原因这样逐层往下分析,一直可以分析到基本原因,从而可以建立对应于该顶上事件的故障树。例如对于较小规模的软件,可以根据程序中各条语句的逻辑关系,分析顶上事件的发生主要可能是哪些语句或程序模块所造成的,并进一步往下进行分析,一直到某条语句或某个条件时为止,这样就可以根据逻辑关系画出这个软件的故障树。根据故障树就可以确定顶上事件发生是由哪条语句错误或哪条条件组合引起的,我们可以根据这些分析结果安排软件安全性测试计划,并进一步选取合适的测试用例集合。对于一个复杂大型的软件系统,可以运用故障树找出系统的关键模块对它进行重点测试。一个复杂大型软件系统有很多个子功能模块组成。软件要执行一定的任务,就需要调用一个或多个功能模块。例如在自动取款机的控制软件中就包含验证卡的真伪、验证用户密码、修改密码、取款、存款、转账、查询余额等功能模块组成。根据用户的不同操作,软件将调用不同的模块,而每一个子功能模块的失效就有可能导致整个系统功能的失效。为了对复杂的大型软件系统进行有效测试,可以把功能模块作为底事件,运用故障树分析技术进行安全性分析。例如在自动取款机的例子中,可以把自动取款机失效(软件控制方面)作为顶上事件,然后运用和前面相似的方法进行分析,找出顶上事件可能是由那些模块引起的。为了避免由于大型软件系统的功能模块多,最后导致画出的故障树相对较大。可以采用最小割集法求出故障树的最小割集,从而可以形式化的找出影响系统安全的割集模块,并根据已有统计的模块失效概率确定各个割集模块发生的概率。根据发生故障的概率大小找出关键性模块。由于关键性模块对软件系统的安全性有很大的影响,并且提高关键功能模块的可靠性对提高系统的可靠性又有非常大的作用,因此必须加强对关键性功能模块测试,这样即可以最大程度的保持系统的安全性又可以整体提高测试的效率。2故障树分析法故障树的割集描述了软件失效的模式。所谓割集是指导致软件失效的一组事件的集合。当这些事件全部发生时,顶上事件必然发生。不能再简化的割集被称为最小割集,在一个最小割集中,只要存在一个事件没有发生,就不能促使顶上事件的发生。在某种程度上,可以认为最小割集是安全性需求的具体表现。因此,可以通过安全性约束条件来阻止所有最小割集的出现,使得输出满足安全需求。现在以某软件系统的一部分为例,来具体讨论一下故障树技术的应用,并根据故障树求出最小割集,然后在最小割集的基础上运用安全性约束条件划分测试数据类型,并自动产生测试用例。某应用软件共有七个模块组成,分别设成m1,m2,m3,m4,m5,m6,m7。各模块的失效率为:Fm1=Fm2=0.01、FM3=0.004、Fm4=0.007、Fm5=Fm6=0.02、Fm7=0.03(此数据可以由软件可靠性分配或通过软件可靠性预计得到),经过采用第二节中所说的方法进行分析,得到故障树附图所示。利用故障分析法,我们可以求出此故障树的所有最小割集,分别记为:K1={m3}、K2={m4}、K3={m1,m2}、K4={m3,m5,m6}、K5={m5,m6,m7},共有五个。从定性分析来看,由于K1和K2这两个最小割集只含有一个模块,因此m3和m4模块为重要模块,只要他们一个发生故障,系统就会导致失效,应对他们进行重点分析测试。从定量分析来看,各个最小割集的故障概率分别为:从以上的分析可以看出,K2割集的故障发生概率最大,其次是K1,经过定量分析可以确定模块m3和m4是关键模块,这和定性分析的结果有一定的相似性。由于各底事件的故障较小,因而系统的故障率可以近似计算为各最小割集故障率之和,即如果系统要求其失败概率小于0.001,则系统改进的最好办法是提高m3和m4的可靠性,从而降低它的故障发生概率,这也是为什么要对关键模块进行重点深入测试的原因。由此可见m3和m4模块是我们应该重点测试的关键模块。故障树分析法不仅能够分析大型复杂软件系统,从整体上找出影响系统安全的关键模块进行重点测试,也可以应用它对具体的小的单个模块进行分析,此时可以以单个模块的功能失效作为顶上事件,从而进行运用前面提到的分析方法进行故障树的建立。现在假设附图所示的故障树是针对一个小的具体模块M而建立的故障树,相应的最小割集也是影响模块M安全性的事件的最小割集。下面是在模块M最小割集的基础上进行测试数据类型集的划分和测试用例自动产生的方法。顶上事件是该模块功能失效,底事件是一个个可能导致该模块功能失败的事件,例如针对自动取款机种的取款模块,顶上事件是取款失败,具体导致失败的事件可能是输入的金额有问题或银行金额不足等导致取款失败。前面提到最小割集是安全性需求的具体体现,在一个最小割集中,只要存在一个事件没有发生,就不能促使顶上事件的发生。因此,可以通过安全约束条件来阻止最小割集中的事件全部发生来满足安全需求。针对上述的最小割集∶K1={m3}、K2={m4}、K3={m1,m2}、K4={m3,m5,m6}、K5={m5,m6,m7}很容易进一步量化为安全性约束条件。设:T={xi|xi是所有用于测试该模块安全性的数据},设有七个函数Setm1(xi)……Setm7(xi),函数功能是分别使七个事件发生。例如,对于K3可以量化为安全性约束条为:在形成了安全性约束条件后,可以将数据的输入空间划分为3类:(1)是不包含在任何约束条件范围内的输入数据集合,这些数据输入被测模块后,预期其不会产生模块功能失败的现象;(2)是部分包含在安全约束条件中的数据集,这些数据输入被测模块后,有可能出现导致模块功能失败的现象,但是模块应该能够进行有效的防护;(3)是完全包含在安全性约束条件中的数据集,这些数据输入后,必然造成模块功能失败导致顶上事件发生。在这三种类别的数据集中,第1类数据只是被用来测试模块基本正常功能是否已经满足;第2类数据是测试模块功能的重点,它被设计用来检测被测模块的防护功能;第3类数据是检测模块功能的极限情况,用来估计模块的可靠性。在确定了数据集类别后,还要收集数据来完成各类别数据集的建立工作。在完成了各类别数据集的建立后,由于这些数据只是整体上的测试数据,所以还要进一步的将这些数据进行组合,组合成测试具体的测试用例。为此将最小割集中的事件分成如下3类:(1)外部输入事件,用于表示用户或环境的正常和非正常输入的事件。它构成测试用例的输入部分。(2)输入和输出迁移事件。用于表示模块功能正常的输入和输出迁移事件。如果模块当前的输出满足了前一个输入输出迁移,则进一步扩展测试用例,继续加载后一个输入事件进行测试,否则表示模块已经进行了有效的防护,后面的输入输出迁移事件不可能出现。因此它确定了测试用例是否需要进行动态扩展。(3)用于表示模块功能正常的约束子条件的事件。在生成测试用例时,不仅要包含基础性输入的测试数据,而且还要包含各种动态扩展的输入输出迁移的测试数据,使得割集中与不同安全性需求侧面相对应的各个输出约束条件序列中的各个输出约束条件都能得到充分测试。因而运用最小割集的安全约束条件使得测试数据的收集和测试用例的书写更有目的性和针对性,从而可以能够极大的提高测试的效率。3基于故障分析方法的复杂系统测试方法由于大型复杂软件系统往往是由很多功能模块组成,其整体功能的完成需要调用相应的模块,而且各个模块之间又有着复杂的联系,使得对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论