软件测试周刊(第20期):恐惧,来自只思考却不行动

这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。

本周刊开源(GitHub: SoftwareTestingWeekly ),欢迎提交 issue,投稿或推荐软件测试相关的内容。

科普

元宇宙

元宇宙的概念最近非常火,虽然这三个字我们都认识,但连起来,还真不知道是什么意思。

其实,元宇宙的英文名叫 Metaverse,由 meta (超越/元)和 Universe (宇宙)结合而成。

Metaverse 的概念源于美国作家 Neal Stephenson 于 1992 年出版的科幻小说《雪崩》。

简单来说,

就是现实世界中的所有人和事都被数字化投射在了这个云端世界里,你可以在这个世界里做任何你在真实世界中可以做的事情。

比如在上边跟家人朋友吃饭逛街、用虚拟 Facebook 交、刷虚拟亚马逊商店购物等等。

与此同时,你还可能做你在真实世界里做不到的事情,

比如瞬移到阿尔卑斯山滑雪,跟相隔千里之外的朋友一起买票去听场虚拟周杰伦开的演唱会。

需要注意的是,Metaverse 并不是有且只能有一个平行于现实的虚拟世界,它可以是多个虚拟世界同时存在。也就是说,任何公司都可以来构建一个虚拟世界,Facebook 可以构建一个虚拟游戏世界,迪士尼可以构建的一个虚拟游乐园,亚马逊可以构建一个虚拟购物世界…

但 Metaverse 的最终形态是,这些世界要能够互联互通,还要存在一套能够统一运作的 会、经济系统。

如果你看过斯皮尔伯格导演的电影《头 玩家》,应该能比较好的理解上面的内容。

参考资料:

  • https://zhuanlan.zhihu.com/p/366906129
  • http://finance.sina.com.cn/tech/csj/2021-04-08/doc-ikmxzfmk5587495.shtml

文章

1. 你应该知道的 6 种数据脱敏方案

序员内点事

什么是数据脱敏strong>

数据脱敏也叫数据的去隐私化。通过我们给定的脱敏规则和策略,对敏感数据比如 、 等信息,进行转换或者修改的一种技术手段,目的是为了防止敏感数据直接在不可靠的环境下使用。

比如在淘宝买东西订单详情中,商家账户信息会被用  遮挡,保障了商户隐私不泄露,这就是一种数据脱敏方式。

数据脱敏又分为静态数据脱敏()和 动态数据脱敏()。

静态数据脱敏():

  • 将用户的真实 、、、 通过 、、、 等方案进行脱敏改造。
  • 适用于将数据抽取出生产环境,脱敏后分发至测试、开发、培训、数据分析等场景。

如下图所示:

动态数据脱敏():

  • 访问敏感数据时实时进行脱敏,因为有时在不同情况下对于同一敏感数据的读取,需要做不同级别的脱敏处理,比如不同角色、不同权限所执行的脱敏方案会不同。
  • 一般用在生产环境。

注意

脱敏时也需要保持原有的数据特征、业务规则和数据关联性,保证在开发、测试以及数据分析类业务不会受到脱敏的影响。

一句话:你爱怎么脱就怎么脱,别影响我使用就行

数据脱敏方案

数据脱敏的方式有很多种:

  • 无效化:通过对字段数据值进行 、、 等方式让敏感数据脱敏,使其不再具有利用价值。
  • 数据替换:与无效化处理相似,不同的是这里不以特殊字符进行遮挡,而是用一个设定的虚拟值替换真值。
  • 随机值:字母变为随机字母,数字变为随机数字,文字随机替换文字的方式来改变敏感数据。
  • 对称加密:通过加密密钥和算法对敏感数据进行加密,密文格式与原始数据在逻辑规则上一致,通过密钥解密可以恢复原始数据。
  • 平均值:针对数值型数据,先计算它们的均值,然后使脱敏后的值在均值附近随机分布,从而保持数据的总和不变。常用在统计场景。
  • 偏移和取整:通过随机移位改变数字数据,偏移取整在保持了数据的安全性的同时保证了范围的大致真实性,比之前几种方案更接近真实数据,在大数据分析场景中意义比较大。

