软件测试周刊(第38期):人只要走稳了,道路两旁皆是风景。
Posted 毕小烦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试周刊(第38期):人只要走稳了,道路两旁皆是风景。相关的知识,希望对你有一定的参考价值。
编辑:国薇、一口锅、菜菜、静怡、小淑子、夏至
欢迎来到第 38 期!这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。
本期看点:字节跳动是如何进行图像异常自动化检测的?假如测试覆盖率有六大门派,你属于哪一派?给一段代码,你能简明扼要的说出代码的质量情况,并提出优化方向吗?工作中如何做好技术积累?太安逸该不该跳槽?35岁了要焦虑吗?学历低能进大厂吗?面试时,什么问题能把两个差不多的人立即区分开?
·
阅读愉快!
测试
1. 字节跳动是如何进行图像异常自动化检测的?
7+1( 字节跳动技术质量)
APP 自动化遍历测试工具的应用已经非常普遍,每天跑很多 UI 自动化任务,截取大量的图片,靠人去识别图片异常,无疑会造成巨大的成本浪费,因此自动断言图片异常就是一个非常必要的解决方案。
字节是怎么做的呢?
方案由三个部分组成:算法能力接入、算法训练框架以及图像数据库。主要提供两种接入方式:SDK(用于保密项目) 和 HTTP 服务(通用方式)。
原文地址:
2. 假如测试覆盖率有六大门派,你属于哪一派?
司文
测试覆盖率通常被用来衡量对某个系统测试的充分性和完整性。
作者将其分为六大门派:
- 捷径派:手工执行的测试用例/所有测试用例(主要靠手工和拍脑袋)
- 数据派:
-
- 接口覆盖率:测试涉及的接口总数/接口总数
- 自动化测试覆盖率:自动化测试涉及的测试用例总数/测试用例总数
-
- 测试用例覆盖率:自动化测试涉及的测试功能点/测试功能点总数
- 专利派:略
- 需求派:已被测试的用户故事或已被测试的任务/所有用户故事或任务
- 缺陷派:对缺陷进行自动化测试化的数量/已被发现并修复的缺陷
- 代码派:
-
- 行代码覆盖率:被执行过的代码行数/代码总行数
- 代码分支覆盖率:被执行过的代码分支数/代码总分支数
原文地址:
3. 单元测试与重构
郭峰 (京东技术)
设想一下,如果一辆汽车,所有的零部件都未经过测试,只在组装完成后由质检员试开一圈,然后交付给你,你会买吗?你敢买吗?
可在软件工程当中,类似的场景却经常发生。
怎么办呢? 质量内建。
质量内建(Build quality in),其思想大意为,产品质量不是检测出来的,而是从它诞生的那一刻起就已经在那了。对于软件开发来讲,内建要求开发人员做好软件开发每个环节,尽早预防,以降低缺陷出现后的修复成本,要减少对创可贴式的补丁(hotfix)的依赖。
更为理想的情况是软件质量贯穿开发的全流程,从需求开始的每个环节将“测试”纳入考量,产品经理确定验收标准,开发人员交出开发者测试。
原文地址:
质效
1. 给一段代码,你能简明扼要的说出代码的质量情况,并提出优化方向吗?
Joel( 前端GoGoGo)
给一段代码,你能简明扼要的说出代码的质量情况,并提出优化方向吗?
可以参考 3Rs 软件架构:
3Rs 软件架构对代码质量做了分层,给优化代码提供了方向:可读性 => 可重用性 => 可重构。
原文地址:
2. 揭秘百度微服务监控:百度游戏服务监控的演进
大道
作为一个程序员,是否有留意到每逢节假日在各大景区时有程序员打开电脑紧急处理线上问题?如果线上出现大量的报警,这时我们该如何判断是自身服务问题还是依赖服务问题?午夜线上重大问题出现,如何能够唤醒相关人员快速响应?
监控的重要性不言而喻,那如何打造一个完善的监控系统,协助程序员发现并高效定位问题?
本文介绍了百度游戏微服务监控实践。
原文地址:
技术
1. 如何写出好代码?杂谈代码整洁
russhe(腾讯技术工程)
什么是好的代码?
局部干净,核心逻辑简洁。
01 指导原则:
- 消除重复:消除代码重复、结构重复和过程重复。
- 分享关注点:分离主线和支线、按业务性质分离、分离变化慢的代码、分离性能高低的代码。
- 统一抽象层次:抽象的反面是具体,具体是细节,可见抽象是细节的反面,抽象刻画了统一的画像,描述能力,是对事物在某些方面的特征的提取总结。
- 隔离与隐藏:信息隐藏,是抽象的一种手段。通过信息隐藏,来暴露只想让外界知道的东西,表达意图。隔离是实现信息隐藏的重要手段。
02 编码 tips
- 类:类应该足够小、单一职责、内聚、严格控制访问权限,注意信息隐藏,OCP;
- 函数:尽可能小、单一职责、单一抽象层次、参数尽量少、无副作用、if 嵌套不超过 2 层、语义和实现距离不为 0 时应该抽取函数、童子军军规、不要 hardcode
- 命名与注释:顾名思义/望文知义/无歧义、名副其实、表达语义&避免误导、使用读得出来的名字,谨慎使用缩写、团队统一业务术语、自注释
- 单元测试
原文地址:
2. 工作中如何做好技术积累?
刘丁(美团技术团队)
如何在繁忙的工作中做好技术积累,构建个人核心竞争力?
作者从三个方面进行了解答:
- 如何学习:贵在坚持、重视实践和交流、重视总结和输出、重视规划。
- 典型困惑:
-
- 学无止境吗?是,但超越大部分对手就是一种胜利。
- 没有绝对高明的技术,只有真正的高手。
-
- 不做项目就无法成长吗?做项目是最快的成长方式之一,但有深度的项目才能够让你出类拔萃。
- 一定要当老大吗?如果你是团队里最厉害的那个,不一定是好事,除非你已经是行业里的顶尖专家了。
-
- 平台化的传说:平台化的最佳实践是投入最少的资源,解决最多的问题。平台解决一切,客户坐享其成。
- 搞基础技术就一定很牛吗?真正的高手关注的是解决问题,所有的技术都是技能而已。
-
- 工程师天生不善沟通吗?实际上,沟通能力是工程师最重要的能力之一,良好的沟通是高效工作学习的基础。
- 架构能力模型:
-
- 编程能力
- 调试能力
-
- 编译部署能力
- 性能优化能力
-
- 在线运维能力
- 业务架构能力
-
- 项目管理能力
- 团队管理能力
原文地址:
3. 程序员加入新团队最应该问的几个问题是什么?
Thomas Stringer
一 技术层面
1. 如何在本地构建软件?构建是第一步!
2. 如何在本地测试软件?正确运行软件测试
3. 如何在预生产以及生产环境中运行测试?了解团队如何确保生产软件符合并保持特定的标准。
4. 内部文档在哪里?团队维护的内部最新文档在哪里,这些文档都是如何划分的?
二 团队合作
5. 团队中都有谁?负责哪方面的工作?了解团队中每位程序员负责的工作,可以通过早晨的例会了解他们的工作内容。
6. 团队每周都有哪些例行会议?了解一下团队每周的例行会议。
7. 遇到“新手”问题,我应该找谁?指导伙伴,带你快速熟悉新团队。
8. 新功能的决定权在谁手里?了解功能请求的上游想法,了解产品近期与长期的发展计划。
9. 团队的主要沟通方式是什么?熟悉如何有效快速的沟通。
三 产品方面
10. 软件有哪些高层面的痛点?存在哪些安全漏洞和问题。
11. 利益相关者关注的焦点是什么?可以帮助你看清产品未来的发展。
12. 软件的发布周期是什么?更好地掌握软件的开发节奏。
原文地址:
成长
1. 太安逸该不该跳槽?35岁了要焦虑吗?学历低能进大厂吗?听听玉伯的回答
小盖(前端之巅)
Q:在一个公司待得太安逸的时候该不该跳槽?
每个人都有自己的追求,所处的阶段也不同,就他个人而言,想创造更大的价值,做自己想做的事,就会选择跳槽。
Q:马上 35 岁了,我非常非常焦虑,怎么办?
很多公司在提倡年轻化,但,年轻化不是说低龄化,你的心态要年轻、开放有冲劲。这样才能避免焦虑。
Q:你在选简历的时候,会看前端工程师的专业和学历吗?
不看专业,也不看学历。实话实说,只要你是高中以上学历,我们都 OK。更核心还是会关注工程师的基础素质、潜力,以及心态的开放度。
Q:做业务的和做基础设施的前端,哪个晋升容易些?
从数据来看,晋升的通过率,业务前端是比做基础设施的前端通过率更高的。大家都是这山看那山高,其实你站在不同的视角看问题,得到的结论也完全不一样。
很简单,基础设施的前端团队在面试的时候,面试官肯定会问,你这技术看起来很厉害,但是和业务有什么关系,对业务的价值是什么呢?
但你看,这问题做业务的同学就非常好回答了。
回来说你是做业务的前端,你支持的业务势头非常好,那人家面试官也会问,业务增长和你的关系是什么?你背后的专业度体现在什么地方,你的技术深度怎么样。
原文地址:
2. 脱不花:面试时,这四个问题能把两个差不多的人立即区分开
脱不花
你在面试一个人时,有什么问题能把两个差不多的人立即区分开的吗?
试试这四个问题:
- 如果你突然有半个月的带薪休假,只有一个条件,就是必须研究一个事儿,你会研究什么?
- 你正在做的事,行业里最顶尖的人或公司是谁,他们是怎么做的?
- 你在此之前的人生经历中,做过什么重要的取舍?
- 针对刚才提到过的某个很重要的项目或者工作,如果你有机会能重新做一遍这件事,会有哪些地方不一样?
这四个问题分别用来判断人的内在驱动力、自我期望值、关系偏好和反思能力。
原文地址:
3. 成为技术一号位:学会分析事物的本质
贺科学( 阿里巴巴中间件)
电影《教父》中有一句经典台词:“半秒钟看清事物本质和一辈子都看不清本质的人,命运注定会是不同的。”
什么是事务的本质?
本质是事物的根本性质,是事物自身组成要素之间相对稳定的内在联系。—— 《马克思主义哲学原理》
为什么要去分析事物的本质?
面对非常复杂的事情的时候,通过分析事物的本质,我们才能将复杂的情况主干脉络理清楚,然后分析它为什么现在会是这样,过去是什么样的,在什么条件下,未来会发展成什么样,然后再分析哪些关键部分是我们可以通过实际行动影响的,从而通过影响关键部分来引导事物未来的发展方向。
如何去分析事务的本质?
作者认为,想要分析清楚一个事情的本质,就是要客观地去分析事物,梳理它内在的主要矛盾和次要矛盾,同时需要梳理外在的它和它所处环境内其他事物的相互联系和相互影响。
具体步骤如下:
- 明确问题讨论的范围 → 分析事物内部组成及其存在形式 → 分析事物内部各组成成分所扮演的角色及其职责 → 分析各角色在职责限定下的核心利益诉求。
- 了解事物所处的大环境是什么 → 在该环境下的关键事件是什么 → 关键事件对事物内的影响是什么 → 预测关键事件未来可能的演变走向。
- 明确讨论范围和场景 → 分析各方核心利益诉求(对立统一关系) → 确定当前阶段的主要矛盾和次要矛盾 → 分析矛盾的主要和次要方面 → 分析主次矛盾的解决办法 → 找到关键点,预测改变它对事物发展趋势的影响,从而让事情向我们期望的方向演变。
原文地址:
工具
1. Windows 桌面美化工具 - Rainmeter
懂哥
如果你厌烦了千篇一律的 Windows 桌面,不妨试试这款强大的桌面美化工具 - Rainmeter。
下载地址:
Rainmeter, desktop customization tool
开源地址:
https://github.com/rainmeter/rainmeter
2. Android实时显示控制软件 - QtScrcpy
QtScrcpy 可以通过 USB(或通过 TCP/IP)连接 android 设备,并进行显示和控制。
它不需要 root 权限,单个应用程序最多支持 16 个安卓设备同时连接,同时支持 GNU/Linux,Windows 和 macOS 三大主流桌面平台。
它专注于:
- 精致 (仅显示设备屏幕)
- 性能 (30~60 fps)
- 质量 (1920×1080 以上)
- 低延迟 (35~70 ms)
- 快速启动 (1s 内就可以看到第一帧图像)
- 非侵入性 (不在设备上安装任何软件)
开源地址:
https://github.com/barry-ran/QtScrcpy
言论
1、
好多年来,我曾有过一个“良好”的愿望:我对每个人都好,也希望每个人都对我好。只望有誉,不能有毁。最近我恍然大悟,那是根本不可能的。
| 季羡林
2、
生活实在太忙了,一般人平常抽不出时间看天色,中秋几乎成为唯一看天空的日子。我们准备了月饼、柚子、茶食就在表示我们是多么慎重地想看看月亮,让月亮看看我们。
| 林清玄
3、
有着坚定方向的人,就不会再在意自己走得快了或是慢了,人只要走稳了,道路两旁皆是风景。
———《半山文集》
图片
1、
2、
3、
Vim 是 YYDS
订阅
本周刊每周五发布,会同步更新在微信公众号。
微信搜索“毕小烦”或者扫描下面的二维码,即可订阅。
如果文章对你有帮助,记得留言、点赞、加关注哦!
(完)
以上是关于软件测试周刊(第38期):人只要走稳了,道路两旁皆是风景。的主要内容,如果未能解决你的问题,请参考以下文章
软件测试周刊(第44期):“去那么远没问题么?“ “没问题。道路笔直畅通无阻,太阳又没下山,油箱满满的。”
软件测试周刊(第44期):“去那么远没问题么?“ “没问题。道路笔直畅通无阻,太阳又没下山,油箱满满的。”