概述
白盒测试
又称为透明盒测试、逻辑驱动测试 (黑盒也称为数据驱动测试)
测试被测单元内部如何工作的一种测试方法
根据程序内部逻辑结构以及有关信息来设计和选择测试用例。对程序的逻辑结构进行测试
可覆盖全部代码、分支、条件和路径等
白盒测试的目的:
保证程序中所有关键路径的测试
衡量测试的完整性
程序内部所有的逻辑值真、假两个分支覆盖
检查内存泄漏 (能够直接被CPU访问的存储空间:内存)
异常处理的分支依据的执行
解决实验条件下很难搭建真实测试环境的问题
检查代码符合一定的编码规范,减少由于编码不规范而引入的错误
编码规范和标准:
坚持标准和规范的原因:
可靠性
可读性/可维护性
移植性
驱动模块:调用被测模块的模块
桩模块:被被测模块调用的模块
静态测试:不实际运行代码,主要对软件的测试格式、结构等方面进行评估
静态测试包括:代码检查、程序结构分析、代码质量度量等。可以由人工进行,可以借助软件工具自动进行
静态白盒测试:检查代码的设计、体系结构和编码规范
静态测试是指测试非运行部分——检查和审查
好处:可以在进行冬天白盒测试之前,尽早的发现软件的缺陷。可以给黑盒测试人员提供思路
静态白盒测试策略:
代码走查 代码审查(开发组内进行)
技术评审 (开发、测试、QC、QA、项目经理、产品经理)
正式审查(4个要素:确定问题、遵守规则、准备、编写报告)
检查单(checklist)
数据声明错误
数据引用错误
计算错误
比较错误(浮点类型数据相减加绝对值和精度相比较,如果比精度小,认为两数相等,如果比精度大,认为两数不等)
控制流程语句
子程序调用
输入/输出错误
其他检查
动态白盒测试:
逻辑覆盖方法:以程序内部逻辑结构为基础,有以下6种:
1、语句覆盖
2、判定覆盖
3、条件覆盖
4、判定-条件覆盖
5、条件组合覆盖
6、路径覆盖
动态白盒测试的逻辑覆盖
语句覆盖:设计足够的测试用例,将程序中可执行语句至少要执行一次
优点:容易写测试用例
缺点:没有考虑到所有的判定情况,更没有考虑带判定中条件的情况
判定覆盖:设计足够的测试用例,保证程序中的所有判定的取值情况至少都要执行一次
优点:容易写测试用例,实现语句覆盖
缺点:没有考虑到判定中的条件
条件覆盖:设计足够的测试用例,保证每个判定中的条件的所有取值至少要被执行一次
优点:考虑到了判定中的条件取值情况
缺点:不一定满足判定覆盖
判定-条件覆盖:综合判定覆盖和条件覆盖设计测试用例
优点:考虑到了判定,又考虑到了每个判定中的条件
缺点:由于编译器
如:a>0 and b>0 如果a<=0,这是不会去判断b>0
条件组合覆盖:每个判定中的所有条件进行组合,设计组合条件
路径覆盖:设计所有的测试用例,来覆盖程序中的所欲可能的执行路径
结论:满足路径覆盖不一定满足条件组合覆盖
结论:满足条件组合覆盖不一样满足路径覆盖
实际测试中,两者结合测
基本路径设计测试用例方法
1、会画控制流图——简化的程序流程图
一个圈:节点(只出去一个箭头)
箭头:边 or 连接
一个圈:判定节点(出去至少两个箭头)
区域:由节点和边连接起来的范围叫区域
2、计算圈复杂度(环路复杂度)
三种方法计算图的复杂度:
① 流图中区域的数量对应于环型的复杂度
② 给定流图G的圈复杂度V(G) ,V(G)=E-N+2 E是流图中边的数量,N是流图中节点数量
③ V(G)=P+1,P是流图G中判定节点的数量
注:第三种不适用于计算多分支结构的控制流图的圈复杂度
最后
以上就是矮小雪碧为你收集整理的白盒测试的全部内容,希望文章能够帮你解决白盒测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复