软件测试策略

软件测试策略   

    为什么要编写测试策略?测试策略就是如何进行软件Software测试计划测试策略目标包括:

  取得利益相关者(比如管理部门、开发人员、测试人员、顾客和用户等)致性目标;

  从开始阶段对期望值进行管理;

  确保“开发方向正确”;

  确定所有要进行测试类型

  1、策略和软件Software测试策略

  (1)策略:在定政治路线指导下根据具体条件而规定斗争原则、方式和思路方法<新华字典>

  (2)软件Software测试策略:在定软件Software测试标准、测试规范标准指导下依据测试项目特定环境约束而规定软件Software测试原则、方式、思路方法集合

  测试策略为测试提供全局分析并确定或参考:

  项目计划、风险和需求;

  相关规则、政策或指示;

  所需过程、标准和模板;

  支持准则;

  利益相关者及其测试目标;

  测试资源和评估;

  测试层次和阶段;

  测试环境;

  各阶段完成标准;

  所需测试文档和检查思路方法

  2、软件Software测试策略重要性

  (1)任何个完全测试或穷举测试工作量都是巨大在实战上是行不通因此任何实际测试都不能保证被测中不遗漏或缺陷;

  (2)为了最大程度较少这种遗漏同时最大限度发现可能存在在实施测试前必须确定合适测试思路方法和测试策略并以此为依据制定详细测试案例

  3、软件Software测试策略目

  是不是所有软件Software测试都要运用现有软件Software测试思路方法去测试呢?答案是否定依据软件

Software本身性质、规模和应用场合区别我们将选择区别测试方案以最少软硬件、人力资源投入得到最佳测试效果这就是测试策略目标所在

  4、软件Software测试策略影响原因

  软件Software测试策略随着软件Software生命周期变化、软件Software测试思路方法、技术和工具区别

发生变化这就要求我们在制定测试策略时候应该综合考虑测试策略影响原因及其依赖关系这些影响原因可能包括:测试项目资源原因、项目约束和测试项目特殊需要等

  5、软件Software测试策略制定过程

  (1)输入

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

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

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

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

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

  (2)输出

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

  需要解决方案测试项目;

  (3)过程

  1)确定测试需求

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

  测试需求必须是可观测、可测评行为如果不能观测或测评测试需求就无法对其进行评估以确定需求是否已经满足在每个用例或系统补充需求和测试需求的间不存在对关系用例通常具有多个测试需求;有些补充需求将派生个或多个测试需求而其他补充需求(如市场需求或包装需求)将不派生任何测试需求

  测试需求可能有许多来源其中包括用例模型、补充需求、设计需求、业务用例、和最终用户访谈和软件

Software构架文档等应该对所有这些来源进行检查以收集可用于确定测试需求信息

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

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

  3)确定测试策略

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

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

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

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

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

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

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

  如果功能规格介绍说明中含有输入条组合情况则已开始可以选择因果图思路方法

  ② 基于测试方案测试策略

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

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

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

软件测试策略的技术方法

    软件测试的策略、方法和技术是多种多样的。对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。
  1.静态方法与动态方法
  所谓静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
  动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。
  2.功能测试与结构测试
  (1)功能测试
  功能测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。
  黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。
  在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法:
  a.等价类划分
  所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法。它是功能测试的基本方法。
  b.因果图法
  因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。
  c.边值分析
  实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。边值分析是对等价类划分的有效补充。
  (2)结构测试
  结构测试是根据被测程序的内部结构设计测试用例的一类测试,又称为白盒测试。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
  与功能测试不同的是,结构测试涉及程序内部结构。尽管用户更倾向于基于程序规格说明的功能测试,但是结构测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的。它们各有利弊,常常结合使用。

posted on 2014-11-14 10:19  blogsheng  阅读(3428)  评论(1编辑  收藏  举报