白盒测试方法 白盒测试技术包括
1、用例设计
1)测试用例的组成(在单元测试中测试用例基本上由测试脚本组成)
① 用例运行前置条件
② 被测模块/单元所需环境(全局变量赋值或初始化实体)
③ 启动测试驱动
④ 设置桩
⑤ 调用被测模块
⑥ 设置预期输出条件判断
⑦ 恢复环境(包括清除桩)
2)测试用例的设计原则
① 一个好的测试用例在于能够发现至今没有发现的错误;
② 测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;
③ 在测试用例设计时,应当包含合理的输入条件和不合理的输入条件;
④ 为系统运行起来而设计测试用例;
⑤ 为正向测试而设计测试用例;
⑥ 为逆向测试而设计测试用例;
⑦ 为满足特殊需求而设计测试用例;
⑧ 为代码覆盖而设计测试用例;
3)用例设计方法
① 规范(规格)导出发
② 等价类划分法
③ 边界值分析法
④ 状态转移测试法
⑤ 分支测试法
⑥ 条件测试法
⑦ 数据定义-使用测试法(又名数据流测试法)
⑧ 内部边界值测试法
⑨ 错误猜测法
各种详细设计方法请参考《测试用例设计白皮书》
4)特定的用例测试设计
① 声明测试
② 路径测试
③ 循环测试
④ 循环嵌套
⑤ 边界值测试
⑥ 接口测试
⑦ 确认测试
⑧ 事务测试
2、用例执行
● 一般来说,做单元测试均采用的是商用的测试工具或自行开发的测试工具,用例的编写都是在测试工具上完成,测试用例都是一些测试脚本,都以文件的方式来保存,故其用例的执行过程主要是由测试工具根据所编写的具体的测试用例脚本来完成,这样对于用例的管理和执行也非常灵活。
● 在特定场合,比如某种压力测试或极限测试,对于测试执行过程时间很长时(几个小时以上),一般都预先编写好用例(确保用例无误),使用空闲机或非工作时间执行测试用例,这样操作起来较节约时间。
● 在用例的执行过程中务必注意如下事项:
1)程序的执行过程―――便于构造发散用例
2)不要放过任何细节――这种细节可能就是问题
3、测试优化和策略
1)测试用例的优化
2)测试执行的优化
3)测试策略
① 哪些是重点模块?
② 哪些程序是最复杂、最容易出错的?
③ 哪些程序是相对独立,应当提前测试的?
④ 哪些程序最容易扩散错误?
⑤ 哪些程序是开发者最没有信心的?
⑥ 80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错,这种应该列入测试重点。
二、 白盒测试评估
1、测试完备性评估,主要检查测试过程中是否已经执行了所有的测试用例,对新增的测试用例是否已及时更新测试方案等。
2、代码覆盖率评估,主要是根据代码覆盖率工具提供的语句覆盖情况报告,检查是否达到方案中的要求,公司要求语句覆盖达到100%。但很多情况下,第一轮测试用例执行完后是很难达到的,这时在评估过程中要对覆盖率进行分析,主要从以下方面来考虑:
1)不可能的路径或条件
2)不可达的或冗余的代码
3)不充分的测试用例
3、从覆盖的角度看,测试应该覆盖:
1)功能覆盖
2)输入域覆盖
3)输出域覆盖
4)函数交互覆盖
5)代码执行覆盖
大多数有效的测试用例都来自于分析,而不是仅仅为了达到测试覆盖率目标而草率设计测试用例。千万不要误解测试覆盖,测试覆盖并不是我们最求的目的,它只是评价测试的一种方式,为测试提供指导和依据。
4、测试覆盖程度评估:
● 位置无关调用覆盖率(Location-independent call coverage,LICC)
LICC = (已覆盖的不重复的函数调用个数 / 全部不重复的函数调用个数) * 100%
● 位置相关调用覆盖率(Location-dependent call coverage,LDCC)
LDCC = (已覆盖的函数调用个数 / 全部函数调用个数) * 100%
案例:
void Func(int i)
{
call1();
if(i==2)call2();
else if((i==3)call3();
else call1();
}
调用Func(2)和Func(3)后我们对Func()的覆盖评估如下:
LICC:3/3 = 100%
LDCC:3/4 = 75%
5、测试设计程度评估:
测试设计程度也称用例覆盖度(Test Case Coverage,TCC),以被测函数在正式测试中使用频度与其函数定义中分支总数之间关系作为依据,定义如下:
TCC = 用例中调用被测函数的总次数 / 函数定义的分支总数
其中,某函数的分支总数的定义如下:函数分支总数 = 1 + if语句总数 * 2 + while语句总数 * 2 + for语句总数 * 2 ,if语句有TRUE与FALS两个分支,原理上说应该设计两次测试才是完整的,while与for也类似,循环至少进入一次应设计一个用例,一次都不进入也应设计一个用例,所以计算出if、while与for语句总数后要乘以2,但如果一个函数没使用这3个控制语句,也应至少设计一个用例测试它,这是上面公式额外加上1的含义。
三、白盒测试推行
前提条件
● 思想上的统一
质量部门及项目责任人足够重视,将单元测试输出列为与代码输出同等重要地位。
● 完备的流程支撑
主要指设计文档的完备性,比如《详细设计说明书》,因为《详细设计说明书》是白盒测试的重要依据。
● 推行方法
1)选择相对重要复杂的模块
2)选择进度相对不紧张的项目
3)白盒测试人员一般为开发人员
● 测试工具的选择
四、 白盒测试实践
1、业界测试工具介绍
1)CodeTest
2)RTRT(Rational Test RealTime)
3)VcTester
4)CppUnit/CUnit
5)Cantata++
6)C++Test
测试工具详细介绍参见《常用嵌入式软件白盒测试工具介绍》
2、测试工具VcTester使用实践
1)VcTester简单介绍(测试原理)
2)测试环境搭建
3)脚本体系
4)被测元素的访问(类型、变量、函数)
5)测试元素构造(参数、桩、测试框架)
6)测试执行(在线测试)
7)覆盖评估(代码覆盖、测试覆盖)
8)代码编辑、编译、调试
9)测试报告
更多阅读
南美白对虾养殖技术 养殖南美白对虾视频
南美白对虾肉质鲜美,加工出肉率可高达67%,适温范围广,可在18-32℃生长,适盐范围也广,可在盐度1-40‰条件下生长,是一种优良的淡化养殖品种。南美白对虾生长快,抗病能力强,现已逐渐成为我国南方的主要养殖虾种。南美白对虾养殖技术——步骤
盆栽蓝莓的种植方法 蓝莓栽培技术要点
? 蓝莓果实中含有丰富的营养成分,不仅具有良好的营养保健作用,还能够防止脑神经老化、强心、抗癌软化血管、增强人机体免疫等功能,有“水果皇后”的美誉。人工种植的蓝莓价格很贵,现在许多家庭开始盆栽栽种蓝莓,具有观花赏果与品尝
科学养羊的5大方法 科学养羊技术大全
科学养羊的5大方法——简介本文是根据嘉祥县运达牛羊养殖场高级畜牧师黄绪红分享的科学养羊的5大方法。黄绪红在养羊方面已经用于了15年的经验。相信通过这篇经验分享,很多想要养羊的人会更加专业。科学养羊的5大方法——5大方法
白盒测试与单元测试 单元测试属于白盒测试
这几天需要跟dev结对编写一些单元测试,来验证我们系统中一些复杂的逻辑是否正确。回家的路上跟几个同事聊起单元测试和白盒测试,没有人能清晰解释它们的区别,自己也很模糊,所以回来就查了一些资料,作以下记录。(资料来自网络)单元,集成,确认
新疆来的小白杏 新疆小白杏栽培技术
欢迎关注本人微博*本人博客图文,全属本人原创,未经本人同意不得转载!*小时候看的一本关于新疆的小人书里头有这么一句话:“吐鲁番的葡萄,哈密的瓜,库车的姑娘一朵花。”其实库车除了出美女,还出很多好东西……比如这个小白杏。这是老公的