烟台网站快速优化排名,微信商城官方入口,西安网站开发xamokj,网站推广有必要吗广义的算法是指解决问题的方案,小到求解数学题,大到制定商业策略,都可以叫做算法。而我们 今天讨论的软件测试中的算法,对应的英文单词为Algorithm ,专指计算机处理复杂问题的程序或 指令。
随着最近几年人工智能等领域的快速发展,算法受到前所未有的重视,算法测试也随之兴起。…
广义的算法是指解决问题的方案,小到求解数学题,大到制定商业策略,都可以叫做算法。而我们 今天讨论的软件测试中的算法,对应的英文单词为Algorithm ,专指计算机处理复杂问题的程序或 指令。
随着最近几年人工智能等领域的快速发展,算法受到前所未有的重视,算法测试也随之兴起。|
为了让同学们能对算法测试有一定了解,老规矩,我将这篇文章大纲先公布如下:
1、算法测试测什么? 2、算法测试如何做? 3、补充算法测试一个案例 4、答疑解惑
一、算法测试测什么? 先来看几个大家耳熟能详的算法应用成功的例子:
1.阿尔法围棋机器人,打败了人类棋手,其实就是运用了复杂的人工智能算法
2.今日头条、抖音等APP , 使用了兴趣算法推荐,推送的都是你感兴趣的
3.购物软件,你搜过什么商品,就会不胜其烦-直推荐,也是使用了算法推荐机制 区别于一般的功能测试算法测试的侧重点不同。
一般的功能测试是关注前端操作之后服务端返回数据的正确性增删改查而算法测试则要关注的是算法模型启用之后数据的增量有正负是否符合预期。
举两个例子
例子1 某软件中的广告推荐更新了一套算法预期要把推荐转化率提升几个百分点。
【测试要关注的是】新算法有没有提升转化率百分比提升量的有没有达到预期。
例子2 某人脸识别软件更新了识别算法预期是减少识别耗时。
【测试要关注的是】耗时减少的同时准确率有没有下降。
二、如何测试算法 1、普通功能测试会使用到的方法
1算法稳定性测试
a ) 长时间运行算法是否奔溃
b )数据量提升后算法模型的结果是否符合预期
2 ) 算法性能测试
a )算法模型的响应时间
b )算法模型对处理器cpu和磁盘的消耗
3 ) 算法兼容性测试
a ) 设置不同阈值内的数据算法结果是否稳定比如用户年龄、区域、性别等
上面说到测试方法是不是似曾相识没错这几个与普通功能测试中用到的测试方法基本一样
2、普通功能测试中不会用到的测试方法
1 ) 算法pk赛马
对于一个需求不同的人或团队可以设计出不同的算法模型到底哪个更靠谱是骡子是马拉出来溜溜pk一下就知道了。
这个环节是算法测试的关键部分用例设计主要采用场景法通过列举不同场景对多个算法分别进行测试验证最终综合所有场景中的算法模型的表现选出前几名。
你可能会有疑问为什么要前几名选第一名不就可以了吗
下文中通过实例列举了这个环节中的测试用例可以更好地理解这样设计用例的原因 ( 在此暂时不表 )。 2A/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免费获取~同行大佬一起学术交流每晚都有大佬直播分享技术知识点
这份文档对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你 以上均可以分享只需要你搜索vx公众号程序员雨果即可免费领取