




已阅读5页,还剩68页未读, 继续免费阅读
(计算机软件与理论专业论文)基于ahp算法的web安全性测试工具的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c l a s s i 6 e di n d e x :t p 311 5 u d c : d i s s e r t a t i o nf o rt h em a s t e r d e 伊e ei 1 1e n g i l l e e r i l l g d es i g na n di m p l e m e n t a t i o n o fw e bs e c u i u t yt e s t i n g t o o l b a s e do nt h ea h p a l g o l u t h m c a n d i d a t e : s u p e n ,i s o r : x i a n gy i n g p r o f w a n g 础h o n g a c a d e m i c d e g r e ea p p l i e df o r :m a s t e ro fe n g i n e e r i n g s p e c i a l 够: d a t eo fo r a le x a m i n a t i o n : u n i v e r s i t v : c o m p u t e rs o f h v a r ea n dt h e o r y j u n e2 0 1 0 q i n g d a o1 e c h n o l o g j c a lu n i v e r s i 锣 i i 。一 硕士学位论文 基于a h p 算法的w e b 安全性测试工具的 设计与实现 学位论文答辩日期: 指导教师签字: 答辩委员会成员签字: 丛:经 挚丝之 盈差垒 窆孟:! 煎 丝:差 一 青岛理工大学工学硕士学位论文 目录 目录i 摘要i a b s 缸砌”i i 第1 章绪论”1 1 1 课题的背景及意义1 1 2 课题的研究现状2 1 3 课题的主要工作3 1 4 本文的组织结构3 第2 章软件测试的理论知识和关键技术4 2 1 传统软件测试4 2 1 1 软件测试的概念4 2 1 2 软件测试的重要性和必要性4 2 2w e b 测试的新特点5 2 3w e b 测试自动化6 2 3 1 测试自动化的必要性6 2 3 2 测试自动化工具7 2 3 3 测试自动化的局限性1 0 2 4 安全性测试1 2 第3 章a h p 算法理论14 3 1a h p 算法的简介”1 4 3 2a h p 算法的基本原理和步骤“1 4 3 3a h p 算法的优点和局限性2 1 3 3 1a h p 算法的优点2 1 3 3 2a h p 算法的局限性2 1 第4 章w s a t 的设计2 2 4 1w s a t 的提出2 2 4 2 w s a t 的设计思路2 2 4 3 w s a t 的结构设计2 4 4 4 主要功能模块2 5 4 4 1 黑盒测试部分的设计2 5 4 4 2 白盒测试部分的设计2 6 青岛理工大学工学硕士学位论文 4 4 3 测试报告的设计2 7 4 5 数据库的设计2 8 第5 章w s a t 的实现3 0 5 1 黑盒测试部分的实现3 0 5 1 1 浏览器部分的实现3 0 5 1 2 测试分类排序的实现3 1 5 2 白盒测试部分的实现3 4 5 2 1 页面分析3 4 5 2 2 代码净化3 6 5 2 3 漏洞定位及插桩3 7 5 2 4 尝试修复漏洞4 2 5 3 测试报告的实现4 3 第6 章w s a t 的测试与分析”4 6 6 1w s a t 的测试4 6 6 1 1 实验环境4 6 6 1 2 测试结果一4 6 6 2w s a t 的分析与比较4 8 6 2 1 w v s 的介绍一4 8 6 2 2 w s a t 与w v s 的分析比较一4 9 结束语 参考文献 攻读学位期间主要的研究成果目录 致谢 5 1 5 3 5 7 5 8 青岛理工大学工学硕士学位论文 摘要 近些年随着社会进步和科学技术的迅速发展,软件产品的应用更加广泛,已 经涉及到社会的各个领域。与此同时人们对软件产品质量的关注程度也逐步增强, 不论是软件的开发者还是软件的使用者都生存在相互竞争的环境当中,所以软件 制造商为了避免在竞争中被淘汰,不得不把软件质量作为企业的首要任务来抓。 做好软件生产过程中的各种测试是保证软件质量的前提条件。随着软件行业 的不断发展和需求的不断变化,传统c s 模式的软件测试方案模型被人们熟知,同 时,b s 模式的软件的应用已经越来越广泛。w 曲测试随之成为人们关注的焦点。 在w 曲测试中w 曲安全性测试是不容忽视的测试重点。 在进行了大量文献资料的研究后,本文结合a h p 算法提出了一种新的w 曲安全 性测试方案,并根据此测试方案设计实现了w s a t ( w 曲s e c 丽t ya u t o t e s t i n gt 0 0 1 ) 的自动化测试工具。该工具分为黑盒测试部分和白盒测试部分,黑盒测试部分采 用a h p 算法对测试对象进行优先级排序,同时检测出漏洞页面。自盒测试部分对 漏洞页面代码进行分析并定位和修复漏洞。最后,以青岛理工大学设备管理共享 平台系统为测试对象,分别使用w s a t 和现有w 曲安全性测试工具对其进行测试, 得到大量的测试数据,通过数据的比较验证了w s a t 的简洁性和漏洞定位及修复方 面的优越性。 关键字:软件测试;a h p 算法;测试自动化;w 曲安全性测试;w s a t 青岛理工大学工学硕士学位论文 a b s t r a c t w i t l lt h er a p i dd l w e l 叩m e n to f s o c i e t ya i l ds c i e i l t i 丘ct e d m 0 1 0 9 yi nr e c e n ty e a r s , s o f w a r ep r o d u c t sa r ew i d e l y 印p l i e dt oe v e r yf i e l do f 廿l es o c i e t y a t 1 es 锄et i m e p e o p l ea r e m o r ea n dm o r ec o n c c n l e da b o u tm eq u a l i 坶o fs o f t w a r ep r o d u c t s i no r d e rt o s u r v i v ei i lm e c o m p e t i t i v ee n v i r o n l l l e i l t ,也es o f 啊a r em a i l u f i a c t i l 】册sh a v et oi i i l p r 0 v em e q u a l i t yo f s o 仃w a r ea n dt a k ei ta st 1 1 ep m a r yt a s k t e s t i n gi i lm ep r o c e s so fs o f h v a r ep r o d u c t i o ni st h ep r e n l i s et og u a r a n t e e t 1 1 e q u a l i t yo fs o 脚a r e ;t 1 1 e r e f o r c ,i ts h o u l db ed o n ea c c u r a t e l y w i t l lt h ec 0 n t i n u o u s d e v e l 叩m e n to fs o r w a r ei n d u s 仃ya i l dt h ei l l l p r o v e m e i l to fm a r k e td e m a n d ,p e o p l e b e c o m em o r ea n dm o r ef 锄i l i a rw i t l lt h et r a d i t i o n a lc sm o d e lo fs o 行a r et e s t i n g m e a n ,h i l e ,m eb sm o d e lh a sa l s ob e c nu s e dm o r ew i d e l yt h a l lb e f o r e s u b s o q u e i l t l y , w 曲t e s t i i l gb e c o m e sm ef o so fa t t e n 五o n ,o fw h i c ht l l ew 曲s e c l l r i t yt e s t i n gi st l l e m o s ti i n p o r t a n tp a r t a r e rn l el i t e ra _ t u r er e v i e w ,t h ea u t l l o rp u t sf o r w a r dan e wm o d e lo fw 曲s e c u r i t y t e s t i n gb a s e do na h pa l g o 订也m w i t ht b i sm o d e l ,an e wa u t o m a t e dt e s t i n gt 0 0 1 - w s a t ( w 曲s e c u l 时a l l t o t e s t i n gt 0 0 1 ) i sd e s i 印e da n di m p l 锄e n t e d 1 1 1 et o o lc o n s i s t so f w 1 1 i t e - b o xt e s t i n ga n db l a c k - b o xt e s 缸g i i lb l a c k - b o x t e s t i n g ,a h pa l g o t h mi su s e dt o p r i o d t i z et h eo b j e c to ft h et e s t ,a i l da tt l l es a m et i i n e ,d e t e c t l n e r a b i l i t i e sp a g e s i n w h i t e b o xt e s t i n g ,v u l n e r a b i l i t i e sp a g e sa r ea n a l y z e da n d b u g sf i x e d ap r o 伊锄n 锄c d e s s pi st e s t e db yw s a ta n do 也e rw 曲s e c i 】r i t yt e g t i n gt o o l s f i l l a l l y ,也er a t i o n a l 时 a n ds u p 嘶o r i t yo fw s a ti sv 丽f i e db yc o m p 撕n gt h ed a t ar e c e i v e di nt h e p r o c e s so f t e s t i n g k e yw o r d s :s o f 啊a r et e s t i n g ,a h pa 1 9 0 r i t h m ,t e s ta u t o m a t i o n ,w 曲s e c 嘶t yt e s t , w s a t i i 随着软件行业的不断发展进步,b s 构架的软件以它独特的分布性、异构性、 并发性和平台无关的特性逐渐受到人们的欢迎,越来越广泛地应用到人们的日常 生活中,如国内金融、证券、网上银行、电子政务、电子商务、教育等。和传统 软件相比b s 构架的软件在软件测试环节也具有它的不同之处。其中安全性测试就 是一个比较典型的方面。忽视安全性测试会给人们带来许多不必要的损失,以下 这些案例就说明了这一点: 第一例公布的w 曲应用攻击是在2 0 0 0 年,一个1 7 岁的挪威小孩儿,在网上交易 是时候发现自己的银行账号被作为u r l 其中的一个参数显示在浏览器地址栏中, 因此,他将这个账号改为随机的其它账号从而获得了该账号的详细信息1 1 。 2 0 0 0 年2 月,美国刮起的“二月风暴”【1 1 ,包括m o o ! 、e b a y 在内的近1 0 家著名 网站遭受袭击,网站被迫关闭达数小时;导致全球互联网运行速度在短短三天时 间内下降2 0 ,造成直接经济损失1 2 亿美元以上,营销和广告收入损失1 亿美元以 上。 2 0 0 4 年音乐网站“c d 天地”被窃取了近3 5 万个信用卡号码并公布在网上;包括 雅虎、亚马孙、电子海湾、z d n e t 、有线电视新闻网( c n n ) 在内的美国网站链接遭 到黑客的攻击。据美国联邦调查局统计,美国每年因计算机网络安全问题造成的 经济损失高达7 5 亿美元【1 1 。 以上这些例子表明w 曲软件的安全性是一个不容忽视的问题。w 曲安全性测试 也受到了越来越多的测试人员的关注。以前大多数软件测试者都是采用手工进行 w 曲安全性测试的。采用这种方式测试效率低,同时消耗人力物力,而对于w 曲安 全性测试完全可以采用自动化测试为主,手工测试为辅的测试模式来提高测试效 率和测试精度。 本论文是以青岛理工大学设备共享管理平台系统这个实际课题为基础,为了 解决此系统平台的安全性测试需求这一问题,经过长时间的研究和开发,提出了 一种新的安全性测试方案,并且根据这一方案结合a h p 层次分析法设计和实现了 青岛理工大学工学硕士学位论文 w 曲安全性测试工具w s a t 。使用该工具对青岛理工大学设备共享管理平台进行了 安全性测试。验证了w s a t 的实用性和这种新安全性测试方案的可行性,为w 曲应 用程序的安全性测试自动化的研究具有实际应用价值。 1 2 课题的研究现状 对于w 曲服务安全性方面的研究,国外已经有不少标准化组织在进行。比如 w 3 c ( w 6 订d w i d e w 曲c o n s o n i 眦万维网联盟) 以及由微软、m m 、,e r i s i n g 等w 曲 服务公司创立的w s i ( w 曲s e 耐c ei n t e r a c t i o nh n e r 叩e r a b i l i t ) ro r g ;m i z a t i o n ) 。其中 w 3 c 在已经制定了一系列的安全规范和标准,包括le n c r y p t i o n 规范和l d i 西t a ls i 盟a t u r e 规范 1 6 】。而w s i 则推出了名为s e 嘶够i na w 曲s e r v i c e sw r o r l d :a p r o p o s e d 缸c h i t e c t u r e 柚dr o a d m a p ( w s s e c u r i 奶的w 曲服务安全白皮书,该白皮书 描述了解决w 曲服务安全性问题的策略【l 6 1 。 国外许多大公司专门开发软件测试工具,如m e r c l l 巧i n t e r a c t i v e 公司开发的一 系列测试工具有w i i 瓜m m x r u 如e r 、q 嘶c k t e s t 、l o a d r 啪【i l e r 等。t e s t s u i t e e n t e r p r i s e 公司开发的包括l o a d r m e r 、w i n r l l n n e r 。这些工具已经有了大量的市 场占有率,比如m 删i n t e r a c t i v e 公司的产品占整个市场的5 0 以上。专门针 对n e t 的测试工具有微软开发的a c t 和n 吼i t 。另外,针对静态测试也有许多现 有的工具,如p r e f i x ,b a n e ,m e t a l ,e s p ,n a s h a tm a n s o l l r 和m a n a lh o u r i 等等。 国内方面对w 曲安全性的研究也越来越广泛,例如华中科大、武汉大学和北 京航空航天大学长久以来就致力于w 曲安全性方面的研究,其研究侧重于使用 o a s i s 的s 创l 语言来保证企业之间的安全互操作性。总体来说,国内研究w 曲 安全性的工作还处于起步阶段。 通过对国内外现状的研究发现,近些年w 曲测试自动化的引入大大提高了测 试人员的工作效率,现有的测试工具中具有代表性的有w e b i i l s p e c t ,r a t i o n a l a p p s c a n ,a 伽e t i xw e bv u l n e r a b i l 埘s c 锄e r ,h t t pt e s tt 0 0 1 等等。通过对这些测 试工具的研究分析发现其大多数都只是进行黑盒测试,并且在黑盒测试过程中没 有合理的对测试对象进行规划。比如w 曲应用程序的漏洞可以分为四类,代码远 程执行漏洞,功能逻辑漏洞,泄密漏洞以及日志漏洞。而多数测试工具忽略了这 四者的重要性优先级的问题。为了更快更好的检测出w 曲应用程序存在的漏洞, 本文提出了基于址 p 算法的w 曲安全性测试方案,按照此方案设计实现了自动化 2 青岛理工大学工学硕士学位论文 测试工具w s a t 。该工具分为黑盒测试部分和白盒测试部分,黑盒测试部分采用 a h p 算法对测试对象进行优先级排序,同时检测出漏洞页面。白盒测试部分对漏 洞页面代码进行分析并定位漏洞行,修复检测出的漏洞。 1 3 课题的主要工作 本文研究的主要工作可以归纳为以下几点: 1 阅读大量参考文献,了解软件测试的现状,尤其是w e b 应用程序软件的安全 性测试的特点。同时对现有的w 曲应用程序安全性测试工具进行分析研究,找出各 自优缺点。 2 研究a h p 算法的基本原理和程序实现,利用a h p 算法帮助分析测试对象的 优先级。 3 结合a h p 算法提出了优化了的黑盒测试方案。 4 提出了带有漏洞定位和漏洞修复功能的白盒测试方案。 5 结合提出的测试方案,利用c j f j 语言设计并实现了w e b 应用程序安全性测试 工具w s a t 。 1 4 本文的组织结构 本文共分六章,具体结构如下: 第一章是绪论,包括课题的研究目的及意义,课题的研究现状以及存在的问 题,本文的主要工作、组织结构等内容。 第二章介绍软件测试的基本理论知识和关键技术。以及w 曲软件测试与传统 的软件测试相比具有哪些新特点。 第三章介绍了a h p 算法理论,包括a h p 算法的产生与发展,a h p 算法基本 概念,a h p 算法的原理及结构,a h p 算法的优缺点等内容。 第四章介绍了w s a t 的设计思想和总体框架。 第五章介绍w s a t 的具体实现。包括黑盒测试部分结合a h p 算法判断优先级, 白盒测试部分对黑盒测试部分的测试结果进行分析,漏洞的定位和修复等内容。 第六章介绍了w s a t 使用情况。使用w s a t 和其它测试工具分别对青岛理工 大学设备共享管理平台进行安全性方面的测试。得到大量数据,依据数据对两种 工具进行对比,分析两者的优缺点。 3 工大学工学硕士学位论文 2 1 传统软件测试 测试的理论知识和关键技术 2 1 1 软件测试的概念 简单的说,如果你写了一段代码,我来帮你查看代码并找出里面的错误,这 就是测试。软件测试就是在软件投入运行之前,对软件需求分析、设计规格说明 和编码的最终复查,是软件质量保证的关键步骤。它是根据软件开发各阶段的规 格说明和程序的内部结构而精心设计的一批测试用例( 即输入数据及其预期的输 出结果) ,并利用这些用例去运行程序,以发现程序错误的过程。 1 9 8 3 年,i e e e 提出了软件工程标准术语,软件测试定义为:“使用人工或者 自动的手段来运行或测试某个系统的过程,其目的是检验它能否满足规定的需求, 弄清预期结果和实际结果之间的差别。,【4 l 】 在g j m y e r s 的经典著作软件测试技术中给出了测试的定义:“程序测试 是为了发现错误而执行程序的过程。”测试的目的是发现程序中的错误,是为了证 明程序有错,而不是证明程序没错。【4 1 】 2 1 2 软件测试的重要性和必要性 依据软件工程中的定义,软件开发包括需求分析,概要设计,详细设计,实 现,测试这几个部分。其中测试是整个软件开发过程中最重要的部分之一。具体 表现在从开始对需求文档的测试一直到最后对软件各个功能和代码的测试,它贯 穿着整个开发过程的始末。 从测试工作在公司的重视程度上来看,根据国内知名测试网站5 1 t e s t 最新的调 研数据显示,测试工作在公司的重视程度主要为一般重视和比较重视,其比例分 别为3 8 和3 6 :非常重视占到1 5 ;非常不重视的仅为4 。非常重视和比较重 视之和超过了一半,达到5 1 【8 1 。 同时从人员配置来说,测试人员与开发人员的比例逐年增大,比如微软公司 测试人员和开发人员的比率为1 5 2 5 左右,通过实践证明了这种人员结构的合理 性与正确性。 4 青岛理工大学工学硕士学位论文 从公司软件测试职位的设置来看,6 2 的公司设置了测试工程师职位;4 7 的 公司设置了测试经理( 主管) ;3 8 的公司设置了测试组长;有1 3 的公司设置了 测试质量总监职位。 通过以上数据不难看出,现今各个公司对测试的重要程度不断增加,经过多 年的实践证明,测试人员水平越高,测试手段越丰富,测试工具越先进,找到b u g 的时间就越早,软件就越容易更正,产品就越稳定。这也是多数软件公司慢慢悟 出来的道理,软件测试是软件产品开发中最重要的几个环节之一。 2 2w e b 测试的新特点 随着w e b 应用程序【2 0 1 开发的复杂性及规模不断增加,人们开始重新审视w 曲 应用程序与以往传统应用程序的不同,并对w 曲应用程序的软件质量属性做了重 新定义。人们在分析、测试、维护、评估这些w 曲应用程序的同时,逐渐对w 如 应用程序的特点有所了解。同时针对这些特点提出了一些测试w 曲应用程序的方 法,虽然这些方法不能完全满足w 曲应用程序测试的需求,但给测试人员理解、 分析和测试w 曲应用程序提供了基础。表2 1 描述了传统c s 模式的应用程序与 b s 应用程序的比较情况。 表2 1c s 和b s 应用程序的比较 传统的c s 模式应用程序 w e b 应用程序 用户角色服务端和客户的用户角色都是静态客户端和服务端都是变化的,服务 的端的用户角色有时还充当客户端 用户交互 两端的交互是预定好的行为,交互结 两端的交互是随用户请求的变化 果是可以预计的而变化的,交互结果决定于用户输 入 运行环境及其兼预先设定好的运行环境,一般没有兼运行环境复杂,包括o s ,浏览器 容性容性方面的问题版本的兼容性等各方面,不同的接 入方式等 运行控制控制流由程序进行管理,用户不能影用户可以在不通过服务器的情况 响程序的运行控制下改变程序流,比如请求过程中取 消请求 性能指标主要是正确性和有效性正确性,有效性,可用性,安全性, 互操作性等。 维护需求 升级时必须每个客户端都需要升级无需用户参与,直接升级服务器。 其它 w 曲的各种特性决定的会话控制, c o o k i e 管理等 5 青岛理工大学工学硕士学位论文 鉴于传统c s 构架软件与b s 构架软件的诸多不同,在软件测试方面与传统 c s 软件相比,w 曲应用有很多独特的地方,其中对测试有影响的方面主要有以下 几点: 1 w 曲应用程序的使用者范围广,数目大,并要求能够对资源跨平台访问,同 时w 曲应用必须具有并发处理事务的能力,所以必须进行负载测试和性能测试; 2 w 曲应用实施环境不同:硬件设备、网络连接、操作系统、中间件、服务端 支持、浏览器等都有所不同,形成了异构、自治的工作环境,这就需要考虑兼容 性测试: 3 软件侧重点不同。大多数传统软件强调的是运算处理的功能,而在w 曲上 存在信息的搜索和获取,这就必须保证信息的正确显示。 总之,w 曲具有分布、异构、并发和平台无关的特性。传统的测试方法已经 不能完全胜任对w 曲的测试,需要独特的适应w 曲应用程序的测试体系。 2 3w e b 测试自动化 自动化测试就是通过使用自动化测试工具或其他手段作为辅助,按照测试工 程师的计划进行自动测试的过程。其目的是在不降低软件质量的前提下,缩短测 试周期,增强软件被测能力。 2 3 1 测试自动化的必要性 随着软件开发技术的提高和工具的日益增多,测试自动化应该越来越广泛。 结合使用自动化测试可以大大减少测试时间开销,同时大大增加在有限时间内的 测试数量。 自动化测试具有以下几个方面的优点: 1 ) 提高测试效率 手工测试是一个劳动密集型的工作,并且容易出错。引入自动测试能够用更 有效、可重复的自动测试环境代替繁琐的手工测试活动,而且能在更少的时 间内完成更多的测试工作,从而提高了测试工程师的工作效率。 2 ) 降低对软件新版本进行回归测试的开销 对于现代软件的迭代增量开发,每一个新版本大部分功能和界面都和上一个 版本相似或完全相同,这时要对新版本再次进行已有的测试,这部分工作多 6 青岛理工大学工学硕士学位论文 为重复工作,特别适合使用自动化测试来完成,从而减小回归测试的开销。 3 ) 完成手工测试不能或难以完成的测试。 对于一些非功能性方面的测试,如:压力测试、并发测试、大数据量测试等, 这些测试用手工测试是很难,甚至是不可能完成的。但自动化测试则能方便 地执行这些测试,比如并发测试,使用自动化测试工具就可以模拟来自多方 的并发操作了。 4 ) 具有一致性和可重复性 由于每次自动化测试运行的脚本是相同的,所以可以进行回归测试,使得每 次执行的测试具有一致性,使测试更加准确,手工测试则很难做到这点。 5 ) 更好地利用资源 将繁琐的测试任务自动化,可以使测试人员解脱出来,将精力更多地投入到 测试案例的设计和必要的手工测试当中。并且自动化测试能够按计划完全自 动地运行,可以利用周末和晚上的时间执行自动测试。 6 ) 降低风险,增加软件信任度 自动化测试能通过较少的开销获得更彻底的测试效果,从而更好地提高了软 件产品的质量。 7 ) 优秀人员的集中 能够得到一个专家团队,并将知识传播给其他的项目。 总而言之,测试自动化的引入就是通过较小的开销可以获得更多的测试,提 高产品的质量。 2 3 2 测试自动化工具 自动化测试需要不同类型的自动化测试工具进行支持。现在市面上有各种 软件测试工具如下表2 2 所示: 7 青岛理工大学工学硕士学位论文 表2 2 自动化测试工具列表 生产厂商 工具名称测试功能简介 m 盯唧 w j n n m n e r 功能测试 i n t e r a c t i v e l o a d n m n e r性能测试 c o 叩o m t i o n q u i c k t e s tp r 0 功能测试 l o a d t e s t 性能测试 t b s t d i r e c t o r 测试管理 i b mr a t i o n a lr a t i o n a lr o b e r t 功能测试和性能测试 r a t i o n a lx d et e s t e r 功能测试 r a t i o n a lt e s n n a i l a g e r 测试管理 r a t i o n a l 州f 帅l l l s 白盒测试 c 0 m p 玳v l a r ec o 印o r 撕o n q a r l l n 功能测试 q a l o a d 性能测试 q a d i r e t o r 测试管理 d e 、,p a r 舡l e rs t u d i o白盒测试 p r o f e s s i o n a le d i t i o n s g i l es o 脚a r e s i l k t e s t功能测试 s i u 【p e r f o m e r性能测试 s i l k c e m e rt e s t i s s u e测试管理 m a n a g e r e m p 儆 e t e s t功能测试 e - l o a d 性能测试 e m o n i t o r 测试管理 p a n 略o f tj t e s t j a v a 白盒测试 c + + t e s t c c h 白盒测试 t e s tn e t 白盒测试 r a d e ww 曲l o a d 性能测试 、m e b f r p功能测试 m i c r o s o r w 曲a p p l j c a t i o ns n e s s t 0 0 1 性能测试 8 青岛理工大学工学硕士学位论文 这些自动化测试工具都有一些共同的特征。 1 支持脚本语言 能够支持脚本语言的编写,是这些测试工具最基本的一条要求,测试者运用 这些脚本编写测试用例,因此测试工具的支持的脚本越多,功能越强,对测试人 员来说,就有更大的测试空间,甚至可以利用测试脚本编写出比测试工具本身更 复杂的测试系统。 2 对程序界面中对象的识别能力 大多数的测试工具都是采用脚本录制的方式生成测试脚本,以便回归测试。 以上的测试工具都能够将程序界面中的对象智能的区分并标识出来,只有这样录 制的测试脚本才具有更好的灵活性。如果只能通过计算对象在程序界面上的相对 位置坐标来区分对象,那么生成的脚本的灵活性就差多了。 3 支持函数的可重用性 如果测试工具能够支持函数调用,我们就能创建一套通用的函数库,这样一 旦程序做了改动,我们只需要把脚本中的相应函数进行修改,而不用去更改脚本 了,这也是测试工具分层设计的好处,可以节省大量的工作量。 4 夕 、部函数库 这些测试工具具有连接外部函数库的功能,如对w i n d o w s 程序中d l l 文件的 访问等。测试工具的这种可扩展性,使测试人员不用花费大的精力去编写函数, 给测试人员带来了很大的便利。 5 抽象层 在第3 点中提到了函数的可重用性。这很自然的引出了抽象层的概念。创建 抽象层可以将程序界面中存在的实体对象映射成相应的逻辑对象,当实体对象发 生变化时,测试人员只需要修改适当的脚本就能重新投入测试,减少了测试人员 的工作量。 6 分布式测试的支持 w 曲测试的复杂性决定了测试工具应该具有分布式测试的功能,这样测试人 员就可以合理的分配测试时间和测试流程,可以事先定制好任务的执行时间表, 保障协同测试的顺利进行,防止出现阻塞或资源竞争的情况。 7 支持数据驱动测试 测试用例的实施必然需要大量的数据作后盾,数据驱动测试就是因此提出的, 9 青岛理工大学工学硕士学位论文 测试脚本通过对数据文件的读写操作来保证测试流程的顺利进行。测试人员只需 要提前编写好少量测试脚本,同时准备大量的测试数据,测试工具就可以自动的 完成大量的测试工作了。 8 错误处理 测试人员使用测试工具就是因为它可以在无人情况下自动进行测试,而如果 测试工具的错误处理不到位,就会出现测试停滞的现象。错误出现的时候,测试 工具应该能做出相应的处理来保证测试能够继续执行。 9 调试器 对于具有白盒测试功能的测试工具而言,调试器是必不可少的,它可以帮助 测试人员跟踪测试脚本的执行情况,定位问题所在。 10 源代码管理 源代码管理对于任何软件开发工具来说都非常重要。它可以保护源代码的完 整性。软件测试工具作为一种软件,对于源代码管理也是非常必要的。 1 1 支持命令行执行方式 对于经验老道的测试人员而已,通过命令行的方式运行脚本,可以为测试的 执行带来更大的方便性。 2 3 3 测试自动化的局限性 测试用例是针对被测系统各项功能而设计并开发的。每个测试用例将贯穿五 个不同的测试活动。对每一个测试用例而言都需要顺序地执行5 个测试开发活动, 即标识测试条件、设计测试用例、建立测试用例、运行测试用例、比较结果。 ( 1 ) 标识测试条件 标识测试条件就是确定要“测试什么”,最好能够定义好这些测试条件的优先顺 序。测试条件有很多,它取决于被测试的系统结构和系统的复杂程度。一个系统 可能有多种不同的测试条件,并且需要测试不同的方面,如功能测试、负载测试、 性能测试、安全性测试等。 测试条件其实是对被测软件环境的描述,可以用简单的语言或者表格等不同 形式来描述。 ( 2 ) 设计测试用例 测试用例的设计就是要确定“怎样去测试”的问题。测试用例是测试人员编写的 1 0 青岛理工大学工学硕士学位论文 一个方法或者类,能够完成于测试目标相关测试任务。它包括测试所需的输入值, 预期的输出结果以及测试相关的信息。其中输入值可以从数据文件中读取,预期 输出包括应输出的内容、应更新的内容和应删除的内容。测试用例执行完毕得到 的实际输出结果都要和此测试用例的预期结果进行对比,来确定被测对象的正确 性。通常情况下,两者一致认为测试目标正确。所以每个测试用例都应该有预期 的输出值。如果预期输出,就无法检测软件的正确性。预期输出值的确定是测试 人员对被测软件进行了解之后做出的判断。一个正确的预期输出值可以作为下一 个测试用例的输入值。 ( 3 ) 建立测试用例 设计完测试用例之后,就是实施创建测试用例了。测试用例的创建是通过测 试人员编写脚本完成的。测试人员利用正规语法把数据和指令把测试用例的各个 部分以测试脚本的形式描述出来。在测试工具中,测试脚本以文本形式保存。一 个测试脚本可以包含一个或多个测试用例。其中测试用例的输入和预期的输出可 以以多种形式存在,可以包括在测试脚本中,也可以以文件或数据库的形式存在。 例如数据驱动的测试方法就是输入数据以文件的形式存在于测试脚本之外。 ( 4 ) 执行测试用例 以前的手工测试阶段,测试人员要完成输入测试数据,记录测试流程,记录 测试结果,比对测试结果等各项工作。而测试的自动化将这些繁杂的重复性工作 交给测试工具来完成。测试人员只需要编写好测试用例,让测试工具来执行即可。 执行测试用例,其实就是告诉测试工具执行哪个测试用例。让测试工具完成手工 测试阶段的任务。 ( 5 ) 比较测试结果与期望输出 对每次测试的实际输出进行分析,判断软件功能是否正确。一般情况下认为, 如果实际结果和期望结果一致,则表明软件通过测试;如果不一致,则表明软件 没有通过测试。但是不可否认,实际结果和期望结果不一致是有很多原因的,比 如测试顺序不对、期望输出的结果不正确、测试环境设置不正确或测试定义不正 确等等。 通过以上对测试活动的介绍不难看出,测试自动化不能解决所有的问题,它 也存在一些局限。这些问题主要包括: ( 一) 自动化测试不能完全取代人工测试,我们不能期望所有的测试活动都由测 1 1 青岛理工大学工学硕士学位论文 试工具来做。测试工具只能按照测试人员制定的程序来运行,它不能发现 软件中的所有问题,测试人员还需要做大量的工作。 ( 二) 测试自动化很有可能降低测试的效率。不是所有的测试活动都适合自动化 测试的。自动化测试适合于那些重复性的工作,可以通过测试人员编写流 程来实现的测试活动才是自动化测试的对象。如果测试人员进行少量的工 作就能完成这个的测试活动,而且这个测试活动在以后的工作中重用性很 低时,花大量的精力和时间去编写自动化执行脚本就得不偿失了。因为自 动化的收益一般要在多次重复使用中才能体现出来。 ( 三) 测试人员期望自动测试发现大量的错误。测试首次运行时,可能发现大量 错误。当进行过多次测试后,发现错误的机率会相对比较小,除非对软件 进行了修改或在不同的环境下运行。 ( 四) 缺乏测试经验。如果测试的组织差、文档较少或不一致,则自动测试的效 果比较差。 ( 五) 技术问题。毫无疑问,商用软件自动测试工具是软件产品。作为第三方的 技术产品,如果不具备解决问题的能力和技术支持或者产品适应环境变化 的能力不强,将使得软件自动测试工具的作用大大降低。 综上所述,我们对软件的自动化测试应该有了正确的认识,它能够帮助测试 人员提高工作效率,但并不能完全取代手工测试。不能盲目的认为有了自动化测 试就能提高测试的质量,如果测试人员欠缺测试技能,那么测试也可能会失败。 2 4 安全性测试 w 曲应用程序的测试工作主要包括: 1 w 曲功能测试:主要是检验系统是否达到了用户要求的各种功能,这些功能 主要体现在用户需求说明书中。 2 服务器压力测试:通过模拟大量用户的并发请求,让系统在非正常的资源请 求和非正常的负载压力下工作,从而检验系统的稳定性和处理能力。 3 w 曲兼容性测试:在不同的操作系统和不同版本的浏览器组合下w 曲应用 能否正常执行。 4 w 曲安全性测试:包括服务器的安全性和w e b 应用程序的安全性。主要检 测服务器的安全性能和w 曲应用的安全漏洞。本文就是针对w 曲应用程序的安全 1 2 青岛理工大学工学硕士学位论文 性测试展开讨论的。 5 静态测试:包括超链接导航测试,图形显示测试等。超链接导航测试主要检 查页面的链接是否能正确到达页面,是否存在b r o k e nl i n k s 、4 0 4 错误等。图形显 示测试主要检测页面图片能否正确显示,显示是否美观等。 在w 曲测试的各个方面中,w 曲安全性测试占有重要位置。软件质量是软件 的一个重要属性。对于w 曲应用程序来说,保证其安全性主要就是保证w 曲应用 程序不存在漏洞,现在业界对于w 曲应用漏洞的研究也很多,并没有形成业界的 统一标准。单纯从w 曲应用程序的角度出发,笔者认为漏洞可以分为四大类:代 码远程执行漏洞,功能逻辑漏洞,泄密漏洞和日志漏洞。 在代码远程执行漏洞中又分为h j e c t i o n ( 注入漏洞) ,x s s 漏洞,文件上传漏 洞,缓冲区溢出漏洞。这些漏洞都是因为代码编写时存在漏洞,致使攻击者能够 入侵系统。 功能逻辑漏洞是指业务逻辑流程,授权认证方面的问题。比如一个普通用户 使用管理员的权限进行操作,必然与程序设计者的初衷背道而驰,产生安全隐患。 泄密漏洞和日志漏洞有些类似,是指由于异常的处理出现漏洞造成系统信息 泄露。比如有程序员把测试账号写在网页的注释或脚本里,攻击者很容易就能得 到这些信息。日志漏洞是由于程序员的疏忽将重要信息写入软件日志中,从而造 成信息的泄露,攻击者只要正常的浏览操作日志就能轻易得到这些信息。但是如 果w 曲应用程序本身没有记录日志的功能,那么就不会存在日志漏洞。 在w 曲安全性方面,这四大类漏洞是经常出现的安全隐患。本论文根据这四 类漏洞提出了一套新的w 曲软件安全性测试方案,在黑盒测试部分结合a h p 算法 对这四种分类进行安全性重要程度排序,设计并实现了w s a t 安全性自动化测试 工具。 1 3 青岛理工大学工学硕士学位论文 第3 章a h p 算法理论 3 1a h p 算法的简介 层次分析法【3 叼( 简称a h p ) 是美国著名运筹学家t l s a a t y 在2 0 世纪7 0 年代 提出的一种系统分析特别是进行决策分析的方法。它的基本思想是把一个复杂的 问题分解为各个组成因素,并将这些因素按支配关系分组,从而形成一个有序的 递阶层次结构。通过两两比较的方式确定层次中诸因素的相对重要性,在同层次 各要素间简单地进行比较、判断和计算,以获得不同要素和不同备选方案的权重, 由于它同时提供一致性检验从而可以保证权值的合理性。然后综合人的判断以确 定决策诸因素相对重要性的总排序。层次分析法的出现给决策者解决那些难以定 量描述的决策问题带来了极大的方便。 层次分析法现己广泛应用于企业管理、经济计划、科技管理、干部选拔、教 育规划、资源分配、冲突分析等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西赣州市会昌县小镇时代文化传媒有限公司招聘劳务派遣人员1名考前自测高频考点模拟试题附答案详解(完整版)
- 2025广东广州市越秀区华乐街招聘综合行政执法队协管员1人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025年安徽国控资本私募基金管理有限公司校园招聘1人模拟试卷及1套参考答案详解
- 2025北京市通州区马驹桥镇招考20人模拟试卷及1套完整答案详解
- 2025年绥化职业技术教育中心2025年度“市委书记进校园”引才8人模拟试卷及参考答案详解1套
- 2025湖南省湘南学院公开招聘事业编制人员108人模拟试卷及一套答案详解
- 2025华晋焦煤井下岗位高校毕业生招聘260人(山西)考前自测高频考点模拟试题带答案详解
- 2025年上半年辽宁丹东市振兴区教育局所属部分学校面向普通高校应届毕业生招聘急需紧缺教师19人考前自测高频考点模拟试题及答案详解(全优)
- 2025辽宁沈阳盛京资产管理集团有限公司所属子公司沈阳中城天玺不动产有限公司招聘1人考前自测高频考点模拟试题完整答案详解
- 2025春季河北邯郸市教育局市直学校选聘博硕人才300人模拟试卷及1套参考答案详解
- 标书售后服务措施及方案
- 农产品检测技术实习心得范文
- 种植业可研报告范文
- 《复活(节选)》统编版高中语文选择性必修上册
- 《水墨风格动画》课件
- 销售合同协议书模板集
- 《建设工程造价咨询服务工时标准(房屋建筑工程)》
- 学校食堂汇报工作
- 南通市启秀初中2024-2025八年级上学期第一次月考物理试卷及答案
- 医生签约MCN机构合同模版
- 煤矿架空乘人装置安装检验报告
评论
0/150
提交评论