维普资讯 http://www.cqvip.com 第19卷第11期 现代商贸工业 Modern Business Trade Industry 2007年11月 种基于贝叶斯定理的 软件测试有效性的评估模型 一萍 (苏州大学商学院,江苏苏州215021) 摘 要:软件测试是软件开发生命周期中的一个关键步骤。从某种程度上说,软件测试决定了该产品的最终成败。一 种有效的软件测试方法可以侦测出软件产品中的错误,并保证软件产品可以准确无误的发布。但如何保证软件测试的有 效性一直是人们探讨和争论的问题。通过提出了一种软件测试的简单模型,以帮助人们正确的评估软件测试的有效性。 关键词:软件测试;贝叶斯定理;测试有效性 中图分类号:TP393 文献标识码:A 文章编号:1672—3198(2007)11-0268—01 l 引言 如何避免上述两种情况的发生呢?有效软件测试的标准是 长久以来,在软件开发生命周期中,软件测试一直扮演 什么呢?究竟什么样的测试可以被定义为有效测试呢?本 从贝叶斯原理出发,提出了一种评估软件 着举足轻重的角色。它帮助人们在软件产品正式发布以 文针对这一问题,前,有效的侦测出软件设计中的错误和缺陷,及时予以纠 有用户的参与,可以在测试的过程中准确理解用户的需求, 对产品进行改进和完善,保证软件产品基于用户要求量身 订制,真正实现产品客制化(Customization)。从而保证产品 的高质量和高效益。 与软件测试的重要性随之而来的一个根本问题就是其 有效性,即软件测试正确侦测出产品缺陷或错误的效率有 测试的简单模型。借助该模型,软件开发人员可以有效的 正。更重要的是,软件测试除由专业技术人员进行外,通常 判断软件测试是否达到预期的标准。2理论基础——贝叶斯定理 如果两个事件A和B不是互相的,并且知道事件 B中的一个事件已经发生,就能得到关于P(A)的信息。这 反映为A在B中的条件概率,记为P(AfB): P(AI B):= 多高。在软件测试环节中通常遇到的问题是:产品中存在 或 的问题并没有被及时发现,从而导致产品的最终失败。或 者产品中并没有缺陷,而由于人为或测试系统的误差,发出 P(AB)=P(AiB)P(B)=P(B[A)P(A) 假设样本空间s被分成一个含有n个互斥事件的集 S一{A1,A2,A 3,……,A } 错误警报,迫使设计者不得不花费大量的时间和精力去寻 合,每个事件称为s的一个划分:找并不存在的产品缺陷,导致资源浪费和成本上升。那么 有将所有的私钥分量合在一起,才能恢复用户私钥的有效 性。 在机构取得授权后,首先监听并截获可疑信息,利 用数据恢复域中发送者的加密证书获得发送者的托管代理 标示符及其对应的托管证书号,然后把自己的授权证书和 托管证书号交给相应的密钥托管代理。KEA验证授权证书 (1)用户选择若干个KEA,分给每一个代理一部分私钥 和一部分公钥。代理根据所得的密钥分量产生相应的托管 证书。证书中包括该用户的特定表示符(Unique Identify, KEA还要用自己的签名私钥对托管证书进行数字签名,以 的真伪后,返回自己保管的那部分私钥。这样在收集了所 合接收者的公钥及时间戳,就能破解会话密钥,进而破解整 UID)、被托管的那部分公钥和私钥、托管证书的编号。 有的私钥成分后,司法部门就能恢复出发送者的私钥,再结 保证其真实性,并将其附在托管证书上。 递交给CA,申请加密证书。 (3)由CA验证每个托管证书的真实性,即是否每一个 个密文。由于密钥托管不参与通信过程,所以在通信双方 (2)用户收到所有的托管证书后,将证书和完整的公钥 毫无察觉的情况下,机构就能审查通信内容。 参考文献 ]_武汉:华中师范大学出版 托管代理都托管了一部分有效的私钥分量,并对用户身份 [1]胡伟雄.电子商务安全认证系统[M_加以确认。完成所有的验证工作后,CA生成加密证书,返 据恢复域(Data Recovery Field,DRF),它由时间戳、发送者 社.2005. 回给用户。所有传送的加密信息都带有包含会话密钥的数 [2]国际电子商务师培训教程编委会.国际电子商务师培训教程 [M].北京:人民交通出版社,2006. 的加密证书、会话密钥组成,与密文绑定在一起传送给接收 [33冯登国.公开密钥基础设施[M].北京:人民邮电出版社,2001. [4]刘荫铭等.计算机安全技术[M].北京:清华大学出版社,2000. 方。接收方必须通过数据恢复域才能获得会话密钥。在必 [5]关振胜.公钥基础设施PKI与认证机构CAlM].北京 电子工业 要时,机构可利用KEA,通过数据恢复域实现对通信内 出版社,2002. 容的强制访问。 一268~ 维普资讯 http://www.cqvip.com
现代商贸工业 第l9卷第11期 A A 一0 i≠j Modern Business Trade Industry 2007年11月 事件B可以写成由 个不相交(互斥)事件BA , BA ….,BA 组成,全概率定理: P(B)一P(BlA。)P(A1)+P(BlA2)P(A2)+…+P(B fA )P(A ) 用全概率定理和条件概率的定义可以得到贝叶斯定 理: P(A,IB)一 盟 一P(BlA )P(A ) P(BlA。)P(A1)(B)+…P(BlA )P(A ) 3软件测试效果评估模型 正如大部分人所熟知的那样,软件测试是人们预测、分 析、侦测和修正前期软件设计中的错误和缺陷的过程。通 过软件测试,软件产品设计中致命的错误可以被及时发现, 并予以补救,以确保产品失败的概率被降到最低限度。性 能良好的软件产品可以极大的提高用户对产品的信心,从 而积极配合新产品的使用和维护,最终形成软件开发与用 户使用间的良好互动。然而,软件测试有其无法避免的局 限性,比如:软件测试环境与软件实际运行环境之间的差 异,使得人们因为无法模拟实际运行环境,而无从对系统中 的关键部分或模块的错误发生率进行准确的评估,导致测 试人员对产品可靠性作出错误的判断,最终可能使测试中 运行良好的产品在实际运行中出现问题。 那么,如何科学评价软件测试的有效性呢?或者,换句 话说,什么是有效的软件测试呢?本文将建立一个软件测 试有效性的评估模型,通过这种模型,软件测试的有效性可 以用概率的方式进行表示和计算,从而将软件测试有效性 的评价进行量化。该模型是基于贝叶斯定理建立的,以下 将分两部分进行介绍:第一部分是模型的逻辑关系原理,用 逻辑关系图表示;第二部分是在第一部分的基础上建立的 数学模型,也是该评估模型的核心部分。 (1)逻辑关系图。 为便于阐述,我们将软件测试的结果表示为“Detected Defects”(侦测出的缺陷),同时将影响测试结果的因素分为 两种类型:一种是“Wrong Caution”(错误警报),即产品本身 并没有缺陷,由于系统或人为的失误导致测试结果错误的 显示产品中有缺陷存在;另一种是“Successful Detection” (成功侦测出产品缺陷),即产品本身存在缺陷,软件测试成 功将其发现。下图表示三者之间的逻辑关系,即:测试结果 表明产品存在缺陷可能是由于两种原因之一导致的:错误 警报或成果侦测。 (2)软件测试有效性评估模型。 基于上述逻辑图示,本文建立了以下软件测试有效性 的评估数学模型。 Figure 1 The relationship among 3 terms (1)定义以下事件: D:缺陷存在; D :缺陷不存在; S:缺陷被侦测出; S :缺陷未被侦测出。 (2)测试人员可根据以往的经验作出如下假设:产品存 在缺陷的概率为0.3;产品缺陷被成功发现的概率为0.9;测 试中发出错误警报的概率为0。2。则,几种事件的概率分 别表示为:P(D):0.3; P(SlD)一0.9; P(SlD )=O.2。 根据贝叶斯定理,可计算得到: P(DfS)一P(SfD)*P(D)/Iv(sfD)P(D)+P (Sl D )P(D )] 一0.9*0.3/(O.9*0.3+0.2*0.7)一0.66. 也就是说,上例中能正确的测试出软件产品中的缺陷 (或有效测试)的概率为0.66。如果事先设定的有效测试的 概率为0.8,则说明目前的软件测试还无法达到有效测试的 标准,应给予改进。 4结论 在实际的软件测试中,尽管人们无法保证完美无缺的 测试,但至少计算出达到有效测试标准的概率是多少,即评 价软件测试的效果如何。因此上述模型基于贝叶斯定理为 软件测试者提供了一个简单的可量化评估测试效果的方 法,帮助人们客观的评价软件测试的结果。如果与预期的 概率仍有差距(如上例),则应进行测试环境的改进以达到 理想的效果。 本文仅提出了一个测试效果评价的简单模型,未来进 一步的研究将集中在影响测试效果的各种因素上,如:测试 者的经验,技能;测试环境的仿真程度等,将进一步研究各 种影响因素的相互作用及其各自对测试效果的影响程度。 269—