对产品测试来说,无论开发模式是瀑布型、敏捷式还是DevOps,测试活动都可以概括为“测试需求分析”、“测试分析和设计”、“测试执行”和“测试质量评估”。无论在哪种开发模式下,产品测试都应该是“端到端”的:在产品的需求阶段,测试者就需要投入精力。
测试架构师是产品测试专家,是测试团队的灵魂人物。测试架构师能够对不同的组织、产品、研发模式做出最适合当前状况的选择并进行刚刚好的测试。平台型产品(不直接发布给用户)和要发布给用户的产品的测试策略是不一样的;快速开发的产品和战略型产品的测试策略是不一样的;继承型产品和全新开发的产品的测试策略也是不一样的。需要根据产品的特点,去选择最合适的测试方式,以“刚刚好”满足发布的要求。
问题来了,测试架构师在整个端到端的4个产品测试活动中具体要做什么?哪些是需要关心的事情?哪些不需要关注?本文从需求分析阶段开始。
需求是测试的源头。测试架构师在需求阶段的重点工作包括:
1)理解需求(产品商业目标,核心价值和用户使用场景)。
2)制定一份总体测试策略,以此来确定测什么和怎么测。
要想真正对需求有透彻理解,理解所测产品的商业目标、核心价值和用户的使用场景是第一步,也是测试策略的源头。
1. 理解产品的商业目标和核心价值
测试架构师在制定测试策略时,需要基于特性的价值来分类,来设置优先级、测试的重点,以及不同的测试深度和广度,以此来保证测试资源的最优分配和投入方案。
如何理解产品的商业目标和价值呢?
认识我们所在的领域,了解我们的公司、客户及商务,这是我们能做出最合适的测试策略的前提和基础。

2. 梳理用户的使用场景
梳理用户的使用场景是测试架构师需要重点关注的另外一项内容。
所谓“用户的使用场景”,简单来说就是用户将会如何使用这个产品。用户场景将直接体现产品的价值。因此,在测试之前,了解你的用户至关重要。
产品有多少种用户?这些用户的业务是什么?他们如何从你的产品中获得价值。
产品的竞争对手为用户提供了哪些有价值的解决方案?你们之间的差异是什么?
产品所在领域有哪些基本的规范和要求?行业背景有哪些?用户的习惯是什么?
测试架构师还需要把梳理得到的用户使用场景归纳为测试场景:
针对不同类型的用户,分别确定这些用户的行为习惯和关注点。
逐一分析这些用户会如何使用产品,根据分析结果建立产品的拓扑模型、配置模型、流量模型等,抽象出典型场景。
确定各个典型场景下的输入和输出(包括正常输入和异常输入、攻击,还需要考虑模拟测试的时间长短等)。
3. 输出产品总体测试策略
产品总体测试策略是测试架构师的重要输出之一,它就好像测试的总纲,帮助整个测试团队明确测试的范围、目标,测试的重点和难点,测试的深度和广度,以及如何安排各种测试活动(及测试分层)。
注意,测试重点是通过产品价值、质量目标、产品实现(新写代码、开源代码或是继承代码)、历史情况(主要针对继承类产品)和风险等多个因素确定测试的优先级;测试难点是从测试技术的角度对产品测试验证难易程度进行分析。
测试广度是从所能覆盖的测试类型的角度对产品测试进行的描述;而测试深度是从测试方法(如单运行测试、多运行测试、边界值或错误输入等)的角度对测试进行的描述。
测试分层让我们把一个复杂的测试分成多个不同的阶段,每一个阶段都有自己的测试目标和出入口条件,我们可据此来安排测试活动,让测试过程变得有序、可控。
我们还可以使用缺陷趋势预判技术,得到当前的缺陷趋势预判图,通过量化评估的方式为我们后续调整测试策略提供依据。
如果把测试需求分析、测试分析设计、测试执行、测试质量评估等测试活动比做珍珠,测试策略就是那根穿珍珠的线。
摘取自刘琛梅老师的《测试架构师修炼之道:从测试工程师到测试架构师 第2版》
网友评论