(机械设计及理论专业论文)bs架构的虚拟实验管理系统的测试研究.pdf_第1页
(机械设计及理论专业论文)bs架构的虚拟实验管理系统的测试研究.pdf_第2页
(机械设计及理论专业论文)bs架构的虚拟实验管理系统的测试研究.pdf_第3页
(机械设计及理论专业论文)bs架构的虚拟实验管理系统的测试研究.pdf_第4页
(机械设计及理论专业论文)bs架构的虚拟实验管理系统的测试研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

j e 瘟鲣直盘堂亟监塞 娶垄絮控曲虐赵塞验筻堡丕统曲塑l 这班宜 b s 架构的虚拟实验管理系统的测试研究 摘要 软件测试问题是现代软件产业的关键问题之一,对于提高工作效 率有着非常重要的影响,对于保证软件质量和行业发展有非常重要的 作用。在众多软件质量保证技术中,软件测试作为一种传统的、直接 的、行之有效的方法在软件质量保证中起到了决定性的作用。 本文主要阐述了如何利用有效的测试技术对虚拟实验管理系统 进行测试。根据基于j 2 e e 系统的特点,结合w e b 测试方法,以b s 架构为基础,有针对性的选择测试工具以及测试方法,主要从功能测 试和性能测试两个方面着手,设计适用于此类系统的测试方案。 论文首先综述了软件测试发展过程和国内外软件测试发展现状, 接着介绍了b s 架构的w e b 测试的基本理论知识,w e b 测试测试 概念、目的、w e b 测试测试类型、w e b 测试测试方法。然后从功能 测试和性能测试两方面针对虚拟实验管理系统提出测试方案。通过对 实验管理模块的功能测试,阐述了应用j u n i t 框架进行对j 2 e e 系统的 测试方法,对学生实验模块的功能测试应用了逻辑覆盖、基路测试方 法;在第四章中,重点应用j m e t e r 和g r i n d e r 对w e b 服务器和数 据库服务器进行性能测试,选取测试数据,分析各种方法的优缺点, 完成测试工作。最后,就浏览器常见的兼容性问题进行归纳,从同一 种浏览器高低版本的兼容性和不同浏览器两个方面解决。 关键词:软件测试功能测试性能测试浏览器兼容性 北摩鲤且杰堂殛_ 上盘塞 型曼基控曲虚越塞验蟹理歪统曲测试班红 s o f t 编r et e s t i n gs t u d ya n di t s i 田l e m 哐n 1 a t i o ni nb sb a s e dv i r t u a l e x p e r i m e n tp l a t f o r mm an ag e 皿n ts y s t e m a b s t r a c t s o f t w a r et e s t i n gi so n eo ft h ek e yp r o b l e m so ft h em o d e ms o f t w a r e i n d u s t r y , w h i c h h a s v e r yi m p o r t a n ti n f l u e n c e i n i m p r o v i n gw o r k i n g e f f i c i e n c y a n ds o f t w a r e q u a l i t ya n dt r a d ed e v e l o p m e n t a m o n gm a n y t e c h n o l o g y o fs o f t w a r e q u a l i t yg u a r a n t e e s ,s o f t w a r et e s t i n g i st h e t r a d i t i o n a l ,d i r e c t i v e ,e f f e c t i v ew a y t og u a r a n t e e ss o f t w a r e q u a l i t y t h i s p a p e re x p o u n dt h ew a yt o t e s tv i r t u a l e x p e r i m e n tp l a t f o r m m a n a g e m e n ts y s t e mw i t he f f e c t i v es o f t w a r et e s t i n gt e c h n o l o g y b a s e d0 1 1 t h ec h a r a c t e r i s t i co f j 2 e e ,c o m b i n et h ew a yo fw e bt e s t ,c h o o s ep r o p e r t e s t i n gt o o la n dt e s t i n gw a y , d e s i g n t h et e s ts c h e m e f i r s to fa l l ,t h e p a p e rs u m m a r i z et h ed e v e l o p m e n tp r o c e s sa n d d e v e l o p m e n ta c t u a l i t y a th o m ea n da b r o a d o fs o f t w a r e t e s t i n g ,t h e n i n t r o d u c et h eb a s i ct h e o r y ,w e b t e s t i n gc o n c e p t 、a i m 、t y p e 、a p p r o a c h a n dt e s t i n g p r o c e s si m p r o v e m e n t s e c o n d l y , b r i n gf o r w a r dt h et e s t i n g s c h e m ef o rt h ev i r t u a l e x p e r i m e n tp l a t f o r mm a n a g e m e n ts y s t e m ,t h e s c h e m ea i m st ot e s tb o t hf u n c t i o na n d c a p a b i l i t yo f t h es y s t e m t h r o u g h t h ee x p e r i m e n tm a n a g e m e n tm o d u l ef u n c t i o nt e s t i n g ,e x p l a i n e dt h ej u n i t f r a m e w o r ka n di t s a p p l i c a t i o ni nj 2 e es y s t e m ,t h ef u n c t i o nt e s t i n go f s t u d e n te x p e r i m e n tm o d u l e d e p e n d o nw h i t e - b o x t e s t i n ga p p r o a c h - - l o g i c c o v e r a g e 、b a s i cp a t h s i nc h a p t e rf o u r , f o c u so nj m e t e r a n dg r i n d e r , s e l e c ts o m e t e s t i n gd a t a , c o m p a r e dt h e d a t ea n di t sr e a s o n t h e n s u m m a r i z e dt h ep r o b l e m so f e x p l o r e r se n c o u n t e r e dd u r i n gb sd e v e l o p i n g ; f i n a l l y , r a i s e du p t h es o l u t i o n sf o r e x p l o r e rc o m p a t i b i l i t y :1 ) c o m p a t i b i l i t y o fe x p l o r e r so fs a n l el o wv e r s i o n ;2 ) c o m p a t i b i l n yo f d i f f e r e n tv e r s i o n s k e yw o r d s :s o f t w a r et e s t i n g ,f u n c t i o n a lt e s t i n g ,p e r f o r m a n c e t e s t i n g ,e x p l o r e rc o m p a t i b i l i t y 2 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所 知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰 写过的研究成果。也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢 意。 申请学位论文与资料若有不实之处, 本人签名:垂氩装二 本人承担一切相关责任。 日期:! :堕望12 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校 攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部 门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论 文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 j e 压鲤虫去堂亟主j 金塞型s 醒擒曲虚拟塞验簧堡嚣统的测试班究 第一章绪论 1 1 论文背景 随着网络技术的发展,很多远程教育的科研单位提出了通过网络进行仿真实 验的构想。w e b 技术的出现和发展为这个时期仿真实验的发展开辟了新的领域, 出现了一些基于w e b 技术的仿真实验系统。这些系统,与以前的系统相比,最 大的区别在于使用新技术,并且可以通过网络进行访问,但受w e b 技术的约束, 未能根本解决单机实验系统的不足。 对于上述系统,不论采用什么技术和方法,不可能完全杜绝软件中的错误, 这些引入的错误需要通过测试来找出。软件中存在的问题很多都和测试的成效有 关系。如果测试不充分,这些问题就会潜伏在软件中。由此,我们可以看出软件 测试是保证软件质量的重要手段,而且是软件开发过程中的一个重要环节。 到目前为止,虽然软件测试的重要性日显突出,但是作为软件工程学科的一 个重要分支,还远未成熟。不仅软件测试理论,就是目前现有的测试方法也需要 进一步深入,以满足当前软件开发实际的需要。软件测试是软件开发过程中的 一个重要步骤,或者说测试应该贯穿在软件开发过程的每一个阶段。软件测试所 起到的作用就是:能够确保在软件开发的过程中,随时发现问题,方便开发人员 及时修改。 1 2 软件测试国内外发展现状 软件测试作为一项专门技术并不是随着计算机的产生而与之俱来的。在早期 的软件开发中,人们很少注意到测试的重要性。 7 0 年代以前,关于测试的理论和方法的研究都很缓慢,一些实际应用项目, 除非关键的程序系统外,大都没有经过严格的测试,而是在开发工作结束后,就 马上将含有各种大小错误的系统投入运行,从而给用户和维护者带来不同程度的 严重后果。7 0 年代以来,由于软件危机的产生和加剧,1 使人们开始了软件工程 的研究,并加深了对测试工作的认识,逐渐开展了对测试理论和方法的研究,并 相继推出了一些有效的测试工具,为软件测试理论奠定了坚实的基础。此后,越 来越多的研究人员对软件测试进行研究,使测试理论有了很大发展,软件测试被 j e 塞蛆生厶堂亟i 金塞旦坦塑掏鲤虚赵塞验萱堡丕统的捌毡班宜 正式确认为软件工程的一部分。 此外,关于软件测试,国内外形成了以下一系列标准: 国际标准: i s o f l e c1 4 5 9 8s o f t w a r e e n g i n e e r i n g - p r o d u c t e v a l u a t i o m i s o i e c9 1 2 6i n f o r m a t i o nt e c h n o l o g y - s o f t w a r ep r o d u c te v a l u a t i o n - q u a l i t y c h a r a c t e r i s t i c sa n d g u i d e l i n e sf o r t h e i ru s e | i s o i e c1 2 1 1 9i n f o r m a t i o n t e c h n o l o g y - s o f t w 缸ep a c k a g e s q l l a l i t y r e q u i r e m e n t sa n dt e s t i n g ; i s o i e c1 7 0 2 5g e n e r a l r e q u i r e m e n t s f o r t h e c o m p e t e n c y o ft e s t i n ga n d c a l i b r a t i o nl a b o r a t o r i e s 中国国家标准: g b t17 5 4 4 软件包质量要求和测试; g b t1 6 2 6 0 信息技术软件产品评价质量特性及其使用指南。 软件测试标准比较早就开始建立了,从内容上讲,有些标准在不断更新,而 且结合现代最新的软件技术的标准建立也在不断的建立串o 1 2 1 国内软件测试发展现状 在我国,软件测试技术和管理水平、行业规范化程度与国际水平相比,还存 在很大差距。企业普遍对软件测试环节忽视或投入过少,客户没有接受管理软件 开发流程的意识。当客户交给开发商一个项目,他们没有意识到通过测试等质量 掌控流程,可以将产品的质量保证在一个相对较高的水准,减少后续工作的成本, 往往觉得只要现在没有出问题,就可以了,从而不愿意在软件开发过程中,让测 试介入的程度太深,因此导致了测试不完全。 在研究方面,国内软件关于测试的研究工作进行的也比较少。北京大学、北 京航空航天大学等进行了一系列的软件分析和测试工具的研究和开发,研制了一 系列的程序理解工具和测试工具;航空计算机研究所、尉京大学在嵌入式系统测 试方面进行了较多工作,开发了一些静态分析工具和测试用例自动生成工具;西 北工业大学在航空软件仿真测试、并行软件综合测试平台以及c s 系统的测试方 面进行许多研究工作并取得了一系列成果;另外,航天软件评测中心也具有专门 从事航天软件测试技术的研究,并负责航天软件的测试工作。 1 2 2 国外软件测试发展现状 国外也是在软件规模的扩大和结构的不断复杂的情况下,开始建立软件测试 制度和规矩的。美国i e e e 、a c m 等组织制定了一系列软件测试规范,国外的许 2 韭立韭虫盔坐亟土监塞型曼筮掏曲虚拟窖验篮翌基统啦塑l 试碰窥 多大学( 如c a r n e g i em e l l o n 、g e o r g em o s a n ) 、研究机构( 如:n a t i o n a ls o f t w a r e t e s t i n gl a b 等) 和公司( s o f t w a r er e s e a r c h 、r a t i o n a lc o r p o r a t i o n 、l d r a 以及 a u t o t e s t e r 等) 进行了大量软件测试的研究和应用工作。 目前,国外软件的成熟度高,开发商对软件质量的控制力度很强。以微软公 司为例,在微软内部,软件测试人员与软件开发人员的比率一般为1 5 2 5 左右, 这可能远远超出了大家对测试人员的理解,但微软软件开发的实践过程已经证明 了这种人员结构的合理性。微软e x c h a n g e 2 0 0 0 和w i n d o w s 2 0 0 0 系统的开发团队 人员结构( 这里只分析三类主要的人员,即项目经理、开发人员及测试人员) 中测 试人员占了绝对多数。 1 3 论文概要 1 3 1 论文主要内容 软件测试问题是现代软件产业的关键问题之一,对于提高工作效率有着非常 重要的影响,对于保证软件质量和行业发展有非常重要的作用。本文主要阐述了 如何利用有效的测试技术对虚拟实验管理系统进行测试。根据基于j 2 e e 系统的 特点,结合w e b 测试方法,以b s 架构为基础,有针对性的选择测试工具以及 测试方法,主要从功能测试和性能测试两个方面着手,设计适用于虚拟实验管理 系统的测试方案。其中性能测试主要对w e b 服务器和数据库服务器进行测试, 形成一个测试框架。最后,就浏览器常见的兼容性问题进行归纳,从同一种浏览 器高低版本的兼容性和不同浏览器两个方面解决。 1 3 2 虚拟实验管理系统简介 虚拟实验管理系统,按照实验教学的需要,将用户分三种角色:老师,学生和 管理员。不同角色具有不同的权限。老师可新建一个实验、选择实验的器材,填写 实验的要求,上传实验报告的表格。将建立好的实验发布到网上指定一些学生进 行该实验的操作,并规定实验操作与报告提交的期限。学生可查看发布实验、进行 实验操作,提交实验报告。当学生保存了实验结果,上传了实验报告后,老师可以 进行查看和批改,给出实验成绩和批语。当老师发布了实验成绩之后,学生可以查 看实验成绩与教师批语。学生也可以利用系统进行实验操作,设计自己的实验进行 操作。系统还提供了实验成绩的管理功能。老师可以查看成绩统计信息。同时,师 生之间可以利用论坛以及发个人消息的方式,在网上进行交流。管理员负责用户的 j e 裹盟虫盘堂亟鲍塞 型曼塑控的虚擅塞验萱强暴统曲捌遣班窀 添加、删除,学生学籍管理等。 该虚拟实验系统分为实验平台和实验信息管理系统两部分。实验平台用v is u a l c + + 开发,使用d i r e c t 3 d 技术进行底层绘制。平台仿真了电阻、电容、电感、万 用表、示波器等实验器材的界面和逻辑功能,用户可以利于这些器材进行连线、 参数设置、仪表读数等实验操作。实验信息管理系统使用j s p 以及j 2 e e 开发,负 责用户信息管理、登陆退出、成绩管理、实验管理等功能。 图1 1 虚拟实验管理系统界面图 系统突破了实验教学在时间和空间上的限制,使用户可以在任何有网络终端 的地方进行虚拟实验的操作。并且通过实现实验报告提交,实验成绩统计等实验 教学辅助功能。方便了学生的自学和自我检查,同时,在一定程度上减轻了教员 的工作量,提高了实验教学管理的现代化水平。 4 j e 瘟鲣虫态堂亟监塞 旦堡趣控曲虐担塞验簦堡垂统殴测试盟窥 第二章b s 架构系统的测试基础理论 2 1b s 架构系统的测试概念和方法 2 1 1 软件测试概念 软件测试是一项测量、评估软件产品特点和能力的活动,是一种保证软件产 品质量的手段。在软件投入运行前,对软件需求分析、设计规格说明和编码的最 终复审,是软件质量保证的关键步骤。软件测试是在受控条件下对软件系统或应 用程序进行操作并评估操作的结果,所谓受控制的条件应该包括正常条件和非正 常条件,例如为了故意去造成错误发生而人为创造的测试条件。 1 现在比较主流的测试阶段按流程顺序分为: | 测试阶段操作人员目的 单元测试由项目小组完成测试程序代码 集成测试由项目小组完成对设计的检测 系统测试由专业测试小组完成软件的功能 交接测试用户和开发商共同完成检测用户需求 2 在j 2 e e 开发平台下,基于j a v a 面向对象的特点,单元测试任务包括: ( 1 ) 类的方法的测试; ( 2 ) 类的内部使用数据结构测试; ( 3 ) 具体实现中的独立执行通路测试; ( 4 ) 类的错误处理测试。 方法的测试是单元测试的基础。只有在类的方法可以正确反映类与外界的接 口时,类的设计才能被认为时真正实现。抛开这个前提,其他测试的任何测试都 没有意义。 3 , l a v a 单元测试过程: 一般认为单元测试的测试代码与编码设计同时完成,在编码之后马上就进行 单元测试,也就是说当源程序编制完成并通过复审和编译检查,便可开始单元测 试。测试用例的选择应与代码复审工作相结合,根据详细设计说明书的要求选取 测试数据,将有利于尽可能多的发现各种错误。在确定测试用例的同时,同时给 j e 直鲤旦盘堂亟:l 金塞型墨担拉鳇虚越塞验萱理丕箍鲍递4 试班窥 出期望结果可以更大程度的趋向于实际应用情况,而且更有利于在j 2 e e 平台下 发挥j a v a 语言中使用断言的优势。 在实际的测试编码的编写中,一般在编写某个具体类的代码时,同时编写一 个测试类,也就是测试代码与实际的功能代码同时生成。测试代码在传统意义下 的开发方式中不是软件产品的组成部分,但在j 2 e e 的开发下却有相当重要的地 位。在代码复用性日益受到系统开发人员认识的今天,保存完备的测试代码对于 系统代码日后的维护和扩充都是重要的开发成果。 为了将单元测试发现的错误更加集中地体现出来,必须在类的设计上认真对 待。在j 2 e e 的开发平台下,j a v a 面向对象的特性已经可以满足类的内聚度尽可 能高的需要,而且这样的设计更有利于单元测试的代码是辨析。在后面的单元测 试的操作中我们将会看到,对个自身具有完备方法的类的测试要比一个依赖于 多个外部对象的类的测试要简单得多,也要有效率得多。 4 用例组织方式 用例首先应当以功能进行分类,然后按照系统工作方式,依据主工作流程和 辅助工作流程进行组织。用例可以进行归纳整理,整理的最小单位为最小不可拆 分模块。如:登陆模块,包含的用例可能为密码校验,帐户合法性校验,系统掉 线处理等子测试用例,但是可以认为登陆操作是个不可再分的最小测试用例模 块,其中包含很多的子测试用例。在测试用例的组织过程中,应当将测试用例流 程化,按照系统工作流程将所有测试用例分派完毕,达到可对系统检验的目的。 测试用例只组织到最小不可拆分模块,当书写测试方案的时候再组织相应的测试 用例。由于在此期问需求或者由于其它因素的变化,可能会造成人力的浪费。 测试用例一经认可,就可以确定实际数据值( 在测试用例实施矩阵中) 并且 设定测试数据。我们不可能进行穷举每个测试数据。为了节省时间和资源、提高 测试效率,必须要从数量极大的可用测试数据中精心挑选出具有代表性或特殊性 的测试数据来进行测试。 2 1 2 软件测试基本方法 1 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的 功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个 不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在 程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使 用。程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息 ( 如数据库或文件) 的完整性。 黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用 6 j l 壶鲣电太堂强i 盘塞型曼理掏的虚擅塞盟置壁基统殴塑4 试班豇 于软件确认测试。 采用黑盒测试的目的主要是:检查功能是否实现或遗漏;检查入机界面是否 错误;数据结构或外部数据库访问错误:性能等其它特性要求是否满足;初始化 盒终止错误。 2 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程, 可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序 内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作, 而不顾它的功能。白盒测试的主要方法有语句覆盖、分支( 判定) 覆盖、条件覆 盖、路径覆盖( 或条件组合覆盖) 、基路测试等主要用于软件验证。 白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒测试 是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查 程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每 条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设 计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因 遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。 3 灰盒测试灰箱测试就像黑箱测试一样是通过用户界面测试,但是测 试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚 至于还读过部分源代码。因此测试人员可以有的放矢地进行某种确定的条件,功 能的测试。这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户 界面的深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。 2 1 3 测试数据的选择方法 我们不可能进行穷举每个测试数据,为了节省时间和资源、提高测试效率, 必须要从数量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数 据来进行测试。一般有以下几种数据:( 1 ) 正常数据:在测试中所用的正常数据 的量是最大的,而且也是最关键的。少量的测试数据不能完全覆盖需求,但我们 要从中提取出一些具有高度代表性的数据作为测试数据,以减少测试时间;( 2 ) 边缘数据:边缘测试是界于正常数据和错误数据之间的一种数据。它可以针对某 一种编程语言、编程环境或特定的数据库而专门设定。例如若使用s q ls e r v e r 数据库,则可把s o ls e r v e r 关键字设为边缘数据。其官边缘粒椐环有:h t t d l 的 h t m l : 等关键字以及空格、 、负数、超长字符等。边缘数据要靠测试人员的丰 富经验来制定;( 3 ) 错误数据:显而易见,错误数据就是编写与程序输入规范不 符的数据从而检测输入筛选、错误处理等程序的分支。 j e 瘟韭曳友坐强土监塞酸越扭曲虐越塞验簧理基统的测遗班窥 2 2 软件测试模型 2 2 1 v 模型 在软件测试领域,v 模型已经存在很长时间,也是一个最普遍的模型,当 前很多测试工作都是按照v 模型的测试流程来完成。从下面的图中可以看出, 从左测开始需求分析到最终的验收测试,v 模型描述了基本的开发过程和测试行 为。这种测试模型的优点在于它非常明确地标明了测试过程中存在的不同级别, 并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。 图2 1v 模型 在v 模型中,从右测开始,就是测试阶段。首先是单元测试,它基于代码 的测试,最初由开发人员执行,以验证其执行程序代码的各个部分是否已达到了 预期的功能要求;集成测试目的是验证2 个或多个单元之间的集成是否正确,并 有针对性地对详细设计中所定义的各单元之间的接口进行检查;系统测试开始以 客户环境模拟系统的运行,以验证系统是否达到了在概要设计中所定义的功能和 性能;最后,当技术部门完成了所有测试工作后,由业务专家或用户进行验收测 试,以确保产品能真正符合用户业务上的需要。 2 2 2x 模型 b j e 基鲣直五堂亟圭j 垒塞 型墨丝控曲虐越窘坠篮堡垂统啦测试班密 封服 抒刹性 愤行鲥挂 图2 2x 模型 。- 畔。t x 模型的特点是从没有被文档化,其内容一开始需要从在v 模型的相关内 容中进行推断。与v 模型相比,x 模型还定位工探索性测试( 右下方) 。这是一 种不用编写测试用例和计划的特殊测试,一般来讲,主要是由有经验的测试人员 进行,这样可以帮助发现测试计划之外的一些错误。同样,x 模型也要求在测试 之前进行测试设计,但是包含了测试设计的步骤。 两种模式相比之下,v 模型从需求处理开始,在开发的每一个阶段,都要求 测试人员对各开发阶段中已经得到的内容进行测试,以保证每个环节的结果都能 够达到预期的目标,但它没有规定我们要取得多少内容,这些内容的量没有一个 明确的度,完全依靠测试人员自己决定,所以v 模型很大程度上依靠测试人员。 2 3b s 架构系统测试内容 对于基于w e b 的系统,在开发过程中,常常遇到很多的问题,在开发、发 布、实施和维护w e b 的过程中,如果过程的严格性不足,有可能会导致项目失 败。考虑到w e b 系统的复杂程度,项目的失败将会引起很多问题。 在项目的实施的各个阶段中,基于w e b 系统的测试阶段不可忽略,是一个 讲究技巧而且充满挑战的阶段。与传统的软件测试相比,w e b 测试除了需要检 查项目是否满足设计的要求之外,还要测试是否满足客户端的不同浏览器要求, 最终,还要用户的角度进行安全性和可用性测试。考虑到以上原因,我们需要为 测试和评估w e b 的系统研究新的方法和技术。 9 韭复鲤虫盍宝殛监塞旦盟装控啦虚擅塞筮簧堡歪统数型i 衄红 2 3 1 功能测试 功能测试可以分为客户端测试和服务器端测试两个层面。客户端测试包括: 链接测试、表单测试、c o o k i e s 测试。服务器端测包括:设计语言测试、数据库 测试。下面具体介绍各种测试的目的以及方法。 1 链接测试链接是在网页之间切换并且引导用户去其它地址的页面的主 要手段,他是w e b 的一个主要特征。链接测试可以分为三个步骤:( 1 ) 确认是 否能够到达链接页面;( 2 ) 确认被链接页面是否存在;( 3 ) 确认每一个页面至少 被一个其它页面链接。只有在集成测试完成以后,也就实说所有页面开发完成之 后,才能进行链接测试。链接测试可以手动测试,也有许多工具可以采用。 2 表单测试当用户进行注册、登陆、信息提交时,需要使用表单操作。 在使用表单操作的时候,需要有一个完整的操作,以验证提交给服务器的信息是 否正确。比如,身份证号码与出生日期是否匹配。有时候,表单只能接受指定的 某些值,这也需要进行测试。比如,只能接受英文输入法的标点符号,测试输入 中文的标点符号,看系统是否报错。 3 、c o o k i e s 测试c o o k i e s 的作用是存储用户信息和用户在某应用系统的操 作,当用户使用c o o k i e s 访问了某一个应用程序时,w e b 服务器就会发送有关 用户的信息,并且存储以c o o k i e s 的形式将该信息存储在客户端计算机上,用来 创建动态和自定义页面或者存储登陆等信息。测试的内容包括c o o k i e s 是否起作 用,是否梭预定的时间进行保存,刷新对c o o k i e s 有什么影响。 4 、设计语言测试由于在分布式环境中开发人员都不在一起,所以w e b 设计语言版本的差异引起的客户端或服务器端的问题很严重。常见的问题是 h t m l 版本不同,当然,不同的脚本语言,例如j a v a 、j a v a s c r i p t 、a e t i v e x 、 v b s c r i p t 或p e r l 等也要进行验证。 5 、数据库测试对于基于w e b 的系统,数据库为系统的管理、运行、查 询和实现用户对数据存储的请求等提供空间。其中最常用的是关系型数据库,它 可以使用s q l 语言对信息进行处理。一般情况下,数据库可能发生两种错误, 分别是数据一致性错误和输出错误。一致性错误主要是因为用户提交的表单内容 信息不正确而引起的。输出错误主要是因为网络速度或程序设计问题等引起的。 在测试的时候,要根据这两种情况,分别进行测试。 2 3 z 性能测试 在基于w e b 的系统中,有时满足功能要求,也未必能够满足性能要求。系 ” 统性能测试的目的就是验证是否能够满足性能要求。只有在系统真正集成之后, 1 0 j 塞鲣曳厶堂亟j 垒苫垒鉴盟拽曲虚挞塞坠篮堡基统曲测达砸盔 在真实环境中才能全面、可靠地测试运行性能。性能测试有时与强度测试相结合, 经常需要其他软硬件的配套支持。w e b 系统的性能测试包括: 1 连接速度测试对于一般用户来说,连接速度是衡量一个w e b 系统好 坏的最初标准。同样的上网方式,如果w e b 系统响应时间太长,用户很可能会 离开。而且,对于有超时限制的页面,如果响应速度太慢,则需要重新登录,可 能会引起数据丢失而看不到页面。连接测试的目的就是分析在不同网络环境下, 系统响应时间。 2 负载测试负载测试目的是测量w e b 系统在某一负载级别上的性能, 以保证系统在需求范围内能正常工作。负载测试要获的的结果是:( 1 ) w e b 应 用系统用户同时在线最大数量;( 2 ) 超过了这个数量,出现的现象。最后得到负 载级别,可以是某个时刻同时访问w e b 系统的用户数量,也可以是在线数据处 理的数量。负载测试在w e b 系统发布以后,在实际的网络环境中进行测试。通 常来讲,只有通过i n t e r n e t 接受负载测试,才能获得可信度较高得结果。 3 压力测试压力测试是指实际破坏一个w e b 应用系统,测试系统的 反映,也就是测试系统会不会崩溃,崩溃时的系统所承受的压力状态。一般在表 单、登陆和其他信息传输页面等区域进行压力测试。 4 性能测试内容性能测试主要包括以下几个方面:( 1 ) 通过测试中得 到的负荷和响应时间数据来验证系统的能力是否符合计划,并且,依据这些数据, 决策系统性能。( 2 ) 通过向服务器提出超负荷的请求,观察服务器能够承受的极 端负荷水平,尝试突破这个水平,记录服务器的工作状态,最终的目的是修复系 统瓶颈和薄弱的环节。( 3 ) 对薄弱的环节反复测试,调整,直到测试活动得到了 预期的结果,从而改进性能。( 4 ) 通过长时间反复测试,观察可能引起的系统发 生内存泄漏而导致的程序失败,发现程序中隐藏的问题与冲突。( 5 ) 验证系统的 稳定性及可靠性。 5 性能测试观察指标性能测试通常借助一些自动化的测试工具来完成, 模拟大量的负载来对系统的各项性能指标进行测试,这些负载可以是正常、峰值 也可以是异常负载。性能测试包括负载测试和压力测试,两者可以结合进行。 b s 结构程序一般会关注的通用指标如下: + a v gr p s :平均每秒钟响应次数= 总请求时间秒数; + a v g t i m et ol a s tb y t ep e rt e r s t i o n ( m s t e s ) :平均每秒业务角本的迭代次数, 有人会把这两者混淆; + s u c c e s s f u lr o u n d s :成功的请求; + f a i l e dr o u n d s ;失败的请求; + s u c c e s s f u lh i t s :成功的点击次数; i e 立鲣生盘堂亟论童 旦堡醒翅曲虚赵塞殓鳖堡丞统啦塑9 试班塞 + f a i l e dh i t s :失败的点击次数; + h i t sp e rs e c o n d :每秒点击次数; + s u c c e s s f u lh i t sp e rs e c o n d :每秒成功的点击次数 + f a i l e dh i t sp e rs e c o n d :每秒失败的点击次数; + a t t e m p t e dc o n n e c t i o n s :尝试链接数; 2 3 3 可用性测试 n f 可用行测试主要针对w e b 系统中表示层,更多的从用户的角度测试系统的 视觉效果以及页面逻辑关系,内容的正确性,风格的统一性。可用行测试主要包 括导航测试,图形测试,内容测试,整体界面测试四部分: 1 导航测试导航是指用户在一个页面内操作的方式,包括不同的用户接 口控制之间,或不同的连接页面之问。导航的直观性、信息包容程度以及站点地 图、搜索引擎或其他的导航帮助的直观性决定了一个w e b 应用系统是否易于导 航。因此,w e b 应用系统导航帮助要尽可能地准确,避免在一个页面上放太多 的信息降低导航的直观性。另外,导航的一个重要方面是w e b 应用系统的页面 结构、导航、菜单、连接的风格一致性。风格统一度提高,从而使用户在最短的 时间内知道w e b 应用系统里面是否还有内容,内容在什么地方。在决定w e b 应用系统的层次以后,就要着手测试用户导航功能,让最终用户参与这种测试, 效果将更加明显。 2 图形测试图形的作用在于既能广告宣传,又能达到美化页面。一个 w e b 应用系统的图形包括图片、动画、边框、颜色、字体、背景、按钮等。图 形测试的内容和目的包括:( 1 ) 确保图形有明确的用途,尽量减少图片量,以免 浪费传输时间。( 2 ) 验证所有页面字体的风格是否一致。( 3 ) 背景颜色应该与字 体颜色和前景颜色相搭配。( 4 ) 采用j p g 或g i f 压缩,提高图片质量。 3 内容测试内容测试目的是检验w e b 应用系统提供信息的正确性、 准确性和相关性。信息的正确性是指信息是可靠的还是误传的;信息的准确性是 指是否有语法或拼写错误;信息的相关性是指是否在当前页面可以找到与当前浏 览信息相关的信息列表或入口。 4 整体界面测试整体界面是通过整个w e b 应用系统的页面结构设计, 给用户的一种整体感觉。整体界面要求:( 1 ) 当用户浏览w e b 应用系统时感到 舒适。( 2 ) 整个w e b 应用系统的设计风格一致。一般w e b 应用系统采取在主 页上做一个调查问卷的形式,来得到最终用户的反馈信息。 1 2 j e 哀哑电去坐亟:| 佥塞型s 毽掏鳇虐型塞毁暨理丕统啦捌这班宜 2 3 4 客户端兼容性测试 在开发工程中,作为一个开发人员,需要从开始就考虑工程的兼容性,避免 由于不兼容的原因而导致系统运行失败。客户端兼容性测试主要从以下两个角度 进行。 1 平台测试平台是用户的操作系统及应用程序和配置的总和。用户因为 个人的喜好而选择不同的系统,可能会发生w e b 应用系统的兼容性问题,导致 同一应用在不同的操作系统下运行结果不同,甚至失败。兼容性测试在系统测试 之后,w e b 系统发布前进行。 2 浏览器测试在w e b 客户端来看,浏览器有着非常重要的作用。不同 的浏览器计算机语言和h t m l 的支持不同。而且,框架和层次结构风格在不同 浏览器中的显示也会有差别。一般利用测试兼容性矩阵来测试浏览器兼容性。在 这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。 j e 瘟整里太堂亟论童 曼堡篮控曲虐擅塞验鳖垄丕统的测试虹宜 第三章虚拟实验管理系统所采用的测试工具 3 1j u n i t 3 1 1 软件j u n i t 的框架结构 j u n i t 是一个j a v a 程序测试框架,程序员利用这个框架编写实际的测试。它 把程序员的测试想法具体化,生成一个测试对象,通过它的运行达到测试的目的。 所有的测试过程是相同的:构造测试需要作用的对象( 这些对象我们称为固定部 件) ;运行代码操作固定部件并检测结果;清除固定部件。测试过程的相同性为 模板化测试提供了条件。j u n i t 正是使用模板的方法使得程序员可以分别考虑固 定部件和测试代码的编写。它提供了一个类t e s t c a s e ,通过继承此类并覆盖 s e t u p ( ) 、r u n t e s t 0 和t e a r d o w n 0 分别实现测试的三个步骤,测试方法r u n 0 依次调 用它们。 在j u n i t 测试框架中,要求为每一个测试实例都构造一个子类的方法会产生 大量的类,增加了编写测试代码和管理测试的难度。为了解决这个问题,j u n i t 提供了以下两种方法实现多个测试方法机制。静态方法:利用j a v a 提供的匿名 内部类的方法。利用匿名内部类,可以使一个类有不同的逻辑表现。动态方法: 动态方法利用j a v a 镜像动态地发现和调用方法完成测试0 一这种情况下,测试的 名字和测试的方法是相同的。 3 1 2 使用j u n i t 进行测试 在j a v a 编程语句环境里,作为一个有效的j a v a 程序测试工具,j u n i t 在实 际使用的时候,存在一定的局限性,这主要是因为j u n i t 是建立在实际输出和期 望输出比较的基础上。利用j t m i t 测试的过程中,对于每一个测试用例需要编写 一个测试方法,所以测试实例的增加和修改都需要通过修改程序实现,这增加了 测试的复杂性和管理难度。在定程度上,虽然脚本化的方法简化了测试的过程, 但也是针对测试实例编写脚本测试方法,也需要通过修改脚本增加和修改测试实 例。在基于w e b 的系统中。j u n i t 采用在数据库中记录测试实例的方法,对于一 些特定的问题,简化了测试过程。同时,这样做会降低测试的普遍性。 在利用j u n k 测试之前,主要工作是进行单元测试的编写,下面主要阐述单 元测试的编写原则、如何确定单元测试、如何编写单元测试三方面的问题。 j l 塞酆曳盔堂熊上监塞幽筮掏的虐越塞验篮理丞统鲍测达硒宝 首先,论述单元测试的编写原则。值得注意的是j u n i t 附带文档所列举的单 元测试的示例单元都是针对某个对象的某个方法,这些示例给人一种似乎j u n i t 的单元测试仅适用于类组织结构的静态约束的错觉。所以,为了让更多的程序员 接受和熟悉j u n i t 下的单元测试的编写,需要重新定义如何确定有价值的单元测 试以及如何编写这些单元测试、维护这些单元测试。在设计j u n i t 单元测试框架 的时候,一般我们需要提前设定以下三个总体目标:( 1 ) 简化测试的编写,这种 简化包括测试框架的学习和实际测试单元的编写;( 2 ) 保持测试单元的持久性; ( 3 ) 利用既有的测试来编写相关的测试。从这三个目标可以看出,即使编写j u n i t 示例中没有的方法的单元测试,单元测试框架的基本设计依然以现有的测试方法 和方式为基础,只是提高了测试的实施性、可扩展性以及持久性。所以说,编写 单元测试的原则基本可以借鉴和利用通常使用的测试方法。 其次,解决如何确定单元测试的问题。通常,在我们的测试中,一个单元测 试一般针对于特定对象的一个特定特性。譬如,在虚拟实验管理系统中,要编写 了一个针对m y s q l 数据库访问的连接池的类包实现。在启动后连接池之后,有 很多测试的路径可以选择:( 1 ) 根据定义的规则在池中建立了相应数量的数据库 连接申请一个数据库连接;( 2 ) 根据定义的规则从池中直接获得缓存连接的引用; ( 3 ) 建立新的连接释放一个数据库连接后,连接是否根据定义的规则被池释放。 在这里,只列出了部分的可能测试,从这些路径中可以看出单元测试的覆盖面的 广度和粒度。一般来说,单元测试的基础是某一个特定的对象的明确方法,所以, 这个对象的单元测试就应当限定在一个明确的路径范围内。通过以上的分析可以 看出,单元测试应该从一个对象的内部方法入手

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论