说说 Google 的软件测试

1 什么是质量

开发对质量负责。当 Google 把开发过程和测试放在一起,就得到了质量。

质量是开发过程的问题,因此 Google 创建了一个增量上线的流程。如果一些项目在线上被证实问题重重,那么它就会被回滚到之前的版本。

2 角色

2.1 软件开发工程师(SWE)

软件开发工程师(Software engineer)是一个传统上的开发角色。他们创建设计文档、选择最优的数据结构和整体架构,并花费大量时间在代码实现和代码审核上。SWE 要编写和测试代码,包括测试驱动的设计、单元测试、参与构建大小规模的测试等工作。如果系统需要新增一个测试用例,那么他就必须去实现这个测试用例的代码。

2.2 软件测试开发工程师(SET)

软件测试开发工程师(Software engineer in test)也是开发角色,只是他们的重心在可测试性和通用测试基础框架上。SET 是 SWE 的合作伙伴,SET 更关注质量提升和测试覆盖率的增加。SET 也是写代码,只不过他们这样做的目的是为了提升质量。

SET 会让 SWE 可以很容易编写测试代码,从而达到独立功能模块的质量要求。

2.3 测试工程师(TE)

测试工程师(test engineer)把用户放在第一位来考虑,他们代表着用户的利益。也有一些 TE 会花费大量的时间来模拟用户的使用场景和自动化脚本或代码的编写上。

有这样一个测试框架,它可以把新开发的代码隔离,通过模拟一个真实的工作运行环境和代码提交队列来管理代码的提交。

3 组织结构

测试是独立存在的部门,Google 称之为工程生产力团队。测试人员是以租借的方式进入产品团队,去做提高质量相关的事情。

这种测试人员在不同项目之间借调的模式,可以让 SET 和 TE 时刻保持新鲜感并且总是很忙碌,并且还能保持一个好的测试想法可以快速在公司蔓延。

4 迭代版本

在一个产品的基本核心功能实现后,就立刻对外发布使用,然后从用户那里得到真实反馈,然后再进行迭代开发。

  1. 金丝雀版本:这是每日构建的版本,用来排除过滤一些明显有问题的版本。子所以叫金丝雀,因为在 17 世纪,英国人将金丝雀放到煤矿井中来检测空气质量,如果金丝雀死了,所以空气中有毒。一般来说,只有产品的开发或者测试人员以及管理人员才会安装这一版本。
  2. 开发版本:这是每周发布的版本,也是开发人员日常使用的版本。如果这个版本不能满足日常真实工作的需求,就会被打回金丝雀版本。
  3. 测试版本:这是最近一个月的持续集成版本。如果该版本有持续优良的表现,也会作为 beta 版本的候选版本。
  4. beta 版本:经历过内部使用和通过所有质量考核的版本,也是对外发布的第一个版本。

5 测试类型

  1. 小型测试:大部分是通过自动化实现的。一般使用模拟对象来独立运行。验证一段代码是否按照预期的方式/来运行。由 SWE 来实现,也会有少量的 SET 参与,TE 不参加。
  2. 中型测试::大部分也是通过自动化实现的。验证模块之间的交互,以及彼此之间的交互是否正确。如果一个中型测试运行失败,SWE 会自觉地区查看分析原因,在开发后期,TE 会把那些难以实现自动化或者实现代价较大的用例手工执行。
  3. 大型测试:关注的是所有模块的集成,验证软件是否满足最终用户的需求,算是结果驱动。SWE、SET、TE 都会参与到大型测试中。大型测试关注的重点是整体产品或服务上的操作行为。

Google 喜欢频繁地发布,并快速地从外部用户那里得到产品的真实反馈,然后再迭代开发出新功能。

如果测试能够自动化,那就应该以自动化的方式实现。但有些情况需要有人来判断,比如,用户界面是否美观、保留的数据是否包含隐私等情形,还是需要由人来测试的。

Goolge 也有大量的手动测试,有些是把每一个步骤都记录下来的用例进行测试,有些是使用一些探索化的方式测试。通过定位点击的验证方式、录制等技术手段,可以把一些手动测试转换为自动测试。自动测试在每次构建时会重复回归运行,特别适用于保证原有功能的质量,而手动测试更关注新功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值