软件质量保证与测试 白盒测试

白盒测试:分析组件、系统的内部结构,并设计相应的测试用例进行的测试

(结构测试、透明盒测试、逻辑驱动测试、基于代码的测试)

1.为什么要引入白盒测试

对于行业严格要求的代码,比如军事、金融、医学等必须严格白盒测试

可以洞察程序中的一切,往往可以进行比较完整的测试

2.分类:

静态白盒测试,动态白盒测试

白盒测试方法:控制流分析、数据流分析、覆盖分析、路径分析、符号测试

3.白盒测试应用范围:

可以用于所有的系统开发阶段,包括单元测试、集成测试和系统测试。

通常进行路径测试,可以测试单元内部。单元之间、子系统之间以及系统内部的各种执行路径。

4.白盒测试的优缺点:

优点:

使程序员注意代码的自我审查,

测试代码中每条分支路径,对代码的测试比较彻底,可以测试证明工作完整性。

揭示隐藏在代码中的缺陷,保证程序中没有不该存在的代码

根据内部结构进行最优化测试

缺点:

执行路径可能非常多,导致无法测试

测试员必须会编程

效率不高导致成本过高

5.白盒测试过程:瞎掰掰easy

6.静态白盒测试:评审:正式/非正式

非正式:桌面审查 

聊天

伙伴测试

结对编程

正式:  确定问题 -> 遵守规则 -> 准备 -> 编写报告

管理、技术评审

走查(答辩)

审查(专人报告)

审计

(涉及编码标准和规范,通用代码审查清单、静态白盒测试工具C++ test  PC - Lint)

7.动态白盒:

① 基于数据流的白盒测试(数据覆盖):查看代码中变量的定义和引用等情况,可判定软件可能存在的数据方面的隐患或者错误。

变量被定义 + 变量被引用:变量必须先定义,再引用;被定义了就要被使用

基于数据流的白盒测试已经非常成熟了

② 基于控制流的白盒测试(代码覆盖):测试程序的状态及其中的程序流程,设法进入和退出每个模块,执行每一个代码,追踪所有的逻辑和分支。

(通常情况下进行彻底的数据流路径测试不现实)

控制流图:节点 + 控制流线

节点:进程快 + 判定点 + 连接点(具体画法百度)

(具体由边和节点限定的范围被称为区域)啊哈!

特点:有唯一的入口节点(源节点代表开始),唯一的出口节点(中止接点代表结束),判定节点发出的边必须终止于一个节点

                     ※ 流程图化成控制流图

测试覆盖标准:逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定 / 条件覆盖、组合覆盖、路径覆盖(功能点覆盖率 和 结构覆盖率)

循环覆盖:

基本路径测试:(McCabe圈覆盖)

独立路径(多次出入每次都不完全一样)

环形复杂度:(也叫圈复杂度:程序模块独立路径数量,确保所有路径执行一次的下界  ※ 环形复杂度计算公式

                                                       基本路径测试方法:画程序流图 -> 计算环形复杂度,独立路径条数 -> 导出基本路径集 -> 设计测试用例输入数据和预期输出

几种不同的覆盖以及代码举例

8.Foster的ESTCA覆盖准则:

9:Xunit简介:

白盒测试是主要的单元测试方法

一般由开发人员实施白盒单元测试

目前广泛使用的动态白盒测试工具是xUnit测试框架家族

单元测试工具分为两类:

自动化单元测试工具:C++ Test 、Visual Unit 自动产生用例,执行测试、生成测试报告等

单元测试框架:提供类库和接口,用户自己编写测试代码来进行单元测试,如 xUnit 家族(xUnit 家族有哪些可以自行百度)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjzys.html