功能测试和结构测试

发表于:2011-5-23 14:13

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李海峰/马琳 译    来源:51Testing软件测试网采编

  构造测试用例

  构造测试用例的基本途径有两种,即功能测试结构测试。每种途径都有几种不同的测试用例构造方法,通常也称为测试方法。

  1、功能测试

  功能测试的基本思想是:任何程序均可视为将其输入定义域中的值映射到其输出值域的函数。(函数、定义域、值域等概念见第3章)。工程领域普遍采用这种思想,因为工程系统常被当做黑盒子来研究,这样就产生了黑盒测试方法。黑盒里的内容(具体实现)不为外界所知,黑盒的功能完全通过其输入与输出来表述(如图1所示)。在Zen and the Art of Motorcycle Maintenance一书中,Pirsig把这种观点称为“罗曼蒂克的理解方式”(Prisig, 1973)。很多时候我们仅用黑盒知识也就够用了。(实际上,这也是面向对象的主要思想。)举例子来说,多数人仅凭黑盒知识就能开汽车。

图1 工程师的黑盒子

  对功能测试用例构造方法来说,唯一可用的信息是软件规格说明。

  功能测试用例有两个突出的优点:(1)与软件的具体实现方法无关,所以即使实现方式发生改变,测试用例仍然有用;(2)测试用例的开发工作可以同软件实现工作并行开展,这样可以缩短整个项目的开发周期。但不利的方面,功能测试用例常常也有两个突出的问题:测试用例之间会存在严重的冗余问题,而且可能有未测试的实现行为。

  图2给出了用两种功能测试方法构造测试用例的不同结果。方法A比方法B构造的测试用例集合要大一些。可见对这两种方法来说,测试用例集合均完全包含在规定行为集合中。由于功能测试方法是基于规格说明的,所以此类方法不会构造规定之外的行为。在第8章中将针对第2章的示例直接比较不同的功能测试方法所构造的测试用例。

图2 两种功能测试用例构造方法的比较

  2、结构测试

  结构测试是另一种基本的构造测试用例方法。与功能测试相对,结构测试有时也被称为白盒(甚至透明盒)测试。透明盒的说法也可能更为恰当,因为这两者最根本的区别在于黑盒子中的具体实现现在是已知的并被用于构造测试用例。能够 “透视”黑盒内部的能力使测试人员可以根据功能的实现方式构造测试用例。

  结构测试有很强的理论性。为真正理解结构测试,必须熟悉线性图论的基本概念。利用这些基本概念,测试人员可以精确描述被测试对象。鉴于其深厚的理论基础,结构测试允许定义和使用测试覆盖率指标。测试覆盖指标能够明确地表示软件被测试的程度,并且使测试管理更有意义。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • delphimortal
    2011-5-24 10:44:38

    我们公司几乎没有正式的代码评审,作为测试人员,几乎没有机会和精力去了解代码架构。这种情况下,我们该从何下手,开展结构测试呢?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号