测试时遇到的两个问题:冗余case和无效case

本文讨论了软件测试过程中遇到的问题,包括测试集冗余和无效测试案例。作者分享了在测试JDBC接口时的经验,强调了高质量测试用例的重要性,而非仅仅追求测试集的数量。
最近测试的时候遇到了两个问题
1.测试集冗余
我在测试JDBC接口的时候,有几个case是测试PreparedStatement在不绑参数的情况下调用execute方法会不会报错,结果肯定是报错了我也能捕捉到,但是这样的测试用例跟我修改代码没关系。
2.无效测试
我之所以写那么多case,真正目的是为了目标测试,验证Bug真的被消除了,而事实上,测试集写好后,一直都是在测修正后的版本,通过了空欢喜,因为无意中测了一次修正前的版本,也是能全部通过,汗!
虽然测试用例越多显得测试越严格,事实上,测试集数量不代表测试集的质量,一些无效的测试用例,没必要拿来混人耳目。
/** * @brief 验证MQTT报文固定报头的合法性 * @param packet_header 固定报头的第一个字节(包含报文类型标志位) * @return 1(合法)或 0(非法) */ int validate_packet_header(uint8_t packet_header) { // 主switch:处理所有明确已知的合法报文头 switch (packet_header) { case 0x10: // CONNECT - 无标志位要求 case 0x20: // CONNACK - 无标志位要求 case 0x30: // PUBLISH - 基础合法形式(QoS=0, DUP=0, RETAIN=0) case 0x40: // PUBACK - 无标志位要求 case 0x50: // PUBREC - 无标志位要求 case 0x62: // PUBREL - 标志位必须为0x02(MQTT v3.1.1要求) case 0x70: // PUBCOMP - 无标志位要求 case 0x82: // SUBSCRIBE - 标志位必须为0x02 case 0x90: // SUBACK - 无标志位要求 case 0xA2: // UNSUBSCRIBE - 标志位必须为0x02 case 0xB0: // UNSUBACK - 无标志位要求 case 0xC0: // PINGREQ - 无标志位要求 case 0xD0: // PINGRESP - 无标志位要求 case 0xE0: // DISCONNECT - 无标志位要求 // case 0xF0: // AUTH(MQTT v5.0) - 当前被注释掉 // 调试信息:明确记录通过主switch验证的报文 printf("[MQTT解析器] 调试:报文头0x%02X通过主switch验证\n", packet_header); return 1; default: // 处理PUBLISH报文的所有变体(类型3) if((packet_header >> 4) == 0x03) { // 调试信息:进入PUBLISH变体处理 printf("[MQTT解析器] 调试:检测到PUBLISH变体报文头0x%02X\n", packet_header); switch (packet_header) { case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: case 0x3A: case 0x3B: case 0x3C: case 0x3D: case 0x3E: case 0x3F: return 1; default: // 理论上不会执行到这里,因为外层if已经确认是PUBLISH类型 printf("[MQTT解析器] 错误:不可能到达的PUBLISH变体错误 (0x%02X)\n", packet_header); return 0; } } // 处理其他所有非法报文 printf("[MQTT解析器] 错误:无效的报文头:0x%02X (不属于任何已知合法模式)\n", packet_header); return 0; } } 解释这段代码
07-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值