这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。
本周刊开源(GitHub: SoftwareTestingWeekly ),欢迎提交 issue,投稿或推荐软件测试相关的内容。
目录
1. 2020 年度 Top10 的 Python 库出炉(Python之禅)
2. TestableMock v0.4.9 发布,阿里效能团队的单元测试增强工具(OSCHINA)
3. 滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台(滴滴技术)
2. 开发把时间都花在编码上,还要写测试么?(DevOps)
3. 我在拼多多的三年(LeadroyaL's website)
4. 度量平台如何做到支持用户自定义指标、修改指标计算逻辑?(酷家乐质量效能)
1. Diagrams:用 Python 代码绘制云系统架构(开源前哨)
2. yq:用命令行解析 YAML 文件工具(GitHub精选)
资讯
1. 2020 年度 Top10 的 Python 库出炉(Python之禅)
- Typer:构建 API 服务的高性能框架
- Rich:谁规定CLI界面一定得是黑白的?它也可以是彩色的。
- Dear PyGui:虽然终端应用程序可以做成很漂亮的样子。但是,你可能还需要一个真正的GUI。
- PrettyErrors:精简 Python 错误信息的工具
- Diagrams:代码即图表(架构图)
- Hydra and OmegaConf:使配置工作变得简单
- PyTorch Lightning:轻巧的PyTorch包装器
- Hummingbird:将已经训练好的ML模型汇编成张量计算,从而不需要设计新的模型。
- HiPlot:处理高维数据
- Scalene:用于 Python 脚本的 CPU 和内存分析器,能够正确处理多线程代码,还能区分 Python 代码和本机代码的运行时间。
2. TestableMock v0.4.9 发布,阿里效能团队的单元测试增强工具(OSCHINA)
TestableMock 是一款轻量&易用的 Java 单元测试增强工具,提供三项具有针对性的辅助能力:
- 快速Mock任意调用:解决传统Mock工具使用繁琐的问题
- 访问被测类私有成员:解决被测类私有成员初始化和私有方法测试的问题
- 辅助测试void方法:解决无返回值方法难以实施单元测试的问题
如果你早已厌倦为了绕开一个外部调用而编写的冗长Mock代码,如果你早就嫌弃 Mockito 功能不够而PowerMock 太过臃肿,如果你恰好也讨厌单元测试的各种条条框框,那么使用 TestableMock 就是一种明智的选择。
- 修复发起调用的对象不是局部或成员变量时Mock出错的BUG (issue-40)
- 增加
PrivateAccessor
访问目标有效性检查,提高抗代码重构能力 (issue-21)
开源地址:https://github.com/alibaba/testable-mock
文档地址:https://alibaba.github.io/testable-mock/
3. 滴滴开源Logi-KafkaManager 一站式Kafka监控与管控平台(滴滴技术)
滴滴内部统一使用 kafka 作为大数据的数据通道,当前滴滴共有几十个 kafka 集群,450+ 的节点,20k+ 的 kafka topic,每天2w亿+的消息量;每周500+UV用户,需要完成 topic 创建、申请、指标查看等操作;每天运维人员还有大量集群、topic运维操作。因此需要构建一个 Kafka 的管控平台来承载这些需求。
LogI-KafkaManager 脱胎于滴滴内部多年的 Kafka 运营实践经验,是面向 Kafka 用户、Kafka 运维人员打造的共享多租户 Kafka 云平台。专注于 Kafka 运维管控、监控告警、资源治理等核心场景,经历过大规模集群、海量大数据的考验。内部满意度高达 90% 的同时,还与多家知名企业达成商业化合作。
开源地址:https://github.com/didi/Logi-KafkaManager
文章
1. 如何成为一个搞垮领导的下属?(技术领导力)
图片来源于网络
好的下属都是相似的,糟糕的下属各有各的糟糕。那么如何成为一个搞垮领导的下属呢?作者走访了10多位曾经搞垮过领导的职场高手,结合自身思考,整理了15条经验,供你借鉴:
- 给领导挖坑
- 甩锅给领导
- 不尊重领导
- 不接受领导批评
- 跟领导发牢骚
- 出卖领导
- 不执行领导意图
- 不主动汇报
- 给领导“意外惊喜”
- 本职工作做不好
- 不懂得换位思考
- 不懂得发挥领导长处
- 不懂得弥补领导不足
- 不能帮助领导做出正确决策
- 不替领导分忧
2. 开发把时间都花在编码上,还要写测试么?(DevOps)
有人问:开发把时间都花在编码上,还要写测试么?
有人回:你怎么知道是在编码,还是在写 BUG?
这是一个系统性问题,任何单点的优化,都无法解决全局的问题。
作者也没有直接给出回答,而是通过一系列的问题引发读者思考:
- “投入足够的时间写测试用例”:目前投入多少时间?都写哪些测试用例?你认为多少是合理的足够时间?如果有足够的时间,你觉得开发人员写哪些测试用例?为什么?
- “把时间都花在编码上”:代码质量如何?如何衡量?出现过哪些质量问题?回溯来看可以做哪些改进?
3. 我在拼多多的三年(LeadroyaL's website)
作者认为:拼多多,2018 环境正常,2019 环境变差,2020 环境很差,2021 已黑化
2018:
- 黄峥:”有同事的提问,我们什么时候可以双休呢?”(欢呼)”等我们成为中国第二,就可以双休了”(欢呼)。
- 一周上六天班,空闲那天去做高铁去杭州约会,早上走晚上回,一点也感觉不到累
2019:
- 100 元优惠券事件引发的全员 7*24 值班
- 五大经典事件,如:周六值班旷班被集体开除
2020:
- 11 个日常吐槽,如:wifi又双叒叕改了,瞎屏蔽应用商店,每天认证一次
- 5 大公共事件,如:由于没有坑位,情急之下在男士便池里大便
4. 度量平台如何做到支持用户自定义指标、修改指标计算逻辑?(酷家乐质量效能)
度量的根本目的是为了管理的需要,没有对软件过程的可见度就无法管理,而没有对见到的事物有适当的度量或适当的准则去判断、评估和决策,也无法进行优秀的管理。
而度量,是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程。而这个过程是多样性的,不同的业务关系的度量指标可能并不相同。这就导致一个/若干个固定的图表无法满足所有人。
那么质量平台如何做到支持用户自定义指标、修改指标计算逻辑呢?
度量平台的整体流程:
工具
1. Diagrams:用 Python 代码绘制云系统架构(开源前哨)
Diagrams 可以让你用 Python 代码绘制云系统架构。无需使用任何其他工具(比如 visio),你就可以用它来为一个全新的系统架构进行原型设计。当然它也可以用来绘制你现有的系统架构。
Diagrams 目前支持的主要提供商包括:AWS、Azure、GCP、Kubernetes、阿里云、Oracle云等。同时它也支持本地节点、SaaS和主流的编程框架和语言。
Diagram as Code 还能让你跟踪各种版本控制系统中的体系结构图变化。
它不能控制任何实际的云资源也不能生成云信息或地形代码。它只能帮你绘制云系统架构图。
开源地址:https://github.com/mingrammer/diagrams
2. yq:用命令行解析 YAML 文件工具(GitHub精选)
命令行工具有一种魔力,当你不用的时候你会觉得不是很方便,不如 IDE 什么的,当你开始用起来,你会觉得越来越香。
今天要推荐的是一个 YAML 的命令行解析工具 yq,命令和语法都参考了 jq,所以如果你熟悉 jq 的话用起来会非常的顺手。当然相比 jq 的强大,yq 还有很多的不足,目前 yq 只支持了一些比较通用的操作语法。
开源地址:https://github.com/mikefarah/yq
文档地址:https://mikefarah.gitbook.io/yq/
方法
1. 测试不背锅指南(圆小豆的美梦工厂)
1. 提前识别风险,包括但不局限于:
- 范围风险:需求变更、测试覆盖程度等
- 进度风险:工作量估不准、任务依赖造成延迟、人员变更、休假情况等
- 质量风险:代码质量、测试人员能力等
- 环境风险:线上环境和数据差异、测试数据准备、测试账号等
- 外部风险:不可抗力、政策法规、集成方、竞争对手动作等
2. 充分暴露风险,让团队所有成员对当前面临的风险达成一致的认知,并促使团队进行风险的优先级和响应措施讨论。
3. 避免追责,当遇到线上问题,第一重要是快速响应,及时止损;第二重要是问题复盘,避免再犯。如真是测试的疏忽,大方的背锅也没啥,尽快商议应对措施才是正解。
走出追责和背锅的误区,走进互信的良性循环。
言论
- 数字化分为五个阶段成熟度:第一,有制度;第二,有工具;第三,产生数据画像;第四,用数据推动团队的改进;第五,人工智能提升效率。
- 对于企业文化,奈飞有句话,“公司真正的价值观是通过哪些人被奖励、被提升和被解雇体来体现的”。
图片
- 你以为同事写的接口 VS 你同事真正写的接口
- 酒吧测试
订阅
本周刊每周五发布,会同步更新在微信公众号。
微信搜索“毕小烦”或者扫描下面的二维码,即可订阅。
如果文章对你有帮助,请随手点个赞吧!
(完)