软件测试过程模型提供了软件测试的流程和方法,为测试过程管理提供了依据。但实际的测试工作是非常复杂烦琐的,一般来说不会有百分百适用于某项测试工作的模型。因此我们需要从不同的模型中抽象出符合实际现状的测试过程管理理念,根据这些理念来策划测试过程,以不变应万变。当然,测试管理牵涉的范围非常广泛,包括过程定义、人力资源管理、风险管理等,本篇仅介绍一些从过程模型中提炼出来的、对实际测试有指导意义的管理理念。
尽早测试理念“尽早测试”这一理念是从W模型中抽象出来的,即测试并非是在代码编写完成后才开展的工作,而是与开发相互依存的并行过程,测试活动在开发活动的前期就应开展。
“尽早测试”理念有两方面含义:

第一,测试人员应在软件项目的早期就参与进去,及时展开相关测试的准备工作,包括编写测试计划、制订测试方案以及编写测试用例;
第二,尽早开展测试执行工作,一旦某一代码模块完成就及时开展单元测试,一旦代码模块被集成为相对独立的子系统就可开展集成测试,一旦有Build版提交便可开展系统测试工作。

由于在早期就开展了测试准备工作,测试人员可及时了解测试的难度、预测测试过程中存在的风险,从而有效提高测试效率,规避测试风险。由于在早期就开展了测试执行工作,所以测试人员可以尽早地发现软件缺陷,大大降低了软件缺陷修复成本。但需要注意,“尽早测试”并非盲目地提前进行测试活动,测试活动开展的前提是达到测试就绪点。
全面测试理念众所周知,软件就是程序、数据和文档的集合,因此测试人员对软件进行测试时,不仅需要对程序进行测试,还需要对软件的一些数据、文档进行全面测试,这也是 W 模型中一个重要的思想。虽然需求文档和设计文档是软件的阶段性产品,但它们却会直接影响软件的质量。软件最终的质量是软件在开发过程中产出的阶段性产品质量的叠加,若阶段性产品的质量就未达到要求,最终软件质量就很容易失控。
“全面测试”理念有两方面的含义:
第一,对软件开发过程中的所有产出物都需要进行全面的测试,包括需求文档、设计文档、代码、用户文档等;
第二,整个测试工作需要软件开发人员、测试人员(有时甚至需要用户)全面参与,例如,对需求的验证和确认需要开发人员、测试人员及用户全面参与,因为测试工作不仅需要保证最终软件运行成功或正确运行,还需要保证最终开发出的软件满足用户的需求。
“全面测试”有助于全方位把握软件质量,最大限度地排除造成软件质量问题的因素,从而保证最终软件满足质量需求。
全过程测试理念“全过程测试”理念是 W模型中充分体现的另一个理念。双 V模型图形象地表明了软件开发与软件测试结合紧密,说明软件开发和软件测试过程会相互影响,因此需要测试人员对开发和测试的全过程进行充分的关注。
“全过程测试”理念有两个含义:
第一,测试人员应充分关注软件开发的过程,对开发过程中发生的各种变化及时做出应对,例如,软件开发进度的调整可能会导致测试进度及测试策略的调整,而软件需求的变更可能会影响到测试执行等;
第二,测试人员应对软件测试进行全程的跟踪,例如,建立完善的度量与分析机制,通过对自身过程的度量,及时了解全面的过程信息,进而及时调整测试策略。
“全过程测试”有助于及时应对项目变化,降低测试风险,同时也有助于把握测试过程,调整测试策略,便于测试过程的改进。
独立的、迭代的测试理念软件开发的瀑布模型只是一种理想状况,由于需求不同,软件开发过程出现了多种模型,如螺旋模型、增量模型、迭代模型等。这些模型中的需求、设计、编码工作可能会重叠并反复进行,对应的测试工作也将迭代和反复。若无法将测试从开发中抽出,将会使测试管理陷入困境。
软件测试与软件开发是密切结合的,但并不代表软件测试是依附于软件开发的一个过程。软件测试工作是独立的,这也正是 H 模型所体现出的思想。“独立的、迭代的测试”理念着重强调测试的就绪点,只要测试条件成熟,测试的准备活动完成,测试的执行活动就可以开始。
因此在遵循尽早测试、全面测试、全过程测试理念的同时,还需要将测试过程从开发过程中适当抽出来,将其作为一个独立的过程进行管理。应时刻把握“独立的、迭代的测试”理念,减少繁杂的开发模型给测试管理工作带来的不便。对于软件开发过程中不同阶段的产品以及不同的测试类型,只要测试准备工作就绪,就可以立刻开展测试工作,把握产品质量。