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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于故障树的计算机测试用例自动生成 计算机广泛应用于复杂和及时的设备和生产过程中。当计算机在运行时错误或失效时可能造成人员伤亡、财产损失甚至引发环境污染。在这些监视和控制系统中使用的软件被称为安全软件(safety-critical software)。它们的可靠性和安全性受到人们的重视。如何保障安全软件的质量,防止灾难性事故的出现是人们面临的亟待解决的问题。 软件测试是软件生产中必不可少的质量保障手段。长期以来,软件测试大多用手工进行的,测试用例往往是靠直觉、经验产生的,并且测试效率和开销都很难满足需求,对质量的提高起不到保证作用。独立于开发商和用户的软件第三方测试常常采用黑盒测试技术,黑盒测试是通过对软件需求规格说明书的层层分解来划分输入空间,然后生成相应的测试用例来对软件进行测试的,因此如何提高软件测试过程的自动化程度是当务之急。 本文提出了运用故障树分析技术对系统各模块发生故障概率进行分析从而找出对系统安全性影响较大的关键性模块,然后运用在故障树基础上求出的安全事件的最小割集来划分测试用例数据类型集并自动产生测试用例的一种测试方法。 1 建立故障树进行诉讼 “故障树分析”(Fault Tree Analysis)以下简称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,m

文档评论(0)

lczslgy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档