软件测试周刊(第32期):沙漠中藏着一口井

编辑:国薇、一口锅、菜菜、静怡、小淑子

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

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

科普

海狗

海狗(学名:Arctocephalinae;英文名:fur seals):是生活在海洋里的哺乳动物,因其体型像狗,因此得名海狗

海狗的繁殖十分别致,每年 5 月份,雄性海狗,率先来到繁殖场所抢占地盘。3-4 个星期后,要生产的雌海狗才姗姗而来,进入雄海狗占有地,走近的雌海狗立即被恭候多时的雄海狗据为妻室。每只雄海狗所拥有的雌海狗数目很不一致,有的雄海狗孤零零的,仅和一只雌海狗在一起;有的雄海狗则可和 50 只以上,甚至 100 只雌海狗在一起。

海狗是世界野生动物保护协会认定的濒危动物

海狗、海狮、海豹都有什么区别?

图片来自:这里

文章

1. 互联网从业人员都应该用 Markdown 写作

jero(腾讯IMWeb前端团队)

你知道自己在写作和编码上投入的时间吗? 看看程序员的:

Markdown 高居第三。

互联网从业人员都应该用 Markdown 写作,为什么呢?因为它太简单太好用了,使用 Markown 可以让你沉浸到写作中,而不是被纷繁复杂的样式所扰。

Markdown 的发明者是约翰·格鲁伯,参考维基百科:

约翰·格鲁伯在 2004 年创造了 Markdown 语言,在语法上有很大一部分是跟亚伦·斯沃茨共同合作的。这个语言的目的是希望大家使用“易于阅读、易于撰写的纯文字格式,并选择性的转换成有效的 XHTML(或是 HTML)”。

其中最重要的设计是可读性,也就是说这个语言应该要能直接在字面上的被阅读,而不用被一些格式化指令标记(像是 RTF 与 HTML)。

Markdown 的广泛流行,和 Github / StackOverFlow 的关系很大。这两个网站都可以称为“同性交友”平台,深受广大开发的喜爱。没接触过的同学也没关系,只需要知道这两个网站有大量的发帖、回复等文字编辑操作,而它们默认的编辑语法就是 Markdown 。而且 GitHub 还有自己的一套增强型 Markdown 规范,叫 GitHub Flavored Markdown ,而它又是基于 CommonMark 规范。

软件推荐:

  • 腾讯文档、掘金、简书、CSDN、有道云笔记、语雀、印象笔记、Notion;
  • Typora、Bear、MWeb
  • Hexo、GitBook、Slidev

书籍推荐:

2. 真正的自由是要有被讨厌的勇气

罗振宇

高手和普通人有一个重要的区别,就是高手在人际关系中是自由的,他有被讨厌的勇气。

什么叫自由?

什么叫自由呢?财务自由就算自由吗?自由就是想干啥就干啥吗?老百姓有老百姓的说法,而我们要讲逻辑,就只能听康德的说法。

康德说,凡是出于倾向性的,就都是不自由的 —— 也是不道德的。

什么是倾向性?

康德把所有能牵着你走的力量叫做“inclination” —— 倾向性。为了生存也好,为了利益也好,因为恐惧也好、贪婪也好、感情也好、同理心也好,这些都是。

康德把出于倾向性而做事的行为叫做“假设律令(hypothetical imperative)”,因为它具有“如果……就……”的特点。我如果如何如何,就会如何如何,所以我要这么做。

什么才是真正的自由?

我做这件事并不是因为它会给我或者别人带来什么东西 —— 仅仅是出于“义务”,我认为这件事应该做。这才是真正的道德。这才是真正的自由。

这是最高的道德标准,也是唯一逻辑自洽的道德标准。

所以,什么是自由?

自由就是不受驱使。既不被别人驱使,也不被自己的欲念驱使。换句话说,就是你不能是一个工具。

一切烦恼不自由的根源是什么?

是别人的“认可”。

如果你处处为了别人的认可而活,你就处处受到驱使,你就是不自由的,你就会很难受。

那你说世俗的成功不就是社会的认可吗?

