作者:非妃是公主
专栏:《软件测试》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
![在这里插入图片描述](https://img-blog.csdnimg.cn/ce8ecfe91c8d413f91a6fd5cdecffd5b.jpeg)
白盒测试常用技术有:逻辑覆盖法(最常用)、程序插桩技术、基本路径法、符号测试、错误驱动测试。
- 语句覆盖:选择足够的测试用例,使得程序中每个可执行语句至少都能被执行一次。
- 判定覆盖(分支覆盖): 执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。
- 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。
- 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。
- 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。
逻辑覆盖法:最常用
![在这里插入图片描述](https://img-blog.csdnimg.cn/6f1f4c87558c41dfa116f37b45bb26ed.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d6cef84810834ab8b215741b072ce03c.png)
-
语句覆盖
-
判定覆盖:分支覆盖
-
条件覆盖
-
判定/条件覆盖
-
条件组合覆盖:单一判定内各种条件全组合
-
路径覆盖
程序插桩技术
- 通过向被测程序中插入操作(语句)来达到测试的目的。
- 那些被插人的语句称为探测器或探针。
- 目的:记录程序执行过程中发生的一些重要事件,如语句执行次数、变量值的变化情况、指针的改变等。
- 需要考虑的问题:
- 探测哪些信息?
- 在什么位置设置探测点?
- 需要设置多少个探测点?
基本路径法
点覆盖
覆盖控制流图中的每一个节点。
![在这里插入图片描述](https://img-blog.csdnimg.cn/21f0449b3a9b499b9730ca660dffd58b.png)
边覆盖
覆盖图中所有边(长度为1的边)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5c029e2df7e544eba6af063a5f2f19fb.png)
边对覆盖
覆盖所有长度小于等于2的可达边
主路径覆盖
简单路径:除起始点和终止点,不存在重复的节点。
主路径:最大的简单路径,其中不包含其它简单路径。
- 主路径覆盖:就是对程序设计测试用例,使测试用例尽可能多地经过控制流图中的边同时不形成环。
![在这里插入图片描述](https://img-blog.csdnimg.cn/decaa24982af4bc092d536ad15cc1a65.png)
圈复杂度V(G)同时也是确保程序种每个可执行语句至少执行一次所需测试用例数的上限。
符号测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/96fc6e95f082449da156419e7933c469.png)
错误驱动测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/1c21796836484902a43351e68f53c2de.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/0a26d7642a1a4376bd053f30deb1ed35.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f10967672b924af1979bc70bd1b91852.png)
习题
![在这里插入图片描述](https://img-blog.csdnimg.cn/182e4ff5630747b88ae9241bd3fb349b.png)