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

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

科普

洪堡时刻

罗振宇

什么叫「洪堡时刻」?

洪堡是一个人,是 18 世纪的一位德国科学家。

有一次他在南美旅行考察,突然想到了一个问题,说我在厄瓜多尔看到的一种苔藓,德国的一个森林里似乎也出现过;在委内瑞拉看到的一种树,在阿尔卑斯山上也看到过。

那整个大自然是不是一个整体呢?

要知道,在洪堡之前,博物学家是没有将各类物种关联起来的。这个发现,直接影响了后来达尔文进化论的诞生。

我们人类现在处在数字化转型的早期,数字世界是连为一体的,互相之间必然有一个宏观的规律可循,我们又走到了一个“洪堡时刻”。

文章

1. 阿里高管的思考方式真正厉害在哪?

舍予兄

为什么又是关于思考的?因为思维层次的提升给成长带来的改变是质变的。

那些取得了巨大成就的人,到底具有哪些不一样的特质?为什么在残酷职场最后攀登到领导者位置的是他们?

其实,“思维陷阱”是造成一个人职场平庸的根本原因。

三种最常见的陷入 “思维陷阱” 的人:

  • 热衷快餐知识,却不能清醒知道自己无知的人他们是朋友圈的 “概念狂人”,对权威、意见领袖的观点非常追捧。
  • 习惯什么都 “靠自己” 的人这些人最大的特点就是害怕麻烦别人,害怕拒绝。
  • 无法一眼看透事物发展背后本质的人没有日常观察思考 “事物发展背后的矛盾” 习惯的人。

那些互联网大神是如何跳出“思维陷阱”的?

  • 无招(钉钉创始人):抛下已知去 “观察” 外界
  • 侯毅(盒马鲜生CEO):保持 “关联性” 思考
  • 蒋凡(淘宝天猫总裁):思索事物发展背后的矛盾

你该如何训练这「三种思维」习惯?

  • 训练带着无知 “观察” 的思维习惯:

    • 保持空无,抛下预设
    • 用客体视角觉察出自己内心与行为的关系
    • 再试着深入「阅读」他人内心与行为的关系
    • 结合规律,分析出外界真实的需求
    • 在生活中与工作中做出策略调整或反应
    • 保持练习,达到情商与觉察力的提高
  • 训练保持 “关联性” 思考的习惯:问自己三个问题

    • 我现在要做的事情有没有利他性
    • 可不可以与他人形成合力
    • 最终的成果能不能多方共享
  • 训练看穿事物底层矛盾的思维习惯:
    • 多读经典,少接触如今的 “时髦概念书” 以免被先入为主污染。
    • 遇到争议性的事情,不要着急下判断,也不要站队,就站在旁观者的角度,思考思考为什么双方会这么想?他们各自有哪些需要没有被满足?
    • 如果有一件事你觉得一定会如此,那么保险起见尝试从相反的方向推论看有没有漏洞。

2. 什么是前端工程化?

Lucas HC

作者认为这是一个很好的问题,但同时也是一个非常「务虚」的问题。

因为前端工程化是一个极度宽泛且宏大的概念,作者试图从工程(构建)工具对比和一个线上 bug 的处理来侧面说明。

01 工程化构建工具

有哪些工程化构建工具?

从 Browserify + Gulp 到 Parcel,从 Webpack 到 Rollup,再到 Vite,前端发展到现在,工程化工具琳琅满目。

ToolingReport 从 6 个维度对这些工具进行了评测:

  • Code Splitting:代码分割,在构建打包时,能够将静态资源拆分,因此在页面加载时,实现最合理的按需加载策略。Code Splitting 直接决定了前端的静态资源产出情况,影响着项目应用的性能表现。
  • Hashing:对打包资源进行版本信息映射,重要技术点是最合理地利用缓存机制。
  • Importing Modules
  • Non-JavaScript Resources
  • Output Module Formats:工程输出的模块化方式也需要更加灵活,比如开发者可配置 ESM、CommonJS 等规范的构建内容导出。
  • Transformations:编译/转义,比如对 JavaScript 代码的压缩、对无用代码的删除(DCE)等。

评测结果

