欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    软件工程白盒测试.docx

    • 资源ID:7571930       资源大小:22.58KB        全文页数:9页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程白盒测试.docx

    1、软件工程白盒测试白盒测试白盒测试以程序的结构为依据,所有又称为结构测试。早期的白盒测试把注 意力放在流程图的各个判定框,使用不同的逻辑覆盖标准来表达对程序进行测试 的详尽程度。随着测试技术的发展,人们越来越重视对程序执行路径的考察, 并 且用程序图代替流程图来设计测试用例。 为了区分这两种白盒测试技术,以下把 前者称为逻辑覆盖测试,后者称为路径测试。、逻辑覆盖测试逻辑覆盖测试法(Logic Coverage Testing)考察的重点是图中的判定框(菱形框)o因为这些判定若不是与选择结构有关,就是与循环结构有关,是决定程序结构的关键成分。按照对被测程序所作测试的有效程度,逻辑覆盖测试可由弱到强

    2、区分为 5种覆盖标准:发语句覆盖每条语句至少执行一次现弱判定覆盖每一判定的每个分支至少执行一次错条件覆盖每一判定中的每个条件,分别按“真”、“假”至少误各执行一次的判定/条件覆盖同时满足判定覆盖和条件覆盖的要求能条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能力强的条件组合至少执行一次举例说明:有一个程序段如下:(a)语句覆盖:设计若干个测试用例,运行被测程序,使得每一个可执行语句至少执行一次。例如在上图所给出的例子中,正好所有的可执行语句都在路径L1( a- c - e )上,所以选择路径L1设计测试用例,就可以覆盖所有的可执行语句。L1( a- c - e )=(A1) and (

    3、B=0) and (A=2) or (x/A1)=(A=2) and (B=0) or (A1) and (B=0) and (x/A1)测试用例可以设计为: 【(2, 0, 4),(2, 0, 3)】覆盖 ace【L1】从程序中每个可执行语句都得到执行这一点来看,语句覆盖的法似乎能够比 较全面的检验每一个可执行语句。但与后面介绍的其它覆盖相比,语句覆盖 是最弱的逻辑覆盖准则。(b)判定覆盖所谓判定覆盖就是设计若干个测试用例,运行被测试程序,使得程序中每个 判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。如上 例如果选择路径 L1( a- c - e )和 L2( a- b -

    4、d ),可得满足要求得测 试用例:L2( a- b - d )=(A=1) or (B 工 0) and (A 工 2) and (x=1)=(A=1) and (x=1) or ( B 工 0) and (A 工 2) and (xb e )和 L4 (a c d )L3 (a b e )=(A1)=( A1) or ( B 工 0) and (A=2) or ( B 工 0) and (x1)L4 (a c d )=(A1) and (B=0) and (A 工 2) and (x/A1错写成x1取真值为T1,取假值为T1条件B=1取真值为T2,取假值为T2对于第二个判断:条件 A=2取真

    5、值为T3,取假值为T3条件x1取真值为T4,取假值为T4则可选取测试用例如下:测试用例通过路径条件取值覆盖分支(2,0,4),(2,0,3)ace(L1)T1 T2 T3 T4c,e(1, 0,1),(1, 0,1)abd(L2)T1 T2 T3 T4b,d(2,1,1),(2,1, 2)abe(L3)T1 T2 T3 T4b,e或测试用例 通过路径 条件取值 覆盖分支(1,0,3),(1,0,4) abe(L3) T1 T2 T3 T4 c,e【(2,1,1),(2,1,2) abe(L3) T1 T2 T3 T4 b,d注意,前一组测试用例不但覆盖了所有判断得取真分支和取假分支,而且覆 盖

    6、了判断中所有条件得可能取值。但是后一组测试用例虽满足了条件覆盖, 但只覆盖了第一个判断得取假分支和第二个判断得取真分支,不满足判定覆 盖得要求。为了解决这一矛盾,需要对条件和分支兼顾,有必要考虑以下得 判定-条件覆盖。(d)判定条件覆盖所谓判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件得所有 可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。上例中可以设计如下测试用例:测试用例通过路径条件取值覆盖分支(2,0,4),(2,0,3)ace(L1)T1 T2 T3 T4c,e(1,1,1),(1,1,1)abd(L2)T1 T2 T3 T4b,d判定-条件覆盖也有缺陷

    7、。从表面上来看,它测试了所有条件得取值,但是事实并非如此。因为往往某些条件掩盖了另一些条件。对于条件表达式(A1 ) and (B=0)来说,若(A1 )的测试结果为真,则还有测试(B=0),才能决定表达式得值;而若(A1 )的测试结果为假,可以立刻确定表达式得结果为假。这时往往就不再测试(B=0)的取值了。因此,条件(B=0)就没有检查。同样,对于条件表达式(A=2)or (X1)来说,若(A=2 )得测试结果为真,就可以立即确定表达式的结果为真。 这时,条件(X1)就没有检查。因此,采用判定-条件覆盖,逻辑表达式中的错误不一定能够查得出来。(e)条件组合覆盖所谓条件组合覆盖就是设计足够得测

    8、试用例,运行被测程序,使得每个判断 得所有可能得条件取值组合至少执行一次。上例中,先对各个判断得条件取 值组合加以标记。如下:记1A1,B=0 作T1T2,属第一个判断得取真分支;2A1,B工0作T1 T2,属第一个判断得取假分支;3A 1,B=0 作T1 T2,属第一个判断得取假分支;4A 1,BM 0作T1 T2,属第一个判断得取假分支;5A=2,x1 作T3 T4,属第二个判断得取真分支;6A=2,x 1作T3 T4,属第二个判断得取真分支;7A工2,x1 作T3 T4,属第二个判断得取真分支;8A工2,x 1作T3 T4,属第二个判断得取假分支;对于每个判断,要求所有可能得条件取值得组

    9、合都必须取到。 测试用例如下:测试用例通过路径条件取值覆盖分支【(2,0,4),(2,0,3)】ace(L1)T1 T2 T3 T,【(2,1,1),(2,1, 2)】abe(L3)T1 T2 T3 T4,【(1, 0,3),(1, 0,4)】abe(L3)T1 T2 T3 T4,【(1,1,1),(1,1,1)1abd(L2)T1 T2 T3 T4,这组测试用例覆盖了所有条件得可能取值的组合,覆盖了所有判断得可取分支,但路径漏掉了 L4。测试还不完全六种白盒子测试法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组 白盒测试的概述由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。

    10、 由于我们经常相信某逻辑路径不可能被执行 ,而事实上,它可能在正常的情况下被执行。由于代码中的笔误是 随机且无法杜绝的,因此我们要进行白盒测试。白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一 种测试用例设计法,盒子指的是被测试的软件,白盒指的是盒子是可视的 ,你清楚盒子部的东西以及里面是如运作的。白盒的测试用例需要做到:保证一个模块中的所有独立路径至少 被使用一次对所有逻辑值均需测试 true和false在上下边界及可操作围运行所有循环检查部数据结构以确保其有效性白盒测试的目的: 通过检查软件部的逻辑结构, 对软件中的逻辑路径进行覆盖测试; 在程序不同地设立检查点

    11、,检查程序的状态,以确定实际运行状态与预期状态是否一致。白盒测试的特点:依据软件设计说明书进行测试、对程序部细节的密检验、针对特定条 件设计测试用例、对软件的逻辑路径进行覆盖测试。白盒测试的实施步骤:1测试计划阶段:根据需求说明书,制定测试进度。2.测试设计阶段:依据程序设计说明书, 按照一定规化的法进行软件结构划分和设计测试用 例。3.测试执行阶段:输入测试用例,得到测试结果。4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。白盒测试的法:总体上分为静态法和动态法两大类。静态分析是一种不通过执行程序而进行测试的技术。 静态分析的关键功能是检查软件的表示和描述是否

    12、一致,没有冲突或者没有歧义。动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 ,对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式 的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中 ,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试法属于动态分析法。黑盒测试(blackbox testing)又称功能测试、数据驱动测试或基于规的测试。用 这种法进行测试时,被测程序被当作看不见部的黑盒。在完全不考虑程序部结构 和部特性的情况下,测试者仅依据程序功能的需求规考虑确定测试用例和推断测 试结果的正确性。因此黑盒测试是从用

    13、户观点出发的测试,黑盒测试直观的想法 就是既然程序被规定做某些事,那我们就看看它是不是在任情况下都做的对。完 整的“任情况”是无法验证的,为此黑盒测试也有一套产生测试用例的法,以产 生有限的测试用例而覆盖足够多的“任情况”。由于黑盒测试不需要了解程序部 结构,所以多高层的测试如 确认测试、系统测试、验收测试 都采用黑盒测试。黑盒测试首先是程序通常的功能性测试。要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖;用数据类型 和数据值的最小集测试;用一系列真实的数据类型和数据值运行,测试超负荷、 饱和及其他“最坏情况”的结果;用 假想的数据类型和数据值 运行,测试排斥不 规则输入的能力;

    14、对影响性能的关键模块,如基本算法、应测试单元性能 (包括精度、时间、容量等)。不仅要考核“程序是否做了该做的?还要考察“程序是否没做不该做的 2 ” 同时还要考察程序在其他一些情况下是否正常。 这些情况包括数据类型和数据值的异常等等。下述几种法:(a)等价类划分,(b)因果图法,(c)边值分析法,(d) 猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。每一个法都力图 能涵盖更多的“任情况”,但又各有长处,综合使用这些法,会得到一个较好的 测试用例集。1 等价类划分等价类划分是一种典型的黑盒测试法。 等价类是指某个输入域的集合。它表 示对揭露程序中的错误来说,集合中的每个输入条件是等效

    15、的。因此我们只要在 一个集合中选取一个测试数据即可。等价类划分的办法是把程序的输入域划分成 若干等价类,然后从每个部分中选取少数代表性数据当作测试用例。这样就可使 用少数测试用例检验程序在一大类情况下的反映。在考虑等价类时,应该注意区别以下两种不同的情况:有效等价类:有效等价类指的是 对程序的规是有意义的、合理的输入数据所 构成的集合。在具体问题中,有效等价类可以是一个,也可以是多个。无效等价类:无效等价类指对程序的规是不合理的或无意义的输入数据所构 成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。确定等价类有以下几条原则:如果输入条件规定了取值围或值的个数,则可确定一个有效等

    16、价类和两个无效等价类。例如,程序的规中提到的输入条包括“项数可以从1到999”, 则可取有效等价类为“ I考项数V 999 ”,无效等价类为“项数v I,,及“项数 999”。输入条件规定了输入值的集合,或是规定了“必须如”的条件,则可确定一 个有效等价类和一个无效等价类。 如某程序涉及标识符, 其输入条件规定 “标识 符应以字母开头”则“以字母开头者”作为有效等价类,“以非字母开头” 作为无效等价类。如果我们确知,已划分的等价类中各元素在程序中的处理式是不同的,则应 将此等价类进一步划分成更小等价类。输入条件 有效等价类 无效等价类。 。 。根据已列出的等价类表,按以下步骤确定测试用例: 为

    17、每个等价类规定一个唯一的编号; 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一 步,最后使得所有有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所有 无效等价类均被覆盖。 这里强调每次只覆盖一个无效等价类。 这是因为一个测试 用例中如果含有多个缺陷,有可能在测试中只发现其中的一个,另一些被忽视。 等价类划分法能够全面、 系统地考虑黑盒测试的测试用例设计问题, 但是没有注 意选用一些“高效的”、 “有针对性的”测试用例。后面介绍的边值分析法可以 弥补这一缺点。2.因果图等价类划分法并没有考虑到输入情况的各种组合。这样虽然各个输入条件

    18、单 独可能出错的情况已经看到了, 但多个输入情况组合起来可能出错的情况却被忽 略。采用因果图法能帮助我们按一定步骤选择一组高效的测试用例, 同时,还能 为我们指出程序规的描述中存在什么问题。利用因果图导出测试用例需要经过以下几个步骤:分析程序规的描述中哪些是原因,哪些是结果。原因常常是输入条件或是输 入条件的等价类。结果是输出条件。分析程序规的描述中语义的容, 并将其表示成连接各个原因与各个结果的 “因 果图”。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表 明这些特定的情况, 在因果图上使用持殊的符号标明约束条件。 把因果图转换成 判定表。把判定表的每一列写成一个测试用例

    19、。3.边值分析法边值分析法是列出单元功能、 输入、状态及控制的合法边界值和非法边界值, 设计测试用例,包含全部边界值的法。典型地包括 IF 语句中的判别值,定义域、 值域边界,空或畸形输入, 末受控状态等。边值分析法不是一类找一个例子的法, 而是以边界情况的处理作为主要目标专门设计测试用例的法。 另外,边值分析不 仅考查输入的边值, 也要考虑输出的边值。 这是从人们的经验得出的一种有效法。 人们发现多软件错误只是在下标、数据结构和标量值的边界值及其上、下出现, 运行这个区域的测试用例发现错误的概率很高。用边值分析法设计测试用例时,有以下几条原则:如果输入条件规定了取值围,或是规定了值的个数,则

    20、应以该围的边界及刚 刚超出围的边界外的值, 或是分别对最大、 最小及稍小于最小、 稍大于最大个数 作为测试用例。如有规“某文件可包含I至255”个记录“,则测试用例可 选 1 和 255 及 0 和 256 等。针对规的每个输出条件使用原则 a。如果程序规中提到的输入或输出域是个有序的集合 (如顺序文件、表格等 )就应 注意选取有序集的第一个和最后一个元素作为测试用例。分析规,尽可能找出可能的边界条件。一个典型的边值分析例子是三角形分 类程序。选取 a, b, c 构成三角形三边,“任意两边之和大于第三边”为边界条 件。边值分析相等价类划分侧重不同, 对等价类划分是一个补充。 如上述三角形 问

    21、题,选取a= 3, b = 4 , c= 5, a = 2 , b = 4, c= 7则覆盖有效和无效等价类。 如果能在等价类划分中注入边值分析的思想。 在每个等价类中不只选取一个覆盖 用例,而是进而选取该等价类的边界值等价类划分法将更有效, 最后可以用边值 分析法再补充一些测试用例。4.猜错法猜错法在很大程度上是凭经验进行的,是凭人们对过去所作的测试工作结果的分析,对所揭示的缺陷的规律性作直觉的推测来发现缺陷的。一个采用两分法的检索程序,典型地可以列出下面几种测试情况:被检索的表只有一项或为空表;表的项数恰好是 2 的幂次;表的项数比 2 的幂次多 1 等。猜错法充分发挥人的经验,在一个测试小组中集思广益,便实用,特别在软 件测试基础较差的情况下,很好地组织测试小组 (也可以有外来人员 )进行错误 猜测,是有效的测试法。5.随机数法 即测试用例的参数是随机数。它可以自动生成,因此自动化程度高。使用大量随机测试 用例测试通过的程序会提高用户对程序的信心。 但其关键在于随机数的规律是否符合使用实 际。


    注意事项

    本文(软件工程白盒测试.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开