
毕业(设计)论文外文资料翻译.doc
6页外文资料翻译资料来源: 文章名: A Novel Approach for Evaluating Software Testing Techniques for Reliability 书刊名:《ARPN Journal of Systems and Software》 作 者:Sheikh Umar Farooq, S. M. K Quadri 出版社:AJSS Journal, 2012章 节: A Novel Approach for EvaluatingSoftware Testing Techniques for Reliability 页码:P84〜P87文章译名:软件可靠性测试新技术评估姓 名:王振 学 号:1002030121 指导教师(职称):金国祥(教 授) 专 业:计算机科学与技术 班 级:01 所在学院:机电学部译文:软件可靠性测试新技术评估摘要软件测试的主要H标是提高软件的可靠性正如所指出的许多研究,故障检测不一 定增加软件的可靠性时,所有的失败都是相对于另一•个而言因此,我们需要评估软件 测试技术来检查它是否合适和是否高效,通过减少风险来提高测试信心(检测和隔离是 影响可靠性的主要原因)。
我们在这里提出了一种新的实验方法,比较了三种缺陷检测 技术的可靠性初步结果表明测试技术在降低软件的风险能力方面有所不同关键词:软件测试;软件可靠性;软件风险I. 引言软件的可靠性定量指标是考察软件质量的重要手段,可靠性定量指标在软件开 发中是比较常用的手段软件可靠性严格地定义取决于质量模型ISO, McCall和 FURPS等这些质量模型是基于用户观点,同吋对软件质量容易量化以便进行测量 软件可靠性概率的定义是软件执行所要求的功能(输出符合规格)在规定条件(指 定的环境)和指定吋问内无故障输出的频率开发可靠的软件是软件产业面临的最 大的难题吋间,压力,资源的限制,不切实际的要求等许多因素都可以影响软件 可靠性实现软件的可靠性,我们应该使用软件可靠性工程技术同工业一样,软 件测试行业发展了几十年,从学术界以及行业,软件可靠性工程技术分为以下几个 方面:故障避免,排除故障,容错性和故障预测传统丄,软件的可靠性是通过故障排除技术(验证和确认技术)包括软件测试, 检测消除软件故障作为主要的故障排除技术,软件测试在软件开发中是最有效的 测试方式,同时也是最耗时的实现软件100%的可靠性的一个方法是穷举测试。
详 尽地测试系统的所有可能的输入(有效期为无限),穷举测试通常是不适用的,作为 输入域通常非常大,甚至无限因此我们必须使用其他测试方法使软件达到可接受 的质量水平我们要选择一•个测试技术,能最大可能的检测软件的故障然而,发 现故障仅仅是对评估测试技术有用,当整个测试没有什么错误时我们能够在软件测 试中获得信心故障检测不一•定是激发人的信心故障检测在软件测试中并不是必 须的,但是它能检测出很多的故障,相比其他的软件测试手段更能提高软件的可靠 性软件失败的影响也应该被考虑进来以前对大多数软件测试技术的有效性评价 是很失败,尢论其失败的严重程度我们都知道,软件测试的另一个重要H标是要 测试的软件可靠性,同时也要提高软件测试的手段此外,故障检测也能增强我们 对软件可靠性的信心因此,软件测试有两个主要H标:使软件达到优等的质量(系统测试/调试测试); 探测软件的瑕疵通过修改及移除并评估现有的质量标准(统计检验);软件的可靠性 能使我们获得信心名称可以任意,并且大多数测试技术在一定程度上能实现这两 个H标所以很明显,调试测试也能够通过减少风险来提高软件的可靠性为了提 高可靠性,我们不仅要努力发现最大的缺陷,我们也应该努力让那些影响可靠性的 故障变得最小。
有一点可以肯定的是我们要做软件的系统测试同功能测试和正确性 测试是一样有必要的很多软件测试技术都可以用在系统测试中我们应该选择一 个最大可能增加我们的测试信心的软件测试技术我们没有足够的知识对测试技术 做过相关定量和质量统计因此,我们将致力于评估不同测试技术在测试软件的可 靠性换句话说,对测试技术进评估和有效性比较,取决于检测不同的故障类型和 检查可靠性的增长软件测试技术在观察故障和隔离故障是同样有效的但这并不 意味着他们能寻找同类型的故障我们不知道他们增加软件测试信心的能力我们 喜欢用一种方式去比较测试的策略也就是说如果一个系统已经使用T1的测试技术, 它是可能有更少的风险(可靠的)与使用T2测试技术进行比较而言这也将有助于 我们了解什么样类型的故障大多是采用一个特定的测试技术所以,我们将试图找 到答案来回答以下问题:问题一:测试方法在可靠性方面会有所不同吗?问题二:如果是,哪种方法最具可靠性(基于问题一)?本文的组织如下:第2部分提出背景和相关工作,第3部分讨论了统计和系统 测试,第4部分给出实验描述,包括测试技术,程序和故障以及方法分别在4.1、4.2、 4.3给出第5部分介绍了实验过程和结果。
第6部分进行了详述的验证第7部分 讨论实验及其结果第8部分提出推论和进行进一步的实验工作2. 背景和相关研究测试的一个重要方面是使软件的质量及其特性可见,包括软件的可靠性软件 测试被广泛用于提高软件的可靠性,不仅是因为要核查在这个阶段软件是不是不切 实际的,但也为了满足不同层次的可靠性要求,复杂的测试技术也进行了相应的发 展我们已经知道软件测试的许多H的,包括增加软件H标信心(降低风险)不同 冃标的测试的评估风险可分为:1. 测试发现风险:除了统计在测试过程中出现的故障次数,也需要记录那些失败的成本如果测 试技术B (预期)在测试失败的总成本比A还要高,那么测试技术A将被认为是比B 更有效地2. 测试和调试以降低风险:进一步假定每个故障的发生导致更正的故障而引起的故障,I大I此要减少软件的 和关性,这样才会提高软件的可靠性测试技术A将被认为是比测试技术B更有效, 如果A在降低风险方面比B做得好,因此会降低软件的风险3. 测试评估风险:在估算软件可靠性,它是假定软件存在一些故障我们的H标是估算软件部署 失败的概率(在指定的部署时间)在这里,我们会说测试技术A比测试技术B更有效 (对于同一个技术评估风险)前提是A提供了比B更准确的风险估计。
我们致力于评估软件测试技术的探测和降低风险的能力它不足以检测故障来 降低风险,只有通过消除故障的根本原因(故障)我们可以降低程序风险以往关于测试方法有效性的研究用于软件缺陷的估算,因此,寻找缺陷,作为 衡量试验成效他们采用了这样的措施测试有效性,发现至少一个有可能的故障(即, 至少有一个失败的可能性发生),在测试过程中故障发生的预期数量,测试过程中发现 故障到第一次失败的时间提高软件的测试信心,这个手段似乎不恰当:对于交付软件 真正重要的是可靠性,因此要得到改善需要用给定的测试方法11, 4和8是采取了不 同的措施得到的实验结果;结果是增加了软件的可靠性许多在过去的研究纳入的概念 权重/成本为测试技术的评价在试验16, 9和13输入域是分离的,采用分区测试策略, 以及之前与成本G相关的每个子领域任何第订子领域的故障都会被假定为成本Cj的 花销然而,这是不现实的现实的近似在一般情况下,子领域测试策略是常研究和使 用的,后果对于同一子领域两个不同的元素,失败域可能是完全不同的此外,大多数 子领域测试策略涉及到子领域相交[17]使用成本/失效后果为依据一个测试用例自动 生成算法,并评估被测试的软件的可靠性。
在实践中,失败可能是微不足道的偏差导致 的,而另一些更严重,有的甚至可能是灾难性的因此,在评价一个相关程序的风险, 必须根据不同的故障分清他们的重要性我们将降低失败的成木我们会根据软件测试 技术在增强测试信心的成本开销来评估软件测试技术3. 统计测试与系统测试测试是保证可靠性的重要环节它的FI的是在软件发布时去除最大的缺陷,但 软件测试也是花销很大的环节为提高可靠性的一个著名的测试方法被称为统计测 试/运行测试统计测试是进行相同的统计分布的投入统计测试吸引人的是它提供 了可靠性评估的基础;所以我们不仅要保证努力提高软件质量,也要在实际情况下 估计软件的可靠性统计方法提供准确的评估,但不一定实现有用的可靠性另一 方面,有一个很大的需求系统测试方法(例如,用于选择测试标准规则),给出了保 证彻底性和成本效益系统测试大多采用边界值分析技术和覆盖测试技术4和15 调用这些方法,总的来说,“调试”测试方法所以我们将使用这两个术语至于可靠性而言,去除统计测试中发现的故障,比在实际操作中发现这些故障 的频率更有意义统计测试是很容易理解并且容易执行如果测试成功,我们将能 够评估可靠性达到要求另一•方面,如果测试失败,我们能够清楚知道故障的原因 并解决故障来提高软件的可靠性。
此外,它是适用的任何软件系统,大的或小的, 不管是什么语言范式然血,统计测试在实践中并不总是有帮助的,因为在现实中 失败总是不可避免的统计测试决定剖面测试是否是必须的否则,调试测试可以 设计成任何的运行测试我们也应该意识到这个事实:一个软件系统操作剖面的变 化和时间,可以创建统计问题测试虽然统计测试是i个非常好的系统测试和方案可以构造(虽然他们的频率发生 在实践中是未知的)的测试方法调试测试总是有潜在的优势,通过调整试验剖而 和子领域定义他们可能会提高调试方法系统测试如果选择更好的故障点的概率(即 一个输入域,将导致程序失败)系统测试会大于在实际操作中的概率此外,在一 个安全的关键程序的故障点nJ能已被用于实际的极低概率系统运行,但可能会产生 灾难性的结果这样的故障点不会被选择作为测试统计测试案例在这种情况下, 调试测试更好应该记住,然而这有没有保证,通过调试试验故障将被发现,我们 也不能使用调试测试断言在输入这样一个故障点的缺失域或评估的可靠程度就行比较统计有大量的研究,系统测试色括•测试3, 4, 5, 6, 8, 14, 15o这些最初 的研究认为,统计测试可能是一个真正的替代调试查找故障测试的方法。
不过,没 有得到这样结论性结果通过对缺陷“调试”测试的测试将会是更好的测试方法, 或评估可靠性直接作为统计测试,发现缺陷事故,可以这么说吗?有没有简单的答 案,因为我们没有具体的证据通过系统测试技术是必要的,为提高软件测试以外 的许多H标的可靠性除了用作其他用途,系统测试技术无疑有助于在测试软件的 可靠性改进软件的可靠性要高,可以测试许多不同的方式,因为测试是昂贵和耗 吋的活动,我们想选择替代品,不使用它们我们会选择一个技术将在达到FI标有 效和高效的方式然血,我们又很在意他们的试验技术的有效性和效率,我们需要 评估不同可靠性系统测试技术然而,我们应该意识到潜在的混淆检测故障并实现 可靠性,混乱发生时,发现不重要的故障检测不同的故障可能千差万别,都能对 程序的可靠性做出贡献因此,测试用的技术,很容易检测到小故障可能会导致在 —•个不可靠的程序比将测试的一个技术,不易检测到一些大的故障如果一个系统 化的技术不断出现低频的问题,可能使它适得其反4, 5和8表明,测试方法的选 择取决于假设的情景和微妙的细节;以及调试测试方法,在没有检测出故障吋他们 可能是最差的调试测试方法,除非他们优先发现更重要的故障。
我们在评价系统测试对软件的可靠性的方法是研究哪种系统测试方法更合适, 对比其他降低软件风险的测试方法4. 实验描述我们使用GQM标准(H标问题度量)衡量我们的试验是否达标我们试验的 GQM FI标是:从研究者的角度分析小应用C程序的实验,分析三种缺陷检测技术(系统技术) H的是比较增强测试信心(可靠性)能力的影响。
