我们内部有实现了一套差不多的玩意,我们管这叫 scheme 定向测试,只是说,可能定向过去的是一个原生页面、前端页面、内部其他技术制造的页面等。
其实有弊端:
不过还是有很多场景可以应用这种测试方式的,比如提高测试覆盖率、线下问题复现压测、某些特殊场景的定向测试。
如果要结合遍历测试来做,还需要预防跳转过去后,monkey 给你点到回退到其他页面了。
我觉得吧,能把大学那些数学课先捡起来(尤其是工作多年之后),就已经不是一件特别轻松的事情。
如果真的很轻松,要不就是天赋过人,要不就是基础确实稳扎稳打,要不就是学了点套路当调参侠自嗨
offer 中也有薪资开的比较高,越是工作年限比较久,越要知道下一份工作能得到什么,尤其在当下互联网环境,很难找到完美得工作,但是可以找到适合的自己工作.
表示这一点非常赞同,一定要看准赛道跳进去,跳进去之前又要充分考察这个公司、团队、岗位是否适合自己发挥。到这种时候 base 上差个两三 k 已经不是什么需要关注的问题了,主要还是考虑未来继续发展的空间。
对的,其实压测本来就是有两种目的,视不同场景:
压测我以前做过一个总结,可以看我的博客做个参考。
如果产品不明白,那还是得耐心解释给他们听,其实这也是你在研发和产品之间制造自己影响力的机会,让大家觉得你知道得很多决策经常正确,那是一件好事。
所谓的熟练掌握 python,一般只需要系统把 python 学一次就够了,要求就是一个普通的想法能用 python 这个工具正确实现表达出来即可。并不会强制你掌握那种 blingbling 的、很 pythonic 的、很奇技淫巧的实现方式。
其实不仅仅是 python,对所有的编程语言都是一样,它们都只是我们的编程工具,只是说你追究到库源码实现、编译器虚拟机实现层面上,在某些特定场景下能帮助你解决问题和优化代码。单纯从测试开发的岗位来说,除非个人爱好或者工作面试需求,不然也不是非得到那种深度。
当然,多看别人的代码,尤其是高效优美的代码(github 高 star 项目),对自己还是非常有帮助的。
mark,这个周末拉到家里的电脑认真阅读一下源码~ 看看能不能给找几个 bug hhhhhhh
申请开通专栏~ 感谢 @simple
曾经在企业里作为乙方对内部的网站系统搞过 4 个多月的渗透测试(或者叫安全测试更合理,因为不够专业),简单分享一下如何入门:
一个接口做不做压测,是应该测试人员自己判断 ,还是听开发说呢?
结论:产品、开发、测试共同判断。
如果这个接口有历史数据,可以基于历史数据来分析接口重要性,再判断是否要压测。
如果这个接口没有历史数据,是新增接口,最正确的方式都是产品、开发、测试三方一同判断。或者某方判断出结论后,正式地(会议、邮件均可,至少有书面记录性质的东西)跟其他方同步并征求意见最终确定下来(这样做的原因,是出问题一起背锅……)。
应该怎么判断一个接口做不做压测?
2 楼已经回答得很好,我补充一下个人的观点。从面试官的角度来问,其实本质上是考察你对整个业务的熟悉程度,面试官可能想从一个相对系统的视角来看看你有没有梳理过整个业务逻辑,所以才会问这种问题(我也偶尔会这样问,住)。
ok,知道面试官的目的,我觉得就可以针对性回答。
一些猥琐加分技巧:我们的目标是要让面试官能通过我们的口头描述,让他 “自认为” 理解了业务;同时为了让他听得开心,让他觉得自己的理解力好强,所以我们还要找重点去说,并围绕这个重点做深入。
综上,回答方式可以这样:
以上。
一些点:
Get ~
是的,开放出来的 fastbot-android(只是开放并没开源),阉割得比较厉害,是内部测试能力整体表现最弱的版本。
另外fastbot-ios已经是正式开源了,应该是市面能找到的 top 工具之一,作为受益方给他们自来水一下。
回到整体,UI 自动化是真的累,而且要做到全覆盖真的不理性,也可以考虑 UI 自动化 +monkey,如果能使用 UI 自动化先定向走都一个路径,结合客户端一些页面操作的限制能力保证测试场景不会跳出,这个时候用 monkey 去遍历也是一个点。但这个思路依然无法完全解决上述的问题,只是算是手段之一,增加一下工具箱或者弹药箱的感觉。
这个意思是,把 app 的独立功能模块抽取出去单独测试这样?能举个例子感受一下吗?感觉这个是一个不错的思路,但本身如何识别功能独立也是一个很难的问题,尤其是在几百万行代码的项目中。
schema 我们是在测试和线上去收集的,schema 本身倒没问题都能用。比较局限的是,一条 schema 就代表跳转到页面所带的参数是固定的,除非针对一个页面收集了很多不同参数的 schema,否则测试参数输入就会比较少,质量说服力就会降低了
同 10 楼,面试官在面试你,同时也是你在面试面试官
我的理解是银行对资损防控上的谨慎,直觉上银行是直接管钱的,而互联网金融是间接操作钱(或许碰不到实际的钱,最终还是要去到银行?)。在用户体验上的评价是这样的,欢迎澄清一下区别
这就是第一个难点,测试数据的缺失。虽然我们可以通过 mock 的手段,把自己的系统测试充分,但是全链路联调测试阶段和预发阶段都没有办法保证。这一点,其实还是非常影响发布信心的。
财经的 QA 会自己花钱在线上真实环境跑用例(转账、付款),最后再走退款流程把钱拿回来,也有在用流量回放、MockServer 等技术。
对于老功能的回归,通常下游机构是没有义务配合你做回归测试的,所以他们更加不太可能有一个稳定的环境提供给你做回归测试。那测旧又该怎么办?这也是我们目前遇到的问题,没有一个稳定的测试环境,可以用来持续回归。
关于线上压测和回归,忘记之前从哪里听说的,银行那边会给个固定的压测 QPS 要求,如果超过这个 QPS 就算发压方(也就是我们)的事故。
吐槽一下,平时用个招行银行 app 转账还提示等待 10 秒,用支付宝和微信转账根本不存在这种等待,就是传统银行跟互联网的区别,背后就是新老技术架构、风险承担能力、成本结构的差异。
当然这个时候,也给中台投入了专职测试了,要把中台的质量最厚,测试策略也调整为:中台功能测试 + 中台回归测试 + 上层业务回归测试(可评估)。目前还在试验中,其实也不清楚是不是有效果。
以前跟教育业务线的小伙伴交流过,他们比楼主更原始一些,部分教育线的业务中台甚至跟上层业务耦合在一起(也就是业务中台给不同业务做了一堆定制需求)。导致了但凡中台一改,很多业务都要跟着回归一遍,或者业务改了,中台要跟着改,互相坑。
他们的改进路线也比较明显,先让中台逐渐与上层业务解耦,解放测试人力,然后也是将部分 QA 挪到中台中做专项测试(其实很多业务线都是这样做,中台作为最核心的部分,不放人去做专项测试是不实际的,自己都方得都命)。
另一个点,正因为中台是通用且稳定的,意味着老逻辑改动频率低,所以中台更加适合做各种自动化回归(接口自动化、流量回放等),这个收益应该是比较显著的。
由于自己没怎么接触过这类 toB 业务,也就只能把一些道听途说的东西写上来。对于测试数据和测试环境,简单问了财经的 QA 同学,答复中没特别的信息,估计也是存在一样的问题。
这个回答下面一共有 467 个回答,我通过这样去请求,只会获取到 181 个回答,其他的回答就获取不到,如果把 467 设置为更大的值,获取到的还是 181 个回答
后端的防护性编程,为了防止前端传参过于离谱导致数据库压力过大,合理操作。你就自己设置一个合理 offset 分几次循环去请求就行了,也没必要非得一个请求拉下来所有回答。如果你嫌弃 for 循环串行请求耗时长,你就上多线程或者异步,网上很多资料。
这种需求最好就是直接白盒测试,根据等价类划分和边界条件来区分 case,穷举遍历没有任何意义。好比我的代码逻辑是
int a,b,c;
c=a+b;
那无论你穷举出多少个 a 和 b,你不过就是在测试 java 的加法有无 bug,根本就是在做无效测试。
有一个问卷调查,包含 9 个小问题,每个问题有 A B C D 等多个不定项选项,每个问题的每个选项对应不同分数。
所以我觉得关注点并不是穷举 A B C D 分数总和(这个求总和可能就是一行代码而已,如果没有额外的条件分支,那一条 case 都过了),而是不同题目的 A B C D 这几个选项它本身映射的分数是否符合预期,以及几个关键的分数总和点和答题场景(如全对、全错、对错混合、部分题目没作答、全部题目没作答)
驱动我自己变化的,主要是周边工作环境和工作接触面的变化。
工作环境的变化:人外有人天外有天,无论是牛逼的前辈,还是变态的后浪,出现在身边的案例越来越多,反正明白的一点是 自己很菜 。自知之明确立下来,人就知道了自己的定位,自然会有动力去不断学习,只是这个学习的过程它本身是否高效而已(我觉得我是比较低效的 QAQ)。
@ 恒温 也提到,有些人 5 年的工作经验可能只是跟 1 年一样,有些人 1 年的工作经验就是实打实的 1 年甚至更多,如何衡量这个 “实打实”?自己问自己,对于这个业务或者事物,它的方方面面,无论是本职的,还是上下游,从 透彻->理解->熟悉->了解 列一下,就知道水平了。
(以上分类仅供参考,临时写的……)
避开重复劳动,在熟悉以及理解本职工作后,尽量去往上下游拓展,去 “偷师”。其实跟楼主说的【差别在于花了多少时间提升自己】意思是一样的。
工作接触面的变化:很多时候只有实践才能出真知,这个感同身受,有些东西说得很简单(它不一定是纯粹的技术),但是做起来非常复杂琐碎难处理,最后做出来的效果也因人而异。接触过不同的技术领域,如果把它们放在一起来对比看待,有时候会有新风景,或者说自己脑袋中会出现一个更全的图。这个 “图”,可以支撑你在不同的公司,按照这个 “图” 来一步一步完成建设。说白了,你的知识体系和经验会更加完整。对于创业公司来说,你这个 “图” 可以帮助公司识别哪些建设是最高优的,然后调动人力尽快拿到收益;对于成熟公司来说,你这个 “图” 可以帮助公司识别还欠缺什么需要建设或者完善,做到百尺竿头更进一步。
顶一下帖子,长期有效(至少是半年内)
好吧,首先楼主估计就是来打广告的……
看到帖子里提及 Fastbot 工具,确实好用,平时跟 Fastbot 团队同学往来十分密切,有多次出差约饭的经历,在 app 稳定性测试上,Fastbot 应该是市面公开最好用的工具之一了吧。不过外部公开的是超级阉割版,内部还有各种多机遍历、用户模拟、定向测试等高级特性,很多都是跟 Fastbot 服务端有直接通信的,算法模型直接放在服务端而非客户端,估计短时间也不会公开。
核心业务大都承载在移动 app(类游戏系列)时,如何做好回归测试,缩短测试周期,实现快速交付呢
不过,Fastbot 只是用来做稳定性测试,换而言之它只能断言崩溃卡死问题(如果 app 本身接了 apm 那就更好),无法识别 UI 层面甚至白屏黑屏的问题。
这种这么范的问题,妄想通过加一个工具就能解决,第一个还是先从流程上解决沟通效率问题,流程顺了各自分工明确了效率就会高起来。
UI 自动化用来做回归测试,绝大多数就是一个谎言,现阶段大多数公司甚至大厂,UI 自动化本质上只是一个定向遍历的驱动器。除了少量的核心 case 能用 UI 自动化做最基本的检测外(往往这种检测的断言还很粗犷,起不到效果),要想拓展 UI 自动化的应用范围和效果,其实还需要非常多配套设施,除了 UI 自动化框架本身,最核心的点是:一、降低 UI 自动化编写维护员成本;二、提高 UI 自动化断言准确性。在字节跳动内部也就是还在各种探索的阶段……