软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始

Posted 毕小烦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始相关的知识,希望对你有一定的参考价值。

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

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

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

文章

1. 酷家乐:让设计更有价值的《设计流程指南》

不戳(酷家乐用户体验设计)

当设计团队规模扩大,人数快速增多,每个人都带着自己以往工作经验和习惯,一些典型问题就会显现:上手就干、主观设计、缺少方法、忽视跟进等等。

怎么办呢?

通过「UI标准设计流程」,为 UI 设计师提供对于设计支撑思路的共识,让设计更有价值。

从接到需求到上线后跟踪,我们把流程拆分为五个节点:需求分析 - 交互设计 - 视觉设计 - 视觉规范 - 方案验证。

STEP 1. 需求分析:在接到一个设计需求后,要做的第一步是进行分析并确定设计目标。

我们需要:了解背景、用户和竞品,能准确理解产品定位和需求目标,评估需求的合理性和准确性,并提供相应策略;甚至洞见机会点,通过设计对业务产生正向价值。

STEP 2. 交互设计:在产品流程中,交互设计的作用在于,通过信息架构的组织去产出体验流畅的界面原型。

我们需要:充分理解整体流程与交互原型,基于设计原则去发现可优化的部分;同时能平衡产品、设计与开发的效益最大化,并驱动产品的体验提升。

STEP 3. 视觉设计:视觉设计是产品与用户直接连接的媒介,优质而恰当的视觉设计,可以极大地提升产品吸引力。


我们需要:基于分析确定视觉方向、定义设计语言,输出完整且高质量的视觉页面。

STEP 4. 设计系统:在设计典型页面的同时,其背后其实已经对应了一套设计规范和组件,而我们基于此去整理并沉淀出设计系统,能极大地提升统一性和迭代效率。

我们需要:制定完整、清晰的基础规范,沉淀图标库、组件库等,并持续优化和更新,形成可持续沿用的产品设计系统。

STEP 5. 落地跟踪:在设计完成之后,我们需要对设计方案进行评审、验收及数据跟踪,以保证设计方案的落地并跟进调整

我们需要:运用合理策略以保证设计方案的高质量落地,对方案上线后的用户反馈进行有效跟进,运用多种方式验证目标,迭代产品。

2. 你应该知道的敏捷测试十项基本原则

Test Ninja(软件质量报告)

什么是敏捷测试?

维基百科的定义:

敏捷测试是遵循敏捷软件开发原则的软件测试实践。敏捷测试涉及跨职能敏捷团队的所有成员,由测试人员提供特殊的专业知识,以确保以可持续的步调频繁地交付客户期望的业务价值。

简单点说,敏捷测试是遵循敏捷软件开发原则力求达到质量和效率平衡的软件测试实践。

敏捷测试的理念是什么呢?

敏捷测试的理念和编码一样,测试是开发的一个关键部分。在敏捷中,测试被直接集成到软件开发过程中,以便尽早、频繁地发现 bug。因此,测试人员可以在开发过程的每一个节点上发现问题,从而使产品快速走向发布。

敏捷测试与传统测试的区别是什么?

传统测试和敏捷测试的不同点:

传统测试

敏捷测试

何时测试?

在软件开发结束时开始测试

持续测试/和开发同时进行

谁对质量负责?

质量是测试人员的责任

团队对质量负责

谁参与测试?

有专门的测试人员或测试部门

所有团队成员参与测试

如何测试?

基于脚本进行测试

探索式测试

参考什么?

有需求文档作为参考

用户故事和用户需求作为参考

思维是什么?

攻破软件的思维

开发出最好的软件的思维

介入时机?

测试介入晚,对产品质量反馈晚

测试更早的介入并提供持续反馈

测试目的?

发现缺陷

预防缺陷

敏捷测试人员的十项原则是什么?

在敏捷开发中,测试是整个敏捷团队的事情。“敏捷测试人员”指的是主要活动与测试和质量保证相关的团队成员。

  1. 提供持续的质量反馈:测试人员与团队紧密合作,并在开发过程中提供质量反馈,以确保团队在业务逻辑和软件行为方面处于正确的轨道。
  2. 为客户交付价值:敏捷团队的最终目标是为客户交付最好的软件。
  3. 面对面交流:向开发团队传递信息和在开发团队内部传递信息的最有效方法是面对面交谈。
  4. 具有勇气:有勇气去承担任何任务来完成工作,勇于学习新技能、勇于寻求帮助、勇于允许别人犯错。
  5. 保持简单:业务规则、测试用例和记录的 bug 尽可能简单明了。
  6. 实践持续改进:让重复的任务通过自动化来完成,这样我们就有更多的时间做更有价值的工作。
  7. 应对变化:很多情况下,团队开发过程中会有很多变化,我们需要与团队合作来适应变化。
  8. 自组织:所有团队成员都负责测试和对软件质量负责。
  9. 关注人:建立一个每个人都有机会贡献和发展技能的环境。
  10. 享受工作:我们可以通过自己的想法和技能为团队创造价值,帮助用户更好地完成工作,这是一件很棒的事情。

