评估标准:逻辑覆盖率
一、语句覆盖 :被测的语句/全部的语句
1
2
3
4
5
|
num = int ( input ( "请输入数字" )) if num > 0 : num + = 1 else : num - = 1 |
以上代码片段中,需要执行的语句有3句:
若输入数字2,会执行的语句有2,则语句覆盖率为2/3.
二、分支、条件覆盖率:
username = input("请输入用户名") password = input("请输入密码") if username== 'admin' and password == '123456': print("登录成功") else: print("登录失败")680
以上代码片段中,有一个if判断,总共2个分支(只计算if判断条件)。
两个条件判断,总的判断条件有4个,username的T或F,password的T或F。
若输入username== 'admin' and password == '123456',则语句覆盖率为1/2,条件覆盖率为2/4.
若输入username== 'ad' and password == '123456',则语句覆盖率为1/2,条件覆盖率为1/4.(因为username和passwor条件判断使用and连接,username为F时,passw则不用在继续判断)
username = input("请输入用户名") password = input("请输入密码") if username== 'admin' or password == '123456': print("登录成功") else: print("登录失败")680
以上代码片段,若输入username== 'ad' and password == '123456',则语句覆盖率为1/2,条件覆盖率为2/4.
三、分支条件覆盖率:分别计算分支覆盖率和逻辑覆盖率,然后分子和分母分别相加。
四、路径覆盖率:
路径:从开始到结束的过程。
计算方式:执行判断和语句是经过的路径数量 / 总的可执行路径数量。
a = int (input("请输入数字")) a = int (input("请输入数字")) if a > 0 or b<0: 语句3 elif a == 1 and b == 2: 语句4 else: 语句5680
根据以上代码片段,判断逻辑覆盖率
输入a = -1,b=2:
语句覆盖率:3/5
分支覆盖率:2/4
条件覆盖率:FF 2/4+ F 1/4 = 3/8
分支条件覆盖率:2/4+3/8=5/12
路劲覆盖率:1/3