今天开始学习第3章(测试工程师),SET负责可测试性和测试自动化体系的长期有效性,而TE的重点在于评估对用户的影响以及软件产品整体目标上的风险。
1.一种面向用户的测试角色
TE:用户开发者,一个产品团队的所有工程师都是某种类型的开发者,这是团队成员地位平等的一个重要体现。TE以对某种特定的产品最合适的方式发现软件中风险最大的地方并尝试减少或消除它。在项目的早期工作中,面向的更多是SET,而项目后期,才是面向TE的任务。
2.测试工程师的工作
当TE进入产品时,需要考虑以下问题:软件薄弱点;软件是否有安全、隐私、兼容性、全球化等方面的问题;主要用户场景功能是否正常等...TE是一个团队中全职地负责从整体角度发现产品或服务弱点的唯一角色。TE可能会介入项目的各个阶段:从产品的构思阶段到第8个版本。
TE主要写中到大型的测试,在测试计划及测试完整性上必须更加系统和周密,且擅长发现需求中的模糊之处,分析沟通不明确的地方。TE需要与各种角色沟通,需要技术能力、领导力、深刻理解产品的能力多方面的要求。以下是TE职责的一般性描述:a)测试计划和风险分析;b)评审需求、设计、代码和测试;c)探索式测试;d)用户场景;e)编写测试用例;f)执行测试用例;g)外包;h)使用统计;i)用户反馈;
1)测试计划
理想情况下,测试计划应当发挥核心作用,在软件的整个生命周期中持续有效;随着代码库的更新而更新,时刻代表最新的产品功能,而不是停留在项目开始阶段时的样子。
测试计划应该具有的特性如下:a)及时更新;b)描述软件的目标和卖点;c)包含软件的结构、各组件和功能特性的名称;d)描述软件的功能和操作;e)描述必测点;
ACC是一种测试计划的替代方法。ACC的指导原则如下:a)避免散漫的文字,推荐使用列表;b)不必推销;c)简洁;d)不要把不重要、无法执行的东西放入;e)渐进式的描述;f)指导计划者的思路;g)最终结果应该是测试用例。ACC指导计划者依次考察产品的三个维度达成这个目标:描述产品目标的形容词和副词;确定产品各部分、各特性的名词;描述产品实际做什么的动词。
a)A代表特质(Attribute)
特质代表了产品的品质和特色,是区别于竞争对手的关键。需弄清楚我们为什么要开发这个东西?它能带来什么核心价值?它靠什么吸引用户?这样在测试过程中,就可以将测试用例关联到这些标签。可以通过如下方式确定产品的特质:简单、精确、变化、短小。使用特质的目的在于测试人员会意识到自己所做的测试是如何对产品存在的根本原因产生影响的。
b)C代表组件(Component)
组件是构成待建系统的模块,是使一个软件之所以如此的核心要素和代码块。对大型系统来说,组件是架构图中的框架;对小型项目来说,他们是代码里的类和对象。
c)C代表能力(Capability)
能力是对输入的响应、对查询的应答,以及代表用户完成的活动。如一个购物app具有商品搜索和完成一笔交易的能力。组件执行某种功能来满足产品的一个特质,这个活动的结果是向用户提供某种能力。能力表达的是用户眼里系统的行为,应当描述系统的完整功能。在前面的例子中,能力只要说明用户可以购物,而测试用例则要指定他们买什么东西。能力与测试用例的关系:每个能力至少对应一个测试用例;很多能力需要多个测试用例;并非所有能力同等重要。
ACC的完成,意味着所有可测试性的特性定义好了,剩下的就是预算和时间,这些需要排优先级,进行风险分析。
今天到此为止,自我感觉能力比我们常说的feature列表可能更细化,但比用例又抽象,着重于主要场景,明天从3.2.2风险开始~