拼多多“薅羊毛”事件引发测试工作的思考

author author     2023-02-27     637

关键词:

前言

2017年我有幸负责公司DevOps治理和落地项目,在整个DevOps落地工作中,深感测试环节在持续交付工作中的弱态及重要。实践是检验真理的唯一标准,没有实践就没有发言权。为求深入理解,我亲身投入了测试岗位的一线工作。从测试用例的编写、宣讲、测试、复测、上线、回归等一些列实际工作,再到带领测试团队、提炼测试经验,推动测试变化的一系列行为,让我对测试工作有了深刻的认识。在测试岗位一年多的工作经验中,补全了我Devops治理工作中测试环节的内容,为我Devops的工作提供了丰富的经验。我也借这次拼多多事件与大家分享一下我的测试工作体验。

线上的测试券

这几天拼多多被薅羊毛的事刷爆了朋友圈,作为经历了生产删库、用户数据泄露等诸多互联网安全新闻的圈内互联网从业人员,早已内心淡定、波澜不惊了。昨天朋友圈发了一篇关于拼多多事件技术复盘的文章,我匆撩一眼便觉得有必要给这位小编科普一下为什么测试券可以发布到生产环境。
小编在文章中提到了拼多多事件是由测试券引发的生产漏洞。他确实阐述了一个在互联网企业客观存在的现象,就是生产环境中,测试商品的存在。记得去年某东也曾出现过测试商品被用户下单的问题。
我在刚做测试的时候,我们项目团队也存在同样的问题,如我们开发了新的支付功能,在漆黑的深夜(12点左右吧),项目组的同事们(开发、测试、产品、运营)相约起床(有时也会约在公司熬夜到此时的),将代码发布上线,然后开始线上回归测试。这时的测试工作是个主流程的回归测试,测试人员在代码发布上线后,要通知产品经理和运营人员配置上线测试商品,然后通过新版本进行下单、购买、退款等可覆盖新功能的主要闭环流程的测试工作。顺利的话,很快结束,大家开心安稳睡觉,不顺利的话,在许可的条件下开发同事会反复定位,最后完成上线工作,否则超过发布时间窗口的话,就回滚代码等着下次吧。
以前测试人员或产品经理有着很大的权限,有着超级管理员的权限。后来运管中心进行了权限管控,回收权限,但这也直接导致了发布生产后,被管控权限功能无法进行线上回归测试。因此每次上线也会因为功能的不同,带上相关的运营的同事。

我的测试实践

线上测试环境

客观问题既然存在,并不表示放任他的存在而不管,我觉得我们同样需要根据客观事实去实施一种管理策略,既可以完成线上环境的测试工作,又可以不影响实际的商户运营。
我在负责广场优惠券小程序的项目测试工作时,为了提高测试能力同时避免生产事故,我联合开发、运营同事,共同在生产环境开通了一个虚拟广场的商户,对这个虚拟广场,我们测试人员有完全管理权限,可实现广场商户的全功能测试覆盖。对于实际用户,即便切换到该广场,看到的也全是测试商品和测试说明(这也未尝不是一种彩蛋),但无法领用,因为这里的券只有被指定的测试人员的会员才可以领用。利用这个虚拟广场,我们在后续的测试工作中获得极大的便利。
举个例子,当时我们要上线一个类似大转盘,点击后抽奖的活动功能。经过项目组同事的努力,快速的完成了代码的开发和测试工作,我们提前几天就把代码发到了生产环境,并在虚拟广场中进行了活动的上线,为了得到更充分的测试,我们发动了公司同事共同的参与了内测活动,得到了充分的测试和很好的用户反馈。这样我们即提升了测试的覆盖能力,又没有影响到实际的商户,高效的完成了代码上线及测试工作。

这个解决方案有他的特殊性,虚拟广场是可独立存在的,所以并没有开发同事深入的介入,只是在运营同事方面开通相应的权限就实现了。但这个测试实践,也为在生产环境进行测试工作提供了一种可实用的方法,就是在生产环境上进行灰度隔离,创建一个可测试的真实环境。依照现在的技术,实现起来也不是存在很大难度的,不同场景更因其实际情况的复杂程度要区别对待,可能测试人员、产品经理和运营同事就可以把方案实现并落实,也可能要依赖产品经理、开发同事、测试人员、运维同事、运营同事等诸多同事共同设计来完成此事。

在最初我带队Devops落地项目的时候,也曾自动的忽略了测试岗位的存在。在很多情况下,测试人员只是需要时才被想起来的角色。当经过测试工作的实际参与,我觉得在目前开发团队里,应该给测试人员更重要的定位和更多的赋能。如何发挥测试人员在开发团队中的作用,在思考的同时,我也切身在工作中进行了如下实践:

测试驱动产品

