b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

黑盒,白盒,灰盒_白盒工程师_黑盒和白盒的优缺点

电脑杂谈  发布时间:2017-03-06 15:06:19  来源:网络整理

2009年第2期

gaoxta哪ld掣uyan.1tu

学术论坛

白盒测试的六种方法比较分析

罗斌

(湖南农业大学资产管理处

湖南长沙

410128)

l摘要l白盒测试是测试人l常用的一种测试方法.越来越受到测试工程师的重视。白盒潮试并不是一单的按腻代码霞计用饲.而走需要根据不同的测试需求,蛄舍不同的洲试对象,使用适合的方法进行测试。奉文介绍六种白盍子测试方法t语句量工.判定t玉.备件童盖.判定条件童盖.条件担合曩盖.路径覆盖。

潮试方法【关键词】白奎测试测试需求执行路径

【中图分类号】TN06I文献标识码】A【文章编号l1009—9646(2009)02(a)一0224—02

概述

白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试A、保证一个模块中的所有独立路径至B.对所有逻辑值均需测试Lrue和falseC、在上下边界及可操作范围内运行所有D、检查内部数据结构以确保其有效性通过检查软件内部的逻辑结构,对软件中下面这些规则也可以看作是测试的目标(1)测试是为了发现程序中的错误而执行

(2)好的测试方案是极可能发现迄今为止(3)成功的测试是发现了至今为止尚未发从上述规则可以看出,测试的正确定义是万方数据

由于测试的目标是暴露程序中的错误,从试结果。

4)测试总结阶段:对比测试的结果和代码

的预期结果,分析错误原因,找到并解决错误。

1.5白盒测试的方法:

总体上分为静态方法和动态方法两大

类。

静态分析是一种不通过执行程序而进行

测试的技术。静态分析的关键功能是检查软

件的表示和描述是否一致.没有冲突或者没有歧义。

依据软件设计说明书进行测试、对程序动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后.对软件系统行为的分析。动态分析包含了程

序在受控的环境下使用特定的期望结果进行

正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。1.6白盒测试的优缺点:

1)铡试计划阶段:根据需求说明书,制定A.优点:使得测试人员去仔细思考软件的实现。可以检测代码中的每条分支和路径t能2)测试设计阶段:依据程序设计说明书,尽量揭示隐藏在代码中的错误?对代码的测试比较彻底-

B.缺点:昂贵,费时。很难检测代码中遗3)测试执行阶段:输入测试用例,得到测

漏的路径和数据?见图1。

图1

来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。常崩的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试-而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。白盒测试是一种测试用例设讣方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

1.1白盒的测试用例需要做到:

少被使用一次

循环

1.2白盒测试的目标:

的逻辑路径进行覆盖测试,在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

或定义:

心理学角度看.由程序的编写者自己进行测试

是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。此外,应该认识到测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。测试只能查找出程序中的错误,不能证明程序中没有错误。

1.3白盒测试的特点:

内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。黑盒,白盒,灰盒是把测试对象看作一个打开的盒子,测试人员依

据程序内部逻辑结构相关信息,设计或选择测

试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态.确定实际的状态是否与预期的状态一致。

1.4白盒测试的实施步骤:

测试进度。

按照一定规范化的方法进行软件结构划分和设计测试用例。

程序的过程,

尚未发现的错误的测试方案;

现的错误的损4试。

“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”,。成功的测试是没有发现错误的测试”等等是完全相反的。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案?

相反.如果测试是为了发现程序中的错误,就

会力求设计出最能暴露错误的测试方案。

一224一

学术论坛

条件覆盖只能保证每个条件至少有一次为真。而不考虑所有的判定结果。2.4判定/条件覆盖

皇∞删w毋..。^4Wm

即flag为真或假时候对x和y的处理.真或假

不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测2009年第2期

2六种覆盖方法分析

2.1语句覆盖

1)主要特点:语句覆盖是最基本的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。2)用例设计:(如果此时将A路径上的隐式语句l—Print去掉,那么用例如下)

3)优点:可以很直观地从源代码得到铡试用例,无须细分每条判定表达式。

4)缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中去掉了语句1一Print去掉,那么就少了一条测试路径。在if结构中若源代码没有给

出else后面的执行分支。黑盒,白盒,灰盒那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种

以外的分支不会被执行,而往往这种错误会经

常出现。再如,在Do-While结构中,语句覆

盖执行其中某一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。2.2判定覆盖

黑盒,白盒,灰盒_黑盒和白盒的优缺点_白盒工程师

1)主要特点;又称分支覆盖,设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。

2)用例设计:

厂R|r—陬