我们需要社会的认可。我理解你应该这么想:你可以把认可当做一个副产品,你做得好别人自然会认可 —— 但是你不应该直接追求认可,不应该被认可牵着走。

被他人认可驱使的人,一天到晚跟人比,他们心目中的人际关系是纵向的:人和人的地位按照高低排序。他总想证明自己的地位比别人高,哪怕他已经到了顶端,也要担心别人把他比下来。这样的人一点都不自由,简直可以说就是个奴隶。

当你不再担心别人的认可,这也就是“被讨厌的勇气”。当然也不是说要故意让人讨厌。

最后,自由只是一个维度,人确保了自由还得寻求幸福。加油。

工具

1. 代码审查狗让你的代码代码健康 - reviewdog

章鱼猫(GitHub精选)

代码评审包括很多方面,比如设计是否合理、代码实现的功能是否是用户期望的、复杂度、是否有相应的测试等等。有时候也包含部分的代码规范,比如争议比较多的左大括号要不要换行。

我们不希望耗费太多的时间在审核一些语法错误和格式问题上,而这些往往都是能够通过自动化的方法检测的,比如使用静态代码检查工具或者各种语言的 linter 工具。

ReviewDog 能够自动化的检测 PR(Pull Requests)里面的一些语法和格式的错误,同时提交评论,目前支持各个平台 GitHub、GitLab 等,当然也支持本地运行。评审狗这个名字非常贴切了。

ReviewDog 可以很容易的集成到你使用的 CI 平台上,目前支持 GitHub Actions、Travis CI、Circle CI、GitLab CI 等。使用如下代码就可以在 Travis CI 集成 ReviewDog 工具。


ReviewDog 通过解析 Lint 的输出结果,与代码提交的 Diff 进行比较,从中找出此次变更的问题。与直接通过静态代码扫描进行拦截相比,ReviewDog 通过交互式的代码评审方式,能够减小错误检测(false positive)带来的影响。

开源地址:https://github.com/reviewdog/reviewdog

2. 2021 年最流行的 10 款 VSCode 扩展

作者 | Ashutosh Singh 译者 | 弯月

VisualStudio Code 是开发者社区最流行的一款编辑器。理由之一就是 VSCode 有许多扩展,可以提高开发的效率。

本文介绍了每一位开发人员都应该了解的 10 款 VSCode 扩展。

  • AutoRename Tag:在一个标签更改时自动更新另一个标签。
  • Bracket Pair Colorizer:将匹配的括号染成相同的颜色。
  • 代码片段:节约时间提高生产力的最好办法。这并不是一个扩展,而是多种语言的各种扩展。
  • BetterComments:可以帮助你编写便于阅读的注释。
  • MarkdownAll in One:可以处理所有的 markdown 需求,例如自动预览、快捷键、自动完成等。
  • 图标:描述性的图标可以帮你区分不同的文件和文件夹。图标也让开发过程更有趣。流行的图标扩展有:vscode-icons、Material Icon Theme、Material Theme Icons、Simple icons。
  • Prettier:一款有倾向的代码格式化程序。
  • Importcost:可以在代码中显示导入的估计大小。
  • ProfileSwitcher:可以在多个用户配置中切换。该扩展特别适合内容创作者,如技术博客作者、YouTube 主播等。你不需要每次共享 VSCode 屏幕时更改设置,只需要创建新的用户配置即可。
  • GitLens:该扩展最好的一点就是能通过 Git blame 和 code lens 的功能,将代码的作者可视化。

3. 开源电子书:《Kubernetes 加固指南》

GitHub 上一本开源技术书籍:《Kubernetes 加固指南》,由 NSA 发布,一名开发者将其译为了中文。


主要包含 Kubernetes Pod 安全、网络隔离与加固、认证和授权、日志审计、应用安全实践等内容。

项目地址:https://github.com/rootsongjc/kubernetes-hardening-guidance

方法

1. 如何培养团队中每个人对质量的责任感?

林冰玉

“敏捷测试强调团队为质量负责,那质量就变成了团队的事情,可能有人认为,既然由团队负责,那么个人不太负责问题应该不大,毕竟天塌下来有团队在。”-- 一位测试经理有上面这样的担忧。

