




已阅读5页,还剩53页未读, 继续免费阅读
(计算机软件与理论专业论文)一种基于规格说明的web应用测试用例生成方法.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海大学硕士学位论文 摘要 w e b 应用程序是近些年来软件业中发展最快的应用程序之一。w e b 应用所 使用的开发语言和开发模型在不断发展。w e b 应用本身也越来越复杂。所有这些 因素都给w e b 应用的分析、建模和测试带来了很大的难度。随着网络技术的快 速发展,很多传统的应用软件在向w e b 应用程序过渡,w e b 应用将涉及很多敏 感行业,如军事、金融或医疗等相关的领域。 要提高软件测试的效率,首先要提高测试用例的质量。手工生成测试用例要 求软件测试人员具有一定的经验和较高的专业水平。而且,没有系统化的方法作 为指导会大大降低质量和效率。 形式化方法具有精确的描述性和很强的抽象性用形式化方法描述规格说明 避免了在需求分析阶段对数据结构和算法细节的详细描述,同时又避免了一般建 模方法中的模糊性和歧义性。 本文针对w e b 应用组件系统的集成测试产生测试用例,提出了一种使用 o b j e e t - z 模式描述w e b 组件模型的方法,提出了w 曲应用路径覆盖的测试准则。 我们采用o b j e c t z 模式作为测试模型,每个组件对应一个模式,通过定义状态 迁移谓词来描述组件交互。通过制定状态迁移表和动作迁移表来产生测试场景。 为了具体化抽象测试用例的操作步骤和测试数据,本文采用了b v a 边界值分析 策略来确定输入项的范围。最后为测试用例生成过程设计了一个辅助工具,该工 具可导入组件模式信息,然后生成测试用例。 关键词:组件;w e b 应用;软件测试;测试用例;形式化方法 上海大学硕士学位论文 a b s t r a c t w e ba p p l i c a t i o ni so n eo ft h ef a s t e s td e v e l o p i n g a p p l i c a t i o n si ns o l , c a r e i n d u s t r y t h ed e v e l o p m e n tl a n g u a g ea n dm o d e lt h a tw e ba p p l i c a t i o nu s e s a r e e v o l v i n g w e ba p p l i c a t i o ni t s e f fi sg e t t i n gm o r ea n dm o r ec o m p l i c a t e d t h e c o m p l e x i t yo fw e ba p p l i c a t i o n sc h a l l e n g e su st oa n a l y z e ,m o d e la n dt e s tt h e m w i t ht h er a p i dd e v e l o p m e n to fw e b t e c h n i q u e s ,m a n yt r a d i t i o n a la p p l i c a t i o n sa r e m i g r a t i n gt ow e b t h e r e f o r e ,w e ba p p l i c a t i o n sw i l li n v o l v ei nm a n ys e n s i t i v e f i e l d s ,s u c ha sm i l i t a r y , f m a n c i a la n dm e d i c a l ,t h e s ea l - en e wc h a l l e n g e st h a tw e m u s tf a c e t om a k ea ne f f e c t i v et e s t i n go ns o f t w a r e ,w em u s th a v eg o o dt e s to a s e sa t f i r s t g e n e r a t i n gt e s tc a s e sm a n u a l l yr e q u i r e sat e s t e rw i t hq u i t ee x p e r i e n c ea n d p r o f e s s i o n a la b i l i t y , a n da l s on e e d sas y s t e m a t i cw a yt og u i d et h et e s t i n gp r o c e s s f o r m a lm e t h o dw a sb o r nw i t h p r e c i s e l yd e s c r i p t i o n a n d h i g h - l e v e l a b s t r a c t i o n w r i t t e ns p e c i f i c a t i o ni nf o r m a lm e t h o da v o i d sc o n s i d e r i n gd a t a s t r u c t u r e sa n da l g o r i t h m si nd e t a i la tt h ed e m a n da n a l y s i ss t a g e m e a n w h i l e ,i t c a nr e d u c et h eu n c e r t a i n t ya n da m b i g u i t yo fm o d e l i n gs y s t e m s t h i sp a p e rp r o p o s e sat e s tc a s eg e n e r a t i o nc r i t e r i o nf o rw e ba p p l i c a t i o n s c o m p o n e n t si n t e g r a t i n gt e s t i n g ,w h i c hi sm o d e l e db yi no b j e c t z a l s op r o p o s e sa p a t hc o v e rc r i t e r i o nf o rw e ba p p l i c a t i o n s e a c hc o m p o n e n th a si t so w no b j e c t z s c h e m a ,t h ec o m b i n a t i o no fc o m p o n e n t sc a nb ed e s c r i b e db yt h et r a n s i t i o n p r e d i c t i o n s w e g e t t h et e s ts c e n a r i o s b y s t a t e t r a n s i t i o nt a b l ea n d a c t i o n 。t r a n s i t i o nt a b l e ab v a s t r a t e g yi sa l s op r o p o s e di nt h i sp a p e rt og e tm o r e o p e r a t i n gs t e p sa n dt e s td a t ad e t a i l si nt e s tc a s e s at o o lw a sd e v e l o p e dt oi m p o r t c o m p o n e n t s s c h e m ai n f o r m a t i o nt og e n e r a t et e s te a s e s k e y w o r d s :c o m p o n e n t s ;w e ba p p l i c a t i o n ;s o f t w a r et e s t i n g ;t e s tc a s e , f o r m a l m e t h o d s n 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示了谢意。 本论文使用授权说明 期:塑矿 本人完全了解上海大学有关保留、使用学位论文的规定,即:学 校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:杖 上海大学硕士学位论文 第一章绪论 互联网技术的应用使得软件开发人员能够在一个新的领域开发新的应用软 件。第一个在互联网上运行的w e b 应用程序功能非常简单,它通过h t m l 页面 读取表单信息然后对这些信息进行处理或者存储。现在的w e b 应用程序则变成 拥有复杂g u i 界面以及大量嵌入脚本的复杂应用程序,这还包括了使用大量的 第三方组件和安全性技术。 y o g e s hd e s h p a n d e 和s t e v eh a n s e n 在1 9 9 8 年就提出了w e b 工程的概念。w e b 工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于 w e b 的系统。它“使用合理的、科学的工程和管理原则,用严密的和系统的方法 来开发、发布和维护基于w e b 的系统”。目前,对于w e b i 程的研究主要是在国外 开展的,国内还刚刚起步。 在基于w e b 的系统开发中,如果缺乏严格的过程,我们在开发、发布、实 施和维护的过程中,可能就会碰到一些严重的问题,而处理这些问题需要很大的 代价。而且,随着w e b 应用系统变得越来越复杂,一个项目的失败将可能导致很 多问题。当这种情况发生时,我们对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 的系统测试与传统的软件测试不同,它不但需要检查 和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显 示是否合适,重要的是,还要从最终用户的角度进行安全性和可用性测试。 i n t e r n e t 和w e b 媒体的不可预见性使测试基于w e b 的系统变得困难。因此,我们 必须研究新的方法和技术来测试和评估复杂的基于w e b 的系统。 本课题受国家自然科学基金项目( 批准号:6 0 6 7 3 1 1 5 ) 和国家高技术研究发展 计划( 8 6 3 计划) ( 课题编号:2 0 0 7 a a 0 1 2 1 4 4 ) 资助。 1 1 研究背景 w e b 应用被w 3 c 组织定义为:“一个可以通过w e b 浏览器或者h t t p 用户 代理访问的软件应用程序。通常w 曲应用由一个瘦客户层( w e b 浏览器) ,一个表 示层( w e b 服务器) ,以及一个应用层( 应用服务器) 组成。” w e b 应用开发技术大致可以分为客户端( 浏览器端) 和服务器端( w e b 服务 器和应用服务器端) 的开发技术。早期的w e b 应用只能通过编写h t m l 代码实 现静态的w e b 页面,服务器端则采用c g i ( c o m m o ng a t e w a yi n t e r f a c e ,通用网 上海大学硕士学位论文 关接口) 程序来实现d h t m l ( d y n a m i ch y p e r t e x tm a r k u pl a n g u a g e ,动态超文本 标志语言) 页面的输出。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 ( d y n a m i oh 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 ( a c t i v e xs e r v e rp a g e ,活动的服务器页面) 技术用 来开发动态的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 ( j a v a s e r v e rp a g e ,j a v a 服务器页面) 从根本上来说也是编译转化为s e r v l e t 后运行的。应 用服务器端的技术典型代表则有:c o m ( c o m p o n e n to b j c o tm o d e l ,组件对象模 型) ,d c o m ( d i s t r i b u t e dc o m p o n e n to b j e c t m o d e l ,组件对象模型) ,a c t i v e x 控 件,e j b ( e n t e r p r i s ej a v ab e a n s ,j a v a 企业组件) ,c o r b a ( c o m m o no b j c o tr e q u e s t b r o k e ra r c h i t e c t u r e ,通用对象请求代理结构) 等。 综上所述,w e b 应用的特点可以概括如下: ( 1 ) w e b 应用是图形化和易于导航的 w e b 应用非常流行的一个很重要的原因就在于它可以在一页上同时显示色 彩丰富的图形和文本的性能。在w e b 应用之前i n t e r a c t 上的信息只有文本形式, w e b 应用可以提供将图形、音频、视频信息集合于一体的特性。同时,w e b 应用 是非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页和各站点 之间进行浏览了。 ( 2 ) w e b 浏览与平台无关 无论你的系统平台是什么,你都可以通过i n t e r a c t 访问所需要的页面。浏览 页面对你的系统平台没有什么限制,无论从w i n d o w s 平台、u n i x 平台、m a c i n t o s h 还是别平台都可以通过浏览器进行访问。 ( 3 ) w e b 应用是分布式的 大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知 信息的多少。对于w e b 应用没有必要把所有信息都放在一起,信息可以放在不同 的站点上。只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一 个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。 ( 4 ) w e b 应用是动态的 w e b 应用所使用的技术都是保证w e b 页面对用户的实时性。w e b 页面可在 服务器端根据用户的前一操作进行动态生成。 2 上海大学硕士学位论文 ( 5 ) w e b 应用是交互的 w e b 应用是基于请求响应模式的,用户的浏览顺序和所到站点完全由他自 己决定。另外通过f o r m 的形式可以从服务器方获得动态的信息。用户通过填 写f o r m 可向服务器提交请求,服务器可以根据用户的请求返回相应信息。 目前w e b 应用的层次结构可用图1 - 1 进行表示。 客户端 w e b 服务器应用服务器数据库服务器 浏览器h n 缸j a v ao r a c l e j a v a s o r i p t g c g i j s p 图1 - 1w e b 应用层次结构 1 2 软件测试与形式化方法 软件测试是软件生命周期中进行软件质量控制的重要一环,随着软件开发规 模和软件功能复杂度的提高,软件测试的复杂度也在不断提高。测试工作可以分 为三个部分:测试用例产生,用例执行和用例评估【l l 。后两个部分相对来说比较 容易自动化执行,只要能提供相应的测试准则,对于测试用例的评估是比较容易 进行的。然而,如何判断一个或者一组测试用例的执行能够反映软件需求所定义 的功能,这是比较困难的。目前,针对测试用例生成有很多方法,基于形式化方 法的,基于半形式化的方法( 如u 儿) 。 形式化方法是建立在严格数学基础上、具有精确数学语义的开发方法。形式 化方法是软件开发过程中分析、设计及实现的系统工程方法,同时也是软件规格 和验证的方法。z 语言是由著名计算机科学家h o a r e 所在的牛津大学程序设计研 究组( p r g ) 的学者在2 0 世纪8 0 年代初设计开发的【8 】。它是一种建立在数学基 础上的基于模型的规格说明方法,以一阶谓词逻辑和集合论作为形式语言基础, 将函数、映射、关系等数学方法用于规格说明中。z 语言具有精确简洁、无二义 性的优点,有利于保证程序的正确性,尤其适合计算机自动进行正确性证明和对 系统功能的形式化描述,因此在工业界和学术界得到了较为广泛的应用。 1 3w e b 应用测试研究现状 w e b 应用的迅猛发展不仅对软件开发提出新的要求,也在软件测试领域提出 了新的挑战。目前w e b 应用测试技术的研究已经取得很多成果,如各种测试模 上海大学硕士学位论文 型的定义、测试方法和策略的提出以及相应测试工具的开发等。 在测试模型的定义方面,y ew u 1 1 】等人提出了一种基于w e b 组件代码元素的模 型,通过定义原子片断( a t o m i cs e c t i o n s ) 和复合片断( c o m p o s i t es e c t i o n s ) ,将w e b 应用组件划分成若干可由谓词表达式描述的模型。然后通过定义组件之间的动态 交互模型,描述w e b 页面的动态特性。最后提出使用3 项覆盖准则:基本路径 ( p r i m ep a t h ) 覆盖、无效连接( i n v a l i da c c e s s ) 覆盖和无效路径( i n v a l i dp a t h ) 覆盖。 c o n a l l e n 【lz 】运用扩展后的u m l 对w ,c b 应用程序的架构进行建模,提出了一些新的 类,并将u m l 模型运用到对w e b 应用程序的框架、页面以及业务逻辑的建模中。 在组件建模方面,g e l l e r s e n 和g a e d k e 提出的w 曲c o m p o s i t i o n 方法【1 3 】。该方法定义 了一种面向对象模型,在对w e b 实体进行建模时使用组件概念对任意粒度级别的 w e b 实体进行建模。文献【1 4 】给出了一种有效的组件交互测试方法。l e u n g 等人【1 0 1 提 出了一种用于w e b 应用的导航建模方法。w e b 页面或者w e b 页面中的某一个位置 均被视为一种状态,而导向不同w e b 页面或同一w 曲页面中不同位置的超链接则 被视为一种转换。 基于规格说明的软件测试产生的测试用例主要检查软件应该做什么,而不是 它做了什么,并且不涉及软件是怎么做的【l7 1 。另外,基于规格说明的测试需要 有效的测试准则来规范测试用例的生成,保证测试用例的完备性和有效性。与此 同时,我们引入形式化方法来对软件模型以及测试准则进行描述,确保对软件模 型的理解以及对测试用例的理解。 从规格说明产生测试用例方法主要是从对规格说明中的谓词入手,对变量的 取值范围进行域值上的划分,测试准则以谓词的覆盖度为准【9 】。文献【2 1 提出了从 z 规格说明的测试用例自动生成的流程,将谓词进行线形转换,通过解线形不等 式获取边界值。这种方法只适用于处理基本数据类型,不适合处理复合数据类型。 文献【3 j 提出了一种应用1 1 域测试策略和线性不等式值转换器来构成一个从测 试规格说明生成测试用例的方法。这种方法主要考虑变量的边界条件,适合单元 测试,对于集成测试中多变量边界条件的测试用例生成方面效率比较低。s a n j a i 在文献4 中提出从形式化需求模型产生测试序列,这种方法需要测试人员具有丰 富的测试经验和较高的专业水平,并且自动化程度较低,更多的是需要手工参与。 此外,上述方法主要是针对测试数据产生所考虑的,比较适合对于给定谓词产生 具体数据,难以体现出测试用例中的操作行为。 1 4 本文的主要内容和结构安排 本文将w e b 应用划分为页面组件与服务器组件,本文的工作是建立在w e b 应用的组件已充分测试的基础上,对页面组件与页面组件( p a g e p a g e ) ,页面 4 上海大学硕士学位论文 组件与服务组件( p a g e s e r v i e e ) ,服务组件与服务组件( s e r v i c e s e r v i c e ) 之间 的交互进行系统集成级别的测试。 首先对规格说明进行建模。从w e b 应用的组成入手,将w e b 应用的组件划 分成两类:页面组件和服务组件。页面组件主要负责与用户进行数据的交互,服 务组件负责对数据的处理和提供事务处理,因此需要对这两种类型的组件分别建 模。本文采用形式规格说明语言o b j e o t z 对组件进行描述,产生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 组件模型生成测试用例的方 法,提出测试准则,最后对测试准则进行测试序列覆盖度的评估。 第六章定义了开发的测试用例生成工具中的组件模式、o b j e o t - z 模型、组件 交互策略等数据结构的定义。演示了测试工具的执行以及对测试结果的分析。 第七章总结了本文的工作,提出未来的工作。 上海大学硕士学位论文 第二章软件测试概述 软件测试就是在软件交付用户使用前,对软件需求规格说明、设计规格说明 和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执 行程序的过程。软件测试在软件生命周期中横跨两个阶段:通常在编写每一个模 块之后就需要对它做必要的测试( 称为单元测试) 。编码和单元测试属于软件生 命周期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试, 如集成测试、系统测试、性能测试和配置测试等,这是软件生命周期的另一个独 立阶段,即测试阶段。 2 1 测试方法分类 根据测试用例的来源,软件测试可以分为基于程序代码的测试和基于规格说 明的测试两类。基于程序代码的测试从源程序出发产生测试用例,基于规格说明 的测试从软件的规格说明推导测试用例。这两种测试方法各有长短,互为补充。 2 1 1 基于程序代码的测试 基于程序代码的测试采用的是白盒测试的方法,白盒测试( w h i t e b o x t e s t i n g ) 又称结构测试、逻辑驱动测试或基于程序的测试( p r o g r a m b a s e d t e s t i n g ) 。主要是用于程序的单元测试,可以提供具有很高的代码覆盖度的测试 用例。但基于程序代码的测试的一个最大缺点是无法确定“程序是否实现了软件 需求”。 白盒测试知道产品内部工作过程,可通过测试来检测产品内部动作是否按照 规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条 路径是否都能按预定要求正确工作,而不考虑它的功能。白盒测试的主要方法有 逻辑驱动、基路测试等,主要用于软件验证。 白盒测试法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。在使用 这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测 试数据。贯穿程序的独立路径数是天文数字,即使每条路径都测试了,错误可能 依旧存在。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是 个错误的程序。第二,穷举路径测试不可能查出程序中遗漏路径的错误。第三, 穷举路径测试可能发现不了一些与数据相关的错误。 6 上海大学硕士学位论文 2 1 2 基于规格说明的测试 基于规格说明的测试采用的是黑盒测试的方法,可以用在单元测试、集成测 试和系统测试中,可以用来确保“程序正确地实现了其需求”,同时基于规格说 明的测试还为测试用例的重用提供了可能。它改变了“现在编程,以后测试”的 工作方式,使得在整个软件生命期中都可以并行地进行测试工作,从而极大地提 高了软件测试的效率。 黑盒测试( b l a c k b o xt e s t i n g ) 也称功能测试、数据驱动测试或基于规格说明 的测试( s p e c i f i c a t i o n - b a s e dt e s t i n g ) 。它是在已知产品所应具有的功能,通过测 试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑 盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行 测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能 适当地接收输入数据而产生正确的输出信息,并且保持外部信息( 如数据库或文 件) 的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测 等,主要用于软件确认测试。 黑盒测试法是穷举输入测试,只有把所有可能的输入都作为测试情况使用, 才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅 要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。 2 2 基于形式规格说明的软件测试 由于形式规格说明语言提供了一种精确的、一致的、易于被机器处理的符号 来描述软件需求规格说明,所以基于规格说明的测试主要以形式规格说明作为产 生测试用例的基础。 2 2 1 形式方法和形式规格说明 形式方法是基于数学方法来描述目标软件系统性质的- l - j 技术,用严格的数 学符号和数学法则对目标软件的结构与行为进行有效的综合、分析和推理,它为 系统的说明、开发和验证提供了一个框架。形式方法的主要表现是形式规格说明。 由于形式规格说明基于严格的数学概念和理论,避免了用自然语言描述时可能带 来的模糊性和歧义性,因而便于对规格说明的各种性质进行推理或证明,也有利 于采用软件工具对规格说明进行自动化分析和验证m x 3 豇。常用的形式规格说明语 言有z 、v d m 、l a r c h 和o b j 等。 z 语言是一种应用较为广泛的形式规格说明语言,它以一阶谓词逻辑和集合 上海大学硕士学位论文 论作为形式语义基础,利用集合、序列、包和函数等数学概念对目标软件系统的 结构和行为特征进行抽象描述,具有简明、精确的特点。 面向对象技术的出现和发展为系统分析、系统设计、程序设计以及系统测试 提出了新的观点和技术。为了更好地描述大型系统和面向对象的软件系统,9 0 年代以后,国际上也相继出现了多种z 规格说明语言的扩展方案,其中较著名的 有o b j e c t z ,z + + 等。 o b j e c t - z 是z 语言在面向对象方面的一个扩展变形,是通过在z 中加入面向对 象的软件设计和开发中的许多新的概念,如继承性、封装性、通用性和多态性等 而形成的。为此,o b j c e t - z 弓i 进了类的概念以及一些新的概念,如类不变式、初 始模式、对象包含等等。其中最重要的一个扩展就是引进了类的概念,并通过类 来封装对象的状态及其相关操作。 2 2 2 基于规格说明的软件测试分类 根据所采用的形式规格说明语言的不同,基于规格说明的软件测试又可分为 基于模型规格说明的软件测试、基于代数规格说明的软件测试和基于有限状态机 的软件测试。 基于模型的形式规格说明语言,如,z 和v d m ,通过一组逻辑谓词及其相 关的状态变量来描述软件需求规格说明。基于代数规格说明的软件测试通过软件 系统应该具有的一组性质来描述软件的功能,这组性质通常用一组公理来表示。 因此,基于代数规格说明的测试就是要检查程序是否满足规格说明中的这一组公 理。用有限状态机( f s m ) 作为测试用例产生的来源已经有很长的历史了。早在 1 9 7 8 年,c h o w 就使用有限状态机产生了电讯系统的测试用例。基于有限状态机 测试的主要方法是用有限状态机来表示系统的状态转换过程,其中,结点表示状 态,结点之间的边表示状态之间的转换,边上还会加注引起转换的输入和期望的 输出。然后,利用这样的f s m 来生成一棵树,再通过各种遍历方法得到一些路 径作为最终的测试序列。这种测试方法也经常被用在面向对象的测试过程中。 2 3 软件测试的内容 2 3 1 软件测试的目的 软件测试的目的决定了如何去组织测试。如果测试的目的是为了尽可能多地 找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的 位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测 上海大学硕士学位论文 试就应该直接针对在实际应用中会经常用到的商业假设。 不同的机构会有不同的测试目的:相同的机构也可能有不同测试目的,可能 是测试不同区域或是对同一区域的不同层次的测试。 在谈到软件测试时,许多人都引用陆n f b r dj m y e r s 在 t h ea r to fs o f t w a r e t c s t i i l g 一书中的观点: 软件测试是为了发现错误而执行程序的过程。 测试是为了证明程序有错,而不是证明程序无错误。 一个好的测试用例是在于它能发现至今未发现的错误。 一个成功的测试是发现了至今未发现的错误的测试。 2 3 2 软件测试的原则 测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。如 果成功地实施了测试,就能够发现软件中存在的错误。测试的附带收获是,它能 够证明软件的功能和性能与需求说明相符。此外,实施测试收集到的测试结果数 据为可靠性分析提供了依据。 根据这样的测试目的,软件测试的原则是: ( 1 ) 应把“尽早和不断地进行软件测试”作为软件开发者的座右铭,实践证明 单元测试能够尽早发现问题,减少后期测试的错误量。可以采用j u n i t 和a e s t 来 辅助进行单元测试。 ( 2 ) 测试用例应由测试输入数据、测试执行步骤和与之对应的预期输出结果三 部分组成。 ( 3 ) 应当避免由程序员检查自己的程序。( 指后期系统测试阶段,不包括单元测 试) ( 4 ) 测试用例的设计要确保能覆盖所有可能路径。在设计测试用例时,应当包 括合理的输入条件和不合理的输入条件。不合理的输入条件是指异常的,临界的, 可能引起问题的输入条件。 ( 5 ) 充分注意测试中的群集现象。经验表明,测试后程序残存的错误数目与该 程序中已发现的错误数目或检错率成正比。应该对错误群集的程序段进行重点测 试。 ( 6 ) 严格执行测试计划,排除测试的随意性。测试计划应包括:所测软件的功 能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试 工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则, 调试规则,以及回归测试的规定等等以及评价标准。 ( 7 ) 应当对每一个测试结果做全面的检查。 9 上海大学硕士学位论文 ( 8 ) 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方 便。 2 3 3 软件测试的对象 软件测试并不单纯等同于程序测试。软件测试应该贯穿整个软件定义与开发 整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的 文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序, 都应该是软件测试( 评审) 的对象。 在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运 行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来。 1 0 上海大学硕士学位论文 第三章w e b 应用测试概述 对于传统软件而言,正确性和高效性通常是最重要的质量要素。对w e b 应用 来说,其他的质量要素会更重要并且很少有相应的技术来支持这些要素。如w e b 应用中的兼容性和互操作性比之传统软件更易导致严重的问题。传统软件通常是 在一个预先定义好的环境下开发的,很少有冲突,且运行环境很少发生变化。 w e b 应用经常受许多因素影响其操作性和不兼容等问题口们口羽。例如:服务器组件 可能分布在u n i x ,l i n u x ,w i n d o w s ,m a c e s 等不同的操作系统上,而且不同的 组件可能有多个版本:这些组件可能运行在i i s ,a p a c h e ,w e b l o g i c 等不同的w e b 服务器上面。这种状况在客户端的浏览器上更为复杂,因为不同的浏览器可能运 行在更多的操作系统上。所有这些不同的成分使得w e b 应用组件的兼容性和互操 作性更为困难和易于出错。 3 1w e b 应用测试概述 下面本文从功能、性能、可用性、客户端兼容性、安全性这五个方面对w e b 测试进行概述。 3 1 1 功能测试 对w e b 应用的功能测试主要从软件系统满足用户需求的角度进行,主要有连 接测试、表单测试、c o o k i e s 测试、设计语言测试、数据库测试这五方面组成。 1 ) 链接测试 链接是w e b 应用系统的一个主要特征,是在页面之间切换和引导用户去其他 页面的主要手段。链接测试可分为三个方面:首先,测试所有链接是否按指示确 实链接到该链接的页面;其次,测试所链接的页面是否存在;最后,保证w e b 应 用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正 确的u r l 地址才能访问。 2 ) 表单测试 当用户给w e b 应用系统管理员提交信息时,就需要使用表单操作,例如用户 注册、登陆、提交等。在这种情况下,我们必须测试提交操作的完整性,以校验 提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填 写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正 上海大学硕士学位论文 确性。如果表单只能接受指定的某些值,则要进行测试。例如:只能接受某些字 符,测试时可以跳过这些字符,看系统是否会报错。 3 ) c o o k i e s 测试 c o o k i e s 通常用来存储用户信息和用户的操作,当一个用户使用c o o k i e s 访河 了某一个应用系统时,w 曲服务器将发送关于用户的信息,把该信息以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 是否起作用,是否按预定的时间进行保存,刷新对 c o o k i e s 有什么影响等。 s e s s i o n 的功能与c o o k i e s 有些类似,测试工作大体相同 4 ) 设计语言测试 w e b 设计语言版本的差异可以引起客户端或服务器端的严重问题,例如使用 哪种版本的h t m l 等。当在分布式环境中开发时,开发人员都不在一起,这个问 题就显得尤为重要。除了h t m l 的版本问题外,不同的脚本语言,例女l :i j a v a s c r i p t 、 v b s c r i p t 或p e r l 等也要进行验证。 5 ) 数据库测试 在w e b 应用技术中,数据库起着重要的作用,数据库为w e b 应用系统的管理、 运行、查询和实现用户对数据存储的请求等提供空间。在w e b 应用中,最常用的 数据库类型是关系型数据库,可以使用s q l 对信息进行处理。 在使用了数据库的w e b 应用系统中,一般情况下,可能发生两种错误,分别 是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息 不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针 对这两种情况,可分别进行测试。 3 1 2 性能测试 性能测试在w e b 应用测试中有着重要的作用。w e b 应用是针对多用户并发 提供服务的,因此能否高效地提供用户所需要的服务是检验w e b 应用可用性的 重要标准,主要涉及连接速度测试、负载测试和压力测试。 1 ) 连接速度测试 用户连接至l j w e b 应用系统的速度根据上网方式的变化而变化,他们或许是电 话拨号,或是宽带上网。当下载一个程序时,用户可能等较长的时间,但如果仅 仅访问一个页面就不会这样。如果w e b 系统响应时间太长( 例如超过5 秒钟) , 用户就会因没有耐心等待而离开。另外,有些页面有超时的限制,如果响应速度 1 2 上海大学硕士学位论文 太慢,用户可能还没来得及浏览内容,就需要重新登陆了。严重的是,连接速度 太慢,还可能引起数据丢失,使用户得不到真实的页面。 2 ) 负载测试 负载测试是为了测量w e b 系统在某一负载级别上的性能,以保证w e b 系统 在需求范围内能正常工作。负载级别可以是某个时刻同时访问w e b 系统的用户 数量,也可以是在线数据处理的数量。例如:w e b 应用系统能允许多少个用户同 时在线? 如果超过了这个数量,会出现什么现象? w e b 应用系统能否处理大量用 户对同一个页面的请求? 3 ) 压力测试 进行压力测试是指实际破坏一个w e b 应用系统,测试系统的反映。压力测试 是测试系统的限制和故障恢复能力,也就是测试w e b 应用系统会不会崩溃,在 什么情况下会崩溃的情况。黑客常常提供错误的数据负载,直到w e b 应用系统 崩溃,接着当系统重新启动时获得存取权。 压力测试的区域包括表单、登陆和其他信息传输页面等。 3 1 3 可用性测试 w e b 应用的可用性测试主要是测试系统界面对于用户的友好程度,一个好的 w e b 应用应该是方便用户使用和编排合理的。w e b 应用的可用性测试主要由导 航测试、图形测试、内容测试和整体界面测试组成。 1 ) 导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例 如按钮、对话框、列表和窗口等;或在不同的连接页面之间的操作方式。通过考 虑下列问题,可以决定一个w e b 应用系统是否易于导航:导航是否直观,w e b 系统的主要部分是否可通过主页存取,w e b 系统是否需要站点地图、搜索引擎或 其他的导航帮助。 导航的另一个重要方面是检查w e b 应用系统的页面结构、导航、菜单、连接 的风格是否一致。确保用户凭直觉就知道w e b 应用系统里面是否还有内容,内容 在什么地方。w e b 应用系统的层次一旦决定,就要着手测试用户导航功能,如果 让最终用户参与这种测试,效果将更加明显。 2 ) 图形测试 在w e b 应用系统中,适当的图片和动画能起到广告宣传的作用和美化页面的 功能。一个w e b 应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、 按钮等。图形测试的内容有: 要确保图形有明确的用途,图片或动画不能胡乱地堆在一起,以免浪费传输 1 3 上海大学硕士学位论文 时间。w e b 应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情, 一般都链接到某个具体的页面。 验证所有页面字体的风格是否一致。 背景颜色应该与字体颜色和前景颜色相搭配。 。 图片的大小和质量也是一个很重要的因素,一般采用j p g 或g m 压缩,所以 应尽量避免使用b m p 等格式的图片。 。 3 ) 内容测试 内容测试用来检验w e b 应用系统提供信息的正确性、准确性和相关性。信息 的正确性是指信息是可靠的还是误传的。 4 ) 整体界面测试 整体界面是指整个w e b 应用系统的页面结构设计,是给用户的一个整体感。 例如:当用户浏览w e b 应用系统时是否感到舒适? 是否凭直觉就知道要找的信 息在什么地方? 整个w e b 应用系统的设计风格是否一致? 当然,对界面的整体 测试并不能单靠个人直觉来评定;每个人的审美观、专业角度、系统面向的行业 及用户、甚至性别与年龄等等,都是可能导致对界面做出不同评价的因素。所 以要明白在对整体界面的测试过程中,其实是一个对最终用户进行调查的过程。 一般w e b 应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反 馈信息。 对所有的可用性测试来说,都需要有外部人员( 与w e b 应用系统开发没有 联系或联系很少的人员) 的参与,最好是最终用户的参与。 3 1 4 客户端兼容性测试 客户端兼容性测试是从用户通过浏览器使用w e b 应用的角度进行,确保w e b 应用在多平台上能够按照开发时的预期性能使用。 1 ) 平台测试 市场上有很多不同的操作系统类型,最常见的有w i n d o w s 、u n i x 、m a c i n t o s h 、 l i n u x 等。w e b 应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统 的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能 正常运行,但在另外的操作系统下可能会运行失败。 因此,在w e b 系统发布之前,需要在各种操作系统下对w e b 系统进行兼容 性测试。 2 ) 浏览器测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蒲公英养护知识培训课件
- 葡萄酒软木塞知识培训课件
- 项数加法类型题目及答案
- 曹县一中模拟考试题目及答案
- 沧州医院入职考试题目及答案
- 2025高考物理试题分类汇编:曲线运动含解析
- 2025年北京市购房合同
- 2025-2026学年人教版六年级数学上册第三单元分数除法应用题练习【含答案】
- 2025版本的房屋租赁合同
- 营销基本知识培训课件
- 第五讲铸牢中华民族共同体意识-2024年形势与政策
- 软件系统技术报告模板
- 抖音员工号认证在职证明模板(7篇)
- DB11 1488-2018 餐饮业大气污染物排放标准
- 04S520埋地塑料排水管道施工标准图集
- 变电站工程施工三措
- 2023年苏教版小学四年级上册综合实践活动教案全册
- 中职机械专业《变压器》单元测试题
- 2024风电场在役叶片维修全过程质量控制技术要求
- 2024年首届全国“红旗杯”班组长大赛考试题库1400题(含答案)
- 《中国噬血细胞综合征诊断与治疗指南(2022年版)》解读
评论
0/150
提交评论