阿里面试题-判断是不是一个IP地址的测试用例设计(Python实现)

写在前面

今天面试阿里巴巴,太紧张了,回答的不好,在此记录和分享

IP地址规则

0.0.0.0~255.255.255.255

由上面的规则我们可以划分四段A.B.C.D

A段的测试用例设计(BCD的用例设计与A相同)

等价类划分

有效等价类 无效等价类
数字 非数字
0~255 <0
>255
3个分隔符

>3个的英文标点符号分隔符

<3个的英文标点符号分隔符

英文标点分隔符 非英文标点符号分隔符
分隔规则A.B.C.D 其他分隔规则AB..C.D

边界值分析补充

0~255的数字范围可以进行边界值分析法进行补充测试用例:-1,0,1,100,254,255,256

Python实现如下

def isip(ip:str):
    if not isinstance(ip, str):
        print('请输入一个字符串')
        return False
    if ip.count('.') !=3:
        print('分隔符号数量不对')
        return False
    iplist = ip.strip().split('.')
    for i in range(4):
        if iplist[i] == '':
            print('IP包含空字符')
            return
        try:
            iplist[i] = int(iplist[i])
        except:
            print('IP包含非数字')
            return False
        if 0<=iplist[i]<=255:
            continue
        else :
            print('IP超出数字范围')
            return False
    print('合理的IP地址')

#设计测试数据校验程序的正确性
isip('1.2.2.3') #正常的ip
isip('a.2.2.3') #包含非数字
isip('.2.2.3')  #有字段为空
isip('1.2.4.2.3') #多出一个段
isip('1.2.3')    #少一个段
isip(1)      #非字符串
isip('123')  #无分割符
isip('1.2#2.3') #其他分割符
isip('') #为空
isip('1.2.2.300') #数字超出范围
isip('256.2.2.1')  #数字超出范围

最后

暂时想到这么多,欢迎大家补充,祝大家面试成功,加油!

你可能感兴趣的:(五分钟说测试,Python)