




已阅读5页,还剩84页未读, 继续免费阅读
(通信与信息系统专业论文)网络存储备份软件的发布前测试技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 z8 7 9 7 6 6 软件测试是软件开发的重要、必要部分,是通过找出缺陷和 问题评估产品质量并间接改进产品质量的手段。软件测试的方法、 流程及测试策略是软件测试过程设计中重要的组成部分。 随着网络及数据存储的发展,网络既是存储的思想也越来越 显现。s a n 作为配置网络化存储的一种方法,有其特有的优势。 c a 公司的b r i 9 1 1 t s t o r 数据存储备份软件系列就是利用着s a n 网 络存储的 1 1 :c 念。 本文首先概括介绍了软什测试的定义、目标、方法及流程; 接蓿讨论了网络存储概念使1 :| 的一种方法,即s a n 存储局域刚概 念:然后在软件测试及s a n 概念的基础上,提出网络存储备份产 品b r i ;1 1 l sc o r 软件系列发布n 口测试的概念;在b r i 曲t s t o r 软件需求 及测试理论的分析基础上。系统设计总结出软件发布前测试的三 个阶段:集成测试、确认测试、系统测试:最后在笔者对b r i g h t s t o r ,、7 、 软件的实际测试实践上,系统地设计实现了网络存储备份软件发 和前测试的过程研究。 本文在网络存储备份软件测试理论分析及软件测试实践的基 础上,系统分析总结出软件发布前测试的阶段过程,并根据测试 实践提出了测试中的问题及分析。本文对深入理解网络存储备份 软件测试及以后的软件测试理论研究与实践都具有建设性的帮助 作用。 关键字:软件测试s a n 网络存赭备份集成测试确认测试系统测试 a b s t r a c t s o n w a r et e s t i n g i sac “t i c a le l e m e n to fs o f h a r cq u a l i t y a s s 毽糟n c ea 瞳r 罐滗s e n s 氆毒娃l t 趣a 耗f e v i e wo fs p 逶e 戤妇l ,d e s i 蓼, a n dc o d i n 毖t h em e t h o d s ,a p p r o a c ha n ds l r a t e g i e sa r ei m p o r t a n tp a r t s o f s o 建w a r e e s t i n g s a ni sa na c r o n y m 南rs i o r a g ea r e an e t w o r k s a nc r e a t e sn e w m e t h o d so fa t t a c h i n gs t o r a g el os e f v e r s t h e s en e wm e t h o d sc a n e n a b l e 掣e a ti m p m v e m e n t s i nb o t ha v a i l a b i l i t ya n dp e r f o 锄a n c e t t h i sp a p e rg i v o s 1 1 ed e 珏n i t i o n ,o b j e c t i v e ,m e t h o d ,a n da p p a c h o fs o 矗w a r et e s t i n ga n dd i s c u s s e ss a nc o 聃c e p t b a s eo nt h e $ o 矗w a r e l h e o r ya 1 1 dt l l er e 姒i i r e m e n t o fs l o r a g ep r o d u c tb “曲t s t o ro fc a c o m p a n y tp u l sf b 州a 磁t b e h r c e 曲a s 尊so f s o 最w 鑫r et e s t i n gb e f o r e r e l e a s e a tt h ee n d ,i td e l a i l st h ed e s i g na n da n a b ,s i so fs o n w a r e l e s t l n gb e f b r er e l e a s ed 聃r i n g3 聪t h o f sp l 肇e t 主e e 。 t h i sp a p e rp u t sf b n v a r dt h ep h a s e so fs o f w a r et e s t i n gb e f - o r e 糖l e a s e 黼纛疰s c 珏s s o sp b l e m sd 藤嚣gs o f 飘a f el e 筑i n g 。魏 sv 。拶 u s e f i l lt ou n d e r s t a n d i n gs a n8 0 f t w a r et e s t i n ga n dr e s e a r c ho ft h e o r y 鑫魏dp f 嚣e t i c eo 玉o u ts o f 粒铲a f et e s | i 狂g , l ( e y w o r d s :s o 脚a r et e s t i g ;s a n ;i n t e g r a t i o nt e s t i n g :v a i i d a t i o n t e s l 遗g ;s y s e ml e s t i n 鬈 北京交通人学硕【:学位论文 网络存储备份软件的发布前测试技术研究 1 1 背景 第一章概述 软件测试是软件开发的重要、必要部分,是通过找出缺陷和 问题评估产品质量并间接改进产品质量的手段。从软件工程的观 点看,预防程序问题要比改正问题重要得多,因此,必须首先把 软件测试看作是检验预防程序错误的机制是否有效的主要手段, 同时又是找出程序异常的手段。 i e e e 把软件测试定义为:从通常是无限大的执行域中恰当地 选取一组有限测试用例,对照程序已经定义的预期行为,动态地 检验程序的行为。 从这个定义可以看出软件测试的四个特点:首先是“动态”, 软件测试总要通过一组输入执行程序。但是,单靠输入值并不总 能充分地确定一个测试,因为对于复杂、非确定的系统,由于系 统会处于不同的状态,因此对于同样的输入可能产生不同的响应。 所以,特定的输入通常还要指定系统的特定状态。其次是“有限” 在测试中实际能够观察的执行数量是有限的。测试永远都意味着 有限资源和计划进度与本质上是无限测试需求之间的折衷:正是 这种矛盾带来了大家经常提到的技术( 测试充分性评判准则) 和 管理( 测试工作量估计) 两个方面的测试问题。接着是“选取”, 很多测试手段的本质区别就是如何选择有限的测试集。针对特定 条件确定最合适的选取准则是一个非常复杂的问题,在实践中需 要运用风险分折技术和测试工程专门知识。最后是“预期”,必须 北京交通人学顾i :学泣论上 络1 竽站蒂份软件的发布前测试技术谢 亢 能够确定所观察到的程序执行输出是不是可接受的,否则测试工 作就是无用的。 从软件生产发达国家来看,2 0 世纪6 0 年代,软件测试主要 以代码调试为主;7 0 年代主要以演示软件系统的正确性为主;8 0 年代到9 0 年代中期,主要以检查程序错误为主;9 0 年代中期以 后,软件测试开始更注重软件质量特性的整体评估。目前软件测 试最主要的目标是评估软件功能,但一般也要测试软件的非功能 属性。 目前应用于软件测试领域的技术有很多,而且差别很大,大 致有两种分类方法。 第一种是按测试的生成来源划分,即基于测试人员的直觉和 经验( h _ 兴测试) 、需求规格说明( 包括等价类划分、边界值分析、 判定表、基于有限状态机、形式化语言转换和随机测试等) 、代码 结构( 基于流程图、调用关系图等参考模型、基于控制流标准、 基于数据流的标准) 、发现的错误( 以过去经验为基础的错误推测 法、增加一个被测程序变种的变异测试) 、被测程序的使用领域( 操 作剖面、软件可靠性工程测试) 和被测程序类型( 面向对象、基 于构件、网站、c u i 、并发程序、协议一致性、分布式系统、实 时系统、科学计算软件测试) 的测试技术。 第二种是经典的分类方法,即黑盒测试和白盒测试。依赖于 波测软件设计及编码信息进行的测试称为白盒测试( 基于代码测 试的参考模型、基于控制流标准、基于数据流标准和变异测试等) , 只依靠被测软件输入输出行为而没有关于输入输出之间信息状 | 兄的测试称为黑盒测试( 等价类划分、边界值分析、判定表、基 于有限状态机、源于形式化需求规格说明、错误推测法、随机测 d 北京交通 学预i :学业论文叫络俘储蔷份软件的发布前酒0 试技术研究 试、操作剖面和软件可靠性工程测试等) 。 在实际测试中,往往综合采用这些技术。 笔者在硕士生研究工作中,有幸参与了大型网络存储备份软 件b r i 曲t s t o r 的发布前测试工作,并完成了软件发布前的集成测 试、确认测试、系统测试等测试项目中的一部分工作。现从网络 存储备份软件b r i 曲t s t o r 的功能原理出发,分析研究软件测试的 方法策略,并结合b 吣h t s t o r 软件的实际测试工作,系统地总结 软件在发布前测试的基本过程,文中结合设计的测试用例洋细说 明了软件测试过程的设计及实现。 系统地学习和了解了关于软件测试和s a n 的基本原理和工 作流程,经过培i j | | 详细掌握了软件b r i g h t s t o r 系列的工作原理及 软件在各种平台上安装、配胃和使用等情况。研究分析软件测试 策略,分析软件需求,在分析软件需求和测试策略的基础上设计 软件测试计划。根据测试计划详细确定测试项目,设计测试用例。 根据测试用例搭建各种测试环境,进行具体的测试操作,总结测 试结果及测试报告。 笔者在b r i 曲t s t o r 软件的实际测试过程中,共参与设计完成 了6 5 0 项测试项目。包括了软件发布前测试的集成测试、确认测 试、系统测试等测试阶段的测试项目,对软件的测试流程有着总 体上的把握。在不断学习分析软件测试策略原理在实际软件测试 项目中的应用中,通过分析设计实际的测试流程并在测试过程中 学习检验,系统地分析总结出软件在发布前测试的策略步骤及方 法。 笔者在b r i 曲t s t o r 软件的实际测试过程中,深切体会到软件 测试在软件开发过程中的重要性。软件测试是软件质量保障的重 北京交通人学硕【二学位论上h 终存髓备份轶件的发布前测试技术研究 要一环。目前国内软件领域,还没有将软件测试作为软件开发的 重要组成部分,而只是作为辅助的一部分。随着软件质量意识的 提高,国内软件业必须将软件测试提到应有的高度上来。软件测 试需要借鉴国外软件开发的经验,将软件测试理论与软件测试的 实践相结合,这样才能在实践中更好地发挥软件测试理论的作用, 使软件测试过程更加科学合理,使软件测试在软件丌发过程中发 挥其保障软件质量的重要作用。 本文分为五章,按以下方式组织:第一章,首先介绍了软件 测试的定义、目标、原则、方法及流程。第二章,简要介绍了存 储局域网( s a n ) 结构及数据的备份策略,列举了流 于的网络存 储备份软件。第三章,简要介绍b r 噜h i s t o r 软件的功能及其支持 的s a n 存储网络,结合b r 噜h l s t o r 软件分析了软件的测试策略, 并针对b r i 卧t s t o r 软件设计出相应的测试策略。第四章,结合 b r i 曲t s t o r 软件设计测试用例并实现测试,分析测试刚例的结果。 虽后,对本文做了简单的总结及对软件测试的展望。 1 2 软件测试综述 1 2 1 定义 软件测试( s o f t 、v a r et e s t i n g ) 是软件生存期( s o 脚a r el i f e c ”l e ) 中的一个重要阶段,是软件质量保证的关键步骤。通俗地 讲,软件测试就是在软件投入运行前,对软件需求分析、设计规 格说明和编码进行最终复审的活动。1 9 8 3 年i e e e 提出的软件工 程术语中给软件测试下的定义是:“使用人工或自动的手段来运行 6 北京交通人学硕i :学泣论上用络存矗占暑份软件的发布前;剐试挫术研究 或测定某个软件系统的过程,其目的在于检验它是否满足规定的 需求或弄清预期结果与实际结果之间的差别”。这个定义明确指 出:软件测试的目的是为了检验软件系统是否满足需求。 从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏 的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序 的过程”。或者说,软件测试应该根据软件开发各阶段的规格晚明 和程序的内部结构而精心设计一批测试用例( 即输入数据及其预 期的输出结果) ,并利用这些测试用例去运行程序,以发现程序错 误或缺陷。 1 2 2 测试目标 g i e l lm y e r s 在他的软件测试著作中陈述了一系列关于洲试目 标的规则: 1 测试是一个为了寻找错误而运行程序的过程。 2 一个好的测试用例是指很可能找到迄今为止尚未发现的错 误的用例。 3 ,一个成功的测试是指揭示了迄今为止尚未发现的错误的测 试。 上述目标蕴含了一个观点上的戏剧性变化,他们转向通常的 观点,即一个成功的测试是指没有找到错误的测试。我们的目标 是设计这样的测试它们能够系统地揭示不同类型的错误,并且 耗费最少时间与最小工作量。 如果成功构造了测试( 根据上述目标) ,则能够在软件中揭示 错误。测试的第二个好处在于它证实了软件依据规约所具有的功 7 北京交通夫学硕 :学世论文刚络存1 i 舌备份软件的发布前测试技术1 行究 能及其| 生能需求,此外,构造测试时的数据收集提洪了软件可靠 性以及软件整体质量的一些信息。但是,有一件事测试无法完成: 测试无法说明错误不存在,它只能表示软件错误已经出现。 1 2 3 软件测试的生命周期 测试主要依据是被试系统的研制任务书和技术规格书,是对 软件整体功能和性能的综合测试与评估。测试原理是软件测试活 动的理论基础,测试方法是测试原理的实际应用和获得测试数据 的手段。基于软件的共性,对于软件的测试要遵循一般软件的测 试原理和方法。同时,针对软件的特性,必须找到合适的测试方 法。测试用例的合理性列于软件的测试与评估具有关键作用,而 如何使设计的用例合情、合理并且典型有效并不容易。所以应该 与软件的研制人员以及最终用户一起,有刽对性地研究实际操作 环境并加以描述,形成合理的测试用例集。另一方面,软件运行 环境的复杂程度对软件评估具有重要作用,所以应产生尽量逼真 的运行背景以便于研究。软件测试的周期如图l 所示。 州络存储备汾软件的发布前测试披求 阱,: 客户为主 图1 软件测试的周期 实践证明,尽管人们在开发软件的过程中使用了许多保证软 件质量的方法和技术,但开发出的软件中还会隐藏许多错误和缺 陷。这对于规模大、复杂性高的软件更是如此。所以,严格的软 件测试对于保证软件质量具有重要作用。 软件测试在软件生存期中横跨两个阶段。在软件编码阶段, 当编写出一个模块后,通常要对它进行必要的测试( 称为单元测 试) ,这时测试与编码属于同一个阶段。在编码阶段结束后,对软 o 一一一一一 _ 一 一 一一 llii开发方为主 一 一一 - 一 一 lli土i客户为主i上 一 -盖 北京交通人学坝f :学位论史m 络存储备份软件拍发布前测试技术研究 件系统还要进行各种综合测试( 集成测试与系统测试) ,这是一个 独立阶段,期软传测试酚段。在这个测试除段又寿两季孛性质不同 的测试:研制单位内部进行的集成测试和系统测试与用户( 或第 三方) 进行的验收1 烛测试。 在软件测试生命周期内,错误在软件开发的每个阶段都可能 被带入。谯软件测试中,某贱错误被发现、分类、隔离,最终被 纠讵。由于软件不断被修改,所隧这个过程是一个反复遴行的过 程。 本文讨沦的b r 翡f s t o r 软件测试圭簧包括了软件溅试髑期中 的集成测试、系统测试和确认测试阶段。 1 2 4 可测试性 在理想的情况下,软彳串工程师在设计计算枫程序、系统或产 晶时应浚考虑可测试性,这就使得负责测试的人能够更容易地设 计有效的灞试用铡,但是,什么是“霹溯试经”程? j 鳓e s 嚣a c l l 这 样描述可测试性: 软件可溺试毪赣是一个诗算橇程序能够棱测试豹容易程度。 因为测试怒如此的阑难,因此需要知道做些什么才能理顺测试 i :遣程。畜辩,程t 搴癸懑意去傲瓣测试遥程寿嫠劲黢事,露个包 括可能的设计点、特性等等的检查表对他们是很有用的。 袁定移在可爱予在缦多方嚣测凄霹测试性豹度量,奢瓣,可 测试性被用来表示个特定测试集覆谶产品的充分程度。在军方 述弱它来表示工其狻检验鄞修复数容易程度。这涎转意义帮略不 f 司于“软件可测试性”。下面的检查表提供了一缀可测试软件的特 0 北京交通火学硕i 学也论史网络停6 苦蔷份软件的发布前测试技术i i i f 究 征: 1 可操作性。“运行得越好,被测试的效率越高。” 系统弱诺误壤乡( 缮误熬上测试过程中楚分毒嚣翻缀告歼 销) 。 没有毽褥测试羧嚣戆错误。 产品在功能阶段的演化( 允许同时的开发和测试) 。 可观察性。“佟蹶看见黝羧是依廖测试的。” 每个输入有唯一的输出。 系统状态和变量可见,或在运行中可森诲。 过去的系统状态和变量可见或在运行中可釜洵( 例如: 事务r 志) 。 所有彩锏输出的围素都可觅。 容易泌别错误输出。 通过自测视镧自动债溺内部错误。 自动报佟内部错误。 瑶获敬源代筠。 2 可控制性。“对软件的控制越好测试越能够被自动执行 与蕊纯。” 所有可能的输出都产生于某种输入组合。 逶逑巢秘输入缝合,艨毒豹筏玛都露蠢技撬嚣。 测试工程师可直接控制软件和硬件的状态及变量。 输入秽竣出揍式缳持一致纛毒结稳。 能够便利地对测试进行说明、自动化和再生。 3 可分解性。“通过控制测试范疆,能够更快地分鳃阕题, 执行更灵巧的再测试。” f l 北京交通凡学硕l j 学生沱文 州终俘眙备份= j = 伴的发市前测试投求讲究 软沣系统由独立禳块构成。 能够独立测试各软件模块。 4 简单性。“需要测试的内容懑少,溺试的遽凄越浃。” 功能简雄性( 例如:特性集是满足需求所需的最小集 合) 。 结构简单性( 例如:将体系结构模块化以限制错误的繁 戆) 。 代码简单性( 例如:采用代码标准为检查和维护提供方 蠖) 。 5 稳定性。“改变越少,对测试的破坏越小。” 软争l :豹变化是不缀常救。 软件的嶷化是可控制的。 软中 的变化不影嗍已有的测试。 软件失散后能得剿良好恢复。 6 易理解性。“得到的信息越多,进行的测试越灵巧。” 设计能够被很好地理解。 内部、外部和共搴构件之间的依赖性能够被很好地理 解。 设计的改变被通知。 可缱露获取技术文档。 技术文档组织合理。 技术文糖馥确详缁。 技术文档精确性稳定。 软移工程努运溪j a 瓣e sb 牡h 提巍鲮这些满瞧亲嚣发霉测试 的软件配鼹( 即程序、数据和文档) 。 l , 北京交通入学颂f 二学止:垂土 嗣络1 竽储备份软件韵发布前测试技术研究 但是关于测试本身呢? k a n e r ,f a l k 和n g u y e n 给出了 “好”测试的一些属性: 1 个好的测试发现错误的可能性很高。为了达到这个目 标,测试糟必须理解软件,并尝试设想软件如何才能失败。理想 她,错误类别能被籍萌,例如,在g u l ( 图形罔户界面) 中有一 种潜在的错误,b 口错误识别鼠标位置。应该设计一个测试集来验 证鼠标位鬣瑷剐豹缮误。 2 个好的测试并不冗余。测试的时问和资源是有限的, 没有必要聿奄造一个与其德测试角途完全榻弱翡溺试,每个测试 都应该有不同的用避( 哪怕是细微的差异) 。例如,软件s a f c h o m e 。簪有一个骥块羧强柬识瘸瘸户密褥以决定是秀纛动系绞,为了嚣 试密码输入的错误,测试者璇计了一系列的输入密码测试。在不 黼茨溺试t = ;| 浚入露效与无效爨骂( 疆令数字) ,然嚣,每一个鸯效 :! i i 己效密码将检测一种不同锚误模式,例如,一个将8 0 8 0 作为有 效密强麓蓉绞将不会接受 # 滚整鼹1 2 3 4 ,费l 采接牧1 2 3 4 ,煺产垒 错误,另个测试输入1 2 3 5 。与1 2 3 4 的测试意图相同因此是 冗余靛,然嚣,非法输入8 鹪l 或8 1 8 0 就有些纲微的差异,靼对 与有效密码相近但并不相同的密码该进行测试。 3 ,一个好的测试应该是“最佳品种”。在一维目的桐似的测 试中,时问和资源的限制可能只影响典某个子集的执行,此时, 应该使用最可能找刹所有错误的测试。 4 一个好的测试既不会太简单,也不会太复杂。虽然有时会 将一组测试组合到个测试用例中,其副作用可能屏蔽错误,通 鬻,每一个溅试应该独立执行。 北京交通夫学硕士学位论文网持俘f i 言备份软件的麓布前测试牡术捌 究 1 2 5 测试方法和流程 软件测试从测试方法来区分分为:白盒测试及黑盒测试。现 在来说还有白加黑的测试,即灰盒测试。 软件测试方法主要有黑箱溅试方法与岛籍溺试两类。凳箱溅 试又称功能测试、数据驱动测试或基于规格说明的测试,是在完 全不考纛程序内部结梅帮内酃特性酶情况下,检查输入与输密之 问关系悬西符合要求。白箱测试又称结构测试、逻辑驱动测试或 基于程序游溺试,怒在已翔耧净内部缭镌鹣帻滗下设计 ; | 试震镶 的测试方法。显然,白箱测试适合在单元测试。扣运用,丽在独立 测试陵段多采滔黧褡溅试方法。 测试用例( t e s cc a s e ) 实际上是对软件运行过程中r i j i i 宵可能 存在豹毽糠、运动、行魏、强境器l 终搽豹捶逑,是霹骞残照爨勰 种抽象。设计测试用例& p 设计针对特定功能戏组合功能的测试 方寨,并编写成文糨;测试嗣镄应该喜搴现软搏王疆数思想秽壕则。 测试用例的选择既骚有一般情况,也成有极限情况以及暇大和最 小的边界缝情况。因为测试的强的是黎籍应用软 牛中隐藏的缺陷, 所以在设计选取钡试用例和数据时要考虑那些瓣于发现缺陷的测 试用例和数据,结合复杂的运行环境,在所有w 能的输入条件和 输出条件中确定铡试数据。来检查应掰软件是孬都能产缀正确的 输出。 软件测试所褥掰的数据经过处瑗暖詹,可赣雳来作为评倍软 件系统是否满足用户需求的依据。软件测试阶段的信息流如图2 新示: 1 4 北京交通人学砸 :学生:之上h 鲳1 竽储备汾软件曲发市前测试披卡研疤 软件配置 图2 软件测试阶段的信息流 根据测试流程和软件需求分析,本文b r i 曲t s t o r 测试的集成 测试、确认测试和系统测试主要以黑盒测试为主,白盒测试为辅。 下面分别对白盒测试和黑盒测试进行说明。 1 2 6 白盒测试 白盒测试,有时称为玻璃盒测试,是种测试用例设计方法, 它使用程序设汁的控制结构导出测试用例。使用白盒测试方法 软件工程师能够产生测试用例:( 1 ) 保证一个模块中的所有独立 路径至少被使用一次:( 2 ) 对所有逻辑值均需测试t r u e 和f a l s e ; ( 3 ) 在上下边界及可操作范围内运行所有循环:( 4 ) 检查内部数 据结构以确保其有效性。 此时可能会提出一个合理的问题:“我们应该更注重于保证程 序需求的实现,为什么要花费时间和精力来担心( 和测试) 逻辑 细节? ”换一种说法,我们为什么不将所有精力用于黑盒测试 呢? 答案在于软件自身的缺陷: 逻辑错误和不正确假设与一条程序路径被运行的可能性 成反比。当我们设计和实现主流之外的功能、条件或控 制时,错误往往开始出现在我们的工作中。日常处理往 北京交通人学硕i 。学旺渔上 同蠕存储备份软件的发市前测试技术i i j f 究 往被缓好缝了解( 釉矮好魂绥囊) ,瑟“籍殊谤况”静处 理则难于发现。 我嬲经窜稠售菜邋辑爨径不霹戆薮疑耄亍,焉事实上,它 可能在破常的基础上被执行。程序的逻辑流肖时是违反 壹觉戆,这意嚎餐我翻关予控制滚露数据漉黪一些无意 识的假设可能导致设计错误,只有路径测试才能发现这 些镬误。 印刷上的错误是随机的。当一个程序被翻译为程序设计 语言源代璐时,鸯砸能产生某些打印锩误,缀多将被谮 法检查机制发现,但是,其他的会猩测试开始时才会被 发现。打印错误出现在圭溅上和不明娃的逻辑鼢径上的 可能挂怒一样阳。 上述任何一祭原因都怒浚进行囱盒测试的论据,黑愈测试。 不管它多么全面,都可能忽略蓊舔撬副髂菜鍪类型豹错误。币如 b e i z e r 所说:“错误潜伏襁角落里,聚集在边界上”。白盒测试更 礤戆发现它翻。 l 。2 。7 黑盒测试 黑盘测试注重于测试软件的功能性需求,也即黑盒测试使软 件工程鄢派生出执行程序所有功能需求的输入条件。黑盒测试并 不是自盒测试的替代品,丽是用于辅助白盒测试发现其他类型的 错误。 黑盒测试试图发现以下类型的错误:( 1 ) 功能不对或遗漏, ( 2 ) 赛褥错误,( 3 ) 数嚣结构或箨部数据痒访滴错误,( 4 ) 经麓 6 北京交通人学母j 学她论文 错误和( 5 ) 裙始纯帮终止错误。 白盘测试在测试的早期执行,而黑盒测试主要用于测试的后 麓。翼鑫溪试敌意不考虑羧裁结镌,焉是注纛信惫竣。溅试瘸子 回答以下问题: 妇舞溅试功能懿有效连? 何种类型的输入会产生好的测试用例? 系统是否对特定敬输入篷尤其敏感? 如何分隔数据类的边界? 系统能够承受何张数据率和数据量? 特定类型的数据组合会对系统产生何种影响? 运厢黑鑫测试。可以鼯出满足以下标准的测试用例嶷:( 1 ) 所设计阳测试用侧能够减少达到合理溺试所需的附加测试踊例 数,和( 2 ) 所设计的测试用例能够侉知某些类型错误的存在或不 存在,弼不是仅仪与特定测试榴关豹错误。 1 2 。8g u i 溅试 考虑到b d g h t s t o r 软l 譬大量用劐g u i 界蕊,丽我们在测试过 程中必然涉及到g u i 测试,将g u i 测试单独讨论一下。 图形用户界颟( g u i ) 对软件工程师提出了有趣的挑战,因 为g u l 开发环境有可复角的构件,开发用户券两更加省辩而盈更 加精确,同时,g u i 的复杂性也增加了,从而增加了设计和执行 溺试用铡麓难度。 因为现代g u i 有相同的观感,融经有一序列标准的测试。下 列闷题可浚痒秀常冤g 氆测试的捂旃; 北束交通凡掌坝1 j 学泣1 皇上荆络徉瞄蔷汾软件的蕊市前测最投术骈究 对于窗嗣: 窝翻能委麓予提关的输入或黎单鸯令邋搬地打开? 塞馥链否敬变大,l 、移动帮滚渤? 霞口中的数握内容熊否用鼠掇、功能键、方向错头和键 盘谤溜? 溺被覆盏并踅调用艏,窗口能西正确地掰生? 篱要对熬餐经魇蘑露塞墨籀关戆凌篷? 所有窗口棚关的功能是可操作的吗? 是否有穗美熬下拉式菜单、王菇条、滚渤条、对透蘸、 按钮、图标和疑他控制可为窗口可用,并适当地显示? 摄示多个锯疆辩,滋翻静名拣楚覆被遥囊恁表示? 滑动窗口怒脊被适当地加亮? 弼采经弼多任务,怒臀掰有 | 勺窿鐾技袋时瑟瑟? 寥次或不币确梭鼠标是否会挣敬无法预料的尉作用? 键溜豹声鬻帮颜色拖运秘窘鲻的授 乍攫樊净是褥符合需 求? 窝翻是香疆演她关闭? 对于下| 妻式菜单黧藏稼搡俸: 蘩犟条是漤漫示在含邂的语境中? 痰鼷程痔豹菜萃条楚器显示系统疆关鹣特缝( 魏辩镑显 示) ? 下接式揉终麓羹:凑工终嗨? 菜单、调甑板和工具祭是否工作正确? 燕喾适当媲裂出了掰餐戆菜攀凌能移下接式子凌裁? 鼹茵可以通_ i 建鼠标访婀所有的菜单功能? g 北京交通九学硕i j 掌心论之 m 络存储缶份软件的发市前测试技术 i j f 究 文本字侮、大小帮格式是器西三确? 是否能够用其他的文本命令激活每个菜单功能? 菜单功筑是否睫当 ;誊懿窑嗣撩 乍热凳袋变荻? 菜单功能是否正确执行? 菜单功麓憨名字楚否其寿自烬器。蓬? 菜单项怒否有帮助,是否语蟪相关? 在整个交互式语境中,是否可以识别凝标操作? 如果要求多次点击鼠标,是否能够在语境中正确识别? 如果鼠榕有多个按键,是否能够在语蟪中聂确识别? 光标、她理指示器和识别指针是否随操作恰当地改变? 对于数据项: 字母数字数据项怒否能够i j 三确回显,并输入到系统中? 图形模式的数据项( 如滑动条) 是否正常工作? 是否能够识别菲法数据? 数据输入消息是前可理解? 除了上述智栽赣矫,鸯隈狡态建穰图也可璐焉予警鞋 g u i 稳 关的数据和程序对象的测试集。 霾菇g u l 攥佟稳关懿瓣刭鼗镁大,鬃浚反当用自麓托工兵进 行测试。 1 2 9 软件测试的原则 在浚计有效豹 羹! | 试雳铆之前,软 孛工程耀必须理解较侔测试 的基本原则。d a v i e 提出了一组测试原则: 掰青豹溺试嫠痤追溯鬟竭户需求。釜翔我稻掰知,较 譬 1 9 北京交通凡学硕i j 学泣论文州络存储备份软件的发布前测试技术研亢 测试的目标在于揭示错误。而最严重的错误( 从用户角度来 看) 是那些导致程序无法满足需求的错误。 应该在测试工作真正开始前的较长时间内就进行测试计 划。测试计划可以在需求模型一完成就开始,详细的测试用 例定义可以在设计模型被确定后立即开始,因此,所有测试 可以在任何代码被产生前进行计划和设计。 p a r e t o 原则应用于软件测试。简单而言,p a r e t o 原则暗 示着测试发现的错误中的8 0 很可能起源于程序模块中的 2 0 。当然,问题在于如何孤立这些有疑点的模块并进行彻 底的测试。 、,测l :j i = 应从“小舰摸”开始,逐步转向“大规模”。最初的 测试通常把焦点放在单个程序模块上,进一步测试的焦点则 转向在集成的模块簇中寻找错误,最后在整个系统中寻找错 误。 穷举测试是不可能的。甚至一个大小适度的程序,其路 径排列的数量也非常大因此在测试中不可能运行路径的 每一种组合,然而,充分覆盖程序逻辑,并确保程序设计中 使用的所有条件是有可能的。 为了达到最佳效果,应该由独立的第三方来构造测试。 “最佳效果”指最可能发现错误的测试( 测试的主要目标) 。 2 0 北京交通人学坝l 学位i 上叫络俘储番份软件的发市前测试技术一,圩, 第二章网络存储备份系统 2 。1 存储局域网 b 吨h t s t o r 存储备份软件中用到了s a n 思想来进行远距网络 环境下的存储备份,s a n 作为配置网络化存储的一种方法,有着 其可扩展性、高可用性、容错性以及可管理性等品质。这一节, 笔者将就s a n 的原理与构成进行简要的讨论。 2 1 1s a n 的定义 s a n ( s i o r a g c a r c an e t w o r k ) 是类似于普通局域网的一种 高速存储网络,它通过专用的集线器、交换机和网关建立与服务 器和磁盘阵列之间的直接连接。s a n 不足一种产品而是配胃网络 化存储的一种方法。这种网络技术支持远距离通信,并允许存储 设备真正与服务器隔离,使存储成为可由所有服务器共享的资源。 s a n 也允许各个存储子系统,如磁盘阵列和磁带库,无需通过专 用的中间服务器即可互相协作。其接口通常不是以太网,而是 e s c o n 、s c s i 、s s a 、h i p p i 或光纤通信。 s a n 能够解决与网络存储备份有关的问题,它可以提供l o o 兆字节秒的高性能数据管道和共享的集中管理的存储设备。它 将消除人们对网络带宽的顾虑,大幅度地减少管理费用支出,并 将减少备份系统的总体拥有成本。 s a n 的主要思路是将l a n 上的存储转换到主要由存储设备 组成的s a n 上,使得数据的访问、备份和恢复不影响l a n 的性 2 北京交通人掌硕i j 学堂论文h 缔仁储备份软件的发市前测试技术研究 能,在有大量数据访问时,不会大幅度降低网络性能。 2 1 2s a n 的架构 分析s a n 的架构有各种不同的观点,本节从s a n 的物理结 构和逻辑结构入手,分析s a n 的架构。 2 1 _ 1 1s a n 的物理架构 从物理角度上来看,典型的s a n 环境应包括4 个主要组成部 分:最终用户平台、服务器、存储子系统和互连设备。在s a n 中, 最终用户平台可与光纤连接并可直接访问存储设备。 其中s a n 的存储予系统采用s a n 方案除了需要具有f c ( f i b e r c 1 1 a n l l e i ) 连接性以外还有一些对存储子系统的特殊要 求。 第一是高容错性,由于存储是集中式的,这些存储系统必 须具备极高的可靠性和容错性。虽然系统可以射界的具有高可靠 陛,但是部件仍然可能发生故障。冗余部件则可确保高容错性。 系统设计也应允许故障部件的热插拔,这样在进行维护的时候就 不会影响系统的正常运行。 - 第二是远程管理型。理想情况下,通过支持标准网络管理 协议如s 幢p 以及可以提供运行在网络上的管理工具,设备应可 提供远程管理。有一种专用管理端口称为“带外”管理,是大多 数网络设备比较倾向的方法。利用带外管理,在存储系统运行的 同时与其通信不会产生问题:数据接口的故障也不会影响管理工 具访问该系统。 第三是可扩展性,s a n 存储子系统应在容量和性能方面具 北京交通人学预l + 学也论上 h 络存储器汾丰太烨的发布前;则试技术j 卅宄 有可扩展性以配合网络上日溢增加的数据量。 s a n 的互连设釜是通过窟带宽光终通道逐接的。光纤通道 ( f c ) 怒当今主网首选,它已经成为s a n 接豳的工业标准,它 允许无限制豹设备数量( 服务器和存艟系统) 互相连接。对所有 维成s a n 的部件的第一个要求是具有f c 连接髓。对服务器,即 意味着安装f c 主机总线适飙卡以及蘸容设备驱动程序。对诸如 r a d 或磁带库等存继子系绕,邵意嗪着支持f c 或是通过f c 至 s c s i 桥( 可将传统的s c s i 设备连接到s a n 上) 。 毙纤懑遂阕络澎捂在霆骚务器窝存穗设备之阉楚使露光纤逶道 进行设备的互连。f c 连网可以有几种彤式:最简单的互琏是通过 f e 集线灞,较为复聚瓣瑟嚣楚逶j 薹= 光纾逮遂交羧橇,交挨撬是一 种多端殴祷允许:任意多剥多远接。具橱f c 交换机,每个连接均 霹获褥每莘多l g b t 繁宽。 2 1 。1 2s a n 的逻辑结构 获逻辑爱笈上寒漉,s a n 建交软终嚣棼硬件强卦镶秘采定义 的。一个s a n 的逻辑运行要求由应用程序和管理工具的参与,这 些王具麓够怼许多主瓤系统孛豹存耱资源避嚣警淫。这耱逻辑管 理体系结构包括从数据管理应用程序到设备管理在内的几个层 次,还毖矮包援每基孛豹袋瑾控割。 s a n 需要通过网络进行集中或远程的管理。即需要管理工具 戏整套工具软传。通常,撼个可管瑾f e 设嫠豹厂亵都会提供 各自专用的软件来管理其特材的设备。理想的方案是单一的端对 端管理的廒用程序采管理s a n 上所有豹设各。选样的一个工具应 该基于业弊标准协议如s n l v i p 。 北京交通人学砸i j 学世论上措存储备份软件的发布前;则试投术研亢 s a n 应用软件根据存储设备类型一r a i d 、磁带库、光盘库 一使用不同的应用软件。以磁带库为例,最常用的应用是网络备 份恢复。当今大多数主要应用软件供应商都在致力于对s a n 进 行支持。对应用软件而言没有业界标准,所以很重要的一点是确 保存储子系统和网络硬件全部兼容。 2 2 数据的存储备份 b 吨h t s l o r 软件作为专业的数据存储备份软件产品,对数据的 存储备份进行了多方面的考虑,包括软硬件实现及存储备份策略 等。这一节,笔者将对数据备份进行简要的介绍。 2 2 1 硬件级备份与软件级备份 数据的备份可以分为硬件级备份和软件级备份。硬件备份是 通过冗余硬件来保证系统的正常运行,如果某个硬件损坏,后备 硬件马上能够接替其工作,例如双c p u 、磁盘双工、磁盘阵列、 双电源、双机容错等。硬件备份的作用实际上是保证系统在出现 故障时能够连续运行,因此又可称为硬件容错。 硬件容错无法防止人为的或软件逻辑上的错误,如自然灾害、 人为误操作、病毒感染、黑客攻击、数据错误等。据有关资源统 计,计算机系统中8 0 以上的错误属于人为操作。当逻辑错误发 生时,硬件备份只会将错误复制一遍,无法真正保护数据。 软件级的备份是通过备份软件将系统数据保存到存储介质 上,如磁带库、磁盘阵列等,系统出错时可以将系统恢复到备份 时的状态。用软件备份方法恢复数据都要花费一定的时间,但可 北京交通人掌顺j 掌生论z州络夸澎斋汾赣肄鞠发市旃测试技术f l j f 宄 以防止逻辑错误,蹦为备份介质和计算机系统是分开的,可以实 蠛异遗套 5 ; 数据,秘止错误不会再写到餐份存铸余覆上。软 孛缀 备份是建立在硬件缀备份基础上的,只有在硬件不出故障的情况 下才能很好的进行软传级备份工l 乍,两且硬件级镥份也可以减少 由于硬件损坏造成的数据丢失。 b r i 曲t s t o r 软件在数据蛰份实现上采用了硬件级备份与软件 缀结合的方式,实现了数据备份高可靠性。 2 2 。2 备份策略 毒髅攥份产晶对存储备份采羽一定的存储镪份策略,以实现 锵份搡作的商效合理。这一节,笔者将简要讨涂一下常用的三种 嵇份策略。 2 2 2 1完全备份策略 就是每天郝对囊己的系绞进 亍完垒备份。铡如楚一天用一盘 磁带对整个网络数据进行完众备份,第二天再用另盘磁带对整 个数据避彳亍完全备班,依此类撰,可以根据自己嬲磁带多少轮循。 这种备份策略的好处是数据芸失时,必用一盘磁带( 发生灾难前 天的备份磁带) 就可以恢复丢失的数据。不足之处是每天都对 数据进行完全备份,有许多数据是重复的,这就浪费了大量的磁 带空间,就增加了成本;而鼠由于备份的数据墩相当大,会占用 c p u 的资源,影响前台工作。 2 2 。2 2增量备份策略 在每个月的第天或每周一进行一次完全备份,然焉在接下 泉约四天熙,只对当天新的绒被改动道的数据进行备份。这种这 , j t 亲交通天掌颟 。学篷论之露豢昝端蔫静较露翡笈帮翦测试技术研究 种备份的优点很明显:没有羡复的备份数据,既节省了磁带空间, 又缩短了备份的时间。它的缺点是恢复数据比较麻烦。系统管理 员需要酋先找出第一次的那艋完全备份磁带进行系统恢复,然后 爵找出第二天的磁带来恢复第二天的数攥,僚诧类雄。缀翳显在 这种备份下,其中任何一盘磁带出了问蹶都会导致备份失败。 2 。2 2 3 差分备份策略 存储管理员酋先在星炳一或每个月的第一天,进行一次系统 究全备份;然后在谈下来静凡天墨。存储管理员在将当天所有与 前一天不同的数獭( 新的或经改动的) 铸份到磁带上。茬分锯份 策路在避免了勇舞两释策鞴静漱陷的同辩,又器露7 它们酾所有 优点。首先,它秃需每天部做系统蜜全备份,黼肫备份所辩时阊 缀,并繁寮磁带窆淹;其次,窀豹羧燮瞧镶方霞。系统管鬟臻灵 需两盎磁带,即鬃期磁带与灾难发生前一天黼 | ;,魏胃褥系统 锻复。 大多数搽佟系统都窿带备诠功链,妇w i n 曲w sk 誓约 w i n d o w s b a e k 毽p 、i 沁i x 麴a r 愈令,n e 溆a r c 的轴a e ;( u p 等,都 挺供一骜鏊本豹冬份功能。系统自豢的餐论功能一般是逐个文馋 拷贝,因懑速度较熳,且会影响翦台的工作。专业备份软件具有 跌象冬份功能,馒数据各扮珂以绕过文姊系统,把数据踅接从硬 盘备份列磁带机或支持最毅存储技术。例如惑酱的脚e a l e r t 技 术。目前我嬲所采用的操 乍系统往缝还没有来樽及支持这种新按 术,还不能享受许多新的智能化功能。 b r i 曲t s t o r 款件采用多种备份策略选择络合酌方法,根据实 际应用情况及备份要求等采取含适的备份策略。以期达剿备份的 北寒变通久学蛳 :学旺i 是支 州精搭嫡嚣份软件的技市前测试投术研究 合理高效。 2 。3 流行的专业网络数据冬携软锋 2 。3 。lb r i 曲t s t o r 存储备份软件 b 蘸g 楚s t o r 歉侮趸美丽e a 公司专门为勰决鍪份方絮露开发麓 存储备份管理软件。b r i 醉t s t o r 能为键耩案面梳弼大型梳在肉虢熬 个金鼗提供粪噩三熬避澍壤魏数据保护。 b r l 婚t s t o r 采翔先进瓣技术手段力求圭器存储备份嚣溲嚣发 鼹方囱;b 姓馥s 幻f 款毅技术捌有系列躲囊勘化特征釉功能,馊 器惨更爨予实藏鞠蛰毽。髓支持嚣蹙爨熬奔艨、竣冬、勰爝软传 釉环境,并提供囱动灾滩恢复、复制和数据迁移功能( h s m ) 。 b 担垂l s 。r 为客户提供多枣| ? 选撵,可满足不网的露求,谯用户对打 开的数撼库、通信系统、内部网、翻际盟联网服务器进行在线热 鍪份,必需在常娥备份时阍将系统关闭。 b r i 曲t s f o r 盘耍特征: 一职能的客户端和服务器数据压缩 一集中式数据库备份 一离性能软件磁带r a 备份恢复 一祖父一子介质轮转 一远程灾难泼笈 一关键层注册( r e 西s 田) 备份鞴恢复 一内鬣瘸毒摆擒功戆 一内嚣鼗舔迁移( 酲s m ) 北寨交通火学硬l :学旺论文 网络存赌蔷甜软件的发布前测试技= l 乏f i j 究 一跨企妲的c l i e n t a g e n t 和0 p t i o n s 的单惠安装。 b 逝蚤l s t o r 是练合备蛰恢复秘数据蛰建筑院较好鹣 2 3 。2n e 七w o r k e r 存储餐份管理软件 美豳l e g a t o n e t w o r k e r 数据存储管理系统掇供了客户服 务器体系缩率句的鬻络数据襻髓管理解决方案,n e t 黼r k e f 软件逶 过在网络中选定一台桃器作为数据存储管理的备份腋务器,在其 它税器七安装n e t 、诵暾e f 熬客户端较锌,献露涛整个弱络躬数摄 全音动_ l | i 备份在备台税器上建纛相反静餐傍数据翁索雩l 裘,来实 蕊数据豹垒自魂恢复。宅豹a 辩越v e ( 姻档) 搜块逐霹以安现将历 交数弦永久绦存到存储奔震上萍清理茬芟懿土熬辍始数据。 n e 、汰e f 鹣囊耍功能: 一全爨渤鍪论 一蒎线式索弓i 一震中式蛰理 一归档管理 一媒
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全员c证模拟考试题库和及答案解析
- 招标从业人员 考试及答案解析
- 精神科护理副高题库及答案解析
- 教学反思核心内容与写作要点
- 口腔健康教育课件及教案设计
- 劲性剪力钢板墙施工技术创新与应用研究
- 虚拟现实房产交易效果评估-洞察及研究
- 大学生创新创业比赛项目辅导资料
- 小梁庄街道安全性测试题及答案解析
- 房屋建设施工合同的样本
- DB42∕T 2221-2024 预制芯桩复合桩技术规程
- 软件正版化工作培训资料
- 抗癫痫类药讲课件
- 2025三年级科学教学质量提升计划
- 绿化公司仓库管理制度
- 飞行器维修技术专业教学标准(高等职业教育专科)2025修订
- 2025-2030中国环氧浆料市场供需现状与未来前景趋势洞察报告
- 安装调试服务合同
- 酒类厂家总代理协议书
- 省级职业技能大赛2024(高职组)舞台布景赛项规程
- 2025-2030中国慢性肾脏病(CKD)行业市场发展趋势与前景展望战略研究报告
评论
0/150
提交评论