已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌大学信息工程学院硕士学位论文 摘要 软件测试是软件生命周期的一个重要阶段,也是保证软件质量的重要手段。 软件测试一般分为手工测试和自动测试,软件自动测试技术是当前软件界的研究 热点之一。在我国,软件自动化测试的研究尚处于起步阶段,因此,对软件测试自动 化技术的研究和应用具有十分重要的理论和使用价值。本论文主要研究网络环境 下的软件测试自动化技术及其应用。 论文涉及的主要工作和成果包括: 1 研究了软件自动测试,特别是基于b s 结构系统的软件自动测试技术, 分析并指出了自动测试和手工测试的区别,分析了自动测试的优势。研究了测试 的五个活动和它们的特点,指出了最适合于自动化的两个测试活动;测试执行和 测试检查,这些研究为后续的设计和开发工作提供了良好的理论基础。 2 论文分析了基于b s 结构应用程序的特点,指出传统的手工测试不能很 好地为日益复杂的软件提供有效的测试保证。因此,结合b s 应用程序的特点, 论文提出和设计了自动测试系统的环境平台,它包括数据驱动层,支持库,测试 表,映射表,它具有层次清楚,可维护性好,可扩充性好等特点,是一个通用的 自动测试框架结构,较好地解决了自动测试的基础性体系结构问题。 3 针对传统的集成测试在b s 系统集成测试中的局限性,研究了b s 系统 的集成测试原理和模型,从b s 系统体系结构的角度出发,分别给出了客户端软 件测试,服务端软件测试,中间协议层测试以及b s 系统的集成测试策略和规则。 本文提出的自动测试系统的体系结构在测试中得到了初步的实践和应用,为 自动测试的应用做出了一些探索。 关键词: 软件测试,软件自动化测试,核心数据驱动,集成测试,系统测试, 压力测试 i 一 南昌大学信息工程学院硕士学位论文 a b s t r a c t s o f t w a r et e s ti sak e ys t a g ei nt h es o f t w a r ed e v e l o p m e n tl i f e c y c l e ,i ti sa l s oa n i m p o r t a n tm e a n s t oe n s u r es o f t w a r eq u a l i t y 。 s o f t w a r et e s ti sd i v i d e di n t om a n u a lt e s ta n da u t o m a t e dt e s t ,s o f t w a r et e s t a u t o m a t i o ni sak e yf o c u so fc u r r e n ts o f t w a r er e s e a r c hi no u rc o u n t r y 。t h er e s e a r c ho n s o f t w a r et e s ta n ds o f t w a r et e s ta u t o m a t i o ni ss t i l li nt h ei n f a n c ys t a g e 。t h e r e f o r e ,t h e r e s e a r c ho ns o f t w a r et e s ta u t o m a t i o nb e a r sb o t hs i g n i f i c a n tt h e o r e t i c a la n dp r a t i c a l v a l u e s 。t h i sp a p e rm a i n l yf o c u s e so nt h er e s e a r c ha n da p p l i c a t i o no fs o f t w a r et e s t a u t o m a t i o nt e c h n o l o g yu n d e rn e t w o r ke n v i r o n m e n t 。 t h i sp a p e rm a i n l yi n c l u d e st h ef o l l o w i n ga s p e c t s : f i r s t ,t h i sp a p e rr e s e a r c h e ss o f t w a r et e s ta u t o m a t i o nt e c h n o l o g y ,e s p e c i a l l y s o f t w a r et e s ta u t o m a t i o nt e c h n o l o g yu n d e rn e t w o r ke n v i r o n m e n t 。i ta n a l y z e st h e d i f f e r e n c eb e t w e e na u t o m a t e dt e s ta n dm a n u a lt e s t 。i ta l s oi d e n t i f i e st h ea d v a n t a g ea n d d i s a d v a n t a g eo fa u t o m a t e dt e s t 。t h i sp a p e rd i s c u s s e st h ef i v em a i na c t i v i t i e so f s o f t w a r et e s ta n dt h e i rf e a t u r e s ,p o i n t i n go u tt h et w ot e s ta c t i v i t i e sb e s ts u i t a b l ef o r a u t o m a t i o n :t e s te x e c u t i o na n dt e s tc h e c k ,t h i sp r o v i d e st h et h e o r e t i c a lb a s i sf o rt h e f o l l o w i n gd e s i g na n dd e v e l o p m e n t 。 s e c o n d ,t h ep a p e ra n a l y z et h ep r o b l e m si nt h et e s to fs y s t e mb a s e do nb s s t r u c t u r e ,i n d i c a t i n gt h a tt h et r a d i t i o n a lm a n u a lt e s tc a nn o tp r o v i d ef u l ls u p p o r tt o t h em o r ea n dm o r ec o m p l i c a t es o f t w a r e 。t h e r e f o r e ,b a s e do nt h ef e a t u r e so f s o f t w a r e ,t h ep a p e rp r e s e n t sa n dd e s i g n saa u t o m a t e dt e s t i n gs y s t e m ,i n c l u d et h e d a t a d r i v e rl a y e g c o m p o n e tf u n c t i o nt a b l ea n ds oo n t h i sa r c h i t e c t u r eh a ss e v e r a l a d v a n t a g e ss u c ha s :c l e a rl e v e r ,g o o dm a i n t a i n a b i l i t y ,a n dg o o de x t e n s i b i l i t y 。i t p r o v i d e sag e n e r a lt e s ti n f r a s t r u c t u r ef o rt h et e s t i n go fs o f t w a r e ,s o l v i n gt h eb a s i c i n f r a s t r u c t u r ei s s u ef o rt e s ta u t o m a t i o n 。 n e x t ,f o rt h el i m i t a t i o na b o u tt r a d i t i o n a lt e s t i n ga p p r o a c h e si nt h et e s t i n gf o rb s s y s t e mi n t e g r a t i o n ,t h ep r i n c i p l ea n dm o d e la b o u tb ss y s t e mi n t e g r a t i o nt e s t i n gi s s t u d i e d 。b a s e do ni t ,t h es t r a t e g ya n dr u l e so fc l i e n ts o f t w a r e ,s e r v e rs o f t w a r e , m i d d l e - w a r ea n db ss y s t e mi n t e g r a t i o na r eg i v e n 。 t h ea u t o m a t e dt e s ts y s t e ma r c h i t e c t u r eh a sb e e ni m p l e m e n t e da n da p p l i e di n t e s t ,m a k i n gs o m ee x p l o r a t i o ni nt h ea p p l i c a t i o no ft e s ta u t o m a t i o n 。 k e y w o r d s : s o f t w a r et e s t ,s o f t w a r et e s ta u t o m a t i o n ,t h ek e yd a t ad r i v e r , i n t e g r a t i o nt e s t 独创性声明 y 9 2 8 z t & 7 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得南昌大学或其他教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献 均己在论文中作了明确的说明并表示谢意。 学位论文作者签名:毒a 於萼签字日期:k w 占年月歹曰 学位论文版权使用授权书 本学位论文作者完全了解南昌史学有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和 借阅。本人授权南昌大学可以将学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:纠骖岛 签字日期:、6 年上月弦日 学位论文作者毕业后去向 工作单位: 通讯地址: 导师签名:豫f 饧 签字目期:仉叩缉月jj 日 电话 邮编 南昌大学信息工程学院硕士学位论文 1 1 背景知识 第一章绪论 随着w e b 技术的发展,w e b 应用已经变得越来越庞大和复杂,如何保证基于 b s 结构的w e b 应用系统的正确性和可靠性成为一个重要的课题。软件测试技术 已有数十年的发展历史,但是w e b 应用测试至今仍没有引起人们足够的重视。另 外,由于w e b 具有分布、异构、并发和平台无关的特性,使得对w e b 应用测试提 出了新的要求。使用传统的测试技术对b s 结构的系统进行测试是一项艰巨的任 务。在这种背景下,研究b s 系统软件自动化测试技术具有现实的意义。 近年来,随着i n t e m e t 的迅猛发展,基于b s 结构的w e b 技术已经被越来越 多的领域采用,如搜索引擎、远程教育、电子商务以及电子政务系统等。w e b 应用程序以其便利性、实用性和低成本等特点,被许多公司或企业所采用。但是, w e b 应用程序自身尚存的未被发现的缺陷也给人们带来了不小的损失。例如,美 国一家证券交易所因软件缺陷导致在线证券电子交易系统出错,许多使用电子交 易系统的客户不能在线买卖股票,数以百万计的交易不得不中断。可见,w e b 应 用程序在投入使用之前有必要经过彻底的测试,这样才能确保其可靠性和稳定性, 减少不必要的损失。 由于w e b 应用程序开发所呈现的结构和行为特征有别于传统软件,测试w e b 应用程序更加复杂,也更富有挑战性,原有测试鼓术已不能满足w e b 应用程序 的测试要求,在w e b 应用程序开发过程中,其软件质量和可靠性要求主要存在 以下几个关键问题: ( 1 ) 组成w e b 应用程序的实体多种多样,且缺乏结构性,w e b 应用程序通 常由多种不同的实体组成,例如,h t m l 文档,用不同语言编写的脚本以及各式 各样的组件,另外还包括用户自己编写的各种程序或程序集合,式样繁多且结构 性模糊的实体使得w e b 应用程序难以理解和测试。 ( 2 ) w e b 应用程序能根据用户请求不同,动态生成不同的w e b 页面。如何 有效地确保动态生成页面与用户请求的一致性是测试人员在测试w e b 应用程序 时需要解决的重要问题之一。 ( 3 ) w e b 应用程序运用了大量超链接,可以允许用户浏览不同的w e b 页面, 1 南昌大学信息工程学院硕士学位论文 确保w e b 应用程序能根据用户的选择准确地显示正确的w e b 页面是w e b 应用 程序可靠性需求的具体体现。 ( 4 ) 为了追踪用户的交互信息,w e b 应用程序还需要对用户的状态信息进 行管理。用户的状态信息不仅在动态生成w e b 页面时非常有用,而且在业务逻 辑的处理中也会用到,确保w e b 应用程序能在各种场景下对不同用户的状态信 息进行正确管理,对w e b 应用程序也是至关重要的。 ( 5 ) 开发w e b 应用程序的多种w 曲技术,例如:h t m l 、h t t p 协议、f l a s h 技术、j s p 技术以及a s p 技术等,给w e b 应用程序开发带来了许多新的数据流 和控制流,测试这些新技术是测试人员面临的又一个挑战。 尽管,现在已经有一些工具可以用来检查h t m l 语法,验证一组h t m l 文档中 超链接的可访问性,但这些工具仍然不能用来测试w e b 应用程序的所有功能。大 部分的测试工作还需要测试人员手工完成,因此,我们需要对w e b 应用程序的 自动化测试技术与测试工具进行进一步的研究。 1 2 软件测试的发展历程 所谓软件测试,就是在软件投入运行前,对软件需求分析、设计规格说明和 编码的最终复审,是软件质量保证的关键步骤f l 】【2 1 。如果给软件测试下定义,可 以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根 据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例( 即输 入数据及其预期的输出结果) ,并利用这些测试用例去运行程序,以发现程序错 误。 早在5 0 年代,英国著名的计算机科学家图灵就曾给出程序测试的原始定义。 他认为,测试是正确性确认的实验方法的一种极端形式。初期的测试都是针对机 器语言程序或是汇编语言程序的。测试的主要方式是给出特定的输入或测试用 例,运行被测程序,再检查程序的输出是否与预期的结果一致。进入6 0 年代后, 软件危机的矛盾日益突出,自1 9 6 8 年由n a t 0 ( 北大西洋公约组织) 在德国格密斯 ( g a r m i s h ) 举行的学术会议上正式提出“软件工程”这一术语以来,软件工程化的概 念逐渐形成。把软件工程活动分为需求分析、设计、编码、测试和维护几个阶段 的软件生存期的概念被人们广泛接受。人们认识到在开发初期发现并解决软件错 误所付出的代价远比在编码阶段以后经过测试而发现错误并加以改正的代价小 2 南昌大学信息工程学院硕士学位论文 得多,从这个认识出发,各种有关生存期前几个阶段的测试理论和测试方法应运 而生。w e h o w d e n 给出了软件生存期各个阶段的测试目标。7 0 年代中期,软件 测试技术的研究达到高潮。j b g o o d e n o u g h 首先提出了软件测试的理论,从而把 软件测试这一实践性很强的学科提高到理论的高度,被认为是测试技术发展过程 中具有开创性的工作。此后不久,著名测试专家w e h o w d e n 指出了上述理论的 缺陷,并进行了新的开创性工作。以后,又有w e y u k e r 和o s t r a n d ,g e l l e r 以及g e r h a r t 进一步总结原有的测试理论并加以完善,使软件测试成为有理论指导的实践性学 科。到y 8 0 年代,测试技术的研究越来越受到重视,同时也取得了一些成果。1 9 8 2 年6 月在美国北卡罗来纳大学召开了首次软件测试的正式技术会议,关心软件测 试和软件质量的研究与开发人员第一次聚会,专门讨论他们感兴趣的问题。这次 会议成为软件测试技术发展中的一个重要里程碑。 1 3 软件测试的现状 在今天,与软件在各行各业的广泛应用所带动的软件产业快速发展相比,软 件测试技术的发展水平也仍然处于一个”瓶颈”的地位,现有的软件测试技术及理 论和软件测试还无法适应现在软件工业的开发需要,软件测试技术的滞后严重影 响了软件项目的开发进度,很多大型的开发项目,测试会占据项目周期一半以上 的时间,以微软的i e 4 0 为例,代码开发时间为5 个月,而稳定程序花去了8 个 月的时间,从投入的资金和人力物力来看,测试使产品更新换代稳定和修改花去 的时间可能占到6 0 。 当前软件测试的问题主要体现在以下几个方面: 1 测试工作的定位问题 当前软件开发流程中仍存在着“重开发,轻测试”的现象,这个问题在国内尤 其明显,“开发一个程序是困难的,而测试一个程序则比较容易”的观念仍有一定 的影响当软件产品受到市场压力有时间限制时“软件测试”总是最先考虑压缩的 部分。 2 测试的盲目性 软件测试至今被大多的软件从业人员认为仅仅是一个“事后措施”,在系统编 码阶段结束后才开始,且没有很强的目的性。这样的原始方式所产生的直接后果 是:分析、设计、编码等阶段的错误的发现大大滞后,使整个系统开发周期的延 3 南昌大学信息工程学院硕士学位论文 长,并且造成“测试不足”,“测试不足”则意味让用户来承担隐藏错误所带来的危 险或损失。 3 测试的实施者 为了达到最佳测试效果,“软件测试”应该有独立的专职人员参与,软件系统 的研发没有专职测试人员参与,系统的测试完全由软件开发人员兼任的做法是不 可取的。然而实际情况是软件行业缺乏专业的测试人员,测试的从业人员大都是 “半路出家”,即使在软件工业发展处于领先地位的美国,也很少有大学开设专门 的软件测试课程,即使有学校开设了这门课程,它缺乏系统的理论。由于软件企 业对测试人才有着迫切的需要,最好自己培养测试人才队伍,这造成测试队伍是 典型的“杂牌军”,来源非常复杂,稳定性较低,而实际上测试工作对测试人员的 要求很高,不是任何人都能成为一个优秀的测试人员的。 4 组织与管理 随着软件开发规模的增大,复杂程度的增加,组织和管理日益成为提高效率 和可靠性的保证,软件测试作为开发流程中重要的一环,它的管理和组织尤为重 要。这里我们以微软为代表,微软在8 0 年代初期也没有专门的测试队伍,但随 着微软公司成为世界上最大的软件公司,其对软件测试的重视也日益加强,微软 的测试人员和开发人员数量上大致相等或略多,微软的产品成本中测试大约占 4 0 以上,通常面对一个功能丰富,架构,层次也会相当复杂的一个大型项目, 就必须组建规模庞大的开发团对才能胜任,在微软内部,产品开发团对( 主要包 括开发,测试和项目经理) 一般都有百人以上规模,有些产品甚至上几千人 ( w i n d o w s2 0 0 0 的开发部曾有3 0 0 0 多人) 。这样大规模的人力资源作用在一个 动态的,内部相互联系的系统中,若没有有效的协同,其混乱是不可避免的。试 想,有两个开发人员,分别在开发两个不同的功能模块,其相互有依赖关系。为 了相互协调,他们可以随时进行当面讨论,如果这种关系发生在五个开发人员和 五个功能模块之间,这种协调就只能通过定期的会议来进行。而一个大型项目, 会有许许多多这样的关系,而且很多时候这种关系有着不确定性和调整时,开发 人员常常无法确定,或无法完全确定究竟有哪些相关的模块会受到影响,以及在 什么情况下这种影响会带来什么结果。因为系统的复杂性已远远超出了人的逻辑 思维,技能和经验所能达到的范畴。因此这种传统的协调是远不能满足需要的, 这就给项目管理提出了难题,而微软的解决办法正是通过软件测试来协调,微软 4 南昌大学信息工程学院硕士学位论文 软件项目管理的主要线索就是b u g 的管理,软件测试提供了两个非常重要的参 数,一个是b u g 数量的趋势,另一个是测试结果的趋势。通过b u g 这条线索, 管理人员宏观上可以对整个项目的进度和运行情况有一个整体把握,微观上可以 明晰每一个任务的归属和解决情况,而这一切都是基于充分的,高质量的软件测 试的。可以说,微软是以“软件测试“的管理驱动整个软件开发流程的,可见其重 要性,但实际中很多公司对”软件测试“的管理还处于混乱无序的状态。缺乏系统 的能适应实际开发情况的测试理论,大多数测试工程师通常仍在凭借个人的经验 和智慧完成测试工作。软件测试技术与理论之所以发展相对缓慢,其实质原因是 做实际开发工作的人和做理论研究的人脱节。一般来说,当项目越大时测试提出 的要求越高,而相对小型的项目测试的难度相对较小,不需要系统复杂的理论, 这就造成真正做大型系统开发的工程师,因工作关系没有时间将第一手的测试经 验变成系统的理论,而做理论研究的人缺乏大型系统的开发经验,没有了测试理 论研究的基础材料和动机。 基于软件测试的现状,我们有必要对软件测试做进一步深入的研究,使其在 软件产品的开发中发挥应有的,更重要的作用。我国国内对软件产业的起步较晚, 当前对软件测试的深入研究还比较少,但随着整个产业的发展,人们已经开始意 识到其重要性。相比较而言,国外的对软件测试技术的研究比国内“婴儿时期“的 情况还是先进许多,人们为了应付日益庞大复杂的软件开发,设计了各种复杂而 精密的流程和管理办法,比如软件能力程度度模型c m m ,微软解决方案框架 m s f ,r a t i o n a l 公司的r u p ( 凡玎1 0 n a l + u n i f i e dp r o c e s s ,r a t i o n a l 统 一过程) 等,在这些方法中软件测试都是核心内容之一,软件测试已不再是一个 一次性的,只是开发后期的活动,而是与整个开发流程融合成一体,软件测试也 已成为一个专业,有专门的方法和手段,由专门人才和专家来承担。 1 4 研究内容与组织结构 本文在分析,借鉴,吸收大量文献资料的研究成果的基础上,结合自己的软 件测试,软件开发实践,着重研究了以下问题: l 、自动化测试和手工测试是两种不同的软件测试技术,论文在分析基于b s 结构应用程序的特点的基础上,对自动化测试和手工测试进行了对比探讨。 2 、软件测试用例设计是软件测试中的难点和关键,它决定着软件测试质量, 5 南昌大学信息工程学院硕士学位论文 影响软件测试的效率和速度,从而最终影响软件的质量,市场与寿命,本文从程 序实现角度详细研究了软件测试用例设计问题。 3 、自动化测试是软件测试中的一大热点,但是这些自动设计方法都有不足 之处,目前还无法直接应用于测试实践中,论文对软件测试策略进行了分析。 4 、软件测试自动化是软件测试的必然趋势,但有许多大型公司的软件测试 自动化都没成功,这里最主要的一点是软件测试自动化的组织,文中分析了自动 测试的原理和结构。 5 、本文最后作为一个综合应用,给出了软件自动化测试平台环境的设计。 本文的组织结构如下: 第一章绪论:简述了软件测试的背景知识、软件测试的发展历程,介绍了 本文研究的主要内容、组织结构与创新点。 第二章软件测试自动化概述:首先介绍了软件测试自动化的基本概念、并 对测试和测试自动化进行比较,接着阐述了适合自动化的测试活动。并说明了自 动化测试的优点。 第三章基于b s 结构w e b 应用程序的测试特点:首先介绍了w e b 应用程序的 发展和现状;接着分析了w e b 应用的体系结构,最后讨论了b s 系统的测试规则, 含客户端测试,服务端测试和中间协议层测试。 第四章b s 系统的测试策略:这是本文的重点之一。简述了组装测试,确认 测试和系统测试策略。 第五章自动化测试平台的设计:第一节讨论了自动化测试平台的设计思想; 第二节简述了自动化测试平台的总体架构:由数据驱动模块,支持库,映射表, 测试表等模块组成。第三节介绍了自动化测试的驱动原理。第四节讨论了自动化 测试脚本。 第六章总结与展望:对本论文的研究进行总结,讨论了它的可取与不足之 处,指出进一步研究的方向。 1 5 小结 本章首先介绍了软件测试的研究背景及研究现状,然后简述了本文的研究重 点与组织结构。 6 南昌大学信息工程学院硕士学位论文 第二章软件测试自动化的概述 2 1 测试与测试自动化 自动化测试是工作人员设计一个自动化测试程序,并使用测试软件进行的测 试。在软件开发的每个阶段,测试员要力求审查,走查每个阶段,尽量地发现软 件中存在的错误并将其排除【3 】。因此设计一个高效的测试程序是自动化测试的重 点。 测试技术与自动化测试技术之间存在一定的差别,测试技术上要研究如何进 行测试以检验软件是否符合需要,研究测试步骤,方法和策略,如白盒测试等等。自 动测试技术则是测试技术一个分支,它的研究重点是如何最大可能地进行自动化 测试,在哪些方面可以进行自动化以及自动测试工具的开发和使用。 自动测试通常比手工测试经济得多,其开销只是手工测试的一小部分,第一 次自动执行相同的测试用例时,由于在自动化上花费了较多的工夫,其经济性较 低,但是当自动化测试执行多次后,就比手工测试执行相同的测试要经济得多。 2 2 适合自动化的测试活动 2 2 1 测试活动 测试用例是针对被测试系统各项功能而设让并开发的,每个测试用例将贯穿 五个不同的测试活动,如图2 1 所示,对每一个测试用例而言都需要顺序地执行 这五个测试开发活动,即标识测试条件,设计测试用例,建立测试用例,运行测 试用例,比较结果。 ( 1 ) 标识测试条件: 标识测试条件确定测试“什么”,并最好定义好这些测试条件的优先顺序。测 试条件取决于被测试的系统,一个系统可能有许多不同的测试条件,并且测试不 同的方面,如功能测试,性能测试,安全性测试等等。测试条件是被测环境的描 述,可以用不同的方法来描述,如简单语言描述,表格形式等等。 7 南昌大学信息工程学院硕士学位论文 拆识洲区条件【囊定刚区什么) 图2 1 测试的五个活动 ( 2 ) 设计测试用例: 设计测试用例确定“怎样”测试,测试用例是按一定顺序执行的与测试目标相 关的一系列测试【4 】,测试用例设计将产生测试所包括的输入值,期望结果以及其他 任何运行测试的相关信息。期望输出包括应输出或建立的内容,应修改或更新的 内容或应删除的内容,期望输出集可以是一个很大的集合。 每个测试用例都应说明其期望输出,如果运行前没有说明期望输出,为检查 软件的正确性,应首先认真验证软件的实际输出,这就要测试者对被测试软件具 有一定的了解。才能对输出结果做出正确的判断,如果结果正确,就可以把其作为 进一步测试的期望输出,即可以将其与该测试以后的输出作比较,这种方法叫参照 测试。 。一 ( 3 ) 建立测试用例: 建立测试用例包括准备测试脚本,测试输入,测试数据以及期望输出。测试脚 本是具有正规语法的数据和指令的集合。在测试执行工具中,通常以文本形式保 存,一个测试脚本可以实现一个或多个测试用例。测试脚本可以手工也可以非手 工执行,测试输入和期望输出可以包括在脚本中,也可以以脚本外的文件或数据库 的形式存在。 ( 4 ) 执行测试用例: 在被测试软件运行时用测试用例,对于手工测试来讲,测试者按事先准备好 的测试过程手工进行测试,测试者输入数据,观察输出,记录发现的问题。对于自 8 南昌大学信息工程学院硕士学位论文 动测试,可能只需要启动测试工具,并告诉工具执行哪些测试用例即可。 ( 5 ) 将测试结果与期望输出比较: 对每次测试的实际输出进行分析研究,判断软件功能是否正确,这种验证可以 是非正式的测试者判断,也可以是将实际输出与期望输出进行严格准确的比较。 一般情况下,如果实际输出与期望输出一致,则软件通过测试:如果不一致,则软件 没有通过测试。当然这样的规则过于简单了,实际输出与期望输出不一致有很多 原因,比如软件不正确,测试顺序不对,期望输出的结果不正确,测试环境设置不正 确或测试定义不正确等等。 2 2 2 适合自动化的测试活动 所有的测试活动都可以手工进行,正如测试人员多年所做的那样,所有的测 试活动也可以在某种程度上由于工具的支持而获得益处,但是应该将摄可能获利 的活动进行自动化。 图2 0 适合自动化的测试活动 在这五个测试活动中,经分析有一些测试活动适合于自动化,另一些则不然。 如图2 2 所示,测试活动的前两个,即标识测试条件和设计测试用例,主要是智力活 动,它们决定着最终测试用例的质量,就整体而言只执行一次:后两个活动,即执行 测试用例和检查测试结果,主要是机械活动,一般要执行多次,比较适合进行自动 化。 此外,测试执行和比较活动要重复许多次,而标识测试条件和设计测试用例一 般只执行次。例如,测试中发现软件有错误,软件修改后要重新执行测试和检查 q 南昌大学信息工程学院硕士学位论文 测试结果。当软件修改时,为确保不引起其他错误,需要进行回归测试,回归测试将 重复测试执行和比较( 也可能包括测试建立) 。总之,对重复的活动进行自动化是合 适的,因而我们将主要研究和讨论测试执行和检查阶段的自动化技术。 2 3 自动化测试的优点 自动测试与手工测试相比具有手工测试不能比拟的优点: 1 、执行一些手工测试不可能或很难完成的测试: 例如,对于2 0 0 个用户的联机系统,用户手工进行并发操作是几乎不可能的, 但自动测试可以模拟来自2 0 0 个用户的输入。 2 、提高测试的效率: 在需要多次执行的情况下,自动测试不需要测试人员每次都重复相同的过程, 自动测试建立起来后,就可以多次重复执行,大大提高测试的效率。测试人员从 繁重的测试执行中解脱出来,他们可以投入更多的精力力求设计更多更好的测试 用例【5 】【6 】【7 】。 3 、提高测试的准确性,降低对测试人员的技术要求: 手工测试需要测试人员理解测试步骤和被测软件,并按照测试步骤一步一步 地进行。在执行过程中,测试人员难免会犯这样或那样的错误,这些都会影响测 试的准确性,而自动测试建立起来之后,测试人员只需要执行自动测试用例并在 必要时对输出结果进行一定的检查即可,大大提高了测试的准确性,同时也降低 了对测试人员的技术要求。 一一一 4 、可实现无人照料测试。 自动测试还可以实现无人照料测试,充分利用休息时间进行测试。这样可以 更加合理地利用测试资源,进行更多的测试。 5 、具有一致性和可重复性: 可以利用自动测试重复多次相同的测试,这样就可以保持测试的一致性,而这 在手工测试中是很难得到保证的【8 】o 6 、有利于进行回归测试: 回归测试往往需要重复以前进行过的测试,自动测试具有良好的可重复性使 得回归测试比较容易进行。 7 、缩短测试的时间: 1 0 南昌大学信息工程学院硕士学位论文 一旦实现了测试自动化,就可以比手工测试更快地执行测试,缩短测试的时 间,可以更快地将软件推向市场。 2 4 小结 本章对自动测试技术进行了概述,比较了测试和自动测试,指出自动测试能 提高测试的效率并改善软件的质量,并且自动测试只有长期使用其效益才能体现 出来,分析了测试的活动,指出最适合进行自动化的两个活动:测试执行和测试 检查,最后分析了自动测试的优点和局限性。 南昌大学信息工程学院硕士学位论文 第三章基于b s 结构w e b 应用程序的测试特点 3 1 基于b s 结构w e b 应用程序的发展和现状 从2 0 世纪5 0 年代后期发展起来的计算机网络技术正越来越深刻地影响着人 们的日常工作,学习和生活。计算机网络不仅提供物理资源( 比如:打印机,扫 描仪和c d 刻录机等等) 的共享,更为重要的是提供信息资源( 比如:顾客记录, 库存信息,帐单记录等等) 的共享。基于计算机网络技术的应用系统也日益出现 在工业界。 在2 0 世纪9 0 年代初期,基于计算机网络技术的w e b 应用开始出现,它采 用b s 结构,随着m o s a i c ,n a v i g a t o r 浏览器的出现,诸如:网上购物,网上虚 拟银行等等商业应用开始蓬勃发展起来。1 9 9 5 年,s u n 公司推出了j a v a 这个专 门面向w e b 应用的,能够跨平台运行的计算机语言,使得i n t e r n e t 以前所未有的 高速发展向人们展示了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 应用在其整个生命周期中都是不可 避免和频繁发生的。 基于上述原因,对w e b 应用的质量保证和测试也越来越受到拥有w e b 应用 的企业主的重视。 3 2w - e b 应用开发技术及其现状 w e b 应用被w 3 c 组织定义为:“一个可以通过w e b 浏览器或者h t t p 用户代 理访问的软件应用程序。通常w e b 应用一个瘦客户层( w e b 浏览器) ,一个表示 层( w 曲服务器) ,以及一个应用层( 应用服务器) 组成。” 1 2 南昌大学信息工程学院硕士学位论文 w e b 应用开发技术大致可以分为客户端( 即:浏览器端) 和服务器端( w e b 服务器和应用服务器端) 的开发技术。早期的w 曲应用只能通过编写h t m l 代码 实现静态的w e b 页面,服务器端采用c g i 程序来实现d h t m l 页面的输出。p e r l 语言是当时编写c g i 程序的主要选择之一。 1 9 9 5 年,s u n 公司推出了j a v a 语言,用该语言编写的嵌入在w e b 浏览器的 a p p l e t 小应用程序在当年风靡一时。a p p l e t 小应用程序能够提供用户熟悉的 w i n d o w s 操作界面,这使得用户能够很好的和w e b 服务器进行交互。同年底, j a v a s c r i p t 语言的诞生,以及1 9 9 7 年h t m l 4 0 标准的诞生,使得动态h t m l 正式成 为了w e b 应用开发的主流技术。 与此同时,w e b 服务器端以及应用服务器端的开发技术也在迅猛发展。1 9 9 6 年,m i c r o s o f t 公司推出了a s p 技术用来开发动态的w e b 应用程序。而1 9 9 7 年 在j a v a 阵营中出现的s e r v l e t 技术则从根本上替代了c g i 从而成为了w e b 服务 器端的主流开发技术。此后的j s p 从根本上来说也是编译转化为s e r v l e t 后运行 的。应用服务器端的技术典型代表则有:c o m ,d c o m ,a c t i v e x 控件,e j b , c o r b a 等。 时至今日,各种用于开发w e b 应用的技术平台层出不穷,大体上可以分为 m i c r o s o f t 公司的n e t 技术和s u n 公司主导的j 2 e e 技术。w e b 应用开发技术平 台的蓬勃发展规律,对商业,工业,银行,金融业,教育,政府管理以及娱乐业 等传统行业带来了深刻的影响。然而,在许多情况下,开发w e b 应用系统都以 一种随意的方式进行着,w - e b 应用在一种持续弼阿“的状态中运行。 总体而言,w e b 应用系统的开发缺少一种成熟的,系统化的,有着质量控制 和保证的开发方法。这导致了w e b 应用在开发,部署和维护操作时容易失败, 更糟糕的是这种失败会经由网络系统传播而影响其他的w e b 应用系统,这种失 败会不可避免地使人们丧失对w e b 应用的信,t l , ,产生所谓的“w e bc r i s i s ”。这种 潜在的w e b 危机会比传统的软件危机更为严重。 正是基于对w e b 危机的认识,开发人员开始将传统软件开发中的软件工程 理论应用到w e b 应用的开发活动中来。w e b 应用测试的技术,理论,方法等研 究因此受到广泛的关注。 1 3 南昌大学信息工程学院硕士学位论文 3 3 目前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 应用的主流,但我们也看到传统企业关键的业务在w e b 上面开展的很少,即使是商业应用的基石一网上银行,在国内的地位也是十分 尴尬的。国内w e b 应用的水平低下在很大程度上影响w e b 应用测试的研究。我 们相信,随着国内w e b 应用的发展,会有更多的人关注w e b 应用的测试。 w e b 应用的测试有着其独特的方面:传统软件的功能测试,结构性测试,性 能测试,浏览器的兼容性测试,以及安全性测试等都必须根据w e b 应用的特点 进行相应的调整,以符合w e b 应用的要求。 3 4w - e b 应用的体系架构 w e b 应用从早期的静态w e b 页面发展到动态w e b 页面,以及近几年如火如 荼的x m l 和x s l 等技术。w e b 应用的体系架构也发生了巨大的变化,从早期 简单的浏览器和w e b 服务器架构发展为如今的瘦w e b 客户端模式,胖w e b 客户 端模式,以及w e b 发布模式。这些架构模式的出现反映了w e b 应用技术的发展 状况,每种架构模式都有其适用的范围。此外,在一个复杂的w e b 应用几种架 构模式同时并存的情况也经常见到。 1 、瘦w e b 客户端模式 该模式中的客户端仅需要一个标准的w e b 浏览器,用户通过该浏览器可以 1 4 南昌大学信息工程学院硕士学位论文 请求和现实标准的h t m l 格式的页面,此外还可以通过s c r i p t 脚本语言对用 户提交信息进行基本的控制和验证。所有的业务逻辑通过a s p ,s e r v l e t 和j s p 等技术在w e b 服务器和应用服务器上实现和执行。因为不需要对客户端的浏览 器作任何配置和浏览器版本的限定,所以这种模式非常适合于那些面向数量巨大 的i n t e m e t 用户群的商务应用。 2 、胖w e b 客户端模式 如果需要在客户端执行很多的业务逻辑,就需要使用胖客户端模式,即需要 客户端的浏览器能够支持j a v as c r i p t 或者a c t i v e x 控件来执行业务逻辑,这通 常使得客户端浏览器变得臃肿,以及在w e b 应用升级维护时影响客户端浏览器。 在这种情况下,w e b 服务器和应用服务器仍然要承担大部分的逻辑处理,瘦w e b 客户端模式相反,这种模式对于可以确定客户端配置和浏览器版本的w e b 应用 来说是非常合适的,因而常用于商务伙伴或者企业内部的w e b 应用。 3 、w e b 发布模式 瘦w e b 客户端和胖客户端模式都是以h 郇协议与w e b 服务器进行通信。而 w e b 发布模式则采用特定的通信协议来与服务器进行通信,因而这种模式更像是 分布式系统在这种模式中,w e b 主要是用作分布式对象客户端n 务器系统的一 种传输机制。例如j 2 e e 平台中的r m i ( r e m o t em e t h o di n v o k e r ,远程方法调用) 以及n e t 平台中的d c o m 就是这种模式的例子,通常在具备有效的客户端和网 络配置控制条件下w e b 应用可以应用这种架构模式。 4 、w r e b 应用的特殊性 。 。 w e b 应用与传统应用的不同之处主要表现在以下几个方面: w e b 应用的架构在许多方面与传统的客户端n 务器应用存在着相似之处, 但有一个关键的不同点,传统的客户端朋艮务器应用中,客户端和服务器各自的 角色及其交互关系都是预先定义好的、静态的,然而在w e b 应用中,客户端的 程序和内容都可能是动态生成的。例如,一个w e b 服务器可能返回包含j a v a s c r i p t 脚本,链接的动态生成的h t m l 文件,这意味着在客户端和服务器端随后的交互 依赖之前的输入。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医药在健康管理中的应用策略
- 跨行业探索金融科技行业风控专员工作心得
- 人工智能与服务机器人的交互设计研究总结报告
- 宠物哀伤辅导服务评估
- 中级AI新闻用户画像技术发展趋势分析
- 职业规划中的有机合成中级工发展路径
- 高级运营师面试准备手册
- 基于市场需求的医药产品研发策略研究
- 广东省小学入学通知书
- 广州征集校友通知书
- 卫生室医疗质量与安全管理领导小组、工作计划、管理制度
- CESA-2021-3-005《半导体集成电路 光互连接口技术要求》团体标准 征求意见稿
- 2024年系统集成项目实施方案
- 指数函数的概念与图象
- 皮肤科护理中的温泉疗法在皮肤病管理中的应用
- 成品入库与出库管理流程培训课件
- 2023年汽车内饰行业市场分析报告及未来发展趋势
- 信息安全测试员资格认证考试复习题库大全-上(单选题汇总)
- 人形机器人专题(一):经典五指灵巧手拆机航空航天篇
- 2023年全球结核病报告(英)
- 企业国际化的量化指标研究
评论
0/150
提交评论