白盒测试概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4/29
为什么做白盒测试?
• 软件中的所有代码都测试过了吗? • 对测试过的软件有足够信心吗?
5/29
隐藏的错误(一)
先看下面代码:
if( min>0 && min<10 && max>10 && max <100) { 处理语句; } if( min <0 || min>10 ) do(10); if( max <10 || max>100 ) do(50);
白盒测试和黑盒测试比较
白盒测试 黑盒测试
相同点 区 别
白盒测试和黑盒测试都是软件测试的一个方面,两者往往结 合起来同时进行测试,“灰盒测试”。
需要源代码
不需要源代码,需要可执行文件
从用户的角度出发进行测 试
关心程序内部结构和逻辑
无法检验程序的外部特性,无法 测试遗漏的需求
关心程序的外在功能和非功能表 现
– 白盒测试主要是对程序源代 码进行分析,所以常常需要 更有经验的测试人员,测试 人员最好了解编程技术、编 程语言和方法,最好有编程 方面的经验,这样更有利于 发现代码中容易发生的错误 。
19/29
如何做好白盒测试?
• 多掌握开发人员编程中容易出现的问题,不 断积累经验; • 在进行黑盒测试中如果有源代码,最好把黑 盒测试发现的错误定位到源代码上,这样日 积月累,就会知道代码容易犯错误的地方, 哪些地方要着重分析代码等。
wk.baidu.com
工具在白盒测试中所起的作 用?
• 白盒测试工具
– 人工测试发现70%~80%,白盒 测试往往需要更多的人工测试, 当然在黑盒测试阶段也需要很多 的人工测试。但是白盒测试需要 很大的工作量,人员和时间等资 源,所以最好有测试工具的支持 ,可以减少手工工作量。
18/29
白盒测试对测试人员的要求
• 白盒测试工程师:
9/29
为什么要做白盒测试
• 黑盒测试不对源代码进行测试,经过黑盒测 试也不能说明程序代码中没有缺陷 • 内存泄漏的积累不是在短时间运行测试中就 能发现的 • 有些异常处理分支有可能执行不到 • 白盒测试执行了多少分支和语句,可以作为 衡量测试是否完整的一个指标 • 有些异常或错误在实验室条件中很难满足条 件,需要白盒测试分析源代码 10/29
6/29
隐藏的错误(二)
某公司在编制《软件测试工程师管理系统》 -Windows版本时,在处理月收益编辑框中 输入的信息时,需求要求是可输入10位长度 的浮点数据,而有的同学在对数据处理时使 用了下面的语句:
GetDlgItemText(hDlg,IDC_EDITBENEFIT,buffer,9); MonthBenefit=(float)atof(buffer);
15/29
常用的白盒测试技术
• 逻辑覆盖测试 • 基本路径测试 • 数据流分析
16/29
白盒测试结果
• 图、表、数据库中统计信息; • 静态分析报告、代码质量报告。一般不称白 盒测试报告; • 有程序中错误、不符合编码规范的地方可以 添加到代码检查单中,软件质量度量结果可 以写入报告中。
17/29
白盒测试所在软件开发阶段?
需求分析
系统设计 模块设计
集成测试
编码
系统测试
13/29
白盒测试需要的材料
用户文档 软、硬件环境
软件源代码
使用指南
软、硬件环境
14/29
白盒测试的策略
• • • • • 桌前检查(Desk Check) 同行评审(Peer Review) 代码走查(Walkthrough) 单元测试(Unit Testing) 静态分析(static analyse)
在知道程序内部 结构的情况下采 用的测试技术或 策略。
在测试过 白盒测 黑盒测 在测试过 代 技程中,选 代 程中,选 试 试 码 术择足够的 码 择足够的 走 评测试用例, 审 测试用例, 针对要求的程序功 开发组内部进行的,采用讲解、提问并使用 查 审 查 使得每一 能,按照规范的流 使得程序 功能 性能 Checklist 攻击 回归 路径 方式进行的查找错误的活动。一般 语句 分支 个可执行 程进行的测试。中的每一 测试 测试 有正式的计划、流程和结果报告。 测试 测试 覆盖 覆盖 覆盖 语句至少 个分支判 开发组内部进行的,采用讲 开发组、测试组和相关人员 (QA、产品经理等)联合进行的, 被执行一 针对要求的程序功能以外的其他要求, 程序修改或者版本更新以后,为了确保 针对要求的程序功能、性能、安全、配 断的每一 在测试过程中,选择足够的测试 解、讨论和模拟运行的方式 次。 采用讲解、提问并使用 Checklist方式进行的查找错误的活 包括性能、安全、配置、负载等指标, 以前正确的功能和其他指标仍旧正确, 置、负载等指标,基于破坏目的、按照 12/29 种可能结 用例,使得程序中的每一条可能 进行的查找错误的活动。 按照规范的流程进行的测试。 而重新进行的测试。 动。一般有正式的计划、流程和结果报告。 经验进行的随机测试。 执行的路径都至少执行一次。 果都至少
7/29
隐藏的错误(三)
程序中使用了一个经过运算处理后的数据作 为除数进行运算,如下面代码:
float Div=1.0; …… if(Div==0) { printf(“除数为0,退出”); return; } else { mod=BeDiv/Div; }
8/29
白盒测试概念
• 是测试被测单元内部如何工作的一种测试方 法 • 它允许测试人员根据程序内部逻辑结构及有 关信息来设计和选择测试用例,对程序的逻 辑路径进行测试 • 基于一个应用代码的内部逻辑知识,该测试 可覆盖全部代码、分支、路径和条件等
11/29
测试技术
不实际运行程序,而是通过检 查和阅读等手段来发现错误并 评估代码质量的软件测试技术。 也称为静态分析技术。 在不知道程序内部结 构,只知道程序规格 的情况下采用的测试 技术或策略。 静态测试 实际运行程序,并通 过观察程序运行的实 际结果来发现错误的 软件测试技术。
软件测试技术
动态测试
软件 测试 技术
Te s t i n g
AND Developing
软件测试过程与测试模型
广东岭南职业技术学院
2/29
本章学习目标
• • • • • 了解白盒测试的概念 了解白盒测试的特点 了解白盒测试和黑盒测试的区别 了解与白盒测试的目的和意义 掌握白盒测试的策略
3/29
黑盒测试
测试用例
测试结果