虽然这是评测工程化工具的几个大方向,但每一个都是前端工程化的重要主题。

02 一个线上问题

作者从一个公共库引发的线上问题想到的。

问题出现在一个公共库上,因而前端生态的混乱和复杂也许是更本质的原因,但这都转嫁为前端工程化的难点。

进一步思考:

  • 作为公共库,我应该如何构建编译代码,让业务方更有保障地使用?
  • 作为使用者,我应该如何处理第三方公共库,是否还需要对其进行额外编译和处理?

其实作者也无法很好的回答到底什么是前端工程化,只是从 2 个侧面引发大家思考。

总之,前端既收获着快速发展,也迎接着批量劣汰;前端技术有着与生俱来的混乱,也有着与之抗衡的规范 —— 这都对前端工程化提出了更高的挑战。

更多关于前端工程化的讨论:https://www.zhihu.com/question/433854153/answer/1713597311

3. 关于 AB 测试平台的一些经验

数据人创作者联盟

在互联网领域,AB 测试常指一种迭代方法,这种方法可以指导如何改进现有产品或者服务。

AB 测试平台可用来降低每个 AB 测试的实施门槛,并通过自动化的工具提升每个步骤的效率。

平台架构

AB 测试平台由三个大的模块构成:

  • 配置管理后台,主要是用于管理每个 AB 测试需求,提供操作界面便捷的快速调整每个测试配置。
  • 在线分流服务模块,为每个业务提供基于用户标识进行均匀分流的能力,并完成分流信息的数据采集。
  • 效果评估模块,基于采集的用户行为数据,建设测试指标体系,为业务提供监控预警和数据分析服务。

数据采集方案

核心指标建设

效果评估指标分为业务核心指标和临时性指标。

  • 业务核心指标,指每个AB测试,都需要观察的指标。
  • 临时性指标,指当前模块的测试需要观察的指标,其他模块不需要观察。

工具

1. 一个让你能在浏览器中运行 VS Code 的工具 - codeserver

小秋

code-server 是一个基于 VS Code 的在线编辑器,在任何地方的任何机器上运行 VS Code 并在浏览器中访问它,实现任何设备通过浏览器即可访问 VS Code,进而实现远程在线开发。

它的亮点是:

  • 为用户提供了一致的代码开发环境;
  • 基于服务器加速测试、编译、下载;
  • 延长个人电脑的电池寿命,将密集型任务转移到服务器上运行;

开源地址:https://github.com/cdr/code-server

2. 在 VSCode 里也能用 Postman 了 - Postcode

以前一直在用 postman 做 API 测试,如果你同时在使用 vscode 开发时,每次切出去可能比较烦,其实就是太懒了。。。

Postcode 是一个 Visual Studio Code 扩展。

可以看作是 Postman 的替代品,基本上 Postman 的常用功能它都有:

  • 类似于 Postman 的直观 UI,与任何 VSCode 主题无缝匹配
  • 支持 GraphQL 请求
  • 支持从请求中生成代码片段

另外你还可以保持使用 VS Code 的习惯。

开源地址:https://github.com/rohinivsenthil/postcode

3.一款强大的开源 SQL 自动化注入工具 - sqlmap

simeon

sqlmap 是一个开源的渗透测试工具,可以用来进行自动化检测,利用 SQL 注入漏洞,获取数据库服务器的权限。

sqlmap 支持 MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase 和 SAP MaxDB 等数据库的各种安全漏洞检测。

sqlmap 支持五种不同的注入模式:

l  基于布尔的盲注,即可以根据返回页面判断条件真假的注入;

l  基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断;

l  基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中;

l  联合查询注入,可以使用 union 的情况下的注入;

l  堆查询注入,可以同时执行多条语句的执行时的注入。

开源地址:https://github.com/sqlmapproject/sqlmap

方法

1. 如何搭建覆盖率轻量级体系?

郎丽(达达集团技术)

为什么要统计代码覆盖率?

  1. 减少漏测:结合代码的覆盖率我们能提高测试用例的完整性,通过没有测试到的代码反推用例设计是否充分。
  2. 提高代码质量:能检测程序中的废弃代码、提高代码质量。