r阿阿『|i石一F『『『两磊一f丁阿『■r

3)优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

4)缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE)。若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。2.3条件覆盖

1)主要特点:条件覆盖要隶设计足够多的测试用例,使得判定中的每个条件获得各种可

能的结果,即每个条件至少有一次为真值,有

一次为假值。

2)用例设计:

3)优点:显然条件覆盖比判定覆盖,增加

了对符合判定情况的测试,增加了测试路径。

4)缺点:要达到条件覆盖,需要足够多的

万方数据

1)主要特点:设计足够多的测试用例,使

试效率,而且大量的测试结果的累积,也为排得判定中每个条件的所有可能结果至少出现错带来麻烦。

一次,每个判定本身所有可能结果也至少出现

一次。

3结语

2)用例设计

自盒测试是一种被广泛使用的逻辑测试

Y路径方法,是由程序内部逻辑驱动的一种单元测试

l120120oAE方法。只有对程序内部十分了解才能进行适

50

35

OBDE度有效的白盒测试.但是贯穿在程序内部的

逻辑存在着不确定性和无穷性,尤其对于大规,

3100

40

0BcE模复杂软件。因此我们不能穷举所有的逻辑{4

70

90

0BCE

路径。即使穷举也未必会带来好运(穷举不能查3)优点:判定/条件覆盖满足手Ⅱ定覆盖准出程序逻辑规则错误,不能查出数据相关错则和条件覆盖准则,弥}FT-:-者的不足。

误,不能查出程序遗漏的路径).

4)缺点:判定/条件覆盖准则的缺点是未

那么正确使用自盒测试,就要先从代码分

考虑条件的组合情况。

析人手.根据不同的代码逻辑规则、语句执行

情况,选用适合的覆盖方法。任何一个高效的1)主要特点:要求设计足够多的测试用测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路2)用例设计

径。

XY

蹄托

参考文献

120

120oAE

【l】(美)梅尔斯等著.壬峰,陈杰译.软件测试

100

40oBCE

的艺术(原书第2版)【M】.机械工业出版社.

50

3.50BDE2006.

47090

0BCE

【2】贺平.软件测试技术【M】.机械工业出版杜.

535

90

oBDE

2004.

67075OBDEf3】古乐.软件测试技术概论fM】.清华大学出版社.2004.

50

60

0BDE

【4】RonPatton(美).软件测试(英文版第2版).

3)优点:多重条件覆盖准则满足判定覆

[M】机械工业出版社.2006.

【5】崔启亮.国际化软件测试[M】.电子工业出

版社.2003.[6】【美]ElfriedeDustin.有效软件测试【M】.清

华大学出版社.2005.

4)缺点:线性地增加了测试用例的数量。

1)主要特点:设计足够的测试用例,覆盖2)用例设计:

XY路径

1120120OAE250.50oBDE3

10040OBCE

40

100

3)优点:这种测试方法可以对程序进行彻4)缺点:由于路径覆盖需要对所有可能的

