欢迎大家一起共同探讨软件测试发展!

软件测试组织与管理及测试系列方法(二)(测试负责人)

上一篇 / 下一篇  2012-02-02 09:35:04 / 个人分类:软件测试培训资料(公司内部)

3.3          软件测试文件

软件测试文件描述要执行的软件测试及测试的结果。对它们的要求、过程及测试结果以正式的文件形式写出。包括:测试文件的类型,测试文件的使用,测试文件的编制

  (1)测试文件的类型

  根据测试文件所起的作用不同,通常把测试文件分成两类,即测试计划和测试分析报告。测试计划详细规定测试的要求,包括测试的目的和内容、方法和步骤,以及测试的准则等。通常,测试计划的编写从需求分析阶段开始,到软件设计阶段结束时完成。测试报告用来对测试结果的分析说明,经过测试后,证实了软件具有的能力,以及它的缺陷和限制,并给出评价的结论性意见,这些意见即是对软件质量的评价,又是决定该软件能否交付用户使用的依据。由于要反映测试工作的情况,自然要在测试阶段内编写。

  (2)测试文件的使用

  a.验证需求的正确性;

  b.检验测试资源;

c.明确任务的风险;

d.生成测试用例

  e.评价测试结果;

  f.再测试;

g.决定测试的有效性。

(3)测试文件的编制

在软件的需求分析阶段,就开始测试文件的编制工作,各种测试文件的编写应按一定的格式进行。才能使测试更好的执行。

4.     软件测试策略

从软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试黑盒测试

1.       静态方法与动态方法

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

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

2.       功能测试与结构测试

  (1)功能测试

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

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

  在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法:

  a.等价类划分

  所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法。它是功能测试的基本方法。

  b.因果图法

  因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。

  c.边值分析

  实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。边值分析是对等价类划分的有效补充。

以上这三种测试方法是最常用的测试方法。

  (2)结构测试

  结构测试是根据被测程序的内部结构设计测试用例的一类测试,又称为白盒测试。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。

白盒法需要全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。

其他测试系列方法:

(1)采用逻辑覆盖的结构测试。逻辑覆盖又包含以下五种:语句覆盖、判定覆盖、条件覆盖、判定与条件覆盖、路径覆盖。

(1)域测试:这是一种基于程序结构的测试方法。这里的“域”是指程序的输入空间。

(3)符号测试:是基于代数运算的一种结构测试方法。

(4)数据流测试:是指一个基于通过程序的控制流,从建立的数据目标状态的序列中发现异常的结构测试方法。

(5)定义域测试:重点在分类方面,它还要判断出定义域的正确性。

(6)程序变异测试:是一种基于程序错误的测试方法,它的目的是要说明程序中不含有某些特定的错误。

5.     结论

目前软件测试的重点是:

  a.测试用例及测试例程的设计是整个软件测试工作的核心,测试用例反映对被测对象的质量要求,决定对测试对象的质量评估,设计测试用例是最为重要。

  b.测试工作的管理。对包含多个子系统的大型软件系统,其测试工作涉及大量人力和物力,有效的分配测试工作,分组进行。

  c.测试环境的建立。建立测试环境、模拟客户真实环境。

结合合作伙伴的资源,以项目分包形式对软件进行测试,以达到项目验收为付款的条例,更好,更快促进项目的进展。


TAG:

 

评分:0

我来说两句

Open Toolbar