码迷,mamicode.com
首页 > 其他好文 > 详细

测试架构师修炼之道:2 软件测试架构师应该做和不该做的事情

时间:2016-08-12 21:20:36      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

测试架构师修炼之道:2 软件测试架构师应该做和不该做的事情

2016-08-12

测试架构师应该考虑以下问题:

  • 测试的目标是什么?
  • 测试的范围是什么?
  • 测试的深度和广度是什么?
  • 测试的重点和难点是什么?
  • 如何安排测试?
  • 如何评估测试结果?

目录

1 测试架构师在需求分析中
  1.1 理解产品的商业目标
  1.2 梳理用户的使用场景
  1.3.输出产品总体测试策略
2 测试架构师在测试分析和设计中
  2.1 制定阶段测试策略
  2.2 落实测试设计策略,保证测试设计的质量
3 测试架构师在测试执行中
  3.1 制定版本测试策略
  3.2 跟踪测试执行
  3.3 版本质量评估和建立版本质量档案
4 测试架构师在测试质量评估中

1 测试架构师在需求分析


 返回

测试的源头是需求。软件测试架构师在需求阶段,需要重点完成的工作是:

  • 理解需求
  • 制定一份总体测试策略,来明确测试范围、测试目标、测试重点和难点、测试深度和广度。

此时测试架构师不应该陷入产品的实现细节中去,这时正确的方向和清晰的目标比细节更重要。

如何才算“理解需求”?参与每一场需求的讨论,熟读每一条需求规格这样就够了吗?此时花一些时间来理解产品的商业目标,梳理用户的使用场景,往往会为后面的工作带来事半功倍的效果。

1.1 理解产品的商业目标

产品的商业目标是测试架构师需要理解的首要问题。

Dave Hendrichson在他的著作12 Essential Skills for Software Architects(《软件架构师的12项修炼》张菲译,机械工业出版社出版)中提出“系统架构师在考虑构想软件架构的真正价值时,不能只是关注系统构造的技术方面,更要对客户价值和商务价值——你能帮助客户真正解决怎样的问题?你怎样帮助公司赚钱?——有深刻的认识”。这点对于软件测试架构师来说同样适用。

在这本书中,Dave Hendrichson用一个气泡图形象地概括了商务知识和软件架构的交错关系,如图1所示。

技术分享

图1 Dave Hendrichson的气泡图

和系统架构师一样,软件测试架构师同样需要理解下述问题:

  • 公司中的营销和销售人员如何细分客户?
  • 每个细分市场的关键价值主张是什么?
  • 公司试图增长哪些细分市场?如何增长?
  • 每个市场是谁做出购买决策的?
  • 每个细分市场的主要竞争对手是谁?
  • 公司对此产品的策略主张是什么?所在的产品是如何融入这一战略的?

并能够围绕下述内容展开测试活动:

  • 如何验证待测试的产品正确体现了市场价值?
  • 所做的测试策略是否和公司的财务、销售、营销目标一致?

1.2 梳理用户的使用场景

所谓“用户的使用场景”,简单来说,就是指用户将会如何使用这个产品。用户场景将直接体现产品的价值。因此,在测试之前,了解你的用户至关重要:

  • 产品有多少种类型的用户,这些用户的业务又是什么,他们如何从你的产品中获得价值(比如通过你的产品赚钱,获得某种资源)?
  • 产品的竞争对手对用户提供了哪些有价值的解决方案?你们之间的差异是什么?
  • 产品所在领域有哪些基本的规范和要求,行业背景有哪些,用户的习惯是什么(如完成各种活动的顺序、对活动完成的判断标准和可能的重要决定等)?

然后软件测试架构师需要把梳理的用户使用场景,归纳为测试场景:

  • 针对不同类型的用户,分别确定这些用户的行为习惯和关注点。
  • 逐一分析这些用户会如何使用产品,根据分析结果建立产品的拓扑模型、配置模型和流量模型等,抽象出典型场景。
  • 确定各个典型场景下的输入和输出(包括正常输入和异常输入、攻击,还需要考虑模拟测试的时间长短,等等)。

1.3 输出产品总体测试策略

