白盒测试只是PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定义
适应范围
测试依据
测试组内部资料

与黑盒测试的对比
黑盒测试 白盒测试
能站在用户立场上进行测试。 能够对程序内部的特定部位进行覆盖测试。 对于更大的代码单元来说比白盒测试效率更 对代码的测试比较彻底; 高; 最优化;揭示隐藏在代码中的错误; 有助于暴露任何规格不一致或有歧义的问题; 测试人员不需要了解实现的细节,包括特定 的编程语言; 不能测试程序内部特定部位; 如果规格说明有误,则无法发现; 缺点 无法检验程序的外部特征; 无法对未实现规格说明的程序内部欠缺部分进行测 试(无法检测代码中遗漏的路径和数据敏感性错 误); 昂贵; 等价类划分、边界值分析、因果图/判定表、 语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、 错误推测、(功能覆盖率)、 路径覆盖、面对对象的覆盖(继承上下文覆盖、基 于状态的上下文覆盖、已定义的上下文覆盖等)、 另外还有一些静态分析方法。
测试组内部资料

白盒测试的方法之语句覆盖
优点: 可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
缺点: 由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条
件和可能到达的隐式逻辑分支,是无法测试的。在if结构中若源代码没有给出else后面的 执行分支,那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种以外的分支不 会被执行,而往往这种错误会经常出现。再如,在Do-While结构中,语句覆盖执行其中某 一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎 运行一次,而不考虑其他情况。
测试组内部资料

白盒测试的方法之条件覆盖

条件覆盖:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各
种可能的结果,即每个条件至少有一次为真值,有一次为假值。 用例:(每个小条件真假各一次。但是做不到语句覆盖) T and F F and T F and T F and F
测试组内部资料
用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果 或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。
测试组内部资料

了解:常见ASP漏洞
测试组内部资料

常用开发语言介绍
HTML(浏览器脚本) SQL(服务器脚本) JavaScript (浏览器脚本)
PHP(服务器脚本)
那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是 不可能被执行的,如: If (!A)B++; If (!A)D--; 这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在, 而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测试效率,而且大量的测试结 果的累积,也为排错带来麻烦。
白盒测试资料
2012-12-20
目录
一 二 三
白盒测试的概念 白盒测试的方法、工具 常见ASP漏洞了解 常用开发语言介绍

测试组内部资料

白盒测试的概念
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序, 通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程 序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑 结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不 同点检查程序的状态,确定实际的状态是否与预期的状态一致。
果至少出现一次,每个判定本身所有可能结果也至少出现一次。
用例: T and F, F and T,T and T F and T, F and F
测试组内部资料

白盒测试的方法之判定/条件覆盖
优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。
测试组内部资料

白盒测试的方法之路径覆盖

路径覆盖:设计足够的测试用例,覆盖程序中所有可能的路径。
用例:
A->C,A->D, B->C,B->D
测试组内部资料

白盒测试的方法之路径覆盖
优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),
并解决错误。
测试组内部资料

白盒测试的方法
白盒测试基本技术: 词法分析与语法分析,静态错误分析,程序
插桩技术。(详见《白盒测试技术.pdf》) 白盒测试方法:总体上分为静态方法和动态方法两大类。
测试组内部资料

白盒测试的方法
代码检查法 静态结构分析法 静态质量度量法 逻辑覆盖法 基本路径测试法 其他方法 包括桌面检查、代码审查和走查等 通过测试仪工具分析源程序的各种内部结构 用质量度量模型来评估软件的每个方面 通过对程序逻辑结构的遍历实现程序的覆盖 分析控制流图环路复杂性,导出基本可执行路径的集合 包括域测试、符号测试、Z路径覆盖和程序变异等
对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也 未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关 错误,不能查出程序遗漏的路径)。
测试组内部资料

总结
那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码
逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试
测试组内部资料

常用开发语言介绍之HTML
HTML
测试组内部资料

常用开发语言介绍之HTML
实例:
<html> <body>
<h1>My First Heading</h1>
动态测试工具要求被测系统实际运行。动态测试工具的代表有:
Compuware公司的DevPartner软件;Rational公司的Purify系列等。
测试组内部资料

