信息技术 一China New Technolo gies and Produ cts口回墨瑾墨圃■一三兰 E:l - l-:L=- 软件测试技术研究 司青燕 柏杨 f1、日照职业技术学院信息科学与工程学院,山东日照276826 2、济南铁道职业技术学院教务科研处,山东济南250014) 摘要:本文介绍了软件测试的重要性和目的,阐述了软件测试技术的方法和软件测试的一般过程,分析了目前常见的软件测试模型,并提 出了一种新的软件测试模型。 关键词:软件测试;静态测试;动态测试;黑盒测试;白盒测试;灰盒测试;V模型;B模型 是将通过确认测试的软件作为整个基于计算 2O世纪60年代中期,随着计算机硬件的迅猛 机系统的—个元素,与计算机硬件、外设、某些支持 软件、数据和人员等其他系统元素结合在一起,在 发展,计算机的应用范围迅速扩大,软件开发数量 急剧增长,计算机系统应用越来越广泛。软件陕速 实际运行(使用)环境下,对计算机系统进行一系列 的需求增长使得软件开发中的矛盾越来越突 的组装测试和确认测试。系统测试的目的在于通过 出——软件危机出现了。软件工程应运而生,软件 与系统的需求定义作比较,发现软件与系统定义不 测试的作用越来越重要。 符合或与之矛盾的地方。 4软件测试的模型 1什么是软件测试 1993年IEEE给出了软件测试的定义:“将系 在2O世纪8O年代后期PaulRook提出了著 统化的、规范的、可度量的方法应用于软件的开发、 名的软件测试的v模型,旨在改进软件开发的效率 运行和维护的过程,即将工程化应用于软件中”。 部逻辑结构、对所有逻辑路径进行测试。“白盒”法 和效果。V模型反映出了测试活动与分析设计活动 测试者必须 的关系。在图1中,从左到右描述了基本的开发过 目前,国际上已对软件测试形成—个共识:软 是穷举路径测试。在使用这一方案时,件测试就是在软件投入使用前,对软件的需求分 检查程序的内部结构,从检查程序的逻辑着手,得 程和测试行为,非常明确的标注了测试过程中存在 析、设计规格说明和系统编码的最终复审。由此可 出测试数据。贯穿程序的独立路径数是天文数字。 的不同类型的测试,并且清楚的描述了这些测试阶 但即使每条路径者 0试了仍然可能有错误,因为穷 见,软件测试的对象不仅仅是程序,需求规格说明、 段和开发过程期间各阶段的对应关系。 概要设计、详细设计、源程序等都是软件测试的对 举路径测试决不能查出程序违反了设计规范,即程 象。 序本身是个错误的程序。 灰盒测试,确实是介于黑盒测试和白盒测试之 2软件测试的方法 21静态测试和动态测试 间的,灰盒测试关注输出对于输入的正确性,同时 从是否需要执行被测软件的角度,将软件测试 也关注内部表现,但这种关注不象白盒那样详细、 分 完整,只是通过一些表征性的现象、事件、标志来判 静态测试是指被测试程序不在机器上运行,而 断内部的运行状态。有时候输出是正确的,但内部 是采用人工检测和计算机辅助静态分析的手段对 其实已经错误了,这种情况非常多,如果每次都通 程序进行检测,主要方法包括人工测试和计算机辅 过白盒测试来操作,效率会很低,因此需要采取这 助静态分析。相对动态测试,静态测试可以更早地 样的一种灰盒的方法。灰盒测试结合了白盒测试盒 进行。静态分析的查错和分析功能是其他方法所不 黑盒测试的要素。它考虑了用户端、特定的系统知 能替代的,静态分析能发现文档中问题。目前,静态 识和操作环境。它在系统组件的协同性环境中评价 测试已被当做一种自动化的、主要的代码校验方 应用软件的设计。 法。但静态测试不能检测程序的实际执行晴况,无 3软件测试过程 法得到程序的执行结果。 个大型软件系统通常由若干个子系统构成, 动态测试是实际运行被测程序,输入相应的测 每个子系统又由若干个模块构成。软件测试过程如 试用例,判定执行结果是否符合要求,从而检验程 下: 3.1单元测试 序的正确性、可靠性和有效性。一般意义上的测试 主要是指动态测试。为了使测试发现更多的错误, 又称模块测试。它是针对软件设计的最小单 需要运用一些有效的方法:一种是黑盒测试,即测 位—程哼 漠块,进行正确性检验的测试工作。其目 试产品的功能;一种是白盒测试,即测试产品内部 的在于发现各模块内部可能存在的各种差错。单元 结构及处理过程。动态测试是一种经常运用的测试 测试需要从程序的内部结构出发设计测试用例。多 引言 一构、不考虑内部逻辑结构、针对软件界面和软件功 能进行测试。“黑盒”法是穷举输入测试,只有把所 有可能的输入都作为测试情况使用,才能以这种方 法查出程序中所有的错误。实际上测试情况有无穷 多个,人们不仅要测试所有合法的输入,而且还要 对那些不合法但是可能的输入i 亍测试。 白盒测试,也称结掏测试或逻辑驱动测试。白 盒测试是已知产品内部工作过程,通过测试来检测 产品内部动作是否按照规格说明书的规定正常进 行,主要用于软件验证。“白盒”法全面了解程序内 方法,无论在单元测试、集成测试中,还是在系统测 模块可以平行的独立进行单元测试。 试、验收测试中,都是一种有效的测试方法。但动态 测试不能发现文档问题,必须等待程序代码完成后 进行,发现问题相对迟得多,一旦发现问题,必须重 新设计、重新编码,必然增大不良质量的成本。 2.2黑盒测试、白盒测试和灰盒测试 从测试是否针对系统的内部结构和具体实现 算法的角度,将软件测试分为黑盒测试、白盒测试 和灰盒测试。 黑盒测试。也称功能测试或数据驱动测试。黑 盒测试是在已知产品所应具有的功能,通过测试来 检测每个功能是否都能正常使用。测试时,在完全 不考虑程序内部结构和内部特f生的情况下,测试者 在程序接口进行测试,它只检查程序功能是否按照 需求规格说明书的规定正常使用,程序是否能适当 32组装测试 叉称集成测试。通常,在单元测试的基础上,需 要将所有模块按照设汁要求组装成为系统。这时需 要考虑的问题是:在把各个模块连接起来时,穿越 模块接口的数据是否会丢失;—个模块的功能是否 会对另—个模块的功能产生不利的影响;各个子功 能组合起来,能否达到预期要求的父功能;全局数 据结构是否有问题;单个模块的误差累积起来,是 否会放大从而达到不能接受的程度。 33确认 0试 又称有汝f生澳4试。它的任务是验证软件的功能 图、1软件测试的V模型 和性能及其他特陛是否与用户的要求一致。首先要 进行有效性测试以及软件配置复审,然后进行验收 测试和安装测试,在通过了专家鉴定之后,才能成 地接收输人数锯而产生正确的输出信息,并且保持 为可交付的软件。 外部信息的完整性。“黑盒”法着眼于程序外部结 3.4系统测试 图2软件测试的B模型 中国新技术新产品 一22— 瞄匝团圆 猛圈 ・ 。。na 信息技术 浅谈网格技术的应用 郭薇 (益阳欣达电力建设总公司,湖南益阳413002) 摘要:本文论述了网格计算的发展概况、在科学领域的应用范围、网格服务的特点以及在未来网络市场中的发展潜力。 关键词:网格;互联网;数据库;资源共享 现代社会由于大规模的科学和工程计算的 需求,迫使计算机必须不断地提高其运算速度 和存储容量。计算机的发展历史表明,为了达到 更好的处理性能,除了必须提高系统的硬件的 速度外。系统的结构也必须不断改进,特别是当 元器件的速度达到极限时,后者将变成焦点问 题。于是,超级并行机已经成为复杂科学计算领 纪的先进计算技术.我国在科技部的领导和主 持下,经过306主题专家组及相关单位的努力, 作为我国高性能计算和信息服务的战略性基础 设施的国家高性能计算环境发展很快。在已建 成的5个国家级高性能计算中心基础上,又于 中南、西北等地建立了新的国家高性能计算中 心,科技部并加强了网格节点的建设,形成以科 学院为主体的计算网格。教育部也启动了网格 计算工程,第一批l2个网点正在建设中,国家 基金委也列出专向基金资助网格计算。 网格是借鉴电力网(electirc power grid)的概 念出来的,网格的最终目的是希望用户在使用 网格的计算能力时,就如同现在使用电力一样 方便简单。 在科学计算领域,网格计算可以在以下几 个方面得到广泛应用: 共享关系,并且可以进一步管理和开发新的共 享关系。这一标准化的开放结构对网格的扩展 性、互操作性、一致性以及代码的共享都有好 处。 域的主宰。但以超级计算机为中心的计算模式 存在明显的不足,而且目前正在经受挑战。而随 着人们在日常工作遇到的商业计算越来越复 杂,人们迫切需要数据处理能力更强大的计算 机。而超级计算机的价格显然阻止了它进人普 通人的工作领域。于是,人们开始寻找一种造价 低廉而数据处理能力超强的计算模式,最终科 学家们经过努力找到了答案一Grid Computing (网格计算)。 在2002年的2月,IBM与Globus共同发表 了OGSA(Open Grid Services Architecture),勾勒 了Globus Toolkit3.0的蓝图。OGSA主要是将 w出Services、数据库存取、J2EE等技术规范纳 人网格计算。初步的规范已经公布在网络上供 大家评估建议。 五层沙漏模型中,强调的是被共享的物理 资源(或者是这些资源所支持的服务)在OGSA 中,服务所指的概念更广,包括各种计算资源、 存储资源、网络、程序、数据库等等,一切都是服 务。五层模型实现的是对资源的共享,丽在 OGSA中,实现的对服务的共享。在OGSA中一 网格( d)是一个集成的计算与资源环境, 1.分布式超级计算。网格计算可以把分布式 或者说是一个计算资源池。网格也是一种先进 的超级计算机集中起来,协同解决复杂的大规 的计算基础设施(Advanced Computational Infras— 模的问题。使大量闲置的计算机资源得到有效 trueture,简称ACI),用于研究与工程应用相结合 的组织,提高了资源的利用效率。节省了大量的 的项目,学科领域涉及超级计算技术、网络技 重复投资,使用户的需求能够得到及时满足。 2.高吞吐率计算。网格技术能够十分有效地 术、数据库技术、中间件技术、并行算法和各种 计算科学研究与应用技术,是一个综合性的跨 提高计算的吞吐率,它利用CPU的周期窃取技 学科高技术研究课题。网格计算(Grid Comput— 术,将大量空闲的计算机的计算资源集中起来, lug)是伴随着互联网技术而迅速发展起来的,是 提供给对时间不太敏感的问题,作为计算资源 将地理上分布的计算资源(包括数据库、贵重仪 的重要来源。 器等各种资源)充分利用起来,协同解决复杂的 3擞据密集型计算。数据密集型的问题的求 解往往同时产生很大的通讯和计算需求,需要 大规模问题,特别是解决仅靠本地资源无法解决 的复杂问题,是专门针对复杂科学计算的新型 网格能力才可以解决。网格可以药物分子设计、 计算模式。这种计算模式是利用互联网把分散 计算力学、计算材料、电子学、生物学、核物理反 在不同地理位置的电脑组织成一个”虚拟的超级 应、航空航天等众多的领域得到广泛的需求。 计算机”,其中每一台参与计算的计算机就是一 个”节点”,而整个计算是由成千上万个”节点”组 成的”一张网格”。所以这 计算方式叫网格计 算。这样组织起来的”虚拟的超级计算机”有两个 优势,一个是数据处理能力超强;另一个是能充 分利用网上的闲置处理能力。 4.基于广泛信息共享的人与人交互。网格的 出现更加突破了人与人之间地理界线的限制, 使得科技工作者之间的交流更加的方便,从某 种程度上可以说实现人与人之间的智慧共享。 5.更广泛的资源贸易。随着大型机的性能的 提高和微机的更加普及,及其资源的闲置的问 切都看作是网格服务,网格是可扩展的网格服 务的集合,即网格={网格服务l。 以网格服务为中心的模型的好处有以下几 点: 网格中所有组建都是虚拟的,通过提供一 组相对统一的核心接口。所有的网格服务都基 于这些接口的实现,就可以很容易地构造出具 有层次结构的、更高级别的服务,这些服务可以 跨越不同的抽象层次,以一种统一的方式来看 待。 虚拟化也使得将多个逻辑资源实例映射到 相同的物理资源上成为可能,在对服务进行组 合时不必考虑具体的实现,可以以底层资源组 成为基础,在虚拟组织中进行资源管理。通过网 格服务的虚拟化,可以将通过的服务语义和行 为,无缝地映射到本地平台的基础设施之上。 结语:网格计算将成为未来网络市场发展的热 点。据(ForbesASAP)预测,网格技术将在近年度 达到高峰。并带来因特网的新生。如果网格技术 能促使市场按预期的17%年增长率持续成长的 话。那么在2020年将会形成一个年产值2O万 近年来,随着计算机计算能力的迅速增长, 互联网络的普及和高速网络成本的大幅度降低 以及传统计算方式和计算机的使用方式的改 变,网格计算已经逐渐成为超级计算发展的一 个重要趋势。网格计算是一个崭新而重要的研 究领域,它以大粒度资源共享,高性能计算和创 新性应用为主要特征,必将成为21世纪经济发 题也越来越突出,网格技术能够有效地组织这 些闲置的资源,使碍有大量的计算需求的用户 能够获得这些资源。资源的提供者的应用也不 会受到太大的干扰。需要计算能力的人可以不 必购买大的计算机,只要根据自己的任务的需 求,向网格购买计算能力就可以满足计算需 亿美元的大产业. 参考文献 【11李秀.计算机文化基础【M】.北京:清华大学出版 社.20o3. 【2】王森.计算机原理【M】.北京:电子工业出版社, 2oo2. f31施伯乐.数据库教程【M1.北京:人民邮电出版 求。 早期的网格体系结构是五层沙漏结构。在 社.2004. 展的重要推动力。 4】陈明德.Novel网络实际操作[MI.北京:北京电 二十世纪九十年代以来,世界各个国家,尤 五层沙漏结构中,最重要的思想是以”协议”为中 【其是发达国家,建立了很多超级计算应用中心 心,它侧重于外部的行为而不是内部的特征,通 子工业出版社.1998 (NCSA)和工程研究中心,美国还制定了新一轮 过协议可以实现一种机制,使得虚拟组织的拥 规划的先进计算框架计划(ACIP),发展面向2l世 护与资源之间可以进行资源使用的协商,建立 地发现问题。以需求为例,需求分析一完成。我们就 绪点开始测试并反复迭代测试,最终保证按期完成 可以对需求进行测试,而不是等到最后才进行针对 预定目标。参考文献 需求的验收漫 试。测试伴随整个开发周期测试的对 象不仅仅是程序,还包括需求和设计。 [1腓软件测试 北京坝械工业出版社,2006,4. 在实际工作中,我们要灵活运用各种模型的优 [2) ̄l--q.软件开发管理中的沟通与协调问题研究 点,在各种模型相互补充的框架下,寻找恰当的就 中国管理科学.2004,12 p】罗国虎实用软件测试方法与应用 1.北京:电 子工业出版社0003. [4 1 Paul C Jorgensen.Software Testing A Craftman, sApproaelO1].北京 ij【工业出版杜 【5】郑人杰.计算机软件测试技术 b京:清华大学出 版社.1992 一23一 中国新技术新产品