【读书笔记】《Google软件测试之道》——第3章:测试工程师(

2016-07-13  本文已影响125人  小静默

    又隔了好久了,主要是上周比较忙,今天接着上一篇http://www.jianshu.com/p/0332183aae9b,从3.2.2风险开始读~

    2)风险

    确定风险的过程称为风险分析。

    a)风险分析

    在Google,主要确定两个要素:失败频率和影响。风险是一个定性的相对值,而不是一个定量的绝对值。风险分析的目标不是要给出一个精确的值,而是要识别一个能力与另一个相比风险是大还是小。在GTA(GTA:Google Test Analytics)中风险频率有4个预定义值:罕见、少见、偶尔、常见;风险影响也有四个值:最小、一些、较大、最大。风险评估完后,还需听取公司其它同事的意见,比如:开发、PM、销售人员、总监和VP,可将自己的结论给他们看,一旦他们发现有偏差,会提出自己的意见。

    b)风险缓解

    我们可以围绕风险大的能力点编写用户故事;编写回归Case;可以插入监听代码,更好的检测到故障;可以插入代码监听软件,发现新旧版本的变化。测试人员可能会参与到实际的缓解过程,但更主要的是暴露风险。原则是:如果不能全测,就先测最重要的,也就是风险最大的。

    c)关于风险最后的话

    理解风险在组织的各个层次都有价值。GTA帮助我们识别风险,测试帮助我们缓解风险,TE则是缓解活动的协调人。TE有责任理解所有的风险点,并使用可以利用的任何手段予以缓解。手段包括:对于高风险的能力点,要写一系列有针对性的用户故事;评估SET和SWE的测试对GTA所暴露的风险级别;分析每个高风险的bug,保证存在回归Case;思索高风险的区域,咨询回滚和恢复机制;引入尽可能多的相关各方。

    用户故事的焦点在于对用户的价值,而测试用例则比用户故事更具体,测试用例通常指定了具体的输入和输出。

    对于风险较低的能力点,可能会选择进行探索性测试,或者使用众包测试(一部分对测试懂行的高级用户,愿意来帮忙并拿到合理的报酬)。ACC的威力在于它能确定能力点,按风险排序,然后分配给所有的质量伙伴。

    3)测试用例的生命周期

    和很多公司一样,Google最开始使用电子表格和文档来记录Case,表格优于文档,可通过表列结构,方便的支持过程、数据以及标签等的记录,也易于定制。但随着用例越来越多,Google使用Google测试用例管家GTCM(Google Test Case Manager).

    GTCM的设计思想是简化测试用例的编写。它提供标签格式,便于查找和复用。GTCM相关的数据有助于理解测试人员使用测试用例的整体情况。测试用例总数正在接近一个渐进线。因为,GTCM主要管理手工测试用例,而许多团队正在自动化他们的手工测试,这就降低了内部GTCM中用例的总量。GTCM有个重要需求:简单清楚的API,它使用Restful的Json API。

    4)Bug的生命周期

    Google的任何人都可以发现并报告bug,比如:产品经理、开发人员、社区经理、SVP,还有些内部版本的应用有一键报告bug的功能。Google使用Buganizer来管理bug。个人感觉这个工具和我们目前使用的JIRA很类似。

    许多团队在bug到达的速度超过了其修复能力的时候,干脆不再进行新功能的开发,集中精力于少量测试过的代码、增量式的测试以及内部试用,这将有助于将bug置于有效控制之下。另外,有些项目还会使用外部可见的数据库,如Bugzilla、Issue Tracker。PS:安全bug有时会被隐藏起来直到被修复,以免泄密给黑客。

    Google的项目主要有两种状态:新的、处于快速开发中的项目;已成型的、增量式发布中的项目。前者不断有问题出现,后者则有大量的单元测试和容错性测试做保证。

    Google的用户可使用Google Feedback提交某个产品的bug,用户无需知道bug是否已被修复,只用反馈,反馈的问题可能成千上万,Google使用了聚类算法来自动识别重复记录并确定最频繁的问题,精简到10个左右的主要的、共性的问题。

    对于发现bug的测试用例,尽可能自动化,不能自动化的,也需编写手工用例,提交到GTCM中。

    5)TE的招聘

    测试的重要一面是做确认,大量的测试工作是计划执行和完成确认。使程序崩溃并不总是我们的目标。以极端的输入数据来测试软件很有意思,但更常用的是一遍一遍地模拟真实的使用场景,确保在这些通用条件下,软件的运行不会出错。在面试时我们会寻找这种正面的测试观。

    Google的面试既要考察一般的计算机科学和技术技能,也要考察候选人的测试潜力。从构建工具、接洽客户、到跨团队和依赖的协调等,TE能够适应几乎所有角色。TE经常能担当领导角色,能理解各种设计问题和风险。面试时还需考察另一个关键特征,即TE所需具备的处理模糊性、反驳糟糕想法的能力。

    最后,Google味儿也很重要,我们需要有好奇心、充满热情的工程师,他们不会满足于简单完成被分派的工作,而是会进一步探索各种可能性,尝试工作描述之外的东西。

    本篇到此为止,关于风险、优先级和TE的面试的介绍给了我很多启发,也更加明确了TE的职责~ 

    另外,TE的招聘中高级TE的思维让人惊叹,自叹不如!

上一篇下一篇

猜你喜欢

热点阅读