输出产品总体测试策略是软件测试架构师在这一阶段的重要输出。它的作用,就好像测试的总纲,帮助整个测试团队明确测试的范围、目标,测试的重点和难点,测试的深度和广度,以及如何安排各种测试活动(及测试分层)。

测试重点和测试难点是完全不同的两个概念:

  • 测试重点是由产品价值、质量目标、产品实现(新写代码、开源代码或是继承代码)和历史测试情况(主要针对继承类产品)等多项因素综合决定的。
  • “测试难点”是从测试技术的角度来说的,是对产品测试验证难易程度的分析。

测试深度和测试广度也有所不同:

  • 测试广度是从覆盖的角度来对产品测试进行描述;
  • 而测试深度是从测试方法(如单运行测试、多运行测试、边界值或错误输入等)来对测试进行描述。

当我们对每个特性确定了测试重点和测试难点、测试深度和测试广度之后,测试的总体思路也就随之明确了。后面的自动化策略、探索测试策略、测试分析和设计的策略也变得明确了。

测试分层帮我们将一个大的测试目标分解为若干小的测试目标。这样我们可以逐层测试,逐层评估测试结果,并根据测试结果不断修正测试策略,不仅让测试目标变得可以达到,还让整个测试过程变得可控。

上述内容构成了测试的整体框架。我们可以在这个框架下不断细化,再输出阶段测试策略和版本测试策略等。如果把测试需求分析、测试分析设计、测试执行、测试质量评估等测试活动比作珍珠,测试策略就是那根穿珍珠的线,贯穿始终。

2 测试架构师在测试分析和设计中


 返回

2.1.制定阶段测试策略

阶段测试策略是指按照测试分层来确定每个测试层次的测试策略,阶段测试策略也是总体测试策略的进一步分解。

技术分享

图2 “V模型”下的测试分层举例

阶段测试需要关注的内容包括:

  • 每个阶段的测试对象、目标。
  • 每个阶段的出入口准则。
  • 如何选择测试用例。

出入口准则其实是确定这一阶段的质量目标和验收标准。有时候,测试阶段也是环环相扣的,例如我们要想进行性能测试,就需要将功能稳定作为前提,这时功能稳定就是性能测试的一个入口条件。

出入口准则并不是限制测试的,其实是测试和开发的约定。

2.2 落实测试设计策略,保证测试设计的质量

方法上,软件测试架构师可以使用《测试分析设计表》来保证测试设计符合测试策略。关于这部分的内容,请参见7.4.1节。

3 测试架构师在测试执行中


 返回

技术分享

图3 软件测试架构师在测试执行中的主要工作

3.1 制定版本测试策略

主要内容包括:

  • 测试范围和计划相比的偏差。
  • 本版本的测试目标。
  • 需要重点关注的内容。
  • 测试用例的选择。
  • 测试执行顺序。
  • 试探性的测试策略。
  • 接收测试策略。
  • 回归测试策略。
  • 探索测试策略。
  • 自动化测试策略。

我们将在8.1~8.2节及8.4节中

3.2 跟踪测试执行

具体内容包括:

  • 跟踪测试用例执行的情况。
  • 每日缺陷跟踪。
  • 调整测试策略

3.3 版本质量评估和建立版本质量档案

版本质量评估是对每个测试版本的质量总结。方法上,我们可以使用软件产品质量评估模型来进行质量评估。对软件产品质量评估模型的介绍,请参见6.3节;如何进行版本质量评估,请参见8.4节。

表1 特性版本的质量档案模板

技术分享

4 测试架构师在测试质量评估中


 返回

和版本质量评估不同,此时的质量评估是指阶段质量评估或者发布时的质量评估,需要给出“能否进入下一阶段的测试”或者“发布”的结论。

方法上,阶段质量评估依然使用软件产品质量评估模型来进行评估,需要重点关注的内容包括:

  • 确认总体测试策略中重要的质量目标是否达到。 
  • 对总体测试策略中未达标的一般性的质量目标,确定应对措施。
  • 进行遗留缺陷分析。

 

测试架构师修炼之道:2 软件测试架构师应该做和不该做的事情

标签:

原文地址:http://www.cnblogs.com/Ming8006/p/5766133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!