白盒测试练习题 控制流图 + 独立路径

        1.控制流图

 

        2.环形复杂度

                  V(G) = 6 - 5 + 2 = 3

 

        3.环形复杂度

                 独立路径条数:4

                      独立路径分别是:1 -> 2 -> 3  -> 4  -> 5

                                                   1  -> 3  -> 4  -> 5

                                                   1  -> 3  -> 5

                                                   1  -> 2  -> 3  -> 5

        4.输入数据和预期输出

                     1. 输入数据 : A=2 B=0 X=2   预期输出: A=2 B=0 X=2

                     2. 输入数据 : A=1 B=0 X=2   预期输出: A=1 B=0 X=3

                     3. 输入数据 : A=1 B=0 X=0   预期输出: A=1 B=0 X=0

                     4. 输入数据 : A=2 B=0 X=0   预期输出: A=2 B=0 X=1

                    

### 白盒测试练习题 #### 题目一:理解基本概念 解释什么是白盒测试,并描述其主要特点。 白盒测试是一种基于程序内部逻辑结构的测试方法,通过检查程序的基础逻辑和编码实现来进行测试。这种方法允许测试人员了解系统的内部工作原理并据此设计测试案例[^1]。 ```python def add(a, b): return a + b ``` 此函数`add`用于两个数相加的操作,在进行白盒测试时可以考虑如下几个方面: - 输入不同类型的参数(整型、浮点型) - 检查返回值是否正确反映了输入数据之和 #### 题目二:路径覆盖分析 给定一段简单的代码片段,请找出所有可能执行的不同路径,并创建相应的测试用例以确保每条路径都被遍历到。 对于下面这段条件判断语句来说, ```c++ if (x > 0 && y != 0) { z = x / y; } else { printf("Invalid input"); } ``` 存在两条不同的控制流路径: - 当 `x>0` 并且 `y≠0` 成立,则进入第一个大括号内计算z=x/y; - 如果上述任一条件不满足则打印提示信息 "Invalid input". 因此应该构建两组测试样本来分别触发这两种情况的发生. #### 题目三:判定覆盖实践 针对特定算法编写多个测试用例,使每个决策点都能得到至少一次真值和假值的结果,即达到判定覆盖的要求。 假设有一个简单的登录验证函数: ```java public boolean validateLogin(String username, String password){ if(username.equals("admin") && password.equals("secret")){ return true; }else{ return false; } } ``` 为了实现完全的判定覆盖,需要构造四个独立的测试实例来评估这个布尔表达式的四种组合状态下的行为表现. ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值