




已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)web+application系统的测试技术研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
w e b a p p l i c a t i o n 系统的测试技术研究与应用 田超( 计算机应用技术) 指导教师:朱连章( 教授) 中文摘要 在对各类测试方法做出全面了解的基础上,重点探讨了性能测试在 w e b 应用中的应用,并且针对w e b 应用在性能上的瓶颈所在,详细分析、 测试并验证了一种基于页面静态化提高性能的方法,并对该方法如何提 高w e b 应用的性能,提高负载能力、缩短响应时间,进行了有益的探索 性研究。w e b 应用性能改进方法的基本思路是:在动态网页的实现机制中, 对用户的响应需要内部多个服务器的协作,延长了响应时间,如果对动 态网页实现过程中的某些步骤的顺序进行调整,则有可能在用户请求之 前得到响应数据,这样,当有用户请求的时候,服务器只需把已经生成 的静态页面返回给用户即可,响应速度可得到较大的提高。根据此思路, 提出了一种可以提高w e b 应用系统性能的方法,并根据软件性能工程理 论,对此方法作了性能评价,论证了此方法理论上的正确性,然后,应 用w e b 应用测试中的性能测试方法,对使用此改进方法的系统做了对比性 的性能测试,根据对测试所得数据的分析,进一步验证了此方法在实际 系统中的可行性。 关键词:w e b 应用性能评价性能测试动态网页静态网页 r e s e a r c ha n d a p p f i c a t i o no ns y s t e mt e s t i n go f w e b a p p f i c a t i o n t i a nc h a o ( c o m p u t e r a p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db y :p r o f e s s o rz h u l i a a - z h a n g a b s t r a c t b a s e do nt h ec o m p r e h e 璐i v eo v e r v i e wa n da n a l y s e so fv a r i o u st e s t i n g m e t h o d sa n dt h e e x i s t i n gp r o b l e m s , o n en wm e t h o dg r o u n d e d t r a n s f o r m i n gt h ed y n a m i cw e bp a g e si n t ot h ec o r r e s p o n d i n gs t a t i co n e si s e x p l o r e da n dv a l i d a t e dw i t hm a n ye f f o r t si nt h i st h e s i st oi m p r o v et h ew e b a p p l i c a t i o np e r f o r m a n c e ,e 1 3 妇l c ct h el o a d i n gc a p a c i t y , a n ds h o r t e nt h e r e s p o n d i n gt i m e t h eb a s i ci d e a so ft h i sm e t h o df o ri m p r o v i n gt h ew e b a p p l i c a t i o np e r f o r m a n c ei s :i nt h er e a l i z a t i o nm e c h a n i s mo fd m m i cw e b p a g e s ,t h en e c e s s i t yo ft h ec o o p e r a t i o na m o n gm a n yi n n e rs e v e r sw h e n r e s p o n d i n gt ot h eu s e rd e m a n d sp r o l o n g st h er e s p o n d i n gt i m e 1 1 l r o u g h 删u s t i n gs o m ep r o c e d u r e so f r e a l i z i n gt h ed y n a m i cw e bp a g e ss oa st oo b t a i n t h er e s p o n d i n gd a t ab e f o r et h ei i s e i m a k er e q u e s t s , w h e nt h eu s 盯m a k o s r e q u e s t , t h es c r v o ro n l yn c c d t or e t u r nt h ec o r r e s p o n d i n gs t a t i cw e bp a g e st h a t h a v ea l r e a d yb e e np r o d u c e dt ot h eh s e l , w h i c hm a yi b s i l l ti nt h e l a r g e i n c r e a s eo ft h er e s p o n d i n gs p e e d a c c o r d i n gt ot h er e l e v a n tt h e o r yo n s o , w a r ep a f o n n a n c es o l u t i o n s ,t h ee v a l u a t i o na b o u tt h ep e r f , m m n c eo f t h s m e t h o di sm a d e t h e u r t h e rc o n t r a s tt e s t i n ga n dd a ma n a l y s e so ft h e p e r f o r m a n c eo ft h ew e bs y s t e me m p l o y i n gt h i sm e t h o da r ci m p l e m e n t e di n o r d e rt oi l l u s t r a t ei t sp r a c t i c a lf e a s i b i l i t yi nt h er e a lw e ba p p l i c a t i o ns y s t e m k e yw o r d s :w e ba p p l i c a t i o n ,d y n a m i cw e bp a g e ,s t a t i cw e bp a g e , p e r f o r m a n c ee v a l u a t i o n ,p e r f o r m a n c et e s t i n g 独创性声明 本入声明所呈交的论文是我个人在导师指导下进行的研究工作及取 得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论 文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得中国 石油大学或其它教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了 谢意。 签名: 关于论文使用授权的说明 本人完全了解中国石油大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件及电子版,允许论文被查阅和借阅;学 校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手 段保存论文。 ( 保密论文在解密后应遵守此规定) 学生签名: 导师签名: 同超 乒虹 2 。- 7 年z f月f 口日 吖年 髟 月7o 日 中国石油大学( 华东) 硕士论文第1 章前言 1 1 背景及意义 第1 章前言 随着互联网的迅速发展,w e b 应用正以其广泛性、交互性、快捷性 和易用性等特点越来越受到企业和个人的青睐,越来越多的商家使用w e b 站点来提供他们的产品,这样可以在降低成本的同时增加销售额。w e b 应用软件的规模不断扩大,复杂性也逐渐增加,随之带来的阔题就是w e b 站点流量的迅速增长,导致一些经常使用的w e b 站点由于负载过重而变 得反应迟缓。当站点的性能问题达到无法忍受的程度时,就会导致用户 过早地终止其在这个网站的事务,对于商业网站来说,用户放弃他们的 网站将导致收入的减少。据估计,电子商务网站因性能不好而导致每年 有接近4 3 5 亿美元的损失“1 ;f o r r e s t e r 的分析家h a r l e y h n n i n g 指出, 现在电子商务网站的浏览者到购买者的转化率大概只有2 9 6 ,一个最大的 原因就是人们不能容忍所访问站点的糟糕性能,例如页面不可访问或者 下载时间太长“1 。对于网上冲浪的人员来说,他们对很长的下载时间表 现得十分不耐烦,他们希望在很短的时间内获得更多的信息。因此,通 过性能测试来保障w e b 应用的性能,有着很重要的意义,是w e b 应用开 发过程中的一个重要环节。 动态网页相对静态网页表现出了诸多的优点,它比纯粹的静态网页 更易维护和更新,且其中一些核心功能已经被模块化,可以方便的移植 到多个网站上,从而降低了网站开发的成本,另外,采用动态网页技术 的网站,可以实现许多传统的静态网页无法实现的功能,所以,现在互 联网上很多的网站中使用了数量众多动态网页,但是,动态网页需要应 中国石油大学( 华东) 硕士论文第1 章前言 用服务器和数据库的支持,而频繁的数据库访问会大大加重服务器的负 担,降低服务器的性能,因而,在现有的条件下,对动态网页进行简单 有效的改进,从而提高w e b 应用系统的整体性能,是一个有着较高应用 价值的话题。相比动态网页,静态网页对系统资源的消耗要小很多,而 且实现的机制也简单很多,所以在相同的条件下,使用静态网页的系统, 比较容易在性能上取得优势,如果能够把部分动态网页实现的功能交由 静态网页实现,那么系统整体的性能会取得提升,为此,本文在软件性 能工程分析的基础上,主要使用软件系统测试的性能测试方法,探讨此 思路的可行性,并能过对典型功能的测试数据的分析,论证应用此思路 的方法的正确性,概括来说,本文试图分析一种通过自动生成静态网页, 从而用静态网页实现动态网页功能的提高服务器性能的方法,并就此方 法对服务器性能的影响加以性能评价、性能测试和分析。 1 2 国内外研究现状 国外对性能测试和通过性能测试对系统加以性能改进的研究已经取 得了许多成果,提出了一些性能测试方法,开发了相应的性能测试工具, 主要如下: ( 1 ) 文献嘲提出的一种负载测试方法,在文献。中称之为虚拟用户 方法,主要针对电子商务应用程序。通过网络进行交易可以增加销售和 市场,但是它的成功要靠网络客户的支持,而只有让用户访问站点感到 满意时,用户下一次才会来访问这个站点,相反,就很有可能会到竞争 对手的网站去。在软件发布之前,通过模拟真实用户的行为来对电子商 务应用程序进行性能测试,可以预测在现实中可能会出现的情况,通过 分析测试结果优化系统,以便系统能够及时地处理大量的负载,给用户 2 中国石油大学( 华东) 硕士论文第l 章前言 提供良好的性能,在商业竞争中获取胜利。虚拟用户方法主要是通过性 能测试工具或者手工模拟用户对应用程序施加压力,分析应用程序的响 应时间等指标,这种方法有成熟的工具支持,使用性能测试工具可以用 较少的硬件资源模拟很多个虚拟用户同时访阀应用程序,还可以重现测 试过程。 ( 2 ) 基于网站使用签名( w e b s i t eu s a g es i g n a t u r e ,w u s ) ”,主 要基于这样的思路:一个不能真实反映实际过程的负载测试是没有实际 价值的嘲,并且它可能会产生误导作用,如果过高的估计w e b 站点的能 力,那么等到系统发布之后,在实际的大的负载出现时,系统会存在崩 溃的可能;而过低的估计将会产生不必要的开发延迟。w u s 方法的提出 是为了衡量测试负载和真实负载之间的接近程度。w u s 方法是一种有效 和系统的方法,是能刻画网站真实负载的一组关键变量和指标的集合, 如果负载测试的嗣s 与实际的剐s 不是太匹配,所测试的结论的有效性 和可用性就要受到怀疑了,反之,如果它们能较好的匹配,就可以放心 的把测试的结论用到实际的情况中。由于所用到的指标从网站实际运行 所产生的日志文件中得到,所以适用于已经发布的程序,不适用于测试 新开发的程序。 ( 3 ) 文献嘲提出了使用p e p p e r ( p e r c e p t i o np r o j e c t i o n p e r f o r m a n c er e l i a b i l i t y ) 模型来设计性能测试:用户作为w e b 站点是 否成功的最后的判定者,所感知到的性能会对其产生关键的影响,所以 应从用户的观点来设计性能测试。一般来说,用户希望所访问的站点的 性能良好,但他所感知到的性能好的网站到底是什么样的,则很难说清 楚,所以把用户所感知到的网站的性能,如响应时间,吞吐量等进行系 统地分析,设计成可以量化的指标,建立性能模型,预测站点是否能够 满足用户感知到的性能,最后设计额外的性能测试,以保证站点的可靠 中国石油大学( 华东) 硕士论文第1 章前言 性。这种方法使用对用户行为进行建模的方式设计性能测试,可以增强 用户对网站的性能的信心。 ( 4 ) 文献脚提出了一种测量w e b 站点性能的模型,主要是利用 c a p c a l ”u lt r a ( u n i v e r s a ll o a dt e s t i n gr e p l a ya g e n t ) ,产生大量 的虚拟用户来测试w e b 在可变的负载下的性能。传统方法主要是利用专 门的机器来生成虚拟负载的,而c a p c a l “u lt r a 主要是使用在网络上分 布的代理来增加虚拟用户的数目,每一个代理可以模拟大量用户和会话, 使用主机的c p u 空闲时间生成负载。c a p c a l “u lt r a 结构是分布式的, 利用了分布式计算来处理w e b 负载的动态性和不可预测性,不需要专门 的硬件来产生负载,并且利用了因特网以及公司安装的全部的计算机容 量来做性能测试,这样能够尽可能地模拟真实的情况,并且降低了费用。 ( 5 ) 商业性能测试工具主要有m e r c u r yl o a d r u n n e r ,r a d v i e w w e b l o a d ,s e a g u es il k t e s t ,r a t i o n a lp e r f o r m a n c et e s t e r 等。 l o a d r u n n e r m ,是一种预测系统行为和性能的工业标准级负载测试工具。 使用有限的硬件资源,通过以模拟上千万用户实施并发负载及实时性能 检测的方式来确认和查找问题,l o a d r u n n e r 能够对整个企业架构进行测 试。l o a d r u n n e r 能支持广泛的协议和技术,通过使用l o a d r u n n e r ,企业 能够最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 r a d v i e ww e b l o a d 嘲性能测试工具可以让w e b 应用程序开发者通过模拟真 实用户的操作,生成大量压力负载来测试w e b 的性能。w e b l o a d 提供巡 航控制器c r u i s ec o n t r o l 的功能,可以预定义w e b 应用程序应该满足的 性能指标,然后测试系统是否能满足这些指标,可以设定w e b l o a d 采用 自增用户数的循环方式进行测试,这样可以自动测试得到系统的最大用 户容量。 ( 6 ) 微软的w a s ( w e ba p p l i c a t i o ns t r e s st 0 0 1 ) 嘲,专门用来迸 4 中国石油大学( 华东) 硕士论文第1 章前言 行实际网站压力测试的一套工具,用来模拟w e b 浏览器对使用h t t p l 0 或1 i 标准的w e b 服务器的请求,而不用考虑w e b 服务器运行在哪种平 台上。使用w a s ,可以用不同的方式产生测试脚本。与其他工具不同的 地方在于,w a s 可以使用多个客户端机器测试w e b 站点,把其中一个客 户机作为主客户端用于协调其他客户端的测试。 ( 7 ) 开放源性能测试工具o p e n s t a ( o p e n ,s y s t e m st e s t i n g a r c h i t e c t u r e ) 1 0 9 是用c + + 语言开发的软件,可以执行分布式测试, 通过简单的图表形式和分布式的测试,对h t t p 测试提供了很好的性能, 对于简单的和可靠的h t t p 测试来说是很好的软件。 ( 8 ) 国内在w e b 性能测试方面的研究虽然较晚,但也已经在这方面 有了一些工作,文献1 1 中根据w e b 应用的特点,按应用端、中间网络和 服务端三个方面对性能测试内容进行总结,抽象出了三层结构的性能测 试模型,对性能测试的指标进行了总结,主要是对性能测试方面进行理 论性的研究;文献“。开发了一个新的w e b 性能测试工具w e b m a r k ,采用 事件驱动的方法管理异步i o ,通过修改c l i e n t 的t c p i p 协议栈来模 拟i n t e r n e t 环境,采用可靠的方法,模拟真实负载。文献“叮提出了一种 应用t t c n ( t r e et a b u l a rc o m b i n en o t i o n ) 形式化描述的w a e ( w e b a p p l i c a t i o ne n v i r o n m e n t ) 性能测试方法,实现了一个基于t t c n 3 技术 的w a e 性能测试原型,即v w p t ( v i s u a lw a ep e r f o r n t a n c et e s tw a r e ) 。 梁晟等嘲提出了模拟驱动的自动负载测试方法,并对w e b 应用程序运行 响应时间进行了研究,发现w e b 事务的响应时间和用户数量之间呈线性 关系,测试的时间和测试配置对响应时间也有一定的影响。马琳等“”提 出了一种基于转导推理的预测算法,目的主要是解决在测试资源有限的 情况下,估计系统运行的可能行为和性能表现。 中国石油大学( 华东) 硕士论文第l 章前言 1 3 研究思路及内容 本文主要涉及以下内容: ( 1 ) 分析现有w e b 应用中的关键技术。主要包括w e b 应用的实现机 制、研究现状、存在问题以及w e b 应用测试技术的发展趋势。 ( 2 ) 深入研究分析了w e b 应用的测试技术,针对在测试中反应出的 现有的w e b 应用的不足,分析问题的关键所在,调整各关键步骤的次序, 构建了一个使用预先生成请求页面、克服动态生成页面内容时间延迟的 模型。 ( 3 ) 对所重新构建的模型进行深入分析,使用软件性能工程的理论, 分析此模型对性能的影响。 ( 4 ) 根据所构建的模型,进行性能测试试验,以验证模型的有效性。 i 4 主要创新点 ( 1 ) 提出了优化系统性能的方法,对w e b 应用关键步骤加以调整, 使用把动态页面预先静态化的策略,以空间的代价换取系统性能的提高; ( 2 ) 综合性能工程理论预测与性能测试实验验证的方法,探索研究 了一个行之有效的提高系统性能的理论与实验相结合的途径。 i 5 论文的组织结构 第一章简要介绍w e b 应用测试的现状,列举了国内外的研究情况, 介绍了本文的主要研究内容和意义。 第二章介绍了软件测试的基本内容,主要论述了普通软件测试的基 本思想,并对各种测试模型加以简略的分析。 第三章对研究w e b 应用中的测试技术。包括w e b 应用测试的必要 6 中国石油大学( 华东) 硕士论文第1 章前言 性、基本测试内容、常用的测试方法和w e b 应用测试的展望,其中,对 w e b 应用的性能测试作了较详细的探讨。 第四章详细介绍了改进方法的设计思路,运用软件性能工程的理论 分析此方法的可行性与正确性,并通过实际的对比性性能测试,验证了 使用此方法后,几个关键的功能在性能上有所改善,并且改善的程度与 性能工程理论的预测基本相符。 第五章是对全文工作的总结,并指出了本文尚不完善的部分。 7 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 第2 章软件测试技术概述 随着社会的不断进步和计算机科学技术的飞速发展,计算机及软件 在国民经济和社会生活等方面的应用越来越广泛和深入。作为计算机的 灵魂,软件在其中起着举足轻重的作用。软件的失效有可能造成巨大的 经济损失,甚至危及人的生命安全。例如,1 9 9 6 年h r i a n e5 运载火箭 的发射失败等都是由软件故障引起的。软件开发的各个阶段都需要人的 参与。因为人的工作和通信都不可能完美无缺,出现错误是难免的。与 此同时,随着计算机所控制的对象的复杂程度不断提高和软件功能的不 断增强,软件的规模也在不断增大。人们在软件的设计阶段所犯的错误 是导致软件失效的主要原因,软件复杂性是产生软件缺陷的极其重要的 根源。 软件测试是保证软件质量和可靠性的重要手段。目前许多项目的软 件工程实践以结构化分析和设计为核心,在开发阶段的前期,包括需求 分析和设计都是以技术评审和工程管理作为质量保证的手段,而技术评 审和工程管理主观因素很大,很可能又引入错误并扩展到后续开发阶段。 另一方面,软件测试确实能够发现软件中隐藏的许多缺陷。例如,在英 国约克大学为英国海军开发的s h o l i s 项目中,尽管采用形式化方法描述 和证明软件规约,并且采用程序正确性证明方法排除了软件开发前期的 许多缺陷,单元测试仍然发现了整个软件开发过程1 5 7 5 的缺陷。 随着人们对软件测试重要性的认识越来越深刻,软件测试阶段在整 个软件开发周期中所占的比重日益增大。现在有些软件开发机构将研制 力量的4 0 以上投入到软件测试之中;对于某些性命攸关的软件,其测 试费用甚至高达所有其他软件工程阶段费用总和的3 到5 倍。尽管人们 8 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 在软件开发过程中也采用形式化方法描述和证明软件规约,并采用程序 正确性证明、模型检验等方法保证软件质量,但是这些方法都存在定 的局限性,尚未达到广泛实用阶段。因此,程序代码最终体现了软件的 质量,无论是从软件开发方法学还是软件测试自身的效益看,软件测试 在今后较长时间内仍将是保证软件质量的重要手段。 2 1 软件测试概述 2 1 1 软件测试的必要性 信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产 品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的 使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产 品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用 户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳 的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还 可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。在 一些关键应用中使用质量有问题的软件,还可能造成灾难性的后果。 事实上,不论采用什么技术和什么方法,软件中仍然会有错。有错 是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由 人做的工作都不会是完美无缺的。采用新的语言、先进的开发方式、完 善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错 误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来 进行估计。 软件测试( s o f t w a r et e s t i n g ) 是发现软件中错误和缺陷的主要手 段,对于查找软件缺陷、保证产品质量,提高企业效益具有不可替代的 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 作用,它是软件工程过程的一个重要阶段,是在软件投入运行前,对软 件需求分析、设计和编码各阶段产品的最终检查,是为了保证软件开发 产品的正确性、完全性和一致性,从而检测软件错误、修正软件错误的 过程。软件开发的目的是开发出实现用户需求的高质量、高性能的软件 产品,软件测试以检查软件产品内容和功能特性为核心,是软件质量保 证的关键步骤,也是成功实现软件开发目标的重要保障。 2 1 2 软件测试的内容和技术 事实上,所有发布的软件产品,都会因为缺陷而导致用户的困扰和 开发者时间金钱上的额外开支。而这些导致成本风险的软件问题可以通 过在软件生命周期的每一个阶段中充分规划和执行验证和确认 ( v e r i f i c a t i o na n dv a l i d a t i o n ) 而大大降低,因此传统的软件测试实际 是由确认、验证、测试三个方面组成。确认:是评估将要开发的软件产 品是否是正确无误、可行和有价值的。验证:是检测软件开发的每个阶 段、每个步骤的结果是否正确无误,是否与软件开发各阶段的要求或期 望的结果相一致。验证意味着确保软件是会正确无误的实现软件的需求, 开发过程是沿着正确的方向在进行。测试:与狭隘的测试概念统一。软 件测试通常要经过单元测试、集成测试、系统测试三个环节。 单元测试的对象是软件设计的最小单位模块。单元测试的依据是 详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例, 以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个 模块可以并行地进行测试。单元测试任务包括:模块接口测试、模块局 部数据结构测试、模块中所有独立执行通路测试、模块的各条错误处理 通路测试、模块边界条件测试。 1 0 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 集成测试是组装软件的系统测试技术,按设计要求把通过单元测试 的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种 错误。一般来说,综合测试有两种集成方法,一种是设计人员把所有模 块按设计要求一次全部组装起来,然后进行整体测试,这称为非增量式 集成。另一种与之相反的是增量式集成方法,程序一段一段地扩展,测 试的范围一步一步地增大,错误易于定位和纠正,界面的测试亦可做到 完全彻底。 系统测试是在软件开发完毕后,与系统中其它成分集成在一起进行 的一系列系统集成和确认测试。系统测试应该由若干个不同测试组成, 目的是充分运行系统,验证系统各部件是否都能正常工作并完成所赋予 的任务。常见的系统测试有恢复测试、安全测试、强度测试、性能测试。 2 。2 软件测试的基本思想 2 2 1 软件测试的技术与过程 软件测试的过程分为单元测试、组装测试、确认测试、系统测试等 几个阶段。单元测试可以运用白盒测试( 控制流、数据流测试) 、黑盒测 试( 等价类划分、因果图、边值分析) 等多种测试技术。组装测试主要采 用黑盒测试中的等价类划分、边值分析,白盒测试中的数据流测试,域 测试,调用对覆盖等测试技术。组装测试的策略是指进行单元组装的方 法和步骤。组装测试的策略有渐增式组装和非渐增式组装两类,而前者 又分为自底向上和自顶向下两种方式。确认测试主要采用黑盒测试中的 状态测试、事务流测试等测试技术。 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 2 2 2 持续的软件测试 软件测试是保障软件质量的重要手段,但它不是万能的,不能取代 其他软件质量保障手段。完整的软件质量保障活动应该贯穿整个软件生 存周期,包括评审、检查、审查、设计方法学和开发环境、文档编制、 标准、规范、约定及度量、培训、管理等。软件质量需要综合运用包括 软件测试在内的诸多手段才能得到最有力的保障。 完整的软件测试工作也应该贯穿整个软件生存周期,它有两方面的 含义;( 1 ) 软件开发不同阶段都有软件测试工作;( 2 ) 软件测试工作的各 个步骤分布在整个软件生存周期中。 需求概要详细单元组装 确认 系统 分析设计设计测试嬲试嬲试测试 系统;赠试l 计划 i设计 执行 确认测试计划设计执行i 组装测试计划设计执行 单元测试 i 设计ll 执行l 图2 - 1 软件测试各阶段工作在软件生存周期中的分布情况 上图描述了软件测试各阶段工作在软件生存周期中的分布情况( 图 中从左往右各列存在时间由前往后的顺序性) 。按照软件测试流程,将软 件测试工作划分为计划( 指进行测试计划) 、设计( 指进行测试设计) 和执 行( 含评价,指执行测试并判别结果、评价测试效果和被测试软件) 几个 阶段。上图表明软件测试工作连续不断地在软件开发过程中进行。这体 现了软件测试的一个原则:尽早开始软件测试工作,不断进行软件测试 工作。 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 2 2 3 软件测试的充分性准则 g o o d e n o u g h 和g e r h a r t 于1 9 7 5 年在研究软件测试能否保证软件的 正确性时提出软件测试充分性的概念。软件测试的充分性是根据被测软 件在有限多个测试数据上的行为判断在所有测试数据上的行为的逻辑基 础。 测试充分性准则是判定测试数据集对于被测程序是否充分的准则。 如果测试数据集不充分,就必须增加更多的测试数据,否则可以结束当 前测试工作。在文献中,有许多软件测试的充分性准则,以及对充分性 准则的研究。良好的软件测试充分性准则应该具有如下基本性质:空集 不充分性、有限性、单调性、非复合性、非分解性、非外延性、一般多 重修改性、复杂性、回报递减律。 2 0 世纪8 0 年代中期,提出了充分性准则满足的1 1 条公理一目前, 通常用测试覆盖准则度量测试充分性。到目前为止,已经提出许多针对 程序内部结构的测试覆盖准则,主要包括控制流测试覆盖准则和数据流 测试覆盖准则。控制流测试覆盖准则包括语句覆盖、分支覆盖、条件覆 盖、判定2 条件覆盖、路径覆盖等。数据流测试覆盖准则包括定值覆盖、 引用覆盖、定值2 引用覆盖等准则。这些准则不仅可以定量地规定软件 测试需求,指导测试数据的选择,而且可以度量测试数据集揭示软件特 定特征的能力,对测试结果和软件可靠性评估具有重要影响。 2 3 软件测试的三种模型 有关软件测试的模型有很多。早期的v 模型向人们展示了在软件生 产过程中何时开始测试,确切地说,何时开始执行测试。下图展示了一 个有着四个活动阶段的简单v 模型。 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 图2 2v 模型 左边每个开发活动都有右边的测试活动相对应。图中的箭头代表了 时间方向。因此,v 模型主要向我们传递了如下信息:需求、功能、设 计和编码的开发活动随时间而进行,而相应的测试活动,即针对需求、 功能、设计和编码的测试,其开展的次序则正好相反。换而言之,代码 最后被开发,而相应的单元测试首先被执行;需求则最早开发,但相应 的验收测试到最后进行。 v 模型揭示了软件测试活动分层和分阶段的本质特性。但也存在一 些问题,比如容易让人形成“测试是开发之后的一个阶段”,“测试的对 象就是程序”之类的误解。实际应用上,也容易导致需求阶段隐藏的错 误一直到最后验收测试才被发现的结果。相比之下,e v o l u t i f 公司的w 模型更科学。w 模型可以说是v 模型自然而然的发展,它强调:测试伴 随着整个开发周期,而且,测试的对象不仅仅是程序。需求、功能和设 计同样要测试。这样,只要相应的开发活动完成,我们就可以开始执行 测试,可以说,测试与开发是同步进行的。从而有利于尽早发现问题。 1 4 中国石油大学( 华东) 硕士论文 第2 章软件测试技术概述 以需求为例,需求分析一完成,我们就可以对需求进行测试,而不必等 到最后才进行针对需求的验收测试“7 1 。 w 模型的示意图如下: 固囤固固 窜囱审审 扫圈 。 i j 。围 图2 - 3w 模型 但是,无论是v 模型,还是w 模型,都存在不妥之处。首先,它们 都把软件的开发视为需求、设计、编码等等一系列的串行活动。而事实 上,虽然这些活动之间存在着互相牵制的关系,但在大部分时间,它们 是互相独立的,是可以并发进行的。虽然软件开发有清晰的需求、设计 和编码等等阶段,但实践告诉我们,严格的阶段之分只是一种理想状况。 相应的测试也不存在严格的先后次序,只要测试条件满足,就可以进行 测试。各个不同层次之间的测试( 比如单元、集成和系统测试) 除了简单 的时间上的先后关系之外,还存在着触发、反复、迭代和增量关系。其 次,v 模型和w 模型都没能很好地表示测试流程的完整性。测试流程可 以大致分为两类活动,一类是测试准备活动,包括测试需求分析、测试 计划、测试分析、测试编码、测试验证等等,另一类是测试执行活动, 包括测试运行、测试报告、测试分析等等。虽然,w 模型将测试从开发 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 中分离出来,但仍旧将测试视为一个个游离的活动,而不是一个系统化 的流程。h 模型就是为改进这些缺陷而产生的。h 模型的简单示意图如下: 竺竺p 熙 气广 i 一j 基宴乎零! 如警奠编码颦 图2 - 4l - i 模型 这个示意图仅仅演示了在整个生产周期中,某个( 测试) 层次上的一 次测试“微循环”( “微循环”是p m t 软件流程框架中的一个概念,简单 地说,可以看作是一个流程在时间上的最小构成单位) 。图中的“其他流 程”可以是任意开发流程,例如设计流程和编码流程,也可以是其他非 开发的流程,例如s q a 流程,甚至是测试流程自身。向上的双线箭头表 示,在某个时间点,由于“其他流程”的进展而( 由于先后关系) 引发或 者( 由于因果关系) 触发了测试就绪点,这个时候,只要测试准备活动完 成,测试执行活动就可以进行了。 概括地说,h 模型揭示了: ( 1 ) 软件测试不仅仅指测试的执行,还包括很多其他的活动。 ( 2 ) 软件测试是一个独立的流程,贯穿产品整个周期,与其它流程 并发进行。 ( 3 ) 软件测试要尽早准备,尽早执行。 ( 4 ) 软件测试根据被测物的不同是分层次的。不同层次的测试活动 可以是按照某个次序先后进行的,但也可能是反复的。 h 模型兼顾效率和灵活性,可以被应用到各种规模、各种类型的软 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 件项目上。 2 4 故障模型建立概述 简而言之,故障模型就是一些基本故障的组合,它一般有两个方面 的用途:它能够提供测试所必须的信息;它可以用来开发预测或者说故 障模型是形式的且有足够的信息可以用作预测。换个角度来说,软件故 障模型应该是软件物理错误的抽象,并能反映其本质的一定程度的组合。 ( 1 ) 计算型故障模型 包括变量的定义与使用方面的错误;数据的冗余;全局变量与局部 变量( 静态变量与动态变量) 的混淆;数组变量的越界错误;用错指针 变量;数据类型不匹配的错误;还有数据操作方面错误,包括函数调用 参数传递错误;赋值语句错误等,该模型应该尽可能包括关于计算方面 的各种错误。 ( 2 ) 分支型故障模型 该模型中应该包括谓词的错误,包括判定变量被赋了错误的值;谓 词操作符不正确或少操作符;谓词中的变量不正确或少变量;谓词的结 构不正确,( ) 不匹配,分号位置不对;少默认情况或默认情况不对;少 动作或动作不对;出现额外动作等故障。 ( 3 ) 循环型故障模型 主要包括永不循环故障和死循环故障,这主要是由循环变量引起的。 因此这种故障模型中包含的物理故障有:循环谓词中循环变量被赋予了 错误的值;循环谓词中操作符不正确或缺少操作符;谓词中的变量本身 不正确或少变量、少动作或动作不对。 ( 4 ) 功能型故障模型 1 7 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 是指一些软件功能或性能不完善的故障。具体包括功能或者性能规 定的有错误、遗漏了某些功能、规定的某些冗余的功能、为用户提供的 信息有错误、对意外情况的处理有错误、设计界面用户不满意、功能的 结果不完善、提供的用户接口不完善等等。 ( 5 ) 测试型故障模型 该模型应该包括:测试目的不明确;测试计划书有误;测试步骤错 误;测试实施有误;测试文档有误:测试用例不充分;测试环境有误等。 2 5 与w e b 应用测试相关的常用软件测试方法 2 5 1 黑盒测试 黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入, 然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有 要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关 的知识或经验,它适用于对系统的功能进行测试。 黑盒测试的优点有; ( 1 ) 比较简单,不需要了解程序内部的代码及实现; ( 2 ) 与软件的内部实现无关; ( 3 ) 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇 到哪些问题; ( 4 ) 基于软件开发文档,所以也能知道软件实现了文档中的哪些功 能; ( 5 ) 在做软件自动化测试时较为方便。 黑盒测试的缺点有; ( 1 ) 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量 1 8 中国石油大学( 华东) 硕士论文第2 章软件测试技术概述 的3 0 : ( 2 ) 自动化测试的复用性较低。 2 5 2 白盒测试 白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代 码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现, 并以此为基础来设计测试用例。 白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地 方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代 码的质量,发现代码中隐藏的问题。 白盒测试的缺点有: ( 1 ) 程序运行会有很多不同的路径,不可能测试所有的运行路径; ( 2 ) 测试基于代码,只能测试开发人员做的对不对,而不能知道设 计的正确与否,可能会漏掉一些功能需求; ( 3 ) 系统庞大时,测试开销会非常大。 1 9 中国石油大学( 华东) 硕士论文第3 章w e b a p p l i c a t i o n 测试技术 第3 章w e b 应用测试技术 基于w e b 的系统测试与传统的软件测试既有相同之处,也有不同的 地方,对软件测试提出了新的挑战。基于w e b 的系统测试不但需要检查 和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览 器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和 可用性测试。 3 1w e b 应用系统测试概述 3 1 1w e b 应用测试的必要性及发展现状 近年来,随着计算机网络技术的迅速发展,w e b 正以其广泛性、交 互性和易用性等特点迅速风靡全球,并且已经渗入到社会的各个应用领 域。在市场需求的推动下,w e b 应用软件已从一般的网站发展成为大型 电子商务、信息发布和提供各种服务的平台,软件规模不断扩大,软件 复杂性增加,但激烈的商业竞争使软件开发周期缩短,如何保证w e b 应 用的正确性和可靠性越来越成为人们关注的问题。作为保证软件质量和 可靠性的重要手段,w e b 应用软件测试就成为软件开发过程中的一个重 要环节。由于w e b 应用软件的异构、分布、并发和平台无关等特性,使 得对w e b 应用软件的测试要比传统程序的测试更加困难,从而在软件测 试领域提出了新的挑战。 目前,国内外的研究机构已经开始对w e b 应用软件测试进行了大量 研究,提出了几种测试模型,给出了一些测试策略,开发了一些商用和 免费测试工具。但是许多和w e b 测试有关的重要问题,例如:测试模型 2 0 生冒石油大学( 华东) 硕士论文第3 章w e b a p p l i c a t i o n 测试技术 的定义、利用测试模型生成测试用例的策略和方法、支持测试用例设计 和执行的测试工具的开发等,仍需近一步的考虑和完善。 3 1 2h b 的新特点 w e b 应用是用来完成某个任务的一系列相关w e b 页面和其他资源的 集合。w e b 应用是一种分布、异构、并发、多用户的应用,作为w e b 应 用基础的h t t p 协议是一种无连接协议( 也称作无状态协议) 。 w e b 应用软件一般采用客户服务器数据服务器的计算模式,在 这种模式下,客户机层用于人机交互与应用的表示,w e b 服务器层用于 事务处理,数据服务器层用于应用数据的存取和管理。由于w e b 应用软 件的多层体系结构,数据通信、硬件与服务器之间的依赖关系又非常复 杂,使得每层内以及各层问都有可能发生故障,影响了w e b 应用软件的 质量,需要进行w e b 应用软件测试。但是,与传统的软件相比,w e b 应 用软件通常是分布式的、并发的、多用户的和异构的,这些独特的性质 对软件测试提出了新的要求,主要表现为多样的使用环境连接协议、操 作系统、中间件、w e b 服务器和w e b 即用户使用不同的硬件、网络信息 的查询和获取成为w e b 应用软件的重要部分,浏览器,因而需要兼容性 测试;要通过测试保证文档和信息的正确显示;网页内容不断走向多媒 体化,并且用户可以选择不同的网页路径组合,使得w e b 应用软件的功 能测试对象多元化;开发网页的复合技术的使用,使得同一网页上的不 同目标是由h t m l 加上不同的计算机语言编写而成,因此,测试时要满足 不同的计算机语言对编程环境的要求:拥有大量的用户群,并为大量用 户提供了对w e b 资源的跨平台访问,运行的实时性要求较高,网页的运 行速度、查询速度和下载时间等性能需要测试。总之,w e b 应用软件的 中国石油大学( 华东) 硕士论文第3 章w e b a p p l i c a t i o n 测试技术 新特点使得传统的测试技术无法胜任,它的新特性对软件测试提出了新 的要求,而且要比普通程序的测试复杂得多,因此需要一套独特的测试 体系来支持w e b 应用软件的测试。 3 1 3b b 应用的基本测试内容 为了确保w e b 应用软件功能的正确,并能同时处理大量的并发用户 的访问而且兼容不同的浏览器、不同浏览器版本和操作系统,从而使w e b 应用软件的设计达到预期的功能需求同时又具有良好的性能,必须进行 以下不同类型的测试,包括:功能测试,压力和强度测试,兼容性测试, 可用性测试,接口测试,安全测试和回归测试等。这些测试过程完全靠 手工进行不太现实,借助测试工具的帮助将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华中师范大学《基因工程及实验》2023-2024学年第二学期期末试卷
- 平顶山职业技术学院《实验力学》2023-2024学年第一学期期末试卷
- 2025年保健品销售合同范本
- 魔术车托班课件
- 2025至2031年中国多协议网络控制器行业投资前景及策略咨询研究报告
- 2025至2030年中国门铃界面模块数据监测研究报告
- 2025至2030年中国聚酯桶罐装线数据监测研究报告
- 2025年度宁波商铺租赁合同模板
- 2025至2030年中国特效除苦剂数据监测研究报告
- 油水井压力测试施工方案
- 23秋国家开放大学《液压与气压传动》形考任务1-2参考答案
- 2023架空线路复合绝缘子无人机红外检测导则
- 山西省临汾市多校联考2023-2024学年七年级上学期期中英语试卷
- 2023分布式光伏电站安装作业指导书
- 新生婴儿落户申请表
- 2023年新部编版六年级语文上册《丁香结》课件
- 建筑施工现场安全警示(案例)教育课件
- 化妆造型师工作手册
- 绿化工程施工进度表1
- 美国眼科协会临床指南糖尿病视网膜病变
- 安龙县海子至洒雨农村道路改扩建项目环境影响报告表
评论
0/150
提交评论