(计算机应用技术专业论文)web数据库应用测试.pdf_第1页
(计算机应用技术专业论文)web数据库应用测试.pdf_第2页
(计算机应用技术专业论文)web数据库应用测试.pdf_第3页
(计算机应用技术专业论文)web数据库应用测试.pdf_第4页
(计算机应用技术专业论文)web数据库应用测试.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机应用技术专业论文)web数据库应用测试.pdf.pdf 免费下载

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

文档简介

w e b 数据库应用测试 中文摘要 最近的十年,计算机网络得到飞速的发展,随之网络服务( w e b s e r v i c e ) 也有了长足的进步。很多服务都是由存储在数据库中的数据所 驱动的网站,这些构成了各种各样的w e b 数据库应用。其中包括提供访问 大型数据知识库的服务、还有网上商店和支持b 2 b 产品等的电子商务应用。 自万维网( w o r l d w i d e w e b ) 创立阻来,电子交易的处理也得以高速发 展,正是因为基于w e b 的数据库应用可以将分散在各地的信息资源和服务 整合起来,如今得商业、科学和社会活动越来越依赖于这些w e b 数据库的 应用。w e b 数据库系统为从根本上改变了网站的组织、管理和交易方式。 值得注意得是这些w e b 数据库应用正常运行的可靠性,功能上的正确 性,以及性能上的可接受性。尽管它们都非常重要,但是大多数得w e b 数 据库应用,都只是关注于如何使它们功能越来越健全、越强大,很少有人将 注意力集中在如何保证这些w e b 数据库应用的质量。 a g e n d a ( a t e s tg e n e r a t o rf o rr e l a t i o n a ld a t a b a s ea p p l i c a t i o n s ) 是一个 测试关系数据库应用的工具,得到了美国国家科学基金的有力支持,经过近 三年的研究和开发,基本上完成了基于b s 结构的对关系数据库测试的原型 系统,已经能有效的测试关系数据库的著发性和一致性。本文中我们将从 a g e n d a 系统出发,着重介绍a g e n d a 延伸到测试网络应用方面的作用。 本文提出了基于a g e n d a 系统的w e b 数据库应用测试的基本模型,在整 个模型中,我们使用s o o t 工具来获取每个u r l 向外的链接和它的从请求 源输入的信息。u r l 链接根据内容被分为3 中不同的类型。w e b 应用结构 图就依照这些u r l 链接的类型进行简化。在简化的w e b 应用结构图的基 础上,采用基于著名的循环复杂度( c y c l o m a t i cc o m p l e x i t y ) 准则,计算出 一些独立的有效的测试路径。a g e n d a 工具为每个u r l 产生输入,并将所 有的测试路径和路径中的每个u r l 的输入存储在统一的x m l 文件中。本 文实现了基于x m l 文律的启动测试工具,利用这个工具及x m l 文件,自 动在b s 结构的a g e n d a 系统中执行测试任务。a g e n d a 系统在执行的 同时,检测新的数据库状态和系统输出的有效性。在实验中,本文采用t p c w e b 数据库应用测试 一w 测试标准作为主要的测试对象,对系统的己实现部分进行了测试,并 对实验结果进行了初步的基于经验的分析。 关键词:w e b 数据库应用软件测试a g e n d a w e b 数据库应用测试 a b s t r a c t w i t ht h eg r o w t ho ft h ew e bo v e rt h ep a s td e c a d e ,t h e r eh a sb e e na s i m i l a rg r o w t hi ns e r v i c e st h a ta r ea c c e s s i b l eo v e rt h e w e b m a n yn e w s e r v i c e sa r ew e bs i t e st h a ta r ed r i v e nf r o md a t as t o r e di n d a t a b a s e s e x a m p l e so fw e ba p p l i c a t i o n si n c l u d en e ws e r v i c e st h a tp r o v i d ea c c e s st o l a r g ed a t ar e p o s i t o r i e s e c o m m e r c ea p p l i c a t i o n ss u c ha so n l i n es t o r e s ,a n d b u s i n e s s t o - b u s i n e s s ( b 2 b ) s u p p o r tp r o d u c t s e l e c t r o n i cb u s i n e s sp r o c e s s i n g h a s d r a s t i c a l l yg r o w ns i n c e t h ea d v e n to ft h ew o r l dw i d ew e b c o m m e r c i a l ,s c i e n t i f i c ,a n d s o c i a la c t i v i t i e sa r e i n c r e a s i n gb e c o m i n g d e p e n d e n t o nw e b d a t a b a s e a p p l i c a t i o n s t h a t e x p l o i t m u l t i p l e g e o g r a p h i c a l l yd i s p e r s e d i n f o r m a t i o ns o u r c e sa n ds e r v i c e s w e b - e n a b l e d a t a b a s es y s t e mp r o v i d e st h eo p p o r t u n i t yt of u n d a m e n t a l l y c h a n g e t h ew a y w e bs i t e sa r ep r o d u c e d ,m a n a g e d ,a n dd e l i v e r e d i ti se s s e n t i a lt h a tt h e s e a p p l i c a t i o n sf u n c t i o nc o r r e c t l ya n dp r o v i d ea c c e p t a b l ep e r f o r m a n c e m o s t w o r ko i lw e bd a t a b a s e a p p l i c a t i o n s h a sb e e no n m a k i n gt h e m m o r e p o w e r f u l ,b u tr e l a t i v e l yl i t t l eh a s b e e nd o n et oe n s u r et h e i r q u a i l t y a g e n d af at e s tg e n e r a t o rf o rr e l a t i o n a ld a t a b a s e a p p l i c a t i o n s ) i sa t o o ls e tf o rt e s t i n gr e l a t i o n a ld a t a b a s ea p p l i c a t i o n i nt h i sp a p e rw ee x t e n d a g e n d at ot e s tw e ba p p l i c a t i o n w eu s et h es o o tt o o lt oe x t r a c tu r l l i n k sa n dt h e i ri n p u ti n f o r m a t i o nf r o mt h ea p p l i c a t i o ns o u r c e s t h eu r l l i n k sa r e p a r t i t i o n e di n t o3d i f f e r e n tt y p e sb a s e d o nt h e i rc o n t e n t t h e nw e b a p p l i c a t i o ng r a p hi ss i m p l i f i e da c c o r d i n gt ot h e i ru r l l i n kt y p e s b a s e do u t h ef a m o u sc y c l o m a t i cc o m p l e x i t ym e a s u r e m e n t ,a na l g o r i t h mi su s e dt o g e n e r a t e s o m ei n t e r e s t i n g p a t h s f o r t e s t i n g a f t e ra g e n d ag e n e r a t i n g i n p u tf o re a c hu r l ,t h eu r l sp l u si n p u tf o ri n d i v i d u a lu r l i nt h eg i v e n p a t hi s s t o r e di na nx m lf i l e o u rt o o la u t o m a t i c a l l ye x e c u t e st h et e s tc a s e b a s e do rt h ex m l f i l e ,a n da g e n d a v a l i d a t et h en e wd a t a b a s es t a t ea n d w e b 数据库应用测试 s y s t e mo u t p u t p r e l i m i n a r ye m p i r i c a l l y e v a l u a t i o nb a s e do nt p c - w b e n c h m a r ki sp r e s e n t e d k e yw o r d s w e bd a t a b a s e a p p l i c a t i o n ,s o f t w a r et e s t i n g ,a g e n d a i v j ,t 附件一: 东华大学学位论文原创性声明 本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论 文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中 已明确注明和引用的内容外,本论文不包含任何其他个人或集体已经发 表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对所写的内 容负责,并完全意识到本声明的法律结果由本人承担。 学位做作者签名矗饭 日期: ”每年;月夕日 多 附件二: 东华大学学位论文版权使用授权书 学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅或借阅。本人授权东华大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保 存和汇编本学位论文。 本学位论文属于 保密口,在年解密后适用本版权书。 不保密口。 学位论文作者签名:一:参表疋 + 指导教师签名 曰期:) 们4 年3 月阳 嘲晔专 w e b 数据库应用测试 第一章绪论 1 1 研究背景 万维网( w o r l dw i d ew e b ) 起初主要是由包含超链接的文本文件的简单网站 组成,主要给网络冲浪爱好者们提供大量有效的信息。然而现今的w e b 应用则 包括一些很大规模的应用程序,服务于各行各业,包括电子商务、信息分类查询、 娱乐、协作开发、网上调查以及众多的其他应用。它们运行在分布式的硬件平台 和不同种类的计算机系统上。一般的w e b 应用软件都采用分布式结构,支持多 种语言和形式,包含很多可以重复使用的构件和第三方组件。这些软件都采用先 进的技术,通过统一的接口和用户、其他站点、数据库相连。 w e b 应用包含各种各样的组成部分,有传统和非传统的软件、解释型的脚 本语言、只包含纯h t m l 的网页、包含h t m l 和其他程序的网页、数据库、图 片、复杂的用户接口等等。w e b 应用是如此的广泛,它已经延伸到了通讯和商 业的各个领域,并成为软件行业中最大和最重要的部分之一。最近美国国家调查 委员会( n a t i o n a lr e s e a r c hc o u n c i l ) 的研究发现:目前的科学和技术水平还不足 以构建一个系统,来有效的控制软件的关键部分的底层结构。在总统的信息技术 咨询委员会( p r e s i d e n t si n f o r m a t i o n t e c h n o l o g y a d v i s o r y c o m m i t t e e ) 报告中,关 于软件的基础结构的保护问题,也得出了相同的结论。这一切说明,如何确保软 件的质量是一个非常值得注意的问题,而且这个问题在高风险的w e b 应用软件 中显得尤为突出。 旧金山的商业互联网协会进行了项获取、评估和量化网络请求完整性的研 究,研究的对象是美国政府管理下的4 1 个专业网站。在这4 1 个网站中,有2 8 个网站含有以下所描述类型的网络请求失败。他们的研究结果显示如下: 网络请求失败率6 8 在所有网站中所花费的平均时间:9 分钟4 1 秒 在每个网站中遇到错误的平均时间:4 分钟4 9 秒 这项研究反映出网络请求失败主要分为以下完全不同的两类; w e b 数据库应用测试 技术错误:技术错误包括应用服务器错误和网络服务器错误。例如:空 白页、内容错误、5 0 0 内部服务器错误等等。 不正确的数据错误:不正确的数据错误包括编程、数据库和人为的错误, 例如:返回错误的页面,返回错误的信息记录等等。 因为越来越多的服务和信息使用在互联网和企业内部网上,网络请求也变得 越来越复杂了,同时,网站的正确行为对商业和企业的成功越来越至关紧要了, 因此需要彻底的频繁的测试来保证w e b 服务的质量。了解这些w e b 应用的重 要性,我们就可以想象失败的网络请求将给商业、经济、科学的进步和健康发展 带来多么严重的后果。w e b 应用的可靠性是非常重要的。虽然传统的软件测试 已经是一个非常困难、费时和昂贵的过程,但w e b 应用的测试呈现出更大的挑 战:网络界面是动态的;w e b 应用的环境比典型的单机或客户服务器应用更加 复杂;w e b 应用中,大多数电子商务网站都将面对众多没有经过任何w e b 应 用使用培训的用户,因此这些用户都将以各种不可预知的方式来实践网站的应 用。现有的自动测试动态网站的测试工具要求测试环境的规范性,这种测试环境 就导致了测试结果的局限性。 w e b 应用的复杂性也因为信息的发布( 包括简单的文本、图片、表单、通 用网关接口( c g i ) 、j a v a 程序、脚本和样式表) 、在线交易、企业的计划和时间 安排系统、基于网络的交互工作环境等等变得越来越显著。 有一些基本的特征可以用来评估基于网络系统的质量,例如可轻松导航、易 接入性、可测量性、可维护性、可用性、兼容性、可交互性、安全性和可靠性等。 然而这些特征在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 应用是“动态的”,这是由于网络技术的飞速发展以及应用要求的频繁变化; ( 2 ) 客户和服务器角色的动态变化,硬件和软件组成的不同,极其松散的耦台 w e b 数据库应用测试 ( 1 0 0 s ec o u p l i n g ) 和动态的集成以及用户直接影响执行控制的能力。 软件测试领域,w e b 应用的测试成为一个研究的热点。然而很多的研究工 作往往只是专注于h t m l 文档的语义,检测h t m l 文档超链接的完整性,测试 嵌入w e b 应用程序中的g u i 部件,度量w e b 应用的执行情况等。没有针对 w e b 应用的数据库部分进行测试,主要原因是缺乏对数据库应用的测试工具。 本人参与美国国家科学基金( n s f ) 的数据库应用测试项目的研究工作,现 今已经完成一个原创性的数据库应用测试工具( a g e n d a ) ,利用这现有的数 据库测试工具,本文将在其基础上进一步扩展,针对w e b 应用的后端数据库应 用测试进行一定的研究。 1 2w e b 应用测试的研究现状 l i u 等在【9 1 中提出了w e b 应用测试的模型,该测试模型认为每个网络应用 组件都是一个对象,并且对在这些对象间传送的数据产生测试的案例。r i c c a 和 t o n e l l a 在 io 中提出了一个基于u m l 的模型,使w e b 应用的分析和测试用例的 产生得到了发展。这两种技术,从本质上讲,都扩展了传统的基于路径的测试方 法,也为w e b 应用内的数据流提供了充分的评估。第二种技术还建立在新的 u m l 模型的基础上。 e l b a u m “1 提出了收集用户会话( s e s s i o n ) 数据的思想,当用户操作w e b 应 用时,收集的用户的会话( s e s s i o n ) 数据,这些数据可以成功地使用在这个w e b 应用的测试之中。尤其是当这些应用包含和经历了不同的操作方法时,收集用户 会话( s e s s i o n ) 数据的方法显的尤为突出。 h e d t l 2 】是一个维护网络数据库应用的模型。h e d 模型把一个网络数据库应 用分解成3 个图表;超级链接图表、实体关系图表和数据流图表,这些图表被用 来表现网络数据库的不同方面。在h e d 模型的基础上,程序变化的影响可以通 过结构和数据库的分析来精确地识别。另外,一个维护工具被用来证明l i e d 模 型的能力。 w a v e s 】是一个评估w e b 应用安全的工具。它充分利用了动态分析、黑 w e b 数据库应用测试 盒测试、错误引入( f a u l ti n j e c t i o n ) 和行为监控等一系列软件测试技术。 v e r i w e b 1 4 1 是一个可以自动地发现和系统地扫描网站的执行路径的工具,这 些路径可以被一个用户在网络应用中跟随。不像传统的c r a w l e r s 局限在静态链接 的扫描上,v e r i w e b 可以自动的在表单提交和客户端脚本执行等网站的动态组件 中穿行。 1 3w e b 应用模型 一个w e b 应用或w e b 服务其实是一个应用程序,它可以方便地通过网络 浏览器或h t t p 用户代理( a g e n t ) 进行访问。一般包括瘦客户层( 网络浏览器) 、 表示层( 网络服务器) 、应用层( 应用服务器) 和数据库层。应用程序可能会包 含多个表示层,甚至使用多个应用层和众多的数据源。 以前网络的内容全都由静态的h t m l 或者图片文件组成,发展到今天,网 络的内容越来越多的是动态产生的。动态的网络内容通常是由一个前台的网络服 务器和一个后台的数据库生成的。网络的动态内容存储在数据库中,应用逻辑请 求提供对数据库内容的访问。客户发送一个包含正确的u r l 和一些参数的h t t p 请求到网络服务器,网络服务器执行应用逻辑,通常应用逻辑发送一定数量的 s q l 命令到数据库,将得到的数据以h t m l 的形式组织起来,最后网络服务器 把这个页面作为h t t p 响应发还给客户。 这个应用逻辑可以有很多种形式,包括脚本语言,例如在a p a c h e 网络服务 器中作为一个模块执行的p 珥;还有微软的a s p ,集成在i i s 服务器中;以及在 单独的j a v a 虚拟机中执行的基于j a 、,a 的系统。 在一个静态页面中,页面的内容在创建页面的时候就已经决定了。当任何一 个用户访问一个静态页面的时候,都会看到相同的信息。而在一个动态页面中, 内容将随着用户的输入及从外部源获得的数据的变化而变化。在这篇论文中,术 语“基于数据的网页”指的是那些部分或者全部的内容都来自数据文件或数据库 中的动态网页。 区分基于数据的网页和那些使用j a v a s c r i p t 或v b s c r i p t 脚本技术来创建的网 w e b 数据库应用测试 页是非常有用的。这些技术支持数据确认、显示新浏览窗口,并且提供比与文件 和数据库交互更出色完成的生动的图形和声音 基于数据的网页支持例如“我想购买1 0 0 股t e c h n o l o g y 公司的股票”或者 “现在我支票帐户的余额是多少? ”这类的用户请求。通常是运行在一个网络服 务器上的程序来为这些用户请求提供服务,这些程序从一个文件或数据库中获取 并显示数据。 当一个用户点击了网页表单上的一个超链接或一个“提交“按钮时,一个“基 于数据的网页”就被请求。如果请求来自于超链接的点击,这个链接必须指定一 个网络服务器程序或指定一个可以调用网络服务器程序的页面。在一些情况下, 程序执行一个静态的查询,例如“过去五个时间周期内的平均道琼斯指数是多 少? ”尽管这个查询不需要用户的输入,但是结果是根据不同的请求时间来变化 的。如果请求是在用户按了网页表单上的“提交”按钮时产生的,网络服务器程 序通常使用表单的输入来产生一个查询。在其他的情况下,网络服务器程序响应 查询结果的时候加上h t m l 标签。于是网络服务器就把程序的输出以一个网页 的形式反馈给客户。 1 4 本文的构成 本文一共包括五章:绪论,基本概念,a g e n d a 系统,w e b 数据库应用测 试和结论。 第一章绪论,主要介绍本文的研究背景,w e b 应用的基本模型,为什么要 进行w e b 数据库应用的测试,以及当前的一些研究成果。 第二章基本概念,这一章主要针对w e b 数据库应用测试所涉及的三大知识 体系进行了简要的论述,它们包括:数据库技术、软件测试技术和w e b 技术。 第三章a g e n d a 系统,a g e n d a 是一个数据库测试工具,本人参与了部 分a g e n d a 系统的研究和开发工作,它是现今第一个数据库测试的原型系统。 它也是整个w e b 数据库测试的核心部分。 第四章w e b 数据库应用测试,本章是本文的核心韶分,主要是提出了w e b w e b 数据库应用测试 数据库测试的基本模型,对模型的各个基本组成部分进行了阐述,并就己实现的 一 部分进行了说明。最后采用t p c w 作为我们的测试实例,给出了实验结果。 第五章结论,总结了本文研究工作的贡献和不足,并提出了今后进一步研究 的展望。 1 5 本文的创新点 本文主要的贡献是结合a g e n d a 数据库测试系统提出了采用白箱测试方法 f+ 的w e b 数据库应用测试的一个基本模型。虽然由于时间的问题只对整个模型的 几个部分模块进行了实现,但是整个模型的提出是具有原创性的。 同时在整个模型的实现过程中,我们采用很多最新的技术和研究成果: ( 1 ) a g e n d a 是美国国家科学基金的研究项目,实现了第一个面向关系数 据库的测试原型系统,本人参与了部分的研究和开发工作。 ( 2 ) 在对i a v as e r v l e t 源代码分析过程中,我们采用了s o o t 源码分析工具, 它是最新的得到广泛推崇的j a v a 源代码分析框架。 ( 3 ) 实现了基于x m l 的自动测试工具,为系统间的交互提供了统一的接口。 使得整个模型可以对很多的功能模块实现无缝的接入。 ( 4 ) 充分利用t p c - - c 和t p c w 标准的典型性,采用这两个标准作为我 们实验的对象,使得我们的系统具有很好的有效性,实验结果充分体现代表性。 w e b 数据库应用测试 第二章基本概念 本章主要针对本文所采用的几种基本技术进行阐述,主要包括有三个方面 数据库技术,软件测试技术和网络技术。 2 1 数据库技术 人们在总结信息资源开发、管理和服务的各种手段时,认为最有效的是数据 库技术。数据库的应用已越来越广泛。从小型的单项事务处理系统到大型的复杂 信息系统都采用先进的数据库技术来保持系统数据的整体性、完整性和共享性 。 2 1 1 关系型数据库 关系数据库系统是支持关系数据模型的数据库系统。 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 ( 1 ) 关系数据结构 关系模型的数据结构非常单一。在关系模型中:现实世界的实体以及实体间 的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二 维表。 ( 2 ) 关系操作 关系模型给出了关系操作的能力,但不对r d b m s 语言给出具体的语法要 求。 关系模型中常用的关系操作包括:选择( s e l e c t ) 、投影( p r o j e c t ) 、连接( j o i n ) 、 除( d i v i d e ) 、并( u n i o n ) 、交( i n t e r s e c t i o n ) 、差( d i f f e r e n c e ) 等查询( q u e r y ) 操作和增加( i n s e r t ) 、删除( d e l e t e ) 、修改( u p d a t e ) 操作两大部分。查询的表 达能力是其中主要的部分。 2 1 2 关系数据结构及形式化定义 在关系模型中,无论是实体还是实体间的联系均由单一的结构类型即关系 w e b 数据库应用测试 ( 表) 来表不。 ( 1 ) 域( d o m a i n ) 域是一组具有相同数据类型的值的集合。例如,自然数、整数、实数都可以 是域。 ( 2 ) 笛卡儿积( c a r t e s i a np r o d u c t ) 给定一组域d ,d 2a ,q ,这些域中可以有相同的。d , d 2 , a , d o 的笛卡儿 积为: d 1 d 2x a d 。= ( d l ,d 2 ,人,d 。) ld ,d ,i = 1 , 2 ,a ,门) 其中每一个元素( 4 ,d 2a ,d 一) 叫作一个n 元组( n t u p l e ) 或简称元组( 1 u p l e ) 。 元素中的每一个值d ,叫作一个分量( c o m p o n e n t ) 。 若j d ,( f = 1 ,2 ,人,n ) 为有限集,其基数( c a r d i n a ln u m b e r ) 为“r ( f = 1 ,2 ,a ,川, ,“v n m = 兀m ,dd 则,:人。见的基数m 为: ; 。 笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的每一列对 应一个域。 ( 3 ) 关系( r e l a t i o n ) d ,d z 人见的子集叫作域d l ,d z ,a ,d 一上的关系,表示为 r ( 日,d 2 ,a ,q ) 这里r 表示关系的名字,n 是关系的目或度( d e g r e e ) 。 关系是笛卡儿积的有限子集,所以关系也是一个二维表,表的每行对应一个 元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一 个名字,称为属性( a t t r i b u t e ) 。”目关系必有n 个属性。若关系中的某一属性组 的值能唯一地标识一个元组,则称该属性组为候选码( c a n d i d a t e k e y ) 。 2 1 3 几种基本约束类型 ( 1 ) 域约束( d o m a i nc o n s t r a i n t ) 。域约束就是指规定某个属性的可能的值。例 w e b 数据库应用测试 如,一个属性是整型,还可以规定它的子范围是1 - - 2 0 0 0 0 。 唯一性约束( u n i q u e n e s sc o n s t r a i n t ) 。唯一性约束就是指对于某一个具体 的属性集合任意两个元组不会具有相同的值。例如一张表的用户i d 。 非空约束( n o t - n u l lc o n s t r a i n t ) 。非空约束就是对于特定的某个属性,不允 许空值的出现。 参照完整性约束( r e f e r e n t i a li n t e g r i t yc o n s t r a i n t ) 。参照完整性约束就是指 在表r 。中的某个具体属性值必须也是表r 中的某个具体属性值。例如, 表矗存储一个公司的所有员工姓名及他们所属的部门的编号,表r ,存储 了所有的部门和他们的主管。那么在表r 中的员工x 隶属于部门y ,就 必须有部门y 出现在表尺,中。 语义完整性约束( s e m a n t i ci n t e g r i t yc o n s t r a i n t ) 。语义完整性约束是数据库 状态的一般性约束,由具体语言描述。例如,表达一些一般的商业规则, 在一个公司里部门主管的工资应该高于一般的部门员工。 2 1 4 s q l 语言 s q l ( s t r u c t u r eq u e r yl a n g u a g e ) 语言是1 9 7 4 年由b o y c e 和c h a m b e r l i n 提 出的。它是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅 仅是查询。s q l 是一个通用的、功能极强的关系数据库语言。 s q l 语言之所以能为用户和业界所接受,并成为国际标准,是因为它是一 个综合的、功能极强同时又简捷易学的语言。s q l 语言集数据查询( d a t a q u e r y ) 、 数据操纵( d a t am a n i p u l a t i o n ) 、数据定义( d a t ad e f i n i t i o n ) 和数据控制( d a t a c o n t r 0 1 ) 功能于一体。 s q l 语言则集数据定义语言d d l 、数据操纵语言d m l 、数据控制语言d c l 的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包 括定义关系模式、插入数据建立数据库、查询、更新、维护、数据库重构、数据 库安全控制等一系列操作要求,这就为数据库应用系统的开发提供了良好的环 ) ) ) ) 巧 w e b 数据库应用测试 境。用户在数据库系统投入运行后,还可以根据需要随时地逐步地修改模式,并 且不影响数据库的运行,从而使系统具有良好的可扩展性。 2 1 5 数据库模式( d a t a b a s es c h e m a ) 数据库模式是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型 的描述,不涉及到具体的值。以下就是一个数据库模式的s q l 定义: c r e a t et a b l e d e p t ( d e p t n o i n t ,d n a m ec h a r ( 2 0 ) ,l o ec h a r ( 2 0 ) , p r i m a r y k e y ( d e p t n o ) ) ; c r e a t et a b l ee m p ( e m p n oi n tp r i m a r yk e ye n a m ec h a r ( 2 5 ) u n i q u e n o t n u l l ! s a l a r ym o n e e b o n u sm o n e d e p t n om ! f o r e i g n k e y ( d e p t n o ) r e f e r e n c e sd e p t ,c h e c k ( ( s a l a r y 6 0 0 0 0 0 ) a n d ( s a l a r y 6 0 0 0 0 0 ) a n d ( s a l a r y 1 0 0 0 0 o o ) ) ”。就是说s a l a r y 属性的值一定在6 0 0 0 0 0 和1 0 0 0 0 0 0 之间。 模式的个具体值称为模式的一个实例( i n s t a n c e ) 。同一个模式可以有很多 的实例。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不 断更新的。模式反映的是数据结构及其联系,而实例反映的是数据库某一时刻的 状态。 2 1 6 数据库事务处理( d a t a b a s et r a n s a c t i o n ) 事务处理就是将一系列的数据库操作做为一个单元进行处理,同时数据库系 统对事务处理需要满足a c i d 的基本属性: ( 1 ) 原子性( a t o m i c i t y ) 定义工作的独立单元。如果一个事务是分布的,所有 影响分离地点数据的子事务都必须像一个事务那样被一起执行。为了保持 w e b 数据库应用测试 在多个地点数据的一致性,需要使用下面就将介绍的双阶段认可过程。 ( 2 ) 一致性( c o n s i s t e n c y )一致性基本上是一种数据库从一个状态变到同等 的另一个状态的需求。事务监督器必须检验所有被影响的数据都是一致 的。 ( 3 ) 孤立性( i s o l a t i o n ) 事务必须被孤立地执行直到完成,执行期间不受到其 他事务的影响。 ( 4 ) 持续性( d u r a b i l i t y ) 这个性质是与事务的最终确认一起进行的。一旦一个 事务被检验为对所有受影晌的系统都是正确的,它就被认可并且不再需要 卷回。 2 2 软件测试技术 软件测试是软件工程的重要组成部分,是软件质量的重要保证。软件测试是 一门重要的、具有应用价值的学科,它又是一门集编程方法、模型设计、统计方 法、预测等多领域的综合学科。 软件测试是为了发现程序中的错误而执行程序的过程。正确认识软件测试的 定义是十分重要的,它决定了测试方案的设计。好的测试方案是极可能发现迄今 为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误 的测试,软件测试只能查找程序中的错误,不能证明程序中没有错误f l 。 2 2 1 软件测试方法 对软件进行测试有两种方法。 一种称为黑盒测试( 功能测试) :如果知道了产品应该具有的功能,可以通 过测试来检验是否每个功能都能正确使用,它是在程序的接口进行的,把软件看 成是一个黑盒,测试时仅关心如何寻找出使程序不按要求运行的情况,是最基本 的测试法。 另一种称为白盒测试( 结构测试) :如果知道产品内部工作过程,可通过测 试来检验产品内部动作是否按规格说明书的规定正常进行。它是把软件看成装在 w e b 数据库应用测试 一个透明的白盒子里,就是完全了解程序的结构和处理过程,按照程序内部的逻 辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。 2 2 2 软件测试步骤 一个大型软件系统通常由若干个子系统构成,每个子系统又由若干模块构 成。软件测试分以下几个步骤: ( 1 ) 模块测试:又称单元测试,在这个测试步骤中发现的往往是编码和设 计的错误,目的是检查每个模块是否能独立地正确运行。 ( 2 ) 子系统测试:又称集成测试,把经过模块测试运行正确的模块放在一 起形成子系统后再测试。主要测试模块间的协调和通信问题,测试该系统是否达 到功能要求。 ( 3 ) 系统测试:把经过测试运行正确的予系统组装成完整的系统后再进行 测试。在这个过程中不仅能发现设计和编码的错误,还验证系统是否能提供需求 说明书中指定的功能,系统的动态特性是否符合预定要求。在这个测试步骤中发 现的往往是软件设计中的错误,也可能发现需求说明书中的错误。 ( 4 ) 验收测试:把软件系统作为单一的实体进行测试,测试内容与系统测 试基本类似。但它是在用户积极参与下进行的,主要使用实际数据进行测试,目 的是验证系统能否满足用户的需求。在这个步骤中发现的往往是系统需求说明书 中的错误。 ( 5 ) 平行运行:比较重大的软件产品在验收之后往往不立即投入生产性运 行,而是要经过一段试运行时间。平行运行就是此时新开发的系统与原先老系统 ( 或手工操作) 同时运行,以便比较新旧两个系统的处理结果。 以上方法都是在机器上测试程序,此外还有人工测试,即用程序审查会和人 工运行方法查找错误,特别对逻辑设计和编码错误采用人工测试相当有效。 2 2 3 软件测试方案 软件阶段最关键的技术问题是设计测试方案。测试方案包括要测试的功能、 准备输入的数据及其对应的预期输出结果。设计测试方案的基本目标是:确定一 2 w e b 数据库应用测试 组最能发现某个错误或某类错误的测试数据,即选用高效的测试数据,做到尽可 能完备的测试,通常有适用于黑盒法测试的等价类划分法、边界值分析法、错误 推测法及适用于白盒法测试的逻辑覆盖法。 ( 1 ) 等价类划分法 等价类划分法是把所有可能的输入数据划分成若干等价类,每类中一个典型 值在测试中的作用与这一类中所有其他值的作用相同,因此每个等价类中只用一 组数据作为代表进行测试来发现程序中的错误。 ( 2 ) 边界值分析法 边界值分析法就是把等价类的每个边界都作为测试数据。这里边界是指输入 与输出等价类直接在边界值上及稍大于边界值和稍小于边界值的数据。因为处理 边界情况时,程序最易发生错误。若能正确掌握这种方法,往往是最有效的测试 方法之一。 ( 3 ) 错误推测法 错误推测法主要是列出某些容易发生错误的特殊情况来选择测试方案,主要 靠直觉和经验进行。有效的办法是用判定表或判定树把输入数据各种组合与对应 的处理结果列出来进行测试;还可以把人工检查代码与计算机测试结合起来,特 别是几个模块共享数据时,应检查在一个模块中改变共享数据时,其他共享这些 数据的模块是否能正确处理。 ( 4 ) 逻辑覆盖法 逻辑覆盖法根据程序逻辑结构进行测试,是一系列测试过程的总称,这些测 试是逐渐地、越来越完整地进行通路测试。应尽可能选择最有代表性的通路,尽 量完整地进行各种通路测试。从覆盖程序的详细程度来看,逻辑覆盖有语句覆盖、 判定覆盖( 分支覆盖) 、条件覆盖、判定条件覆盖、条件组合覆盖五种不同的测 试过程。 2 2 4 实用测试策略 通常采用黑盒法设计基本的测试方案,再用白盒法补充些必要的测试方 案。具体的测试策略如下: w e b 数据库应用铡试 ( i ) 在任何情况下都应该使用边界值分析方法,既包括输入数据的边界情 况,又包括输出数据的边界情况。经验证明,用这种方法设计出的测试方案暴露 程序错误的能力最强。 ( 2 ) 必要时用等价类划分法补充测试方案。 ( 3 ) 必要时再用错误推测法补充测试方案。 ( 4 ) 对照程序逻辑检查已经设计出的测试方案。 2 3w e b 技术 w e b 应用可以看成是一个客户与w e b 站点之间一系列的交互作用,整个交 互过程从显示在w e b 浏览器中的一个页面开始。用户单击该页面上的一个按钮 或链接就产生一个请求,该请求被送到w e b 应用服务器,w e b 应用服务器对 这个请求进行响应或处理,返回静态h t m l 页面或动态地产生新的页面,作为 这一次请求的结果返回到客户端。因此,w e b 技术可以分为两大技术方向,一 是服务器端( s e r v e r ) 技术,另一个就是客户端( b r o w s e r ) 技术。 2 3 1 服务器端技术 w e b 服务器端产生动态页面的技术主要有如下几种:c g i 、a s p 、w e bs e r v e r a p i 、s e r v l e t s 、j s p 。 ( 1 ) c g i 技术 公共网关接v 1c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 是一个信息服务器主机对 外信息服务的标准接口( 如h t t p d 及c e r ns e r v e r ) ,c g i 接1 2 1 是为了提供在超 文本h t m l 的文件编写时,可以结合其他外部的程序语言,让使用者能通过浏 览器将使用者的数据输入到文件里,然后经h t t p d 或c e r n 服务器主机处理后, 转呈现与其他用户来浏览或记录到服务器主机上的数据库中。 c g i 程序一般是可执行程序。目前最为流行的c g i 程序语言有i n k y :c 、s h e l l 、 p e r l 和v i s u a lb a s i c 。c g i 工作的主要流程是:一个用户请求激活一个c g i 应 用程序;c g i 应用程序将交互主页里用户输入信息提取出来;将用户输入的 w e b 数据库应用测试 信息传给服务器主机应用程序( 如数据库查询) ;将服务器处理结果通过h t m l 文件返回给用户;c g i 进程结束。 c g i 的跨平台性能极佳,几乎可以在任何操作系统上实现。但当用户请求数 量非常多时,会大量挤占系统的资源,如内存、c p u 时间等,造成效能低下。 ( 2 ) a s p 技术 a s p ( a c t i v es e r v e rp a g e ,简称a s p ) :这是在w i n d o w s 平台下应用的相当 广泛的一种技术,其缺点是跨平台性弱。 ( 3 ) w e bs e r v e r a p i w e bs e r v e ra p l ( i s a p i ,n s a p i ) :其优点是性能好,缺点是难于编程,和 特定的软件结合得太紧密。 ( 4 ) s e r v l e t 技术 s e r v l e t :s e r v l e t 是使用j a v as e r v l e t a p i ( j a v as e r v l e t 应用程序设计接口) 及 相关类和方法的j a v a 程序。j a v as

温馨提示

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

评论

0/150

提交评论