总结
白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱 动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的
白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其
白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检
验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。
测试组内部资料
Hale Waihona Puke 一与黑盒测试的对比
黑盒测试 白盒测试 黑盒测试又称功能测试、数据驱动测试或 白盒测试是根据被测试程序的内部结构设计 者基于规格说明的测试,被测试程序当作 测试用例的一类测试,有人也称它为透明盒 黑盒处理,无法了解其内部的构造。 或者玻璃盒测试,涉及到软件设计的细节。 黑盒测试方法适合系统的功能测试、易用 白盒测试方法更适合单元测试,而不适合系 性测试,也适合和用户共同进行验收测试、统测试。 软件确认测试。 根据用户能看到的规格说明,即针对命令、根据程序的内部结构,比如语句的控制结构、 信息、报表等用户界面以及体现它们的输 模块间的控制结构以及内部数据结构等进行 入数据与输出数据之间的对应关系,特别 测试。 是针对功能进行测试。
测试组内部资料

白盒测试的方法

★ 逻辑覆盖法: 语句覆盖、 判定覆盖、 条件覆盖、 判定/条件覆盖、 条件组合覆盖、 路径覆盖等
测试组内部资料

白盒测试的方法之语句覆盖

语句覆盖:选择足够多的测试数据,使测试程序中每条语句至少执行一次。
用例:A->C,B->D或者A->D,B->C ;
测试组内部资料

白盒测试的方法之判定覆盖

判定覆盖(分支覆盖):设计足够多的测试用例,使用得程序中的每个判定至少
都获得一次“真值”或“假值”;或者说使用得程序中的每一个取“真”分支和取“假”
分支至少经历一次。 用例: (整个条件做为一个整体,真假各取一次。一般可以做到语句覆盖) x > 5 and y > 10: T/F 各一次 x > 5 and z > 10: T/F 各一次
测试组内部资料

白盒测试的方法之条件判定组合覆盖
优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的
判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出
现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响 判定结果。
缺点:线性地增加了测试用例的数量。
测试组内部资料

白盒测试的概念
• • 就是代码测试; 从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点
或者错误;
• 又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒
测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是 盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
测试组内部资料

白盒测试的工具
白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以 定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和 动态测试工具。
测试组内部资料

白盒测试的工具
静态测试工具:直接对代码进行分析,不需要运行代码,也不需 要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行 语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的

白盒测试的方法之条件覆盖
优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。
缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。
条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
测试组内部资料

白盒测试的方法之判定/条件覆盖

判定/条件覆盖:设计足够多的测试用例,使得判定中每个条件的所有可能结
测试组内部资料

白盒测试的概念之目标
白盒测试需要做到的: • 保证一个模块中的所有独立路径至少 被使用一次

• •
对所有逻辑值均需测试 true 和 false
在上下边界及可操作范围内运行所有循环 检查内部数据结构以确保其有效性
测试组内部资料

白盒测试的概念之目的与特点
白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行 覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态 与预期状态是否一致。
测试组内部资料

白盒测试的方法
静态分析是一种不通过执行程序而进行测试的技术。静态分析的关 键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之 前、之中和之后 , 对软件系统行为的分析。动态分析包含了程序在 受控的环境下使用特定的期望结果进行正式的运行。它显示了一个 系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的 技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态 分析方法。
测试组内部资料

白盒测试的方法之判定覆盖
优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖
更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可
以得到测试用例。 缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含 AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗 漏部分测试路径。
质量,生成系统的调用关系图等。静态测试工具的代表有:Telelogic
公司的Logiscope软件;PR公司的PRQA软件。
测试组内部资料

白盒测试的工具
动态测试工具:动态测试工具与静态测试工具不同,动态测试工 具的一般采用"插桩"的方式,向代码生成的可执行文件中插入一些监测 代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是
测试组内部资料

白盒测试的方法之条件判定组合覆盖

条件判定组合覆盖:设计足够的测试用例,使用得判定中每个条件的所有可能
(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
用例: T and F, T and T , T and T, F and F F and T, F and F, T and F, T and T
优点 特点
方法举例
测试组内部资料

白盒测试的概念之实施步骤
白盒测试的实施步骤: 1.测试计划阶段:根据需求说明书,制定测试进度。 2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结 构划分和设计测试用例。 3.测试执行阶段:输入测试用例,得到测试结果。
4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到
相关文档
最新文档