计算机专业软件测试方法分析

  • 来源:教育与学习
  • 关键字:软件测试,计算机
  • 发布时间:2014-05-07 13:04

  摘要:软件测试的核心是测试用例的编写,所以测试用例的编写对于软件测试的过程来说是十分重要的,也是每个测试人员必须掌握的技能。本文主要分别介绍了黑盒测试和白盒测试两类不同的测试方法。尤其重点介绍了白盒测试中的逻辑覆盖。并结合实例给出具体说明。

  关键词:测试用例 黑盒测试 白盒测试 逻辑覆盖

  1引言

  软件测试是软件开发过程中必不可少的部分。从根本上说,测试过程的质量决定了软件测试的质量和有效性。软件测试作为软件生存周期的一个重要组成部分,受到重视程度越来越高。软件测试的本质是针对要测试的内容确定一组测试用例。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。所以对于软件测试的过程来讲,测试用例的设计是其中最关键的环节。软件测试分功能性测试和结构性测试。功能性测试又称黑盒测试,结构性测试又称白盒测试。本文分别详细介绍这两类测试方法的测试用例的设计方法。

  软件测试用例的基本要素:

  测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例目前为止没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括用例编号、测试标题、重要级别、输入数据、操作步骤、预期结果等,并形成文档。 下面具体介绍各项的含义。

  (1)用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-XT-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。

  (2)测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ”。

  (3)重要级别: 定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然,

  (4)测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。

  (5)操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。

  (6)预期结果: 提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。

  2功能性测试用例设计

  功能性测试又称黑盒测试(Black-box Testing)或数据驱动测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。

  黑盒测试试图发现以下类型的错误:

  (1)功能错误或遗漏;

  (2)界面错误;

  (3)数据结构或外部数据库访问错误;

  (4)性能错误;

  (5)初始化和终止错误。

  黑盒测试的测试用例设计方法一般有等价类划分方法,边界值分析方法,错误推测方法,因果图方法,判定表驱动分析方法,正交实验设计方法,功能图分析方法几种。下面详细介绍几种比较重要的黑盒测试方法。

  2.1等价类划分

  是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。

  (1) 划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。

  (2)有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

  (3)无效等价类:与有效等价类的定义恰巧相反。

  设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。

  2.2边界值分析法

  边界值分析方法是对等价类划分方法的补充。

  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

  基于边界值分析方法选择测试用例的原则:

  (1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

  (2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。

  (3)根据规格说明的每个输出条件,使用前面的原则1)。

  (4)根据规格说明的每个输出条件,应用前面的原则2)。

  (5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

  (6)分析规格说明,找出其它可能的边界条件

  2.3错误推测法

  错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

  错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。 例如, 在单元测试时曾列出的许多在模块中常见的错误。 以前产品测试中曾经发现的错误等, 这些就是经验的总结。 还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。 这些都是容易发生错误的情况。 可选择这些情况下的例子作为测试用例。

  3结构性测试用例设计

  结构性测试又称白盒测试 (White-box Testing),也称逻辑驱动测试,是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。

  白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

  下面以一个实际例子说明逻辑覆盖的六种不同的测试用例的设计。

  3.1语句覆盖:

  语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次

  对于该例来说,A=2,B=5,X=4时,执行路径ace,就把每个语句执行了一遍。

  3.2判定覆盖

  判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,对于

  此例,

  当A=1,B=5,X=2时,第一个判定为真,第二个判定为假。执行路径acd

  当A=3,B=5,X=3时,第一个判定为假,第二个判定为真。执行路径abe

  3.3条件覆盖

  条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支;该例子中有两个判定,每个判定有两个条件,也就是四个条件,四个条件分别取真假两种可能,只要在用例条件中四个条件的真假各出现一次就可以了。

  A<3 取真t1,取假f1

  B=5 取真t2,取假 f2

  A=2 取真 t3,取假 f3

  X>2 取真 t4,取假 f4

  这样可以 选择t1t2t3t4 和f1f2f3f4组合。

  A=2,B=5,X=3满足条件t1t2t3t4,程序执行路径为 ace

  A=3,B=4,X=2 满足条件f1f2f3f4,程序执行路径为abd

  这样四个条件的真假值都取到了,也可选择别的组合方式,例如

  t 1f2t3t4和f1t2f3f4,只要保证每个条件的真假值各取到一次就行。

  3.4判定条件覆盖:

  判定/条件覆盖是使判定中每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次;

  上面条件覆盖中的t1t2t3t4,f1f2f3f4的例子正好满足此条件,所以就采用与上面相同的取值。

  4结束语

  测试用例的编写对于一个测试人员来说是一项必须掌握的能力。但有效的设计和熟练的编写却是一个十分复杂的技术,它需要测试人员对整个软件不管从业务还是从功能上都有一个明晰的把握。需要测试人员在实践中不断总结经验,然后结合测试理论,这样才能设计出更加有效的测试用例。

  参考文献:

  [1]沃特金斯、贺红卫。 实用软件测试过程[M] . 北京:机械工业出版社,2004.

  [2]郑人杰。 实用软件工程[M] 。 北京:清华大学出版社,2002.

  北京交通大学软件学院 张丽云

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: