业界实战介绍-Google

1. 简单来说 Google 的迭代测试架构如下:

1.1 按照测试版本

1.1.1 金丝雀版本

        使用频率:每日都要构建
        使用人员:工程师、管理人员    
        目的:用来排除过滤一些明显不适宜的版本。

1.1.2 开发版本

        使用频率:一般是每周

        使用人员:开发人员日常使用    
        目的:判断是否能满足日常真实工作的需求    

1.1.3 测试版本

        使用频率:每个月的最佳版本

        使用人员:工程师,可能给外部合作伙伴 

        目的:可以被挑选为内部尝鲜版本,也可以作为 beta测试的候选版本。   

1.1.4 beta或发布版本

        由非常稳定测试版本演变而来,是对外发布的第一个版本。    

1.2 按照测试类型

1.2.1 小型测试

        一般来说(并非所有)都是自动化实现
        目的:验证一个单独函数或者独立功能模块的代码是否按照预期工作,着重于典型功能性问题、数据损坏、错误条件和大小差一错误。

        执行人员:一般由SWE来实现,少量由SET,很少由TE.
        通用称呼:通常就是单元测试,和外部隔离且没有依赖。

1.2.2 中型测试    

        通常也是自动化实现,会涉及两个甚至更多的模块交互。    
        目的:验证这些“功能近邻区"之间的交互,以及彼此调用之间的功能是否正确。

        执行人员:SET会驱动这些测试的实现和运行;    SWE会深度参与、一起编码、调试和维护这些测试。在开发后期TE会通过手动的方式或者自动化的执行这些用例。
        通用称呼:集成测试

1.2.3 大型测试    

        自动化测试、或者探索式测试
        目的:关注模块的集成,更倾向于结果驱动,验证软件是否满足最终用户的需求。    
        执行人员:SWE,SET,TE
        通用称呼:系统测试或端到端测试

1.3 激励机制

        目的:让开发重视测试工作
        测试认证描述:如果一个团队完成了一系列测试任务,这个团队会得到一个通过“认证”的标识。最初级别是0,掌握的基本的优秀代码习惯是1,然后继续通过水平考核,最终达到5。

  • 在Google,TE的主要职责包括:

2. Google 的测试人员架构

2.1 测试部门

        在Google,软件测试团队归属于一个被称为“工程生产力”(Engineering Productivity,也翻译成工程效率或者工程生产率)的中心组织部门,这个部门的指责横跨开发测试人员使用工具的研发、产品发布和各自级别的测试,从单元级别的测试到探索性级别的测试。

2.2 测开比例

        Google开发和测试的人员比例可能是10:1,甚至更大,在测试人员如此缺乏的情况下,写代码的开发人员也承担了质量的重任,在Google每一个写代码的开发者本身就是测试者。

        在Google,开发和测试融合在一起,开发和测试必须同时开展,他们认为开发者比专职的测试人员更适合做测试工作。

2.3 测试职责

        在Google,那些被认为是专职的测试者的人,他们实际的职责是让其他的工程师更有效率和质量意识,很大一部分体现在避免因马虎粗心而导致的返工。

2.3.1 Software engineer   

        开发部门 SWE的代码。负责自己的模块测试。开发角色,传统意义上的,实现最终用户所使用利用SET的成果来测试自己开发的的功能

2.3.2 software engineer in test

        开发角色,工作重心在可测试性和通用测试基础框架上,几乎花费百分之百的时间在编写代码上,供SWE测试自己的功能。

        SET是SWE在代码库上的合作伙伴,更关注于质量提升和测试覆盖率的增加。
        生产力部门模块,以及令人惊叹的自动化。 SET应该关注于高质量的、可测试的、可复用的

2.3.3 Test engineer    

        TE关注点,即把用户放在第一位来思考。测试角色,和SET关系密切,有自己的不同的关

        TE是真正的产品专家、质量顾问和风险分析师。

2.3.4 不同人员之间合作方式

        方式:测试人员(SET和TE)基本上以租借的方式进入产品团队
        汇报:测试人员并不是直接向产品团队进行汇报
        权力:测试部门有自己选择决定的优先级,在可
        两者合作方式配测试人员。靠性、安全性等问题上都不会妥协;可以自行分
        优点:SET和TE时刻保持新鲜感;好的测试想法可以快速在公司内部蔓延。(但是请注意,这一条是建立在Google的产品和服务很大程度上有比较强的集成关联关系,测试人员可以比较容易的保持相关的专业技能,从而自由穿梭。)

3. Google 的测试计划和风险

3.1 测试计划

3.1.1  愿景

        愿景应当在项目执行中发挥核心作用;应当在软件的整个生命周期中持续有效;随着代码库的更新而更新,时刻代表着最新的产品功能。

3.1.2 预期特性

        1)及时的更新

        2)描述了软件的目标和卖点

        3)描述了软件的结构、各种组件和功能特性的名称

        4)描述了软件的功能和操作简介    

3.1.3 最佳实践ACC建模方式

        1)Attribute Component Capability,即特质、组件、能力。整个ACC过程要快速行动,动态迭代。
        2)A代表特质,按照谷歌的定义,Attributes是产品的形容词( adjectives),是与竞争对手相区别的关键特征.    
A代表特质  
        3)Component 组件 是系统的名词,在特质被识别之后确定。     组件是构成待建系统的模块;他们正是测试人员要测试 的对象。   
        4)Capability 能力是系统的动词,代表着系统在用户指令下完成的动作。他们是对输入和响应、对查询的赢啊、以及代表用户完成的活动。能力处于特质和组件的交点。组件执行某种功能    来满足产品的某个特质,这个活动的结果是向用户提供某种能力。
        最重要的特点是可测试性。

3.2 风险分析
3.2.1 失败频率

        1)罕见 rarely    发生故障的可能性很小,恢复起来也很容易。    
        2)少见 seldom 少数情况下会发生,但在使用场景复杂度不高的情况下,发生的可能性很小。    
        3)偶尔occasionally    故障的情形容易想象,场景有点复杂,该能力是比较常用的。    

        4)常见 often    所属的特性使用量大、复杂度高、问题频繁    

3.2.2 影响

        1)最小minimal    用户甚至不会注意到的问题    
        2)一些 some    可能会打扰到用户的问题    
        3)较大 considerable    故障导致使用受阻    
        4)最大maximal 发生的障碍永久性的损害产品的声誉,并导致用户不再使用它。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值