一种面向用户的测试角色
一种用户开发者,TE首先必须是工程师,Google的TE他综合了开发者仰慕的技术能力和以用户为中心检查软件质量而对开发者产生一定制约的能力。在研发的早期阶段,功能还在不断变化,最终功能列表和范畴还没有确定,通常TE没有太多工作可做。在TE进入产品时,需要考虑以下问题:
- 当前软件薄弱点在哪里?
- 有没有安全、隐私、性能、可靠性、可用性、兼容性、全球化和其他方面的问题?
- 主用户场景是否功能正常?对于全世界不同国家的用户都是这样吗?
- 这个产品能与其他产品互操作吗?
- 当发生问题时,是否容易诊断问题?
在Google中,TE是一个团队中全职负责从整体角度发现产品或服务弱点的唯一角色。TE的工作内容随项目而变化。一些会编码(中到大型测试),一些会检查代码和设计以确定失效模式,并寻找导致失效的错误路径。TE会在测试计划和测试完整性上更加系统和周密,重点在真实用户的使用方式和系统级别的体验上。TE擅长发现需求中的模糊之处,分析沟通不明确的问题。TE一旦找到薄弱点,会通过测试使软件出错,然后与开发、产品、SET一起推动解决这些bug。TE通常是团队最出名的人,因为他们需要与各种角色沟通。考虑到技术能力、领导力、深刻理解产品能力等多方面要求,很多人难以胜任这个工作。
关于TE职责的一般性描述:
- 测试计划和风险分析
- 评审需求、设计、代码和测试
- 探索性测试
- 用户场景
- 编写测试用例
- 执行测试用例
- 众包
- 使用统计
- 用户反馈
ACC(Attribute Component Capability,即特质、组件、能力)是一种测试计划的替代,Google认为做出一个不直接指导测试的计划纯粹是浪费时间。
- A代表特质,代表了产品的品质和特色。一般产品经理会整理一个系统特质的列表,测试人员通过阅读产品需求文档,销售材料可以确定这个列表。
- C代表组件,是构成系统的模块。
- C代表能力,代表着系统在用户指令下完成的动作。比如一个在线商店具有能力:从购物车里增加或删除物品,获得信用卡和验证数据,使用HTTPS处理交易,基于购物者正在浏览的商品提供建议,计算送货成本,显示剩余库存,推迟购买,搜索商品。能力最重要的一个特征是可测试性。
TE的招聘
难以找到融合编程和测试两种技能的人才。一开始,Google考察测试资质,意图在于弄清候选人是否不只是聪明和具有创造性,是否具有天生的测试才能。一个常见题目是给候选人一个Web页面,上面有一个文本输入框,一个计数按钮用于计算一个文本字符串里大写字母A出现的个数。要求候选人设计出一系列字符串来测试这个web页面。如果候选人一头扎进去写测试用例,那这是个危险的信号。只追求数量而非质量是低效的表现。Google更看重