3. 标准的故障应急处理流程是什么样的?

金喜(阿里技术)

尽管我们可以通过稳定性体系建设,来避免出现生产系统故障。但是仍然无法彻底做到一点风险都不会产生,当稳定性风险产生后,怎么快速协调组织,缩短故障时长呢?

一. 结构化问题解决,让故障恢复有续进行。

典型的结构化解决生产环境故障的步骤如下:

  • 问题定义:清晰的描述问题现象、影响,其中影响要尽量量化。例如 xx 时 xx 分开始,xx 服务异常,成功率从 99% 下跌到 90%。
  • 临时解决:基于预案的临时解决方案和实施结果,包括符合条件的预案执行,或者应用发布过程中出现的异常后立即回滚。
  • 分析问题原因
  • 制定解决方案
  • 实施解决方案
  • 标准化解决方案

生产环境中,出现突发异常时候,我们第一优先的是考虑怎么快速恢复服务,因此本文中重点介绍上面流程中前面 2 个步骤。


二. 约定好关键角色,提升协作效率。

突发异常的情况都各有不同,很难有一个完全统一而且颗粒度很细的标准流程,但是可以提前约定好几个关键角色,定义角色的作用和关键动作,来提升协作效率。

主要包括这些角色:指挥员(组织协调的人)、通讯员(收集、记录和通知的人)、快恢负责人(决策执行预案的人)、问题诊断负责人(定位故障的人)

一. 指挥员:

  • 职责:负责组织和协调故障快速恢复、故障群里通报相关进展。
  • 人选:
  • 第一接警人:默认第一个收到告警、投诉反馈的技术人员作为指挥员。先判断是否能够指挥,如果可以则立即恢复服务,否则联系专职指挥员接手。
  • 专职指挥员:团队 Leader 和稳定性负责人是大多数风险的最佳指挥员,当应急团队建立联系后,指挥员可以交由 TL 或团队内的稳定性负责人。
  • 各级 TL:当故障时长和等级持续上升后,根据实际情况会上升,由更高层级 TL 接掌指挥员角色,以协调更多资源加入。
  • 动作:
  • 确认问题:确定该次突发事件的现象、影响。
  • 确定角色:确定参与该次事件处理的关键角色,包括通讯员、快恢负责人、问题诊断负责人。
  • 向上沟通:让组织中关键角色知晓该问题,这样在需要时候,可以更快的调动更多人员和资源参与进来。
  • 协调:协助快恢负责人和问题诊断负责人解决问题,在信息、领域专家等资源上给予支援。
  • 要求:
  • 启动:确定人员,并通过视频会议、故障群等方式建立起应急小组。
  • 前期:紧盯快恢负责人进展,优先落地快恢,而不是分析根本原因。当快恢不生效后,也要继续探索可能的快恢手段。
  • 中期:尝试大量手段都无法恢复服务的话,重心逐渐转移到问题诊断负责人这里,找到根本原因。
  • 后期:组织团队继续观察,确认不会问题再复现。组织善后和复盘等工作。

二. 通讯员:

  • 职责:负责收集、记录关键信息,并在故障群等渠道跟相关团队沟通。
  • 人选:在团队内有一定稳定性认知,然后通常又不是快恢负责人和问题诊断负责人第一人选的那个同学,或其他不参与问题诊断和快恢的团队成员。
  • 动作:
  • 持续确认问题和通报:随着时间推移,问题的现象、影响面也在动态变化,需要定期通报(故障群、电话会议等渠道),前期要做到 5 分钟换一次通报,随着时间推移,后期可以改成 15分钟、30 分钟等间隔。
  • 信息收集:按照标准模版,为该问题建立一个统一的文档,把文档链接放到群公告、故障群中。并持续将收集的关键信息(包括舆情)更新进去。方便后续加入到应急小组的同学快速了解上下文。
  • 对外发声:联系客服负责人,与客服团队合作,安抚客户。
  • 要求:
  • 前期要快:快速收集关键信息,黄金 10 分钟内要做到每分钟有信息更新,并持续通报。
  • 通报及时:好的信息通报是告知下次通报时间,例如 xx 问题 yy 正在处理中,目前情况是 zzz,xx分 钟后将进行下一次通报。如果有可靠和及时的通报,关注该问题的人只需持续留意信息通报即可,避免非专业的插手影响应急小组快速反应。
  • 联系外部支援:涉及到外部依赖方的时候,通过指挥员、应用 Owner 等渠道知晓外部接口人的时候,及时组织外部接口人加入到应急小组中来,并向对方通报问题上下文。

