愿和我一样读过这本书的人有所共鸣或者启发,愿没读过这本书的人,能获得一点点收获。。。
说到软件测试工程师,首先我们需要明白一个问题,软件测试工程师的职责是什么?
关于这个话题,不同的人有不同的定义;抛开这个话题,说说Google是怎么定义以及Google的TE是如何工作的。
软件测试工程师(Test Engineer):简称TE,评估软件应用对用户的影响以及软件产品整体目标上的风险的一种面向用户的测试角色。
1、TE何时进入项目
首先需要明确一点:并不是所有的项目都需要TE的介入;比如:
①试验性阶段、尚无明确目标或需求的早期产品,TE很少参与,甚至不参与;
②产品有很大可能被取消,项目被终止(只有一个概念或没做通过最终立项),或者功能还没定型等;
③即使已经确定要发布某个产品、项目,在研发的早起阶段,功能需求还在不断变更,最终功能列表和范畴还没确定,TE一般也没有太多工作需要进行;
因此,选择合适的阶段测试进入项目,很重要!一般来讲,给一个项目配备多少TE,以及何时介入,取决于项目风险、重要程度以及投资回报率。
2、当TE进入项目时,需要考虑什么
①当前软件的薄弱点在哪儿;
②有没有安全、隐私、性能、可靠性、可用性、兼容性以及其他的问题;
③主要用户场景是否正常?对用户来讲是否都是这样?
④这个产品可以和其他平台、产品(软件硬件)互操作吗?--个人理解:上下兼容,跨平台甚至更广阔的领域
⑤如果出现问题,能否容易找出问题所在并且快速解决?--个人理解:风险预估和防范机制
这几点只是不完整的几点,TE也并不需要自己去解决这些问题,但必须保证这些问题被解决!!!
TE的根本使命:保护用户和业务的利益,使之不受糟糕的设计、令人困惑的用户体验、功能BUG、安全和隐私等问题的困扰。
3、TE的职责描述
①测试计划和风险分析
②评审需求、设计、代码和测试--个人理解:目前来讲,国内大部分的测试接触代码还是很少的,但代码是测试发展的一个必然趋势
③探索式测试
④用户场景
⑤编写测试用例
⑥执行测试用例(包括提交BUG、跟踪、协助沟通修复以及回归等等)
⑦使用统计(测试每个阶段的版本迭代、BUG数量、质量指标、用时等等数据信息)
⑧用户反馈(这对于优化产品,提供更好的服务很重要)
4、测试计划
在每个项目中,最重要的产物,是代码!因此,每个技术项目团队,都需要对编码保持敬意。
测试计划的意义:在项目执行中发挥核心作用,在软件的生命周期内持续有效,时刻代表最新的产品功能,指导项目进展,可以帮助新加入的工程师快速跟上项目进展等。
优秀的测试计划应该有的一些特性:
①及时的更新
②描述软件产品的目标和卖点
③描述软件的结构、各种组件和功能特性的名称
④描述了软件的功能和操作简介
⑤描述了必须执行的测试点
⑥对测试工作提供有用的信息,帮助确定进展以及覆盖率的不足
ACC分析方法:即Attribute Component Capability,特质、组件、能力。这是从Google众多测试团队实践中总结的一个优秀流程,受众较多,搜索“Google Test Analytics”即可找到。
ACC指导原则如下:
①避免散漫的文字,使用简明的列表
②不必推销(测试计划的受众是工程师)
③尽量简洁(