当然,有上面这样的想法,不是好事情,良好的团队应该有的态度是:“我如何帮助团队解决问题?我可以为别人做些什么?”,而不是“我不知道这是什么问题,这不是我的问题。”

那么,如何培养团队中每个人对质量的责任感呢?

责任感很难培养的,需要经历很多心路历程:否认 → 指责 → 辩解 → 羞愧 → 放弃 → 义务 → 责任

看看下面的「责任流程模型」就知道了。

想培养责任感有三把钥匙:

  • 动机:首先,当事情出现问题的时候,需要以负责任的动机去面对,积极地想办法解决,而不是忽视、找内外部借口、甚至是逃离问题不予理会。
  • 意识:其次,是对责任的意识。当出现问题的时候,如果又开始找原因、找借口应对的话,要尽快把自己拉回来,增强自己面对问题的责任意识
  • 面对:最后,不管质量出现什么样的问题,我们都能积极面对,找到真正的问题所在,采取积极的应对措施,持续改进。

2. 酷家乐是如何进行网页自动化巡检的?

思思(酷家乐技术质量)

随着网站功能的不断迭代,业务场景也越来越复杂。网站页面多且层级深,账号类型多且权限易变,导致测试人员的回归测试工作冗余和繁杂。

为了减轻回归工作,日常巡检能力是非常必要的,那么网页巡检应该怎么做呢?

工具选型

获取网页信息是网页巡检的核心点,对此我们选取了 Puppeteer 开源工具,Puppeteer 是 Node.js 工具引擎,它提供了一系列 API,通过 Chrome DevTools Protocol 协议控制 Chromium 或 Chrome。

Puppeteer 可以获取以下内容:

  • 网页访问是否正常:检查网页链接是否404,是否超时。
  • 网页调用的 API 信息:通过 page.on('requestfinished') 获取网页 Network 信息,并过滤出 Type 为 xhr 的。这个时候就可以得到用户在访问网页的时候调用了哪些接口,包括接口的参数,接口的返回状态、返回值等。也可以优先过滤出 status 非 200 的接口重点关注。
  • 网页 Console 信息:网页如果发生错误,在 Console 里可能会出现一些错误信息。可以通过 page.on('console') 获取网页 Console 信息,同样可以过滤出 error 类型的。
  • 网页子链接
  • 其他自定义信息

设计思路

平台能力

  • 定时巡检功能:可定时可手动。
  • 过滤 URL 功能:URL包含某些词才会进行巡检,或者包含某些词就不进行巡检。
  • 对比两个环境接口返回值:将预发环境和正式环境巡检得到的接口返回值进行对比,就可以进一步实现页面的接口巡检。
  • 巡检结果通知:巡检结果通过通讯工具通知到对应的负责人。
  • 与 UI 自动化打通:让巡检更有针对性;

3. 如何减缓研发效能的恶化?

茹炳晟(腾讯IMWeb前端团队)

到底什么是研发效能?

和敏捷的概念类似,到底什么是研发效能很难精确定义。其实很多复杂概念也不是定义出来的,而是逐步演化出来的,是先有现象再找到合适的表述。

如果要用一句话来总结研发效能的话,我们会用“更高效、更高质量、更可靠、可持续地交付更优的业务价值”来总结。

解释一下其中几个关键概念:

  • 更高效:价值的流动过程必须高效顺畅,阻力越小越好。
  • 更高质量:如果质量不行,流动越快,死的也会越快。
  • 更可靠:安全性和合规性要保障好。
  • 可持续:输出不能时断时续,小步快跑才是正道,不要憋大招。
  • 更优的业务价值:这是从需求层面来说的,你的交付物是不是真正解决了用户的本质问题。

在这个概念的引导下,我们引出持续开发,持续集成,持续测试,持续交付和持续运维的理念,它们是研发效能落地的必要实践。与此同时,我们还需要从流动速度,长期质量,客户价值以及数据驱动四个维度来对研发效能进行有效的度量。

研发效能真的能够提高吗?