三. 快恢负责人:

  • 职责:根据故障现象、监控大盘,决策并执行预案。
  • 人选:应用 Owner/核心骨干、执行过该应用预案的团队成员。
  • 动作:执行快恢预案、制定其他候选恢复方案。
  • 要求:
  • 以恢复服务为第一优先级,问题根因分析请交给问题诊断负责人。
  • 既定预案不能快恢,也要继续探索其他可能的恢复手段。

四. 问题诊断负责人

  • 职责:定位故障根本原因,当快恢不起作用的话,该角色至关重要。
  • 人选:应用Owner/骨干、领域专家。
  • 动作:
  • 根据收集的信息,找到问题根本原因。
  • 向指挥员、通讯员提出要求,把外部支援邀请加入到应急小组中。

最后,

故障应急响应是维持系统高可用的最后一个机会,这个环节的不专业表现,对于稳定来说是最后彻底的失守。因此,跟预案演练一样,故障应急也需要重点锻炼。

工具

1. 支持多语言的轻量化代码扫描工具 - semgrep

静态代码扫描是投入产出比最高的一种质量保障手段。这款轻量的开源扫描工具 Semgrep 你需要了解一下。

Semgrep 是一种快速、开源的静态分析工具,可在编辑器中、提交和 CI 时查找错误和执行代码标准。支持的语言包括: Go · Java · javascript · JSX · JSON · Python · Ruby · TypeScript · TSX。

Semgrep 在你的电脑或构建环境中本地分析代码:不会上传任何代码。所以不用担心安全问题。

另外它的规则也很简单,看起来就像你已经编写的代码;没有抽象的语法树、正则表达式或痛苦的 DSL。

下面的例子是查看 print() 语句的规则:

开源地址:https://github.com/returntocorp/semgrep

2. 专注于建立大型个人知识库的笔记软件 - Trilium Notes

Trilium Notes 是一个分层的笔记应用程序,专注于建立大型个人知识库,支持 Windows 和 Linux 系统,macOS 只是简单支持。

功能特性:

  • 笔记可以排列成任意深的树。单个笔记可以放在树中的多个位置。
  • 丰富的所见即所得笔记编辑功能,包括带有markdown自动格式化功能的表格,图像和数学。
  • 支持编辑使用源代码的笔记,包括语法高亮显示。
  • 笔记之间快速导航,全文搜索和笔记挂起。
  • 无缝笔记版本控制
  • 笔记属性可用于笔记组织,查询和高级脚本编写。
  • 具有按笔记粒度的强大的笔记加密。
  • 关系图和链接图,用于可视化笔记及其关系。
  • 可用性和性能均能很好地扩展至超过 10 万个笔记。
  • 针对智能手机和平板电脑进行触摸优化的移动前端。
  • Evernote 和 Markdown 导入导出。
  • Web Clipper 可轻松保存Web内容。

开源地址:https://github.com/zadam/trilium

3. 西瓜视频开源的一款 Native 内存泄漏检测工具 - Raphael

谌天洲(字节跳动技术团队)

android 平台上的内存问题一直是性能优化和稳定性治理的焦点和痛点,Java 堆内存因为有比较成熟的工具和方法论,加上 hprof 快照作为补充,定位和治理都很方便。

而 native 内存问题一直缺乏稳定、高效的工具,仅有的 malloc debug 不仅性能和稳定性难以满足需要,还存在 Android 版本兼容的问题。

Raphael 是西瓜视频基础技术团队开发的一款 native 内存泄漏监控工具,具有接入简单、监控范围广、性能优良、 稳定性好的特点。广泛用于字节跳动旗下各大 App 的 native 内存泄漏治理,收益显著!

开源地址:https://github.com/bytedance/memory-leak-detector

方法

1. 程序员如何在业余时间提升自己?

淘系技术

程序员的工作非常忙碌,如何在繁忙的工作中利用碎片化时间学习或是做自己感兴趣的事情?

不管是新的应届生,还是两三年的职场人,甚至工作多年的职场老人都在关心这个问题。到底现在的程序员该如何利用业余时间从而让那个自己达到满意的状态呢?

