google测试之道学习笔记系列(一)


三种角色:

(1)SWE(Software engineer):是一个传统上的开发角色,他们的工作是实现最终用户所使用的功能代码。SWE需要编写与测试代码。包括测试驱动的设计、单元测试、参与构建各种大小规模的测试等。

(2) SET(Software engineer in test):也是一个开发角色,只是工作重心在可测试性和通用测试基础框架上。更加关注质量的提升和测试覆盖率的增加。SET写代码的目的是为了让SWE测试自己的功能。部分职责是在单元测试方面给予开发人员支持,另外一部分职责是为开发人员提供测试框架,以方便他们编写中小型测试。

(3) TE(Test engineer): 测试工程师,把用户放在第一位来思考,TE组织整体质量实践,分析解释测试运行结果,驱动测试执行,构建端到端的自动化测试。TE是真正的产品专家、质量顾问和风险分析师。从开发的角度来看,他们编写用户使用场景方面的自动化用例代码;从产品的角度看,他们评估整体测试覆盖度,并验证其他工程师角色在测试方面合作的有效性。

SET主要关注对象是开发人员,SET的主要职责是让开发者可以很容易的编写测试代码,从而达到独立功能模块的质量要求。

TE的主要职责是专注用户的测试。


测试的规模:

(1) 小型测试: 单元测试,通过自动化方式实现。是由SWE来实现,也会由少量的SET参与,TE几乎不参与小型测试。一般使用mock(mock对象是对外面依赖系统的模拟,在运行时刻可以根据假设的需求提供期望结果。)和fake(fake对象是一种虚假的实现,内部使用了固定的数据或逻辑,只返回特定的结果。)。

(2) 中型测试:集成测试,通常也都是自动化实现的。SET会驱动这些测试的实现及运行。SWE会深度参与。

(3) 大型测试:系统测试或端到端的测试。验证软件是否满足最终用户的需求。所有的三种工程师角色都会参与到大型测试之中。

各种测试规模的益处:

(1) 小型测试

  •   可以很快的运行完毕,因此在有代码变更的时候就可以立即运行,从而可以较早地发现缺陷并提供及时的反馈。
  • 在所有的环境都可以可靠地运行。
  • 有较小的测试范围,这样可以很容易地做边界场景与测试条件的测试。
  • 使用mock或fake华宁,可以不与真实的环境同步。
  • 由于范围比较小,出现bug可以很容易的定位。
(2) 中型测试
  • 由于不需要使用mock技术。且不受裕兴时刻的限制,因此该测试是从大型测试到小型测试的一个过渡。
  • 运行速度相对较快,可以频繁地运行他们。但是运行速度没有小型测试快。
  • 可以在标准得开发环境中运行。
  • 依赖外部系统,因此它们本身就有不确定性。
(3) 大型测试
  • 测试最根本最重要的:在考虑外部系统的情况下应用系统是如何工作的。
  • 由于对外部系统有依赖,因此也是不确定性的。
  • 很宽的测试范畴意味着如果测试运行失败,寻找精准失败根源就会比较困难。
  • 测试数据的准备会非常耗时。
  • 大型测试属于较高层次的操作,如果想要走到特性的代码路径区域是不切实际的,而这一部分却是小型测试的专长、
总结:小型测试带来优秀的代码质量、良好的异常处理、优雅的错误报告;大中型测试带来了整体产品质量和数据验证。

检验一个项目的里小型测试、中性测试和大型测试之间的比率是否健康,一个好办法是使用代码覆盖率。
几种不同类型测试比率:70%的单元测试、20%的中型测试、10%的大型测试。


测试开发工程师的职责:

设计文档评审:需要考虑整个系统的可测试性?系统的可测试性如何评估。

自动化计划:在自动化上投入的越多,维护的成本就越大。在系统升级变化时,自动化也会更加不稳定。在端到端的自动化测试上过度投入,常常会把你与产品的特定功能设计绑定在一起,这部分测试在整个产品稳定之前都不会特别有用。

测试执行:测试自动化不仅仅是自动化测试程序的编写。如果想让这些测试程序更有价值,必须要去考虑如何编译测试程序,执行、分析、存储和报告所有的测试运行结果。因此一个可以做代码编译、测试执行、结果分析、数据存储、报表展示的通用测试框架逐渐形成了。


依赖树分析:分析每次变更可能影响的用例,然后只回归该部分的用例即可。


测试运行要求:

(1) 每个测试和其他测试之间都是独立的,使他们就能够以任意顺序来执行。

(2) 测试不做任何数据持久化方面的工作,在这些测试用例离开测试环境的时候,要保证测试环境的状态与测试用例开始执行之前的状态是一样的。

保证测试环境的有效性。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值