为什么测试?
在现在充满挑战的商业环境中,组织将焦点集中在如何通过所发布的软件获得最大的商业价值。因此,加快开发周期以及提高软件质量变得越来越重要,而且低质量软件带来的风险也越大。测试是组织中最重要的用于控制这些风险的手段。
测试提供对软件质量以及相关的风险的检视。根据检视,组织可以做出决定是否将软件投入使用。由于适当的测试,组织可以做出更好的决定以及有效控制风险。
Sogeti(http://www.us.sogeti.com/ )的测试管理方法可以帮助我们更快地发布高质量的复杂的软件。
机构化测试
一个被良好定义的结构化的测试过程对于有效测试是非常重要的。一个结构化的测试方法可以带来如下好处:
- 对于和软件质量相关的风险做出完整的检视和建议
- 一个清晰的测试过程更有利于时间、成本和质量的管理
- 当软件质量不高时,一个前摄的测试过程可以在早期提出警告
- 在早期发现缺陷的能力
- 预防缺陷的能力
- 在整个开发周期的关键路径中,测试阶段更短
- 测试过程产出的重用(如测试脚本和测试用例)
- 一致性和标准化——所有参与的人将使用同样的测试语言。
TMap以下面的4项基石(cornerstone)构成方法体系
- 与软件开发生命周期一致的测试活动生命周期(L)
- 坚实的组织融合?(O)
- 正确的基础设施和工具(I)
- 可用的技术(T)
机构化测试过程的4个基石
生命周期基石描述了在测试过程的某些特殊阶段需要实施的活动,而组织基石主要强调如下两个关键点:
- 测试小组中的每个人都必须被分配任务和承担责任;
- 测试小组融入到项目组织中。
基础设施基石说明为了获得最优化的结果,需要适当的基础设施和工具。“测试环境”必须稳定、可控制和有代表性的。同时,有必要通过工具的使用提高测试的有效性。
最后的一个基石是指支持测试过程的技术,这些技术用于定义基于风险的测试策略,支持有计划的测试过程,研究和审查测试基准,详细说明测试用例以及如何提交报告。技术可以促进实施结构化的、可重复的测试执行活动。
为了实现一个结构化良好的的测试过程,各个基石应该达到一个平衡。生命周期基石是其他的中心——生命周期的每个阶段都要求有特定的组织、基础设施下和技术的支持。测试不仅仅是电脑屏幕后的测试用例执行。在真正的测试执行之前,在过程早期阶段的计划和准备活动都是必须的。这使得项目关键路径上的测试过程尽可能的短。Tmap方法体系就是基于上述思想建立起来的。
测试生命周期由下面几个阶段组成:
- 计划和控制
- 准备
- 说明
- 执行
- 完成
(见后面的附表)
计划和控制阶段涉及到测试计划的创建,定义了执行测试活动的“who, what, when, where and how”。在测试过程中,通过定期和临时的报告,客户可以经常收到关于产品质量和风险的更新。
准备阶段决定软件说明书质量是否足以实现说明书和测试执行的成功。
说明阶段涉及到定义测试用例和构建基础设施。一旦测试目标确定,测试执行阶段就开始。在执行阶段,需要分析预计结果和实际结果的区别,发现缺陷并报告缺陷。
完成阶段包括对测试资料的维护以便于再利用,创建一个最终的报告以及为了更好地控制将来的测试过程对测试过程进行评估。
生命周期模型
TMap为实现有效的和高效的测试过程提供了一个途径,使得软件组织可以实现关键的商业目标。
有效是因为能发现与产品风险直接相关的重要缺陷。
高效是因为TMap是一个普遍适用的方法,它强调重用并采用基于风险的策略。这样的策略使得我们需要做出明智的决定:测试什么和如何彻底测试它们而不是测试所有内容。
TMap提供了一个完整的、一致的、灵活的方法,它适合于而且应用于各种行业以及各种规模的组织,例如政府,财务和IT。TMap也用来说明各种应用之间的不同:如何在特定的环境中应用TMap的通用方法,如测试嵌入式系统、web应用程序、采用迭代方法(如DSDM或RUP)开发的应用、维护中的测试等等。TMap提供了根据特定环境创建量身定制的测试方法的灵活性。
在TMap的基础上,还开发了一些其它的方法。所有这些方法都可以单独使用或综合起来使用。例如:
- TPI,一个逐步完善测试过程的模型
- TAKT,测试自动化的方法
- Tsite,如何在一个永久的测试组织中实施测试过程
- TEmb,测试嵌入系统
附表:TMap方法模型基本内容
No |
Category |
Activities |
1 |
Planning计划 |
Assignment formulation |
2 |
|
Global review and study |
3 |
|
Establishing the test
basis |
4 |
|
Determining the test
strategy |
5 |
|
Setting up the organization |
6 |
|
Specifying the test
deliverables |
7 |
|
Specifying the test
infrastructure |
8 |
|
Organizing management
and control |
9 |
|
Setting up the schedule
|
10 |
|
Consolidating the test
plan |
11 |
Control 控制 |
Maintaining the test
plan |
12 |
|
Controlling th etest |
13 |
|
Reporting |
14 |
|
Established the detailed
schedule |
15 |
Preparation |
Testability review of
the test basis |
16 |
准备 |
Defining test uints |
17 |
|
Assigning test specification
techniques |
18 |
|
Specifying test infrastructure |
19 |
Specification |
Preparing test specifications |
20 |
说明 |
Defining initial test
database |
21 |
|
Deafting test scripts |
22 |
|
Producing test scenario |
23 |
|
Specifying the review
of test objects & infrastructure |
24 |
|
Setting up the infrastructure |
25 |
Execution |
Review test objects
& infrastructure |
26 |
执行 |
Setting up initial test
database |
27 |
|
Execution (re)tests |
28 |
|
Comparing and Analyzing
the test results |
29 |
Completion完成 |
Discharging the test
team |
|