淘系技术的工程师,给大家分享了一些经验。

如何利用工作以外的时间?

  • 通勤时间:在地铁上看书,其他交通工具上可以听书。
  • 午休时间:有人喜欢休息,有人喜欢看书,有人喜欢交流。
  • 运动时间:听听新闻。
  • 周末时间:阅读、健身、写作。

如何保持高效的工作状态?

  • 要规律生活,早睡早起。
  • 保持锻炼,规律健身跑步运动,缓解工作的疲劳。
  • 业余时间还是要慢下来,品味生活。

“业余时间”对自己提升要注意什么?

  • 要针对薄弱点去提升:业余时间要选择性的针对自己薄弱的点去提升。对于技术人员,还是以提高技术基础为主。
  • 先分析自己:首先需要有自己的一份技术栈大图,有哪些已经掌握的、哪些还不太熟悉、哪些完全不懂的,然后就可以针对自己的薄弱项进行针对性的学习。
  • 要深入思考:在学习过程中,要注意透过现象去看本质,常说的 Why、 What、How 在学习的过程中要常去思考。
  • 不要给自己设限:要尝试去寻找自己的突破点,在自己的技术边界不断拓展,而不是不断的去做一些重复的事情。

最后,

不管是什么职业,我们都需要继续提升。很多人觉得生活如一潭死水,工作没有任何提升。其实不外乎一个原因:想太多,做太少。解决方法很简单,放手去干

坚持很重要。我们的职业生涯,其实是一场没有终点的长跑比赛,短期内快一些没有任何意义。最终的胜利者一定是坚持跑的人,他们能跑赢,只是因为他们一直在跑。

共勉。

2. 高手是怎样炼成的?

罗振宇

一个高手之所以是高手,不是因为他在享受更多的自由,而是他看到了更多的限制。成为高手的过程,不是一个更放纵自己的过程,而是一个不断受到约束的过程啊。

来看一个例子:

2019 年的奥斯卡最佳纪录片奖颁给了一部纪录片《徒手攀岩》。这部影片记录的是一位叫做 Alex 的职业攀岩运动员,徒手爬上一座悬崖的过程。

感受一下:

请注意,这是徒手攀岩啊。

没有任何工具和保护措施,在近乎笔直的悬崖上,要往上攀登将近一公里,全程要几个小时。只要一次失误,只能是粉身碎骨,不会有第二种可能性。

这不是白白送死吗?可 Alex 不这样认为,他说:“风险和后果是两回事。徒手攀岩的风险很低,只是后果很严重。

咦?徒手攀岩风险很低吗?可控吗?在我们普通人看来,这是不可思议的,但 Alex 的答案是:可以。只要勤于练习。

为什么他敢这么说呢?因为他为了这次攀岩准备了 8 年,而且是在各种不同的条件下练习,一遍一遍地考察路线,带绳练习,记笔记。可以说岩石上,哪个地方有一个微小的凸起可以借力,哪个地方手和脚应该怎么配合,Alex 都熟记在胸、倒背如流。

所以,最终徒手攀岩的那一天,就像一场大型舞蹈表演。每一个动作都是事先彩排过无数遍的,Alex 只需要准确执行,没有什么惊喜。

这就是高手。

Alex 长期的训练,不只是做到动作熟练而已。他实际上是在感知一个个的限制。这条路线只能这么设计、这块石头只能用这个姿势踩、这个地方的手脚挪动只能按照这个顺序。

这是什么,这不就是我们常说的刻意练习吗?想成为高手,就要刻意练习,不断改进,能够准确的应对各种问题。

3. 如何应用对数据平台的隐私数据问题?

杨璐(Thoughtworks洞见)

为什么数据安全会成为当下最重要的安全问题?

  • 安全的战场已经从传统的网络与系统安全转移到了「云大物移智」,黑客也从过去无聊的脚本小子和炫技狂人过度到了组织与组织、国家与国家层面的对抗。
  • 激增的网络安全威胁让国家和行业都为之影响,不断出台新的法案,比如欧盟的《通用数据保护条例》、中国的《网络安全法》等,甚至出现了国家层面的网络安全对抗演习活动。

当安全已经成为数字化转型的关键时,数据安全的使用和过程的管理,就成为了不可回避的话题,我们先从“隐私数据”的保护说起。

为什么要关注隐私数据?

  1. 隐私数据包含的信息很容易具体定位到个人,滥用或者非法使用,可能造成对个人权益的侵犯。
  2. 以前掌握个人信息的是国家,但是现在某些企业拥有或者甚至超过了政府机构能覆盖的信息,企业行为的正义性与社会责任很大程度依赖企业自身的安全意识和道德准则,很难在行政方面得到有效控制。
  1. 网络边界不确定性和企业边界的日益模糊,让数据安全隐患扩大。