最后,

数据脱敏规则在实际应用中往往都是多种方案配合使用,以此来达到更高的安全级别。

2. 浅谈如何进行埋点质量管理

五花肉

图片来自:https://www.sohu.com/a/411479736_716346

常见的埋点质量问题有哪些strong>

环节

问题点

需求阶段

  1. 埋点需求不合理或触发逻辑不清晰,增加了需求沟通成本,也提高了出错的概率。
  2. 埋点结构设计不合理。

开发阶段

  1. 埋点开发过程导致的漏埋。
  2. 数据类型 string、int 等类型随意定义。
  3. Null、undefined、”” 随意定义。
  4. 字段命名规范不统一:版本前后同一个参数用不同的 Value 代替。

数据传输阶段

  1. 触发逻辑异常导致数据重复上 。
  2. 传输故障导致数据丢失。

那么如何保证埋点质量呢strong>

01 抓意识

任何一个组织创建时都需要有一个文化或者信念,在做事的时候可以时刻提醒自己。所以在质量管理的第一个重要角度是意识。

对于执行层:

  • 无论是分析师或埋点产品必须要对出自自己手中的需求要负责。
  • 要时刻意识到,埋点需求是整条数据链路的源头,而且用户实时发生数据拥有着不可回溯性

对于高层管理者:

  • 要适当的给予数据治理一些侧重,无论是在人力上还是时间上。
  • 让自己或自己的上级领导提升一些基础建设的意识,用产品进行向上管理,毕竟是一个看的见、用得到并且能“体会”价值的载体。

02 定制度&流程

任何一件事有一个良好的规范去执行,那出错的概率就会比每个人自由发挥低很多。

主要从两个方面下手。

2.1 角色流程

埋点从需求产出开始要经历:埋点开发、数据上 、数据采集、数据清洗、数据入库最终到业务应用,涉及的人员包括埋点产品&分析师、开发、测试、采集工程师、仓库工程师等。

各个环节能有机组合就需要一个良好的配合制度,既能保证工作有条不紊,同时又避免了权责混乱导致的问题无法及时响应。

图片来自:http://www.woshipm.com/data-analysis/4297452.html

2.2 采集规范

  • 文档规范:
    • 细化的需求文档有利于降低其他环节同学的理解偏差,也便于埋点使用时了解前因后果及错误信息。
    • 所以要求负责埋点的同学列清相关需求点,包括:所需要的事件信息、统计位置、打点逻辑、上 时机,甚至还可能有失败后如何处理、失败原因、变更历史等相关内容。
  • 接入规范
    • 指业务开发同学在使用埋点组件时要严格遵守组件方提供 sdk 的使用规则,例如,通用事件内扩展字段的埋点位置、上 时机等。
    • 切不可根据“自我经验”进行更改优化。
  • 命名规范
    • 命名规范适用于埋点信息的命名,包括事件 id、事件参数以及实际的参数值。
    • 做到以下原则:
      • 方便解读
      • 不要有特殊字符,不要采用系统关键字或预置关键字进行命名。
      • 字段不易过长
      • 版本前后字段映射统一
    • 无法挨个维护的参数值可以采用 spm(超级位置模型)或 scm(超级内容模型)来制定采集规范。

03 用工具

3.1 埋点模型

埋点模型采用的是事件模型,事件模型描述了一个人做某件事情所需要的几个重点要素:时间(when)、地点(where)、人物(who)、途径(how)、结果(what)

例如:小明4月3 早上 9 点用小米手机在京东买了一个 iPhone12,转译到埋点语言就是:

2.2 埋点平台

