21、软件测试的深度剖析:何时过度、侵入性及各类测试的作用

软件测试的深度剖析:何时过度、侵入性及各类测试的作用

1. 何时测试过度

在软件测试中,我们常常会陷入一种误区,认为测试用例越多,软件就测试得越充分。就像医院里监测心跳的机器,它通过检测电信号来判断心脏是否跳动,但电信号正常并不一定意味着心脏在有效跳动。在一个故事中,孩子的心跳监测机器显示电信号正常,然而医生听诊却发现没有心跳,最终确定是心脏周围的肿胀压迫心脏导致无法跳动。

在软件测试里,我们也可能犯类似的错误。比如有一个测试添加过滤器文字的例子:

TEST("Tag values can be used to filter messages")
{
    MereTDD::SetupAndTeardown<TempFilterClause> filter;
    MereMemo::addFilterLiteral(filter.id(),
        Count(100, MereMemo::TagOperation::GreaterThan));
}

我们本可以验证过滤器是否确实添加到了集合中,也可以调用 getFilterClauses 函数来检查每个子句并查找刚添加的文字,甚至确认文字本身是否按预期工作并被赋予了值100。但这个测试并没有这么做,因为查找集合中的过滤器就如同监测心跳电信号, getFilterClauses 函数只是为了将日志库包含在单个头文件中而存在的细节,并非供客户调用的。测试应该关注设置过滤器后的结果,即设置过滤器后,记录一些消息并确保结果符合预期。

如果项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值