很不幸,我们的观点比较悲观。我们认为研发效能的绝对值随着以下因素的增长必然会变得越来越差,就像我的头发,随着时间的推移必然会越来越少一样。

  • 软件架构本身的复杂度提升(微服务,服务网格等)
  • 软件规模的不断增长(集群规模,数据规模等)
  • 研发团队人员规模不断扩大引发沟通协作难度增长

所以,我们能做的不是提升研发效能的绝对值,而是尽可能减缓研发效能恶化的程度,使其下降的不至于太快,努力保持现状就是成功。

减缓研发效能恶化我们能干啥?

双流模型从软件研发的各个阶段提出了研发效能提升的各种工程实践,并且倡导需求价值流和研发工程流的自动联动。

一些实践给大家抛砖引玉:

  • 可以通过 All-in-one 的开发环境降低每位开发人员开发环境准备的时间成本,同时又能保证开发环境的一致性。
  • 可以借助基于 AI 的代码提示插件,大幅度提升 IDE 中代码的开发效率。
  • 代码的静态检查没有必要等到代码递交后由 CI 中的 Sonar 流程来发起。
  • 单元测试比较耗费时间,可以借助 EvoSuite 之类的工具降低单元测试的开发工作量
  • 构建高度自动化的 CI 和 CD 流水线将大幅提升价值的流转速率。
  • 选择合适的发布策略也会对效能和风险之间的平衡起到积极的作用。
  • 引入 DevSecOps 与 DevPerfOps 实践,使安全和性能不再局限在测试领域,而是形成体系化的全局工程能力,让安全测试成为安全工程,性能测试成为性能工程。
  • ...

4. 如何用“心流”提升编码工作效率?

梧忌(淘系技术)

高效编码的秘诀:“心流”

大多数人都有过这样的经历:忽然抬起头,发现时间已经过去了很久,自己已经完成了一系列的工作。那种轻松富有成效的时间流逝和挥之不去的成就感,令人愉悦。

这就是心流,研究表明,人们在“心流”状态下最快乐。“心流”也是高效编码的秘诀。

但是要达到“心流”的状态并不容易,来看看阻碍我们进入“心流”状态的几个问题。

影响编码心流的问题

  • 外界干扰:突然的外界干扰,会破坏我们在编码时的思绪,打乱正在大脑中加载的逻辑。
  • 频繁开会:通常在开会之前,我们知道很快就要进入到会议当中,因此会中断掉编码,然后准备会议的头脑状态。会议结束后,还需要时间来消化内容、让自己恢复到正常的脑力状态。
  • 人的思维惯性:我们经常陷入到这种拖延的惯性当中,需要意志力和纪律才能将全部工作分解为小的、可操作的工作单元,然后才可以开始编码。

解决这些问题的对策

  • 设定编码时间:通过工作日历来设定自己的编码时间。开会、写代码、阅读,它们需要的状态和脑力是完全不同的,可以自己的情况来计划哪个时间段来执行这些任务。
  • 持续完善文档:会议往往是异步沟通无效的体现。另外,根据 Stack Overflow 的调研报告,几乎一半的开发者表示他们在遇到问题时会打电话给同事。为了减少会议和答疑,一个建议是持续地更新和完善文档。
  • 高效会议并回顾:更有效的会议可以避免更多的会议。确会议主持,制定会议议程,做好会议记录,产出会议结论 —— 这些都是高效会议的一些措施。
  • 克服思维惯性:每个人都需要一些动力来克服行为和思维惯性。可以问一下你自己:每天在八卦群上闲聊的花费了多少时间?是不是经常走神拿起手机刷朋友圈、短视频?记录数据,通过与自己对比来找到最好的自己,关注你的编码数据和设定目标可以提高自己的纪律性和产出。

言论

1、我愿意做一个有追求的,没出息的人。-- 海桑

2、

3、

冒犯一个人最简单的方法,就是质疑他的动机。 --- 插座学院官微

4、

图片

1、越修越多...

2、做产品就是做概念

订阅

本周刊每周五发布,会同步更新在微信公众号

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

如果文章对你有帮助,记得留言、点赞、加关注哦!

(完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕小烦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值