我的测试团队,在接到产品经理的需求文档后,会主动与产品经理进行沟通,开始进行测试用例的编写,并与产品经理反复确认产品设计中的每个细节,力求充分理解产品需求,使得测试用例可以覆盖到产品设计的每个细节,此时产品经理也在和测试的沟通中弥补了产品设计细节的不足。在测试用例设计后,会组织在测试团队进行内部宣讲,用团队的力量弥补个人思考的不足。然后负责测试的同事再组织开发同事与产品经理进行测试用例宣讲,待到项目小组内都明确测试目的后,测试用例就定稿了。测试用例是测试工作的基础,是一个非常明确的待办事项列表,为了清晰内容,明确目的,我把测试用例拆分成功能用例和流程用例。在与开发同事和产品经理宣讲时,只讲流程用例,既明确了产品目的和需求,又有效的控制了宣讲会的节奏和提升了会议的效率。

测试驱动开发

此处的测试驱动开发,不同于TDD的概念,而是让测试人员来驱动开发工作。开发工作与测试用例的设计往往是并行进行的,测试用例定稿后,有部分测试工作已经可以开始了,这不单包括测试人员进行的测试工作,也包括测试用例分享给开发同事后,他们的自测试工作。每日站会时,测试人员会根据测试用例的内容梳理出的待办事项列表与ScrumMaster 共同与开发同事明确开发目标和deadline。会后测试人员也会针对当日目标配合开发同事完成相关的测试工作,推动开发完成目标。

业务故障处理

经过上述一系列的工作,虽然测试人员没有参与编写代码,但是产品功能、业务流程、接口参数更甚至版本迭代历史,测试人员都是最熟悉的,所以在业务故障出现时,测试人员将会更清晰是哪个环节导致了该问题的发生。因我们在测试用例设计时,就把业务流程单列出来作为独立的用例进行编写,并作内部宣讲,所以组内同事都能够清晰的把线上业务的主流程、分支流程、逆流程说清楚。在出现业务故障时,我们组的测试人员,可以根据所熟悉的业务流程,很快的分析出问题方向,并根据问题界定好用户操作、运营配置、接口服务、代码问题等业务故障类型,并进行直接答复解决或联系该部分代码的开发同事深入排查。该工作,在实际的业务故障处理时也给我们带来的有益的效果,极大的缩短了业务故障的处理时间。

后续的思考

互联网企业管理,传统思维要不得

每次企业的生产事故,都会有人说要加强管理,于是就颁布了诸多的管理规定和操作流程,然后就期盼着大家共同去遵守。对于传统型企业,这是很常规的做法。但在互联网企业更应该将管理规定和操作流程进行工具化的落地。制度是规则,管理是约束,工具才是更人性化管理落地的体现。不是在事后的抱怨和惩罚,而是事前做好每个人的保护才是根本管理之道。

普通人视角,客观看待问题

每次看到优秀的产品或优秀严谨的代码,我们都会为之赞叹。但我们更应客观的认识到世界是由80%的普通人构成的,如何让普通的人做成优秀的事,才是真正需要去思考的问题。我认为devops 里提倡的pipeline 的精髓就是,复杂的事情简单做,一个人只专注做一个完整的流程,让普通人更容易的去完成一件事。开发流行的各种框架结构、微服务等手段都在不断的降低开发人员能力的需求。这都是不断的在追求让普通的人做更优秀的事的先进实践。

用户的需求就像一副抽象画,他模糊、复杂、易变且不确定,互联网产品为满足用户的需求,就必须可以具有敏捷的特性去反复的试探用户的体验。产品从设计、开发、测试、上线、运营、再次迭代的过程中,测试人员更应该把团队中的各个角色贯穿起来,只有给予测试人员正确的定位和足够的赋能,才可真正的将敏捷开发的理念更好融入到实际工作中,快速应对用户需求的各种变化。

对拼多多事件的思考,理解流程为何如此重要

前言今天IT界最火的新闻莫过于拼多多被褥羊毛事件,损失达到千万级别。新闻链接:拼多多公布“优惠券漏洞”案件进展:上海警方已成立专案组。从披露的信息来看,此优惠券是拼多多与江苏卫视《非诚勿扰》合作时,因节... 查看详情

双十一“薅羊毛”的打工人,快收下这份51cto巨惠福利攻略

...尽孝心,怎么能唯独忘了自己呢?这个双11来51CTO,“薅羊毛”的最佳时机,送自己一份技术课程!(购物学习两不误哦~)什么?双十一玩法令人头晕。NoNoNo...不领券!不烧脑!不套路!快收下这份51CTO巨惠福利攻略~福利一:集... 查看详情

远程进禅道加host,谁说软件测试一定要在公司做,在路上可以!

...安全,更多的反而是网络安全。拿去年比较知名的拼多多“随意领取100元无门槛劵”的薅羊毛事件来说,一夜之间拼多多损失了200多亿。上个月,淘宝也因“突现到期更新bug”,让不少人对淘宝安全性持怀疑态度... 查看详情

question|怎样有效杜绝“羊毛党“的薅羊毛行为?

