网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2、普通功能测试中不会用到的测试方法
1 ) 算法pk(赛马)
对于一个需求,不同的人或团队可以设计出不同的算法模型,到底哪个更靠谱,是骡子是马拉出来溜溜,pk一下就知道了。
这个环节是算法测试的关键部分,用例设计主要采用场景法,通过列举不同场景,对多个算法分别进行测试验证,最终综合所有场景中的算法模型的表现,选出前几名。
你可能会有疑问:为什么要前几名,选第一名不就可以了吗?
下文中通过实例列举了这个环节中的测试用例,可以更好地理解这样设计用例的原因 ( 在此暂时不表 )。
2)A/B测试
由于算法的准确性会受到测试数据的影响,而在测试环境中,数据的来源一般是手动插入数据库或从线上导入数据。
尽管测试数据会接近于真实数据,但仍会有数据类型覆盖不够全面、数据量不够大等方面的问题。因此,即使算法模型在测试环境通过验收,仍然不能在生产环境全部放量。
通常采用的方法是:拿出线上流量的5%-10%,其中一部分数据作为对照组,其它部分作为一个或多个实验组(实验组采用的算法为pk中胜出的前几名算法)。对照组合实验组数据分别打不同的标,一段时间后分别统计计算的各项指对照组合实验组的各项指标标,根据关键指标来验证算法是否有效。
实际测试中,对算法的选择往往不是通过一项指标来定的,通常是多项指标综合比较。
看到这里,你是不是还有点迷糊,别担心,我们也通过下面的例子来说明。
三、算法测试实例
某导航APP,要升级导航路线推荐算法,预期是找到耗时更少的路线并推荐给用户。
首先来理解一下需求中的关键词 「耗时更少」:耗时不等同于距离,有可能距离短但是堵车,实际比绕路耗时还长。
经过n天的研发,算法同学最终给出了3个优化后的算法模型,现在到了测试验证环节。
为方便描述,我把旧导航路线推荐算法称为算法0,新算法分别称算法1、算法2、算法3
1、算法pk(下面是场景化测试用例的列举)
同一条路线,默认为当前时间和天气状况,多轮测试之后,选出最优的算法,假定是算法2
同一条路线,分别设定不同时间段(早晚高峰、工作日、节假日等),找出最优算法,假定是算法1
同一条路线,分别设定不同的天气状况(雨、雪、雷、沙尘、冰雹等),找出最优算法,假定是算法3
还有其它很多场景的测试,这里就不一一列举了……
2、稳定性测试
长时间(24小时以上)运行算法模型,是否有稳定的表现,假定这里的最优算法是算法1
超长距离(1000km以上)测试算法模型,对比推荐效果是否稳定,假定这里的最优算法是算法2
……
3、兼容性测试
选取不同城市的道路测试(比如重庆、贵州等地),测试山路、爬坡、转弯等不同路况下导航推荐算法的表现,假定这里的最优算法是算法1
选取不同通行能力的道路(城市和乡间小路等),测试小路、窄路等不同路况下,推荐算法是否有
稳定表现,假定这里的最优算法是算法3
……
4、性能测试
同一条路线下,不同算法模型的耗时,假定耗时最少的算法是算法3
同一条路线下,不同算法模型对服务器的压力,假定最终结果是算法2最服务器压力最小
……
5、AB测试
经过上面几个环节的测试,综合所有结果,假定最终选出的算法1和算法3
线上灰度放量,选取目标用户,被选中的用户会收到「是否参加内测/灰度」之类的消息
经过一段时间的A/B测试之后,拿到真实的数据,最终经过架构师、研发经理、产品经理等研讨之后选出符合预期的算法
四、答疑解惑
上述例子中,假定最终要采用的是算法2,但是你可能会有很多疑问:
1、算法1在早晚高峰期时段表现最好,我就是上下班使用导航软件,为什么不采用?
2、耗时最少的是算法3。我就希望推荐路线要快,为什么不采用?
算法的测试,要经过多个环节综合来评估效果,所以即使某个环节表现好最终也不一定入选。
最终会结合效果、成本、稳定性等多方面的因素,最终往往会选择妥协折中后的方
软件中的算法如何测试?你了解了吗?
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
文档获取方式:
加入我的软件测试交流群:632880530免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新