大的软件大公司发展趋势大致是这样的,单纯只做测试的人员会越来越少,不会消失,但是不再需要那么多,慢慢的转移到开发人员自己保证质量。这样的责任转移会使得开发在一开始做的时候就非常注重质量,关心质量,而不是做完之后,靠测试人员测出问题,保证质量,这样串行的工作成本很高,也很适应敏捷的时代。
?一个团队能编写出高质量软件的唯一途径是全体成员功能对质量负责,包括产品经理、开发人员、测试人员等所有人,达到此目标最好的方式是使测试人员能有能力将测试变成代码库的一个实际功能,而测试功能的地位赢与真实客户看到的任何其他功能同等重要。
1.1 质量不等于测试
1.2 角色
谷歌工程师分为三个角色:
-
SWE(Software Engineer):软件开发工程师
-
SET(Software Engineer in Test):软件测试开发工程师
-
TE(Test Engineer):? 测试工程师
1). SWE是传统意义上的开发角色
SWE 100%时间在写代码上,更专注客户使用功能的开发。
如果修改产品代码导致测试代码失败,SWE需要负责修改相关测试代码?。
他们的主要工作是实现最终用户所使用的功能代码,创建设计文档,选择最优的数据结构和整体框架,花费大量的时间在实现代码和代码审核上。
主要职责如下:
-
编写代码
-
测试代码
-
测试驱动的设计
-
单元测试
-
参与构建各种大小规模的测试
2). SET其实也是开发角色,主要服务于开发人员
?SET也是100%的时间在写代码上,但工作的目的是为产品质量服务。
?主要关注对象是开发人员。
主要职责如下:
-
100%时间在编写代码,SET和SWE是合作伙伴
-
工作重心在可测试性和通用测试基础框架
-
参与设计评审
-
为了增加可测试性,甚至会对代码重构
-
编写单元测试框架
-
编写自动化测试框架
-
更关注质量提升和测试覆盖率的增加
3). TE指的就是软件测试人员
TE是和SET关系密切的角色,把用户放在第一位来思考,代表的是用户的利益。
主要职责如下:
-
产品专家,质量顾问和风险分析师
-
大量时间在模拟用户的使用场景
-
构建端对端的自动化脚本
-
少量的代码编写
-
把SET,SWT组织起来分析,解释,测试运行结果
-
驱动测试执行,推进产品发布
|