




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)ngoss软件自动化测试技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
簟 , 南京邮电大学 硕士学位论文摘要 学科、专业:工学计算机应用技术 研究方向:让簋扭通信圆终 作者:盟级研究生刘会玉 题目:n g o s s 软件自动化测试技术研究 英文题目:s t u d yo na u t o m a t e dt e s t i n gt e c h n o l o g yo fn g o s s 主题词:n g o s s自动化测试技术分布式系统任务分配 任务调度遗传算法 k e y w o r d s :n g o s s a u t o m a t e d t e s t i n gt e c h n o l o g y d i s t r i b u t e ds y s t e m t a s ka s s i g n m e n tt a s ks c h e d u l i n gg e n e t i ca l g o r i t h m 卞, 矿 , - l , , 南京邮电大学硕士研究生学位论文摘要 摘要 随着i n t e m e t 的迅猛发展,客户需求越来越多,n g o s s ( n e wg e n e r a t i o no p e r a t i o n s o f t w a r ea n ds y s t e m ,新一代运营软件和系统) 软件越来越复杂。目前n g o s s 软件的体 系架构能提供分层分布式应用模型、能重用组件、能为用户提供统一安全模型和灵活的 事务处理控制等特性,以顺应发展满足市场需要。但是,如何保证目前的n g o s s 软件 的质量、开发效率、服务性能成为运营商支撑软件产业发展的核心议题之一,而其中最 重要的问题就是如何保证n g o s s 软件中业务组件的功能和流程的正确性。为了解决这 个问题,同时也为了保证n g o s s 软件中业务组件的质量和可靠性,本文通过研究软件 自动化测试技术,设计了一种n g o s s 软件自动测试系统模型以保证n g o s s 软件中业 务组件的功能和流程的正确性。 本文首先主要针对n g o s s 软件进行研究分析,结合自动化测试技术,提出了一种 适用于n g o s s 软件的自动化测试系统模型;然后对该系统的总体架构及其主要组成部 分进行了详细的分析与研究;最后针对n g o s s 软件业务流程测试中测试用例多、测试 任务繁重的问题,结合所提出的分布式测试系统,引入遗传算法提出了一种测试任务分 配与调度策略解决测试任务所包含的多测试用例的分配与调度的n p 困难问题。n g o s s 软件的分布式自动化测试系统模型解决了测试工具的跨平台性差、可扩展性差、日志管 理复杂、问题难以追踪以及本身健壮性不好等问题,达到了“一次配置,自动执行”的 目的;经过仿真实验证明,所提出的测试任务分配与调度策略能对业务流程测试中多用 例进行统一分配、实时调度,使得测试用例连续执行,提高了整个自动化测试的执行效 率和测试资源的利用率。 关键字:n g o s s ,自动化测试技术,分布式系统,任务分配,任务调度,遗传算法 南京邮电大学硕士研究生学位论文a b s t r a c t a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n t e m e t ,t h en u m b e ro fc u s t o m e rd e m a n d si sg r o w i n a n dn g o s s ( n e wg e n e r a t i o no p e r a t i o ns o f t w a r ea n ds y s t e m ) i sb e c o m i n gc o m p l i c a t e d i n o r d e rt om e e tm a r k e tn e e d sa n dd e v e l o p m e n t ,n o w , n g o s ss o f t w a r ep o s s e s st h ee x c e l l e n t p r o p e r t i e s ,s u c ha sp r o v i d i n gat i e r e da n dd i s t r i b u t e da p p l i c a t i o nm o d e l ,a b l et or e u s et h e c o m p o n e n t s ,p r o v i d i n gu s e r s o fau n i f i e ds e c u r i t ym o d e la n dt h ef l e x i b l et r a n s a c t i o n p r o c e s s i n gc o n t r 0 1 h o w e v e r , h o wt o e n s u r et h en g o s ss o f t w a r eq u a l i t y , d e v e l o p m e n t e f f i c i e n c y , a n ds e r v i c ep e r f o r m a n c ei so n eo ft h ec o r ei s s u e sf o rt h eo p e r a t o r st os u p p o r tt h e d e v e l o p m e n to fs o f t w a r ei n d u s t r y t h ei m p o r t a n tp r o b l e mo fi ti sh o w t oe n s u r ev a l i d i t yo f b u s i n e s so nn g o s s t os o l v et h ep r o b l e ma n de n s u r er e l i a b i l i t ya n dq u a l i t yo fb u s i n e s so n n g o s s ,t h ep a p e rr e s e a r c h e ss o f t w a r ea u t o m a t e dt e s t i n gt e c h n o l o g yt oe n s u r ev a l i d i t yo f b u s i n e s so nn g o s ss o f t w a r e i nt h i sp a p e r , f i r s t l y , w eg i v ea na u t o m a t e dt e s t i n gs y s t e mm o d e lf o rn g o s ss o f t w a r eb y a n a l y z i n gt h en g o s ss o f t w a r ea n dc o m b i n i n gw i t ht h ea u t o m a t e dt e s t i n gt e c h n i q u e s a n d t h e n ,w ei n v e s t i g a t et h eo v e r a l ls y s t e ma r c h i t e c t u r ea n di t sf r a m e w o r ki nd e t a i l f i n a l l y , a i m i n ga tm o r et e s t c a s ea n dt e s t j o b ,c o m b i n i n gt h ed i s t r i b u t e dt e s ts y s t e m ,w ei n t r o d u c et h e g e n e t i ca l g o r i t h ma n dg i v eas t r a t e g yo ft a s ka s s i g n m e n ta n ds c h e d u l i n gt os o l v et h en p d i f f i c u l t i e sp r o b l e mo fm o r et e s t c a s ea n dt e s t j o b t h ed i s t r i b u t e da u t o m a t e d t e s t i n gs y s t e m s o l v et h ep r o b l e m s ,i n c l u d i n gp o o rc r o s s p l a t f o r m ,p o o rs c a l a b i l i t y , c o m p l e xl o g g i n gm a n a g e , d i f f i c u l t yo ft r a c k i n gp r o b l e m s ,a n dp o o rr o b u s t n e s so ft e s t i n gt o o l s a n di tr e a l i z e st h eg o a lo f ”o n e - c o n f i g u r a t i o n ,s e l f - e x e c u t i n g ”i na d d i t i o n ,t h r o u 曲s i m u l a t i o nt h es t r a t e g yo ft h et e s t t a s ka s s i g n m e n ta n ds c h e d u l i n ga s s i g n sa n ds c h e d u l e st e s t c a s ea tr e a lt i m e ,a n di m p r o v e st h e e f f i c i e n c yo ft h ee n t i r ea u t o m a t e dt e s t i n ga n dt h eu s a g eo ft h et e s tr e s o u r c e k e y w o r d s :n g o s s ,a u t o m a t e dt e s t i n gt e c h n o l o g y , d i s t r i b u t e ds y s t e m ,t a s ka s s i g n m e n t , t a s ks c h e d u l i n g ,g e n e t i ca l g o r i t h m i l 南京邮电大学硕士研究生学位论文目录 目录 摘要:i a b s t r a c t 。? i 。,。:i i 第l 章绪论1 1 1 课题来源及研究内容1 1 2 课题研究的背景和意义1 1 3 国内外研究现状2 1 4 论文的组织结构4 第2 章软件测试及其自动化技术5 2 1 软件测试5 2 1 1 软件测试概述5 2 1 2 软件测试技术- 5 2 1 3 传统软件测试中的问题8 2 2 软件自动化测试8 2 2 1 自动化测试概述8 2 2 2 自动化测试的优点1 0 2 2 3 自动化测试的局限一。1 l 2 2 4 实施自动化测试的原则1 l 2 3 本章小结1 2 第3 章n g o s s 软件及其测试需求分析1 3 3 1n g o s s 简介1 3 3 2n g o s s 的体系结构及技术思想1 3 3 3n g o s s 软件的测试内容1 5 3 4n g o s s 软件的自动化测试技术难点和解决方案:一1 6 3 5n g o s s 软件的自动化测试系统的功能需求1 7 3 6 本章小结1 7 第4 章n g o s s 软件自动化测试系统的设计与分析1 8 4 1 系统的总体设计与分析1 8 4 1 1 总体设计目标18 4 1 2 基本功能设计1 8 4 1 3 测试阶段分析1 9 4 2 系统的应用架构2 0 4 2 1 系统的应用框架2 0 4 2 2 系统框架的执行机制2 l 4 2 3 系统框架的特点2 2 4 3 系统的部署架构2 2 4 4 系统中主要模块的详细分析与研究2 3 4 4 1 人机交互接口2 3 4 4 2 测试用例脚本管理2 4 4 4 3 测试环境管理2 7 4 4 4 测试管理中心2 7 4 4 5 测试执行节点:3 0 4 4 6 日志管理模块3 3 4 4 7 测试报告生成发送模块3 4 4 4 8 测试系统的数据库3 4 i 南京邮电大学硕士研究生学位论文目录 4 5 系统的优点3 5 4 6 本章小结。:3 5 第5 章测试任务分配与调度策略的设计与仿真,3 6 5 1 测试用例的依赖关系3 6 5 1 1 测试用例依赖关系的分析3 6 5 1 2 测试用例依赖关系的表达3 6 5 2 测试任务分配与调度的控制流程3 7 5 3 测试任务分配与调度策略分析3 8 5 4 基于g a 的实时分配与调度策略3 9 5 4 1 遗传算法简介3 9 5 4 2 测试任务问题的数学模型4 l 5 4 3 基于g a 的实时策略的设计与实现4 l 5 5 仿真实验与结果分析4 5 5 5 1 算法中控制参数的取值4 5 5 5 2 几种测试任务分配与调度策略的比较分析4 7 5 5 3 实时分配与调度策略的应用5 0 5 6 本章小结5 3 第6 章总结与展望5 4 6 1 本文总结5 4 6 2 未来展望:5 4 参考文献5 5 致谢5 8 研究生期间发表论文5 9 附录一术语注释6 0 附录二数据结构6 l i v n g o s s 软件中业务组件的功能和流程正确性测试的自动化测试系统模型,并结合该系 统模型,针对n g o s s 软件业务流程测试中的测试任务所包含的多用例分配与调度问题 进行了深入的研究。具体研究内容如下: 1 对软件测试及其自动化技术理论进行分析和总结。重点分析总结了:软件测试 的基本概念、目标、方法以及策略;自动化测试的相关理论、优点和局限以及实施原则。 2 对n g o s s 软件进行分析研究,主要就n g o s s 软件的体系结构和技术思想进行 了分析和总结;结合课题来源的项目需要,重点分析了n g o s s 软件的测试内容和测试 技术难点及解决方案,并给出了设计其测试系统的功能需求。 3 提出了一种适用于n g o s s 软件中业务组件的功能及流程正确性测试的分布式自 动化测试系统模型,并对该系统模型进行了详细的设计与分析,包括总体设计目标、基 本功能、应用框架、部署架构以及系统的主要组成模块等。 4 对n g o s s 软件的业务流程测试所需多测试用例的关系和表达进行分析,提出了 一种对测试任务所包含的多测试用例的分配与调度策略,即基于g a ( g e n e t i ca l g o r i t h m , 遗传算法) 的实时分配与调度策略,并使用v c + + 为实验环境,对该策略的适用性进行 了仿真分析。通过与随机分配调度策略以及s g a ( s i m p l eg a ,标准遗传算法) 策略进 行实验比较分析,证明了该策略实现了多用例的统一分配、实时调度,提高用例的执行 效率;并通过实例应用,进一步说明该策略提高了测试执行效率和测试资源的利用率。 1 2 课题研究的背景和意义 近几年,随着软件规模的扩大,软件复杂度的提高,无论是软件开发商还是软件的 l 堕塞坚鱼奎兰堡主堕壅竺兰篁垒茎笙! 童堕笙 终端用户对软件质量的要求都越来越高。目前,提高软件质量的技术中,最直接、最有 效的手段还是软件测试技术。大量资料表明,通常花费在软件测试和排错上的代价大约 占软件开发总代价的4 0 左右【lj 。软件测试是一项花销巨大的工作。传统的人工测试技 术不但要耗费大量的人力资源,还需要很长的测试周期,测试的效率低下,并严重依赖 于测试人员的个人经验,即使很简单的程序也可能由于个体思维习惯导致测试的遗漏。 自动测试技术则可以弥补这些问题。自动化测试是个完整、严密的测试过程,使用准确 的测试法则和评估标准,避免测试人员经验判定的疏漏,以及惯性思维所导致的偏差。 随着自动测试技术的研究以及相应的自动测试工具的开发,自动测试技术可以有效提高 测试的效率,减少繁琐的重复劳动,保证测试的可重复性。对于繁琐而大量重复的软件 测试工作,自动测试技术无疑正是测试人员所期待的解决办法。 n g o s s 软件是支持分布式处理的软件系统,是能够在由通信网络互联的多处理机 体系结构上执行任务的系统。该系统既可以运行在相同的平台上,也可以运行在不同的 平台上。尽管传统的测试技术仍然可以应用于分布式软件系统的局部测试之中,但是远 远不能满足这类分布式软件测试的要求。因此,传统的测试技术必须经过改造才能适用 于n g o s s 软件的测试。面对n g o s s 系统软件测试任务繁重、测试周期短、测试内容 重复率高、环境搭建复杂、运行平台复杂等问题,唯一解决方案就是建立一套可以根据 不同的测试内容定制任务、有统一的操作平台、可以透明的搭建环境和执行用例、能“一 次配置,自动执行”的自动化测试系统模型。由于n g o s s 软件系统是大型的分布式系 统,构架复杂,测试任务繁重,因此研究基于n g o s s 软件的分布式自动化测试技术具 有重要实际意义。而测试任务中的多用例的分配与调度是分布式自动化测试系统中的关 键技术问题。有效的任务分配与调度策略节省人力、物力及财力,提高整个系统的执行 效率和测试资源的利用率,这正是采用自动化测试的主要目的所在。对于n g o s s 软件 的自动化测试系统来说,采用完善高效的任务分配与调度策略具有深远的意义。 1 3 国内外研究现状 软件测试作为软件工程学科的一个重要分支,随着软件的发展而发展。自从2 0 世 纪7 0 年代以来,国内外许多学者和组织在软件测试方面进行了大量的研究工作,形成 许多经典的软件测试技术和软件测试流程管理规范。目前软件测试技术的研究主要向网 络化、大型化和自动化方面发展,主要包括c l i e n t s e r v e r 系统、基于i n t e m e t 的w e b 应 用系统、嵌入式系统的软件测试技术的研究和测试工具的研制。 国外大约在十几年前就开始进行软件自动化测试的研究了,形成了一套比较成熟的 2 南京邮电大学硕士研究生学位论文第l 章绪论 理论,出现了一批比较优秀的自动化测试工具社j 。 文献 3 】中给出了四种典型的自动化测试基本框架:脚本模块化架构、测试库架构、 数据驱动架构及关键字或表格驱动架构框架。文献 4 d p 是比较有名的a u t o m a t e dt e s t i n g s p e c i a l i s t s 公司提出的基于数据驱动的自动化测试方法以及g u i ( g r a p h i cu s e ri n t e r f a c e ,。 图形用户界面) 测试方法;文献【5 中m e r c u r yi n t e r a c t i v e 公司提出的关键字驱动自动化 测试方法及录制回放式的自动化测试方法。数据驱动方式的测试代码不便重用,对测试 人员的编程能力要求比较高;关键字驱动方式的测试代码便于重用,数据表记录包含了 动作,输入数据和输出的期望结果;文献 6 中l o g i g e a r 软件测试公司提出基于动作的 自动化测试方法,该方法也源于关键字驱动方法。许多商业产品采用关键字驱动方式, 作为第三方工具提供给用户,文献 7 】中比较典型的有h a n sb u w a l do fc m g 公司的 t e s t f r a m e 产品和l i n d ah a y e so fw o r k s o f t 公司的c e r t i f y 产品,他们采用关键字驱动技 术【8 j 为全球软件测试会议、测试培训部门提供自动化测试原型。 文献【9 】中美国的i e e e 、a c m 等组织制定了一系列软件测试规范,国外的许多大学 ( 如卡耐基一梅隆大学、华盛顿大学等) 、研究机构( 如n a t i o n a ls o f t w a r et e s t i n gl a b 等) 和公司( 如s o f t w a r er e s e a r c h ,m e r c u r yi n t e r a c t i v e ,r a t i o n a lc o r p o r a t i o n 等) 进行 了大量软件测试的研究和应用工作。其中卡耐基一梅隆大学侧重于回归测试和 c l i e n t s e r v e r 测试技术的研究,g e o r g em o s a n 侧重于基于规范的测试自动生成和面向对 象测试技术。比较流行的软件测试工具集有s o f t w a r er e s e a r c h 的t e s t w o r k s 、r a t i o n a l 的r o b o t 、m e r c u r yi n t e r a c t i v e 的w i n r u n n e r l o a d r u n n e r 、l d r a 的t e s t b e d 等。 国内的软件产品测试技术研究起步晚,在人力、物力上投入与国外相比差距较大【l o 】。 ( 1 ) 上海市软件评测中心( s h s t c ) 1 1 l 。评测环境:s o l a r i s 平台、a i x 平台、o s 4 0 0 平台、h p u x 平台、n t 和l i n u x 平台、网络环境;评测业务包括软件评测和网络 评测,软件评测包括:软件产品登记测试、软件产品性能测试、单项功能确认测试、标 准符合性测试、开发过程中的单元测试和集成测试、信息工程项目验收测试、信息工程 监理:网络评测包括:网络布线认证测试、网络系统性能测试。 ( 2 ) 中国软件评测中心( c s t c ) 1 2 】。它是国家级第三方计算机软件产品检测机构。 对软件从功能上、兼容性、可扩充性、性能、安全稳定性、速度、易用性、用户文档、 资源占用率等九个方面进行全面测试。 ( 3 ) 测试管理系统【1 3 】。测试管理系统专注于测试流程的管理,管理功能全面,对 测试流程的设计科学、规范、合理。结合了开发人员在业界的经验和对国内软件开发现 状的把握等因素上开发而成,非常贴近国内用户的需求:具有强大的测试用例、测试步 3 堕塞唑皇奎兰堡主塑窒生兰垡笙茎蔓! 至堡堡 骤的编辑和管理功能,b u g 的跟踪处理功能,所有输出结果自动生成w o r d 文档的功能, 同时有强大的统计分析、决策支持能力,使用维护方便,具有良好的性价比,是目前国 内市场不可多得的测试流程管理软件。 ( 4 ) 北京大学、北京航空航天大学进行了一系列的软件分析和测试工具的研究和 开发,研制了一系列的程序理解工具和测试工具,比较具有代表性的工具有s a f e p r o c c + + 、s a f e p r oj a v a 。航空计算机研究所、南京大学在嵌入式系统测试方面做了较多的 工作,开发了一些静态分析工具 1 4 】和测试用例生成工具。西北工业大学在航空软件仿真 测试、并行软件综合测试平台以及c s 系统的测试方面进行许多研究工作并取得了一系 列成果。 随着互联网技术和电信运营企业系统的不断发展,新一代支撑电信运营企业系统的 n g o s s 已成为电信运营企业的核心软件产品【15 1 ,基于n g o s s 软件系统的自动化测试 技术远跟不上开发的脚步和市场的需要,国内外专门研究这方面技术的机构也相对较 少,技术也尚不成熟,非常值得进行深入研究。 1 4 论文的组织结构 本文的组织结构如下: 第l 章:绪论。对课题的来源、研究内容、研究背景和意义以及软件测试技术研究 的现状进行了分析。 第2 章:软件测试及其自动化技术。对软件测试相关的概念、测试目标、方法和策 略、传统软件测试中存在的问题以及对自动化测试的相关概念技术、优点和局限以及实 施原则进行了分析与总结。 第3 章:n g o s s 软件及其测试需求分析。介绍了n g o s s 的概念和体系结构及技 术思想,并分析了n g o s s 软件的测试内容、测试技术难点和解决方案及n g o s s 软件 自动化测试系统的功能需求。 第4 章:n g o s s 软件自动化测试系统的设计与分析。提出了一种适用于n g o s s 软件的业务流程测试的分布式自动化测试系统模型,并对系统的总体设计和主要组成部 分进行了详细地分析与研究。 第5 章:测试任务分配与调度策略的设计与仿真。主要就分布式自动化测试系统的 关键技术测试任务中的多测试用例的分配与调度问题进行分析和研究。 第6 章:本文总结与未来展望。 4 南京邮电大学硕士研究生学位论文第2 章软件测试及其自动化技术 第2 章软件测试及其自动化技术 2 1 软件测试 2 1 1 软件测试概述 软件测试是软件开发过程中不可或缺的重要环节,它是发现软件缺陷,提高软件质 量以及验证软件功能的重要手段【1 6 】。随着人们对软件质量要求的日益提高,软件测试越 来越受到重视,已经成为软件工程的重要组成部分。根据i e e e a n s i 标准,软件测试定 义为:“使用为发现错误所选择的输入和状态的组合而执行代码的过程”。可见,软件测 试是一个暴露错误的过程,是一个增加信息的过程,是一个评估的过程。 文献【1 7 】的作者给出的软件测试定义是:“程序测试是为了发现错误而执行程序的过 程”。这个定义被软件测试业界所认可,并经常被引用。但实际上,这样的定义还不能 完全反映软件测试的内涵,它仍局限于“程序错误”。随后,该作者进一步提出了相关 程序测试的以下三个重要观点: 1 、软件测试是为了证明程序有错,而不是证明程序无错: 2 、一个好的测试用例在于它发现了至今未发现的错误; 3 、一次成功的测试是发现了至今未被发现的错误的测试。 这些观点使程序测试的含义显得更加完善和丰富,但是还没有跳出“程序测试”的 圈子。作为软件测试,相对于程序测试,其内涵和范畴有很大不同。 要完整地理解软件测试,就要从不同方面和视角去辩证地审视软件测试。概括起来, 软件测试就是贯穿整个软件开发生命周期、对软件产品( 包括阶段性产品) 进行验证和 确认的活动过程,其目的是尽快尽早地发现在软件产品中存在的各种问题,与用户需求、 预先的定义不一致的地方。在i e e e l 9 8 3o f i e e es t a n d a r d7 2 9 中给软件测试下了_ 个标 、 准的定义:使用人工或自动的手段来运行或测定某个系统的过程,其目的在于检验它是 否满足规定的需求或是弄清预期结果与实际结果之间的差别。 对软件测试还有一些不同的定义: 软件测试被定义为“对软件系统中潜在的各种风险进行评估的活动”。 软件测试就是“验证( v e r i f i c a t i o n ) ”和“有效性确认( v a l i d a t i o n ) 活动构成的整 体,即软件测试= v & v 。 2 1 2 软件测试技术 l 、软件测试的目标 5 南京邮电大学硕士研究生学位论文第2 章软件测试及其自动化技术 软件测试的目标就是为了更快、更早地将软件产品或软件系统中所存在的问题找出 来,并促进系统分析人员:设计人员和程序员尽快地解决这些问题。软件测试是质量保 证过程中不可缺少的一部分,测试人员和整个软件开发团队共同努力,确保及时地向客 户或用户提供一个高质量的软件产品,包括在正确性、效率、适用性、可维护性、可扩 充性、可伸缩性、安全性、可靠性、系统性能、系统容量、服务可管理性及兼容性等方 面满足设计或定义的要求,使软件系统最终能满足用户的需求和软件企业自身的需求。 2 、软件测试的方法 。 软件测试方法根据是否要运行程序可划分为两大类,即静态方法和动态方法【1 8 】。静 态测试不执行程序,只通过分析源程序代码发现和修正程序结构上的错误或数据存取中 的差错。动态测试使用测试数据和追踪程序执行过程的测试工具,通过执行程序检查程 序的运行状态与结果是否正确,来发现程序中存在的逻辑错误和算法错误。 静态方法的特征是不需要运行被测试的程序,而是通过其它手段达到检测的目的。 静态分析是对被测试程序进行特性分析的方法的总称。静态分析由于无需程序的执行, 因此可以应用在软件开发生命周期的各个阶段,即使在系统的需求分析和概要设计阶 段,也能很好地被运用。此外,一些依靠动态测试难以发现或不能发现的错误,也可以 使用静态方法来分析和检查。静态分析和动态检测是互为补充的,对错误的检测有各自 的特点。静态分析方法中,主要有下述几种【1 9 1 : 软件审查( i n s p e c t i o n ) ,是一种主要的静态分析技术,依赖于人工检查方式来发现 产品中的错误或问题,包含代码审查和设计审查两种类型; 静态排演( w a l k t h r o u g h ) ,设计者或程序员组织开发小组或相关成员对代码分段进 行静态分析,通过提问或评论方法寻找可能的错误和问题; 检查( r e v i e w ) ,通过会议方式将软件产品让顾客、用户、项目经理等相关人员进行 评论,以确定能否被通过。分为代码检查、设计检查、正式的质量检查、需求检查、测 试完成检查几种类型。 近来的研究中,还有一些较新的静态分析方法,例如基于数据流的程序静态自动分 析,基于有限状态机的验证和分析模型等。这类静态分析方法主要查找与时间相关、资 源竞争等引起的难以动态测试到的错误。 动态解析进一步分为:单元测试( u n i tt e s t i n g ) 、集成测试( i n t e g r a t i o nt e s t i n g ) 和系 统测试( s y s t e mt e s t i n g ) 。与静态分析方法相比,动态软件测试方法的内容更加广泛,几 乎所有广为人知的传统测试方法都是动态的软件测试方法。例如黑盒测试、白盒测试及 。代码覆盖测试等。 6 南京邮电大学硕士研究生学位论文第2 章软件测试及其自动化技术 3 、软件测试的策略 测试策略描述了测试活动和测试任务之间的关系,说明了需要测试什么,以及该怎 样去测试。一般情况下,测试策略最少必须满足下述基本要求: ( 1 ) 单元测试:( 也称为模块测试m o d u l et e s t i n g ) 主要关注软件设计的最小组成 单位模块。使用详细设计规则说明作为测试指导,指导不同目标的测试。通过对模 块内的重要控制路径进行测试以发现模块中的错误,对人机接口进行测试保证控制信息 被正确导入或导出模块,对模块的数据结构接口进行测试以保证数据的正确存储。模块 测试在最底层对程序实现的正确性进行验证。 ( 2 ) 系统测试:用以确信系统作为一个整体能够满足输入输出的规则说明要求, 以及模块程序子系统之间的接口规范是否存在错误。强调的是系统的可操作性、安全 性以及性能和错误恢复能力等。 ( 3 ) 验收测试( a c c e p t a n c e t e s t i n g ) - 是由客户在项目小组的支持下测试软件产品 、是否满足了客户的验收标准。 根据功能测试或结构测试两种不同的测试方法,也可以制定出不同的测试策略,这 就是前面已经对其主要实现方法进行了描述的黑盒测试策略与白盒测试策略。 黑盒测试策略正如其名字所表示的,不需要了解内部的设计或编码细节,关注的是 测试需求和软件产品的功能。因此黑盒测试又称为“功能行为测试”( f u n c t i o n a l b e h a v i o r a lt e s t i n g ) 。黑盒测试根据规则说明选择适当的数据用于检测系统的异常行为。 这种方式也适合第三方来实现相关的测试工作。 白盒测试策略处理代码的内部逻辑结构,这种测试需要测试者熟悉程序的内部代码 逻辑,在程序代码中查找出实现上的错误。 黑盒测试中,关注的是被测程序的外在行为,而不涉及程序的代码实现。在文献 t 8 】 中,黑盒测试的定义是指系统或组件的输入、输出以及所实现的功能已知,不关心其内 部实现的测试方法。常见的黑盒测试技术有【2 0 l :功能测试( f u n c t i o n a lt e s t i n g ) 、压力测 试( s t r e s st e s t i n g ) 负载测试( 1 0 a dt e s t i n g ) 、易用性测试( u s a b i l i t yt e s t i n g ) 、烟雾测试( s m o k e t e s t i n g ) 、恢复测试( r e c o v e r yt e s t i n g ) 、容量测试( v o l u m et e s t i n g ) 。 白盒测试是处理和代码的内部逻辑结构相关的测试,也被称为玻璃、结构 ( g l a s s s t r u c t u r a l ) 钡g 试。白盒测试方法主要涉及代码覆盖、分支、路径、指令以及内部逻 辑等方面。常用的自盒测试技术有【2 0 】:单元测试( u n i tt e s t i n g ) 、动态测试( d y n a m i c t e s t i n g ) 、指令覆盖( s t a t e m e n tt e s t i n g ) 、分支覆盖( b r a n c ht e s t i n g ) 、安全测试( s e c u r i t y t e s t i n g ) 、突变测试( m u t a t i o nt e s t i n g ) 。 7 南京邮电大学硕士研究生学位论文第2 章软件测试及其自动化技术 两种测试策略是互相补充的,图2 1 中表示了这两种测试策略的关系。 图2 1 黑盒白盒测试策略的关系图 曾经对这两种截然不同的测试策略存在很大的争论,以确定到底哪种策略更好。随 着研究的继续深入,认识到这两种方法的单独使用都是测试不充分的。例如对于功能描 述中所没有实现的行为,结构化的白盒测试是无法检测到这种遗漏;反之,如果程序实 现了没有被描述的行为,功能性的黑盒测试同样也无法发现这种情况,病毒程序就是这 类情况的典型例子。可见,这两种测试策略是互为补充的。 2 1 3 传统软件测试中的问题 传统的软件测试流程一般是在程序开发过程中进行单元测试,在系统完成阶段才进 行大量的功能测试、集成测试以及系统测试。在这种测试实现方式下,主要的测试行为 都集中在系统开发过程的后期,不可避免地导致了软件错误检测的困难增大,而且错误 纠正的周期增长。如下图2 2 所示,随之而来的问题就是项目进度控制的难度增大,项 目开发的风险增加,导致更高的测试成本和测试开销。 1 0 0 2 2 软件自动化测试 图2 - 2 传统测试过程中的问题 2 2 1 自动化测试概述 “自动化测试”就是使用软件工具来代替手工进行的一系列测试动作,从而验证软 件是否满足需求【2 1 1 。自动化测试的目的是减轻手工测试的工作量,以达到节约资源( 包 括人力、物力和财力等) ,保证软件质量,缩短测试周期的效果。通常是使用脚本或者 其它代码驱动应用程序。这一切可以通过可视用户界面完成,也可以通过直接命令( 从 南京邮电大学硕士研究生学位论文 第2 章软件测试及其自动化技术 客户端发向服务器,以模仿浏览器发送的命令) 完成。 自动化测试主要采用自动化工具提供的测试脚本完成针对目标应用程序的测试。测 试脚本是采用某种特定语言编写,并在特定系统环境下实现的代码,根据测试功能的复 杂程度,测试脚本可以是需要借助其他语言进行解析的文本,可以是简单的“批处理” 命令,也可以是相对复杂的类似于t c l 语言的功能强大的脚本语言程序片段。当前普 遍使用的测试脚本形式有【2 2 】:线性脚本、结构化脚本、共享脚本、数据驱动脚本和关键 字驱动脚本,其中后两种脚本形式是当前脚本技术研究的热点。 自动化测试理论方面,出现了多种软件自动化测试过程的模型、软件过程成熟度模 型以及软件自动化测试生命周期模型。 文献 2 3 】中为自动化的软件测试提出了四级成熟度模型,将软件测试成熟度模型和 文献 2 4 中的卡内基梅隆大学的软件工程研究所的软件过程成熟度模型联系起来,将成 熟度模型分为:附属级自动化、初始级自动化、主体级自动化和优先级自动化,从概念 上描述了自动化,但它仅仅描述了在一些测试组织中注意到的一些问题。 文献 2 5 】中的数据驱动自动化测试方法,使用脚本框架从测试数据知识库中读取所 需要的值,这需要用到包含了输入及其预期操作的数据文件。使数据抽象不仅存储了字 面值,还存储预期的结果。这种方法既适合手工数据生成,也适合自动化的数据生成。 a r c h e rg r o u p 的c s d d t ( c o n t r o ls y n c h r o n i z e dd a t ad r i v e nt e s t i n g ,控制同步数据驱动 测试) 是它的一个例子。 文献 2 6 】中公布了a t l m ( a u t o m a t e dt e s tl i f ec y c l em e t h o d o l o g y ,自动化测试生命 周期方法学) 这是一种经过调整的结构化方法学,能确保自动化测试的成功实现。 定义了:自动化测试的决策;自动化测试的引入;测试计划、设计和开发;自动化测试 的执行和管理。这个模型从管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吹填砂施工方案下载
- 酶制剂提取工技能巩固考核试卷及答案
- 婴童店龙抬头营销方案
- 长春商业建筑方案设计公司
- 地矿修复材料成本分析报告
- 工艺染织品制作工主管竞选考核试卷及答案
- 人行木栈道拆除施工方案
- 书店建筑方案设计图
- 理财产品的营销方案
- 交通工程系汽车营销方案
- 癫痫的小讲课
- 零星维修工程项目方案投标文件(技术方案)
- 第七讲社会主义现代化建设的教育科技人才战略习概论2024优化版教学课件
- 海龟汤题目和答案(100题)
- 全新模具转让协议书
- 学习进阶理论指导下的美国科学课程体系整合研究
- 2025年法院书记员考试试题及答案
- 车队车辆保养维护方案
- 【教学评一体化】第五单元 观世间万物悟人生哲思【大单元公开课一等奖创新教学设计】新统编版语文七年级下册名师备课
- 《婴幼儿健康管理》课件-项目一 婴幼儿健康管理基础
- 医院法律法规专题培训课件
评论
0/150
提交评论