...会在促销时发放大量优惠券,然而这些优惠券大部分会被羊毛党抢占。导致真实用户享受到不了这些优惠,进而对平台产生抵触和抗拒心理,平台的品牌信誉度会受到损害。另一方面,由于拉进来的都是羊毛党,导致商家的投入... 查看详情

question|怎样有效杜绝“羊毛党“的薅羊毛行为?

...会在促销时发放大量优惠券,然而这些优惠券大部分会被羊毛党抢占。导致真实用户享受到不了这些优惠,进而对平台产生抵触和抗拒心理,平台的品牌信誉度会受到损害。另一方面,由于拉进来的都是羊毛党,导致商家的投入... 查看详情

工作日记-物流门的业务流程异常引发的思考

...,客户那边开始频繁的让我们核查一些标签没有产生过门事件的问题,这个引起了我们的重视,最终也完美解决,下面简单说说整个问题的核查和解决思路。问题排查过程客户在上周的早上突然联系我们说有一个标签正常过门,... 查看详情

一不小心薅了「支付宝」的羊毛

...感谢~,方法如下图:一不小心薅了「支付宝」的羊毛今天要薅羊毛薅的是支付宝的黄金票,只需要一点点时间,便可获得大量的黄金票,从而转换为实体黄金。不过首先你可能需要了解什么是黄金票,可... 查看详情

对于缺少mac必备神器的小伙伴怎么在618大促时候薅羊毛

对于缺少Mac必备神器的小伙伴怎么在618大促时候薅羊毛?当然是趁着降价赶紧下手啦=================================================清理神器——CleanMyMacX活动时间:2019年6月10日——2019年6月20日活动方式:低价狂欢活动特点:... 查看详情

以父之名活动攻略(可以薅羊毛啦)

刚发现了一个活动,重点是礼品多门槛低机会大!先看看奖品有没有你想要的:足足有50份奖品!冲个四等奖还能白piao一个实用的T恤啊!!!而且这个是按点赞进行排名的活动,稍微努努力,冲个三等奖根本不是问题。参与方... 查看详情

大佬们的书单|速来薅羊毛了!

一年一度的程序员节又要到来啦(撒花)~为了庆祝这个SpecialDay机械工业出版社华章公司联合当当网特意为【C语言与CPP编程】送出了一批可以和满减活动叠加使用在全场五折的基础上:“实付满200减50”“实付满300减8... 查看详情

app如何防薅羊毛?个推大数据风控体系助力app反欺诈!

君不见,羊毛党如蜂拥来,掳走福利就溜哉;君不见,黑产刷量强注水,白白消耗推广费。近年来,羊毛党薅羊毛、机器刷量等黑产行为花样百出,层出不穷,让很多APP运营者和开发者头大。比如,有电商类APP做促销活动时,本... 查看详情

薅羊毛的机会了,点个“赚”即有机会赚取高额佣金

目前《新程序员》杂志已经上线4期,从开发者黄金十年到新数据库时代,软件定义汽车,再到云原生和全面数字化实践,我们的技术时代,我们的程序人生。是一套值得每位开发者阅读的精品书籍。书籍出版... 查看详情

拼多多面试真题:如何用redis统计独立用户访问量!

...本文大概需要2.8分钟。作者:沙茶敏碎碎念众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer。当然,拼多多加班也是出名的,一周上6天班是常态,... 查看详情

羊了个羊的ignite大会又来啦

...常火啊~可惜没有时间精力研究。不过,薅微软羊毛的机会我是一定不会错过的,这不,薅羊毛的机会来了,哈哈哈。  作为经常薅微软羊毛的老司机,今天收到了微软的邮件,告知有新的羊毛可以薅... 查看详情

《技术沟通协作,引发的思考》

《技术、沟通、协作,引发的思考》01.有些朋友私信问我,最近又在忙什么,很少看到我活跃了。其实,我在憋大招!我花了很多心思在项目上,可以说,这是我工作以来,最重要的时刻,成败在此一举!02.我按着倒序来表述,... 查看详情

1024程序员节,给猿媛们的超值当当网购书薅羊毛

📢1024程序员节来啦~向可爱的程序员们致敬!🎬“人们总说这个世界将被天才改变,但实际上真正将那些天马行空的想象变为现实的,很大概率是看似平凡的程序员们。”随着信息产业日新月异的发展,... 查看详情

1024程序员节,给猿媛们的超值当当网购书薅羊毛

📢1024程序员节来啦~向可爱的程序员们致敬!🎬“人们总说这个世界将被天才改变,但实际上真正将那些天马行空的想象变为现实的,很大概率是看似平凡的程序员们。”随着信息产业日新月异的发展,... 查看详情

90后利用平台漏洞薅羊毛,获利45万被抓捕!网友们却争论不休……

...动非法牟利,造成公司损失45万元。利用平台漏洞薅羊毛,非法获利45万2021年4月21日,上海市公安局浦东分局张江派出所接到辖区内某电商平台公司报案, 查看详情