选什么工具呢?

jacoco

为什么?

原因主要有两点:

  1. 资源多:开源,社区活跃,网上资源文章也比较多,能更便利的借鉴别人的踩坑经验;
  2. 功能多:jacoco 包含了多种尺度的覆盖率计数器,包含指令级覆盖、分支、圈复杂度、行覆盖、方法覆盖、类覆盖。

覆盖率工具的具体实现

  1. 注入并采集:我们希望在测试过程中能实时看到测试的覆盖率结果,所以采用 on-the-fly (运行时插桩)模式。
  2. 导出&生成报告,如下图所示:

  • spiderKnight:收集服务,定期获取 dump 文件,然后再通过 git 获取源码,从 ftp 获取 class 文件,拿到三件套后生成覆盖率的 html、csv、xml 报告,再存储到中控的静态文件中。
  • spiderKing:中控服务主要负责调度 spiderKnight 选择收集哪些业务服务,控制多台收集机器上的服务数据等。

统计覆盖率?全量?增量?

全都要,所以,通过差量报告的方式获取全量和增量报告。

jacoco 生成的是全量的覆盖率数据,那么我们只需要将全量报告中 git_diff 代码的覆盖率数据提取出来,重新渲染就可以了。

覆盖率在 CI 流程中怎么发挥作用呢?

  • 度量接口自动化的覆盖程度;
  • 度量研发提测、自测的代码行覆盖情况;
  • 度量项目上线前的测试质量,并设置代码合并门禁进行流程卡点;

2. 产品经理怎么做才能在需求评审中少挨打?

道叁(产品大秘籍)

在需求评审中,不同的角色会提出不同的问题,往往无法预测,产品经理又该如何游刃有余的化险为夷,高效完成需求评审呢?

一. 原型准备阶段

在评审前,是产品经理收集需求、分析需求、提炼需求、输出原型等文档的过程,需要做到以下几点。

① 需求细节尽量描述详细:逻辑清晰、无遗漏、页面整洁、表达清晰

② 以前有的功能,现在项目涉及到要把以前的功能需求再写一下,或者有链接可以查看。

③ 设计功能或者逻辑一定要有理有据:逻辑不通,形成不了闭环,大忌;设计功能的时候,自己认为这样就是这样,也是大忌。

④ 设计过程中遇到技术难点、技术知识盲区,一定要和技术人员去沟通。

二. 评审前

① 产品内部评审:把大致逻辑、功能统统讲一遍,看看有没有遗留的,有没有补充的。

业务部门会议:大致讲解项目操作流程即可,无需太细致,主要是让业务部门了解产品部门做的东西是不是符合他们的预期。

提前把原型或者需求文档发给技术人员:让他们提前熟悉需求。若有问题及时收集,在需求评审之前向提问者解答,能大大提高需求评审会的效率。

三. 评审中:控制节奏、把握重点

需求评审的过程,本质上就是沟通,用语言配合原型文档的方式,将需求、逻辑清晰的表述出来,然后和所有人基本达成一致意见。

① 采纳合理的建议:有启发的意见,可以以后做,不一定非得放到本次迭代。

② 不要过度纠结细节:产品经理始终要记住把控会议时间和节奏,遇到过度纠结细节的人,可以会后聊。

③ 不要有明显的逻辑漏洞和功能遗漏。

④ 不要把会评审成技术方案讨论会议。

⑤ 遇到技术人员说「这个实现不了」的时候,不要直接反驳,而要进一步确认难点在哪里。

四. 评审后:查缺补漏、保持跟进

及时修改问题:修改的地方通过邮件通知大家。

督促排期,跟踪进度

需求评审复盘:评审后对自己有启发的建议要重新分析一下,合理规划后续的迭代。

3. 如何在技术领域产生自己的影响力?

俞栋(腾讯 AI Lab 副主任、杰出科学家)

作者从步骤、路径和准备三方面分享了在技术领域产生自己影响力的方法。

关于影响力:

  • 解决重要的技术难题本身并不会自然产生影响力,要有受众才会产生影响力。
  • 影响力是当别人听取你的建议、跟随你的思路、采用你的方法的时候才真正产生。
  • 影响力的一个重要体现就是引领技术发展和变革。

