测试三大难题之一“Test Oracle”的应对策略
创始人
2024-06-22 19:41:29
0

如上一篇文章软件测试三大难题:我们必须面对和解决所说,今天我们往往拿不到详细、完整、清晰的设计规格说明书,而且大数据、海量用户的存在,输入的数据空间和用户的操作空间都很大,Test Oracle问题就更加突出。

哪有什么策略和方法应对呢?

1. 通过文档编写、评审、沟通和LLM技术等完善和澄清需求

如果没有详细、完整的需求规格说明书或设计规格说明书,那我们设法提高这方面文档的质量,例如参与需求文档的编写、需求文档的评审,甚至不让评审走过场,通过评审尽量消除模糊、二义性的问题,补充丢失的需求,为后续测试设计提供明确的预期结果和标准。

强化需求沟通:与相关方进行更深入、频繁的沟通,尽可能明确和细化需求,减少模糊地带,尽可能在需求内容上达成一致的理解。

甚至可以借助大模型(LLM),逐步细化需求、澄清需求和评审需求,降低这方面的工作量,迅速提升需求文档的质量:软件工程3.0实践之路(三):LLM辅能需求定义和评审,结果很震撼

2. ATDD(验收测试驱动开发):通过明确验收标准来澄清需求,而且是测试在前,确保100%可测,比较彻底解决Test Oracle问题。这类方法的实践还包括BDD(行为驱动开发,敏捷的一种开发框架)、需求实例化。

3.快速原型法:先构造一个型(类似Mockup UI),基于这个原型来讨论用户需求,通过构建简单的原型,让各方对系统功能和操作有更直观的理解,有助于发现潜在问题和明确测试标准等。

4.参考竞品:例如,大家认为银行应用系统,招商银行的App是标杆,我们测试时就可以对照招商银行的App是如何实现的,包括UI界面、操作流程等。类似 “黄金程序(The Golden Program)”,使用一个已知正确的程序版本作为标准,来验证新版本或修改后的程序的正确性

5.A/B测试:像UI设计优化、推荐算法的验证,虽然有一些理论(包括心理学、行为学方面的)可以参考,但还不能按照这样的理论来验证,因为其UI或算法可能就基于类似的理论来设计的。我们知道“实践是检验真理的唯一标准”,采用A/B测试的方法,最终基于用户反馈数据做出客观的判断。可以参考:如何做A/B测试?

6.测试集验证(数据/样本验证):像机器学习训练,一般会将一个数据集拆分为“训练集”(通常占70-80%)和“验证集”(通常占20-30%),但验证集还不等于测试集,虽然它也是验证模型训练的结果是否达到要求,即获取准确率(Accuracy)、召回率(Recall)、F1分数、AOC曲线等相关指标的结果。其实,我们完全可以超越原来数据集重新构造一个测试集,因为时间、范围等因素会影响原来的数据集,我们更看重“更为真实的、广泛的、现时的实际数据”来验证开发的模型。

7. 蜕变测试Metamorphic Oracles):通过改变输入数据来获得额外的测试用例,并检查输出是否符合预期的模式,从而验证程序的正确性,详见:高效测试技术详解系列(4):蜕变测试。

8. 使用启发式预言(Heuristic Oracles):在没有明确预期输出的情况下,使用启发式方法来综合评估输出的正确性。这主要依赖探索式测试,详见:?究竟什么是敏捷测试和探索式测试?

关于AI应用的测试,一般会采用 上面第5、6方法,例如采用样本实验,这就取决于定义评测指标,然后基于评测指标来构造测试样本。指标定义的是否科学合理、样本构造的好坏直接影响测试的效果。能构造样本,说明Test Oracle还是比较明确的。多数情况下是不明确的,需要采用第8种对策,人(专家)直接参与批判,类似图灵测试(图灵测试,测的到底是什么? )、Delphi方法(专家评测法),让系统直接和人对抗,可以参考:如何测试人工智能软件?

相关内容

热门资讯

四家券商公布AI应用最新突破,... 财联社2月20日迅(记者 王晨)国元证券、银河证券、广发证券和国泰君安四家券商近期披露AI应用新进展...
玩家必看科普!微扑克透明挂(微... 玩家必看科普!微扑克透明挂(微扑克wpk)外挂透明挂辅助插件(2025已更新)(哔哩哔哩);1、这是...
重大科普!((竞技联盟))外挂... 重大科普!((竞技联盟))外挂透明挂辅助透视!(透视)有挂传递(2022已更新)(哔哩哔哩);竞技联...
技术分享!((POKERFUN... 技术分享!((POKERFUN))外挂透明挂辅助助手详细教程(2023已更新)(哔哩哔哩);亲真的是...
实测必看!((wpk猫腻))外... 实测必看!((wpk猫腻))外挂透明挂辅助软件!(透视)有挂普及(2021已更新)(哔哩哔哩)是一款...
玩家攻略推荐!微扑克有假的,W... 玩家攻略推荐!微扑克有假的,Wepoke机制原来确实是有挂(2021已更新)(哔哩哔哩);Wepok...
玩家必看教程!WPK开挂(微扑... 玩家必看教程!WPK开挂(微扑克网页版)外挂透明挂辅助开挂!(透视)有挂揭秘(2024已更新)(哔哩...
终于懂了!((德州扑克菠萝))... 终于懂了!((德州扑克菠萝))外挂透明挂辅助插件详细教程(2021已更新)(哔哩哔哩);最新版202...
我来分享!((fishpoke... 您好,fishpoker这款游戏可以开挂的,确实是有挂的,需要了解加微【841106723】很多玩家...
推荐十款!德扑自定义房间,we... 推荐十款!德扑自定义房间,wepOke原来确切是有挂(2022已更新)(哔哩哔哩);1、让任何用户在...