def stringtoint(string):
“”” 不考虑为负数的情况”””
if string.isdecimal()==False:
raise Exception("input should be number!")
result = 0
temp = 0
for str in string[::-1]:
if str in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
result += int(str) * (10 ** temp)
temp += 1
return result
白盒测试用例解析
可使用语句覆盖和分支覆盖,因为本代码中的条件仅为一个,所以不考虑条件覆盖,分支条件覆盖,条件组合覆盖
语句覆盖
1)画流程图,识别路径:P1:a-b F2:a-c
流程图简述:真分支为 b,输出语句块 1,假分支路径为 c,输出语句块 2
2)记录分支节点及真假分支: M=string.isdecimal()
3)设计语句覆盖的测试用例 (简写)
测试用例输入 输出 语句块 1 语句块 2 覆盖路径
‘123’ 123 123 P1
‘-123’ input should be number input should be number P2
4)设计分支覆盖的测试用例
测试用例输入 输出 M 覆盖路径
‘123’ 123 123 P1
‘-123’ input should be number P2
考虑等价类和边界值两种设计方法
用例编号 等价类集合 边界值
1 (10-2147483647 之间的数字 0
2 2147483647
3 100000
4 (2)负整数 -1
5 -999999
6 (3)含非数字字符 abcd
7 Abc123efg
8 123 456
9 123[TAB] 456
10 123\t
11 123.01
12 (5) 位数超过 2147483647 2147483648
13 (6) 为空