埋点质量的最后一个环节就需要通过平台化来进行辅助管理,主要包括:

  • 元数据管理完善、可溯源,提升查询效率。
  • 自动化测试+人工校验,降低漏测风险。
  • 质量监控,提升对错误埋点的发现效率。
  • 引入埋点流程,辅助进行“团队管理”。

最后,

数据质量问题在业务发展到一定阶段都会遇到,就像升职以后需要管理团队一样,不同级别面临的问题不一样,所需要采用的手段也不一样

工具

1. ODiff : 称是世界上最快的图片对比工具

ODiff 是一个非常快速的本地图像对比工具,以毫秒为单位快速找到两幅图像之间的视觉差异。

效果如下:

项目地址:https://github.com/dmtrKovalenko/odiff

2. 用于分析和比较源代码的命令行工具 – Semantic

开源前线

Semantic 是一个用于分析和比较源代码的命令行工具,支持多种语言。

支持的语言

语言 解析

AST(抽象语法树) 符

堆栈图

Ruby ? ?
JavaScript ? ?
TypeScript ? ? ??
Python ? ? ??
Go ? ?
PHP ? ?
Java ?? ?
JSON ? ?? ??
JSX ? ?
TSX ? ?
CodeQL ? ?
Haskell ?? ??

项目地址:https://github.com/github/semantic

3. 超级好用的 macOS 进程管理工具 – Sloth

Sloth 是一款 macOS 应用程序,能显示系统中所有正在运行的进程及其所使用的文件、目录、套接字、管道和设备,用户可以非常方便的查看哪个应用程序正在使用哪个文件。

项目地址:https://github.com/sveinbjornt/Sloth

方法

1. 做的都是琐事,怎么展示能力h2>

小马宋

如何在琐事上展示能力p>

有两个故事。

第一个故事

1906 年的时候,吉尔布雷思发现,数千年来,砖瓦匠砌砖的工具和技巧几乎没有什么变化。仔细研究了砌砖过程之后,他能够在不增加砖瓦匠负担的情况下,将砌砖效率提高一倍。 

通过把砖和灰浆的托板提高到及胸的高度,每位砖瓦匠每天能免去数百甚至数千个俯身取东西的动作

通过使用可移动的脚手架,熟练的砖瓦匠就不必费时费力地踩着梯子往上搬砖了。

如果灰泥能够源源不断地供应,砖瓦匠把砖垒起来之后,只需要用手轻轻一拍就行了,而不必用瓦刀敲好几下——这种做法很浪费时间……

第二个故事

我有个朋友,他早年没有文化,就在一家奶茶店打工。但是为了更快的学习,他主动要求不轮班,直接在奶茶店干满全天,而公司也没有给他更多的薪水。

有一天晚上,店长觉得他实在太累了,就强制要求他回家。然后他回家前顺手就拿了一把奶茶店的外卖单,在回家路上沿街给各个店铺发奶茶外卖单。结果第二天,店里多了好多奶茶外卖的电话(那时外卖还是店里自己送)。

后来他自己经营一家奶茶店,再后来就有了自己的奶茶品牌,目前有 200 多家奶茶店,这个奶茶品牌叫霸王茶姬。

你看,即使一个泥瓦匠的工作,经过思考设计都可以提升一倍的效率,即使是一个奶茶店的员工,也可以用心经营让一个店做得更好。

那么,你应该怎么做呢p>

2. 如何搭建一个拖垮公司的技术架构h2>

Mr.K

作为架构师,如何搭建一个拖垮公司的技术架构p>

01 系统主链路尽可能单点

单点系统,就像苏伊士运河一样,一旦航道出故障,整个运输系统都瘫痪,非常酸爽。

02 程序中多用循环

无限死循环… 当你看到 CPU 利用率百分百的时候,你就知道应该甩锅给运维了。

03 系统间增加依赖

在系统里增加内部依赖、外部依赖、第三方依赖。

04 没有重试策略

服务调用失败,你还想重试不是随便的接口。

05 不做系统隔离

千万别做系统隔离,要挂一起挂。

