软件测试策略

发表于:2011-06-23来源:未知作者:娃娃点击数: 标签:软件测试
1、拿到一个软件(系统)后,先确定软件测试需求(负责人来把握方向),后面的计划、方案、用例,和测试组织(何时进行测试,模块开发完,还是集成完以后)等过程是确定方向后的执行。 软件测试没有穷尽,把握方向阶段,根据测试部门现有资源情况,博弈,

  1、拿到一个软件(系统)后,先确定测试需求(负责人来把握方向),后面的计划、方案、用例,和测试组织(何时进行测试,模块开发完,还是集成完以后)等过程是确定方向后的执行。

  软件测试没有穷尽,把握方向阶段,根据测试部门现有资源情况,博弈,获取最大测试收益,选取几个方面的测试因素。是为制定测试计划的前期工作。

  测试策略:

  目标-

  1、利益相关者(管理、开发、测试、用户)一致性目标

  2、管理期望值

  3、确保开发方向正确

  4、确定测试类型

  涵盖范围-

  1、项目计划、风险、需求

  2、相关规则、政策、指示

  3、所需过程、标准、模板

  4、支持准则

  5、利益相关者及其测试目标

  6、测试资源与评估

  7、测试层次与阶段

  8、测试环境

  9、各位阶段完成标准

  10、所需测试文档与检查方法

  目的-

  是不是所有软件测试都要运用现有软件测试方法去测试呢?答案是否定的。依据软件本身性质、规模和应用场合的不同,我们将选择不同测试方案,以最少的软硬件、人力资源投入得到最佳的测试效果,这就是测试策略的目标所在。

  影响因素-

  软件测试策略随着软件生命周期的变化、软件测试方法、技术与工具的不同发生的变化。这就要求我们在制定测试策略时候,应该综合考虑测试策略的影响因素及其依赖关系。这些影响因素可能包括:测试项目资源因素、项目的约束和测试项目的特殊需要等。

  软件测试策略的制定过程

  (1)输入

  需要的软硬件资源的详细说明;

  针对测试和进度约束而需要的人力资源的角色和职责;

  测试方法、测试标准和完成标准;

  目标系统的功能性和技术性需求;

  系统局限(即系统不能够提供的需求)等等。

  (2)输出

  已批准和签署的测试策略文档、测试用例、测试计划;

  需要解决方案的测试项目;

  (3)过程

  1)确定测试的需求

  测试需求所确定的是测试内容,即测试的具体对象。在分析测试需求时,可应用以下几条一般规则:

  测试需求必须是可观测、可测评的行为。如果不能观测或测评测试需求,就无法对其进行评估,以确定需求是否已经满足。

  在每个用例或系统的补充需求与测试需求之间不存在一对一的关系。用例通常具有多个测试需求;有些补充需求将派生一个或多个测试需求,而其他补充需求(如市场需求或包装需求)将不派生任何测试需求。

  测试需求可能有许多来源,其中包括用例模型、补充需求、设计需求、业务用例、与最终用户的访谈和软件构架文档等。应该对所有这些来源进行检查,以收集可用于确定测试需求的信息。

  2)评估风险并确定测试优先级¤

  成功的测试需要在测试工作中成功地权衡资源约束和风险等因素。为此,应该确定测试工作的优先级,以便先测试最重要、最有意义或风险最高的用例或构件。为了确定测试工作的优先级,需执行风险评估和实施概要,并将其作为确定测试优先级的基础。

  3)确定测试策略

  一个好的测试策略应该包括:实施的测试类型和测试的目标、实施测试的阶段、技术、用于评估测试结果和测试是否完成的评测和标准、对测试策略所述的测试工作存在影响的特殊事项等内容。

  如何才能确定一个好的测试策略呢?我们可以从基于测试技术的测试策略、基于测试方案的测试策略两个方面来回答这个问题。

  ① 基于测试技术的测试策略的要点

  著名测试专家给出了使用各种测试方法的综合策略:

  任何情况下都必须使用边界值测试方法;

  必要时使用等价类划分方法补充一定数量的测试用例;

  对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,看是否达到了要求;

  如果程序功能规格说明中含有输入条的组合情况,则已开始可以选择因果图方法。

  ② 基于测试方案的测试策略

  对于基于测试方法的测试策略,一般来说应该考虑如下方面:

  根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级和测试重点;

  认真研究,使用尽可能少的测试用例发现尽可能多的程序错误,避免测试过度和测试不足!

  第二部分  测试策略的方法

  软件测试的策略、方法和技术是多种多样的。对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试黑盒测试

  1. 静态方法与动态方法

  所谓静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

  动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

  2. 功能测试与结构测试

  (1)功能测试

  功能测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。

  黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。

原文转自:http://www.ltesting.net