If([flag)x++l

If(!flag)y一一I

这两个语句实际只包括了2条执行路径,

一225—

2.5组合覆盖

例,使得每个判定中条件结果的所有可能组合至少出现一次。

盖、条件覆盖和判定/条件覆盖准则。更改

的判定/条件覆盖要求设计足够多的测试用

例,使得判定中每个条件的所有可能结果至少

出现一次。每个判定本身的所有可能结果也至

少出现一次。并且每个条件都显示能单独影

响判定结呆。

2。6路径覆盖

程序中所有可能的路径。

底的测试,比前面五种的覆盖面都广。

路径进行测试(包括循环,条件组合.分支

选择等).那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情

况下,一些执行路径是不可能被执行的,如:

测试用例.但条件覆盖并不能保证判定覆盖。

白盒测试的六种方法比较分析

作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:

罗斌

湖南农业大学资产管理处,湖南长沙,410128

世界华商经济年鉴·高校教育研究

WORLD CHINESE ENTREPRENEUR ECONOMIC YEARBOOK·GAOXIAO JIAOYU YANJIU2009,""(2)0次

参考文献(6条)

1.梅尔斯.王峰.陈杰 软件测试的艺术(原书第2版) 20062.贺平 软件测试技术 20043.古乐 软件测试技术概论 20044.Ron Patton 软件测试 20065.崔启亮 国际化软件测试 20036.Elfriede Dustin 有效软件测试 2005

相似文献(7条)

1.学位论文 王健 软件测试技术研究 2002

在中国软件测试依然是新兴领域,与软件工程一样,仍然没有得到程序员的重视,该文首先阐述软件危机的原因及由此导致软件工程的产生.由软件工程又介绍了软件质量和软件测试的基本概念,又阐述了软件测试的基本方法——黑盒测试和白盒测试.最后又从测试需求,加强测试管理,改进测试方法等几方面,讨论了如何防止软件测试质量不高,不能按时完工这一头疼问题.

2.学位论文 金慧峰 福利彩票销售系统的测试设计与测试结果分析 2007

软件测试是软件工程的一个重要阶段,也是保证软件质量的重要手段。随着人们对软件质量要求的提高,软件测试技术也被重视起来。笔者所在企业面临一个较大型的软件项目,希望将更全面的软件测试技术应用起来,以保证软件质量。本文就是笔者对软件测试技术作出全面研究并综合运用的结果。

笔者系统地学习和研究了软件测试理论体系知识域,把软件测试理论归纳为测试设计部分和测试管理部分。测试设计部分可以看作是软件测试的技术和测试策略的组合;测试组织管理领域则包括了测试管理和测试组织活动等。在具体的项目测试管理过程中,笔者制定出适合企业开发特点的软件测试管理体系。比之前的测试模式更早地进入项目,在软件需求分析等前期阶段,测试组就进入分析测试需求,制定整体的测试计划。综合运用几种测试模型的优点来指导软件测试过程;考虑企业实际开发过程,重新设计了企业的软件测试管理方法,在不同的测试阶段选择最适合的测试技术,不同的软件模块采用不同的测试优先级;综合运用多种黑盒测试法来设计测试用例;白盒测试阶段以开发组测试为主,针对关键模块进行代码级测试。

按照笔者制定的测试管理体系进行完成测试工作后,一改往常开发耽误测试,测试耽误项目进度的情况,顺利完成全部的测试工作而不耽误进度。目前该项目顺利通过更高要求的第三方独立测试,且没有发现更深层次的缺陷。一定程度上证明了新的测试管理方法和测试技术运用的正确性和可行性。

在软件测试过程中,由于BuG修改而引发更新的缺陷,一直是测试管理难以控制的地方;需要研究更好的测试管理技术来解决类似的测试管理问题。

3.学位论文 刘柯 客户机/服务器应用系统测试方法的研究与应用 2008

软件在现代生活中扮演着越来越重要的角色,在各行各业中得到了广泛应用,所以软件的质量问题已经成为软件业最重要的问题。由于软件的特殊性,其开发过程中的Bug不可避免,所以强有力的软件测试是软件质量保证的重要关口。但是,软件测试目前的技术和理论还不能满足软件产业快速发展的需要。因此,加强对软件测试理论和方法的研究就成为一种必要。

软件测试在发展的几十年里,逐渐形成了一些被广泛接受和应用的测试模型和测试方法。本文分析了软件测试理论发展的现状,指出了V和W中存在的缺点,综合和改进以上两种模型,重点发掘各个阶段的并行性,同时兼顾过程控制和对测试对象的描述,提出采用一种新的测试模型。本文分析了黑盒测试和白盒测试的优缺点,提出了在集成测试中把黑盒测试方法和白盒测试方法相结合的灰盒测试方法。最后,论文结合客户机/服务器系统软件的测试方法和测试工具,运用新的测试方法和模型,对自动取款机应用系统进行了功能结构划分,分析了测试需求,制定了自动取款机系统的测试计划,设计了测试流程、测试用例,完成了实际的测试工作,并且对测试结果进行了评估与分析。 实践证明,采用新的测试模型和方法,提高了测试效率,节省了测试成本。 本文下一步的研究方向是把自动化测试理论应用到更多的测试项目中。

4.期刊论文 章晓芳.徐宝文.聂长海.史亮.ZHANG Xiao-Fang.XU Bao-Wen.NIE Chang-Hai.SHI Liang 一种基于测试需求约简的测试用例集优化方法 -软件学报2007,18(4)

测试用例集优化的目标是用尽可能少的测试用例充分满足给定的测试目标.针对给定的测试目标,获得精简的测试需求集有助于提高测试用例集优化的效率和效果.从测试需求约简的角度考虑测试用例集优化,首先给出可以精确描述测试需求间相互关系的测试需求约简模型;基于此模型,提出一种测试需求约简方法,可以获得精简测试需求集,作为测试用例集生成和约简的基础,从而实现测试用例集优化.实验结果表明,测试需求约简有助于获得规模较小的测试用例集,实现系统、科学、有效的测试.

5.学位论文 雷小玲 测试用例自动生成算法在车载ATP中的研究与应用 2009

为确保列车运行安全,提高运输效率并增强市场竞争力,铁路部门提出了发展适于我国国情的CTCS(Chinese Train Control System)系统策略。目前关于CTCS-3级列控系统的研究正在逐步进行和完善之中。作为一个安全苛求的铁路控制系统,CTCS必须要进行一系列完整功能的测试,以确保对系统的全面验证。功能测试是确保系统安全最重要的部分,其目的在于验证系统是否满足需求规范。作为整个列车的控制核心,车载子系统功能测试的重要性也就不言而喻。

测试是一项非常耗时的工程,恰当的测试方法可以提高测试效率。测试用例是测试全部过程的核心,同时也是测试执行环节的基本依据。测试自动化的趋势使得测试用例自动生成成为该领域的关键问题与难题之一。由于不同的测试数据发现错误的能力存在很大差异,为了提高测试效率降低测试成本,应该选用高效的测试数据。因此,本文主要针对CTCS-3级车载ATP(Automatic Train Protection)子系统的测试方法和测试用例自动生成展开研究。

本文首先从传统测试理论出发,分析了这些测试手段自身的优点与不足。由于单纯的黑盒测试和白盒测试各自的不完备性,选用混合测试方法对两者进行优势互补,并详细阐述了混合测试方法的原理和具体实施过程。选取混合测试方法所体现出的逐步测试思路为测试用例的良好设计提供了基础。 其次,研究了混合测试方法下的测试用例自动生成技术。经验和实践表明,两两组合覆盖测试是一种实际而有效的用例生成方法。所以本文结合测试领域组合覆盖的思想,重点研究了基于网络模型两两覆盖的组合测试用例自动生成算法,并就参数排序策略对该算法性能的影响进行了分析与评价,进而提出了相应的解决措施。

最后,以CTCS-3级车载ATP子系统为研究对象,对其被测功能进行了需求分析。基于车载ATP速度监督功能的测试需求,在不同工作模式下对被测功能进行了层次划分;在一定的参数选择及排序策略下,利用组合测试用例自动生成算法完成了不同模式、层次的测试用例自动生成及约减,以及所生成用例的管理及维护等。用例生成结果表明,在恰当的参数选取及排序策略下,本文所述测试用例自动生成算法能够在保证测试覆盖率的同时具备较高的用例约减率,该方法将对提高测试效率具有重要的积极意义。

6.期刊论文 万松松.薛锦云.谢武平.WAN Song-song.XUE Jin-yun.XIE Wu-ping 最小测试用例集生成方法改进及应用 -计算机技术与发展2008,18(10)

软件测试是保证软件质量和可靠性的重要手段,如何对软件进行全面且高效的测试一直是备受关注的问题.分析了白盒测试与黑盒测试的优缺点;具体分析了最小测试用例生成算法,接着对生成最小测试用例集的方法提出改进:首先消除掉测试需求中存在的冗余,再对由该测试需求生成的测试用例集使用简化算法,得到一组无冗余的测试用例集.这种先对测试需求进行精简的方法,使得测试用例集中测试用例的数量大为减少,提高了简化算法的使用效率.将上述最小测试用例集生成方法运用到Apla到delphi系统的测试中,提高了测试效率.

7.学位论文 邓名杰 基于数据流分析的测试用例自动生成技术 2009

软件测试是保障软件质量的重要手段,软件测试在软件开发中的地位也日益重要。其中数据流技术作为一种白盒测试技术,能提供充分的代码覆盖,已经被广泛应用到面向对象软件测试中,但是已有的数据流测试技术主要关注生成测试方法序列,而不能提供具体的数据驱动方法进行测试,也就不能实现测试的自动化。虽然已有的随机测试用例支持自动测试,但其测试用例的生成过程没有与测试需求结合起来,测试用例的生成具有盲目性,从而导致生成的测试用例不能很好地覆盖需求。

针对以上问题,本文将数据流分析与遗传算法结合起来提出了一种基于数据流分析的测试用例自动生成技术,该技术综合了数据流技术与遗传算法的优点。我们的方法扩展了数据流测试技术,它可以利用遗传算法的搜索能力以保证生成的测试数据具有充分的定义.使用覆盖。

本文从软件测试的相关概念入手,并比较介绍当前一些测试用例生成技术。然后提出我们的基于数据流分析的测试用例自动生成技术。然后本文再给出了该技术的原型系统的设计与实现,大量实验结果表明,该技术无论在搜索时间,覆盖率还是生成测试用例的有效性上都优于随机算法与单纯的数据流技术。最后我们总结并展望了未来工作的发展方向。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-36124-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 林礼勤
        林礼勤

        骨子里透露着野蛮

      • 桑岛法子
        桑岛法子

        让那些光棍跟你爸合伙用你妈

      每日福利
      热点图片
      拼命载入中...