提升技术影响力的步骤

STEP 1. 解决重要技术难题:展示自己的技术实力

  • 分辨重要问题:
    • 对于产品来说,是那些解决之后能带来极大价值提升或用户体验提升的问题。
    • 对于前瞻性的研究来说,是那些解决之后能推动领域往前极大发展的问题。
  • 解决重要问题:
    • 这非常考验一个人对技术前沿是否熟悉。
    • 也考验你是否能深入思考,针对具体问题灵活地提出相应的解决方案。
  • 优雅地解决问题:
    • 要能够在给定条件下提出更好地优化方案。
    • 还要常常审视已有的限制条件,看看他们是否合理。

STEP 2. 提炼解决问题的方法论:提供更广泛的指导意义

  • 要将一个特定问题的解决方案,提炼升华为一类问题的解决方案。
  • 这就扩大了你解决的问题的范围,也增加了你的技术能影响到的人群。

STEP 3. 建立声誉扩大影响力:帮助别人、合作交流、推广技术

  • 在小范围里,你可以通过帮助同事或朋友解决或更好地解决技术难题来建立影响力,也可以通过和同事合作推动项目的进展产生影响力;
  • 在大范围里,你需要与公司内外甚至国内外技术专家经常交流讨论并建立合作关系。比如,参加行业组织和学术或技术会议。
  • 还可以通过文档、代码、论文、演讲等方式共享和推广技术,产生影响力。

提升技术影响力的路径

1. 专业技能:专才到通才

  • 一开始你最好有一个技术的主攻方向,在这个方向上做深,做专,当别人提到这个方向的时候大家都会想到你。
  • 然后再逐步扩展技术方向和领域,并在这些新的方向上做深,从而成为领域和跨领域专家,建立更大更广的技术影响力。

2. 影响范围:小组到业界

  • 先努力成为小组里的 go to person(多面手)。当有某一个方向的重要技术难题的时候,大家第一时间会想到你。
  • 然后在中心、部门、和 BG(事业群) 的项目里解决重要难题。
  • 最后再扩大到业界。

3. 成为第一个

  • 成为第一非常重要,这包含第一个提出某种有影响力的理论或技术,第一个实现别人认为不可能实现的有影响力的系统,也包含在某些重要方向上保持第一。
  • 成为第一也可以是小范围的,比如 BG 里第一个引入某项技术解决某一核心问题。

机会只青睐有准备的头脑

  • 时刻准备
    • 掌握坚实宽广的理论基础和系统深入的专业知识
    • 掌握科学的研究方法和优秀的工程实现能力
    • 拥有良好的心理素质,百折不饶,精益求精。
  • 抓住机遇
    • 培养直觉和洞察力,思考重要的问题。
    • 判断科技发展的大趋势,洞察前沿工作的潜在意义。
    • 多思考如何做成而不是为什么做不成。
  • 创造机遇
    • 善于与人交流合作,发现和创造机会。
    • 有自己的思路和积累,善于跳出思维限制。
    • 深度多领域、跨学科的研究和技术解决方案。

言论

1、

2、

过日子就是平平常常,有时候有意思,有时候很没意思。不要成天到晚地找意义。

| 黄永玉

3、

图片

1、QA 试驾记...

2、我突然有点想写代码了

订阅

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

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

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

(完)