数据平台中的隐私数据有哪些问题?

  1. 缺乏整体的安全规划
  2. 从业务方面考虑,隐私数据存在于各个层面,而且客户类型多、场景复杂,数据访问控制和数据加密很难在这一时间准确投入并且应用其中。
  1. 大规模分布式存储和计算模式,导致安全配置难度成倍数增长。

如何应对数据安全的问题?

01 明确法律要求和安全需求之间的关系。

  • 安全部门:需要对存量数据设定周期性的清理,或者定制脱敏策略,定期清除客户数据;
  • 研发部门:需要将法律需求转化为功能需求和非功能的安全需求;
  • 客户接口部门:需要建立合适的流程和系统在客户提出删除功能的时候就能迅速响应。

02 关注生命周期,从源头解决问题。

  • 正视“安全左移”和“内建安全”。从需求阶段就开始解决是非常有效的方法,比如前期我们所做的威胁建模和风险评估,都是很好的发现问题的手段。
  • 应用数据驱动的内生安全新范式,从加密和授权认证的方式上解决合法用户使用软硬件或者信息资源的情况。

03 定位相关数据,整理隐私保护清单,时刻维护隐私安全策略。

  • 隐私设计:数据处理者以最小化的方式维护和设置他们的服务,原则上应该仅能提供数据服务所需要的数据。
  • 默认数据保护:包括任何预期对于数据主题的完整性保护,不应收集的可额外数据,以及向主体说明如何处理相关信息等。

04 安全意识高于一切,需要不断反思和坚持实践,使实践成为一种习惯。

应对数据安全问题的技术方案是什么?

  • 数据分类分级,在不同场景下有不同的应用。
  • 数据安全运维阶段,通过事前,事中和事后进行不断的调整。事前进行漏洞扫描和安全加固。事中从防火墙策略,加密脱敏等角度进行。事后从审计和日志管理来进行分析。
  • 隐私保护
  • 匿名化算法:根据不同场景和属性来定义方法和策略,将隐私数据中个人信息进行泛化或者屏蔽
  • 去标识化:将身份标识直接删除,只保留其他个人信息。还有一种是通过技术手段生成代替原有的身份个体。

言论

1、

对于期望值的考量在不利因素极为糟糕的情况下也适用。例如,即使你患癌症的几率很低,当你有疑似症状的时候,做一下检查来确认还是很值得的。

2、

3、

知乎上的那些神回复

Q: 有哪些东西你以为很贵,但其实很便宜?

A: 大学刚毕业的我。

Q: 中国程序员是否偏爱「冲锋衣+牛仔裤+运动鞋」的衣着?如果是,为何会形成这样的潮流?

A: 穿那么好看给程序看吗?

Q: 你读过的书中,有哪些让你觉得惊艳的开头?

A: abandon

Q: 为什么每次圣斗士出招前都要大喊一下招式?

A: 函数要先声明,才能调用。

Q: 祈求代码不出 bug 该拜哪个神仙?

A: 拜雍正,专治八阿哥。

Q: 颜值真的有那么重要吗?

A: 同样是互联网巨头 李彦宏是老公 而马云只能当爸爸

Q: 为什么人常会在黑夜里,变得矫情万分?

A: 要渲染的图像少了,CPU就有空闲来思考人生了。

Q: 员工辞职最主要的原因是什么?

A: 钱少事多离家远,位低权轻责任重。

Q: 为什么科技水平提高了,人却没有更轻松?

A:因为科技只管吃穿住行,不管贪嗔痴妒。

图片

1、软件是如何做出来的?

2、我会的 VS 老板让我做的

3、

我是程序员的大脑

订阅

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

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

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

(完)

以上是关于软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始的主要内容,如果未能解决你的问题,请参考以下文章

软件测试周刊(第33期):当夏季的光阴已然流逝

软件测试周刊(第84期):这个世界根本不存在“不会做”“不能做”,只有“不想做”和“不敢做”,当你失去所有依靠的时候,你自然就什么都会了。

软件测试周刊(第84期):这个世界根本不存在“不会做”“不能做”,只有“不想做”和“不敢做”,当你失去所有依靠的时候,你自然就什么都会了。

软件测试周刊(第33期):当夏季的光阴已然流逝

Python 周刊第 418 期

软件测试周刊(第54期):管他乐观还是悲观,都滚蛋,干就完了。