06 代码同步调用

做系统就要步调一致、讲究和谐,尽量同步调用,多写 bug。

07 不做热数据缓存

RPC 的意义是什么被调用啊。疯狂地调用,是对一个服务最起码的尊重。

08 不做系统分级

对系统要一视同仁,不要区分核心系统、非核心系统,你有考虑过系统的感受吗p>

09 没有服务降级

服务降级就 low了,就算宕机也要一起扛。

10 无灰度和回滚方案

上线全凭运气,没有回滚方案!就是那么自信。

11 程序多做远程调用

能远程调用的,绝不本地调用,都5G时代了, 络延迟那点事不算什么。

12 不做代码扫描

要有工匠精神,自己代码自己 review,机器哪里懂得欣赏你的代码艺术骚气的注释、奇妙的函数、神乎其技的 Copy/Paste。每次看代码,都被自己的才华吓到

13 不做线上压测、不做熔断机制、不做服务补偿、不做幂等设计、不设置超时、控制流量、不做监控预警

最后,

以上任意一项玩到极致,都足以把公司搞垮,且玩且珍惜。

3. 如何自夸才合适h2>

HBR-China

自夸是一种自我推销的手段,但没人喜欢老是自夸的人,也许是因为自夸会让人感到厌烦和嫉妒。那么,如何在不引起强烈反感的情况下进行有效的自我推销呢strong>

01 他人询问时再分享

当某人为了回答一个问题而详细说明了自己取得的一项成就时,其他人不会介意。

比如:“你最大的优势是什么“你是如何这么快就完成工作的/p>

但如果提出问题不是因为你想得到答案,而是因为你希望有人问你相同的问题,那么给人留下的印象会比直率的自夸更糟糕。

02 他人分享时我亦分享

在他人也在分享的情况下,人们可以成功展示自己的成就,同时又不会留下讨人厌、自负或不顾及别人的印象。

03 寻找第三方评估者

人们认为第三方会比较客观,商业场景中也是如此。

对比一下自夸和被夸的感受:

  • “与我共事过的人都认为我是天生的领导者。”
  • “与她共事过的人都认为她天生就是一位领导者。”

明显后者感受更好。

04 自夸时要找到一个平衡点

人无完人,当人们呈现出平衡的自我形象,而不是仅仅讨论成功,会给人留下更为可信和友善的印象。尤其是那些地位很高的人,在认可成就的同时也应该承认失败和弱点。

05 去用正确的庆祝方法

我们都希望自己的成就得到他人的认可和称赞,但又不想给人留下自夸的印象,应该做呢p>

  1. 找到工作中和生活中的密友,他们会把你的胜利等同自身,并为之喝彩。
  2. 当然独自庆祝也可以。奖励自己一顿美食,一件新衣服,或者放松一个晚上观看自己喜欢的电视节目。

实际上,我建议你花些时间定期复盘自己的成功。为什么呢p>

因为当我们完成某项重大任务时,例如升职。我们的幸福指数最初会上升,但很快就会恢复到基线水平。我们得益于回忆成就、反思复盘并因此取得进步。

最后,

如果你发现自己一直在与自夸的欲望作斗争,那么扪心自问这么做的原因。

每个人都喜欢赞美,但你是否过度依赖它动力不足吗你的职业被低估了吗p>

如果是这样,原因是什么p>

这些问题的答案可能会促使你进行更深刻的自我反省,也许会给你带来比自我推销更多的好处。

言论

1、所谓的编程法则…

2、

“世界上任何书籍都不能带给你好运,但它们能让你悄悄成为你自己。”

— 赫尔曼 黑塞

3、

图片

1、用户要加的功能在产品经理眼中的样子…

2、

3、你们有过类似经历么p>

订阅

微信搜索“毕小烦”或者扫描下面的二维码,即可订阅。

如果文章对你有帮助,请随手点个赞吧!

(完)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月22日
下一篇 2021年5月22日

相关推荐