软件测试周刊(第25期):不要成天到晚地找意义相关推荐

  1. 阿里云前端周刊 - 第 25 期

    摘要: ## 推荐 ### 1. Chrome 61 新特性介绍 https://developers.google.com/web/updates/2017/09/nic61 Chrome 61 中 ...

  2. 人工智能轨道交通行业周刊-第25期(2022.11.28-12.4)

    本期关键词:液体安检仪.智慧车站.大机作业.动车打温.实时人体姿态估计.图像压缩 1 整理涉及公众号名单 1.1 行业类 RT轨道交通 中关村轨道交通产业服务平台 人民铁道 世界轨道交通资讯网 铁路信 ...

  3. 【软件周刊第 25 期】深度操作系统 15.4 正式发布;CentOS 7 重要 Linux Kernel 安全更新发布...

    2019独角兽企业重金招聘Python工程师标准>>> CentOS 7 用户尽快更新 重要 Linux Kernel 安全更新发布 CentOS 的维护团队成员 Johnny Hu ...

  4. 【码云周刊第 28 期】计算机视觉时代的识图技术

    为什么80%的码农都做不了架构师?>>>    Venture Scanner 追踪了全球957家人工智能公司,总融资额为48亿美金.其中,机器学习.自然语言处理.计算机视觉等认知技 ...

  5. 【码云周刊第 30 期】打造场景化的图片特效处理工具

    为什么80%的码农都做不了架构师?>>>    ##码云项目推荐 1.项目名称:图片实时处理使用工具 iOS-GPUImage **项目简介:**本项目是基于 ios 的图片处理 A ...

  6. 《强化学习周刊》第25期:DeepMind提出无模型风险敏感强化学习、谷歌发布 RLDS数据集生态系统...

    No.25 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  7. 《预训练周刊》第25期:HyperCLOVA:数十亿级韩语生成式预训练变换器、GPT-3在生物医学领域不是好的小样本学习器...

    No.25 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第25期&l ...

  8. 软件测试周刊(第34期):一岁有一岁的味道,一站有一站的风景

    编辑:国薇.一口锅.菜菜.静怡.小淑子.夏至 欢迎来到第 34 期!这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布. 本期看点:腾讯是怎么做流量录制回放的?阿里的灰度方案是怎么设计的?下 ...

  9. CSDN开发者周刊第 21期:Wi-Fi 之父辞世,谷歌服务器再次全球宕机;Windows 10 将支持安卓应用

    CSDN开发者周刊:只为传递"有趣/有用"的开发者内容,点击 Star(CodeChina)! 本周热门项目 1.GTK 4.0开源工具包正式发布 赶在周五的发布会之前,GTK 开 ...

  10. 【组队学习】【25期】Datawhale组队学习内容介绍

    第25期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: web开发入门教程 数据挖掘实战(异常检测) 集成学习(下) 大家可以根据我们的开源内容进行自学,也可以加入我们的组 ...

最新文章

  1. 安装完DevExpress14.2.5,如何破解它呢?
  2. 又一壮举!GPT-3首次完成剧本创作,AI解决创造性问题的能力正迅速提升
  3. cmd删除oracle监听,oracle数据库监听删除
  4. 独家 | 10个数据科学家常犯的编程错误(附解决方案)
  5. 浏览器市场占有率_分水岭初现 全球浏览器市场现状及竞争格局分析
  6. Linux企业级项目实践之网络爬虫(28)——爬虫socket处理
  7. bubble气泡特效
  8. PCB板设计的12个细节,你做对了吗?
  9. java 监听多个按键_如何在所有组件中监听按键(在Java Swing中)?
  10. NOIP模拟 color(DP)
  11. Win10中docker安装nuget服务器及使用
  12. JDK源码解析--ArrayList
  13. 工具 转_好用的语音转文字工具,总有一款适合你!
  14. MyBatis学习02
  15. unittest框架(惨不忍睹低配版)
  16. fanuc机器人仿真软件roboguide-新建工程文件
  17. 使用outlook及office assitans实现邮件批量发送
  18. 阿里云实践 - HTML5断点播放m3u8视频(videojs)
  19. 2016年我国网络安全态势
  20. 苹果M3处理器跑分曝光 Max性能提升24%

热门文章

  1. php进销存源码系统开发
  2. imx6ull ccm时钟体系
  3. 深度学习-23:矩阵理论(L0/L1/L2范数)
  4. java算法面试题及答案pdf,中信银行Java笔试题库
  5. wowza 降低延迟
  6. think-cell丨Images图像丨教程
  7. 小学数学四年级上册计算机教案,四年级信息技术人教版上册教案
  8. 小程序游戏年龄计算机,2018年小程序游戏排行榜,这十款游戏你玩过几个?
  9. Python sklearn 实现过采样和欠采样
  10. rtmp协议java实现_RTMP 协议的一个 Java 实现:Flazr