已阅读5页,还剩69页未读, 继续免费阅读
(通信与信息系统专业论文)基于solaris+10的email+client软件测试研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 8 7 8 5 9 3 摘要 在现代软件工业中,软件产品的质量是软件产业赖以生存的根本。 如何有效提高软件产品质量是目前软件产业所面临的一大难题。过去, 人们对保证软件产品质量采取了轻测试、重开发,先开发、后测试的策 略,经实践证明,这样不但无法充分保证软件产品的质量,更造成了软 件产品的开发、维护成本居高不下,开发时间延长等严重后果。特别是 在修正软件产品缺陷的同时,也将造成新缺陷的风险带入原产品中。 本文针对这一问题展开分析,研究了应该如何有效地在整个软件开 发过程中整合测试活动,随时监控软件产品的开发质量,缩短开发、测 试时间,提高软件产品质量的方法。特别针对修正缺陷可能带来的风险 进行了考察,针对性地开发和搭建了软件的自动测试系统,用以解决这 一问题。通过运用于s 0 1 a r i s l 0 系统e v 0 1 u t i o n 软件测试项目上的实践, 取得了明显的效果。特别是针对如何降低修正缺陷可能带来的风险问题, 将n i g h t l yt e s t 测试活动首次引入到实际的项目实践当中来,结合开发、 应用自动化测试系统,大大降低了开发人员在修正缺陷的同时而带来修 正失误的概率,达到有效保证软件产品开发周期和提高软件产品质量的 目的。验证了这一系列方法在实际项目中运用的有效性和可靠性,相比 过去的测试方案具有更快的反应速度和更高的测试质量。 关键词:软件质量,测试方法,自动测试,设计,实施 北京交通大学硕士学位论文 a b s t r a c t i l lm o d e ms o 腑a r ei n d l i s 砸a l ,s o f t w a r cq u a l l t y1 st l l eb a s l cr o q u i r c r n e n t o fs o f i 、v a r ee r 址e f p r i s e ni st l l ej u s tp m b l e ms 0 行w a f ee n t e i p r i s ei sf 如i i l gt o i m p r a v et h eq u 8 l i t yo fs o 脚a r ee f f e c t i v e l y i nm ep 域,p e 叩l ew o r k 协gf b r s o f t w a r ep u tm o r cc 】曲蹈i so ns o 矗w a r ed e v e l o p m e mm a nm e yd oo n s o 脚a r et e s t a 丑d ,t l l er c g u l a rs c h e d u l eo fs o f h a r ed e v e l o p m ti sa r r a n g e d i nm eo r d e ro ft i m e ,i l l 锄0 t h e rw o r d ,t l l e yw o u l dl i k ct ot e s tt l l es o 脚a r e a f t e rt h e yh a df i i l i s h e dt h ew h o l es o 胁a r ed e v e l o p m 饥t a c t u a l l y ,i tw 鹪 五n a l l yt 啪。do u t l a tt 1 1 i s 妯埘o fp r o c e d u r el e d 亡os 翻o u sr e s u l t s ,】i k ep 0 0 r s o f t w a r eq u a l i t y ,l l i g hc o s to fs o f 细a r ed e 、怕l o p i n 蜘t 趾dm a i n t e n a n c e ,l o r 培 s o f h 盯ed e v e l o p m e n tc y c l e ,a n ds 0o n e s p e c i a l l y w h 跖ad 钾e l o p e ri s 丘x i gt h eo l db u g sa i l dc h c c l 【i ghn 州c o d e s ,h e 州1 1a l s ot a l 【el o t so fr i s k s t om es o f b a r e t h ea u m o rd i dl o t so fe 、r a l u a d o n sa i l dr e s e a r c hw o r k s 曲| o u t 也e p r o b l e m sd b o v e nc o n t a i n st l l es u b j e c t so fh o wt oi n t e 蓼a t es o f t w a r et e s t a c t i v i t i e st os 0 腑a r ed c v e l o p m e n t ,h o wt os h o 咖nt l l ed e v e l o p m e n tc y c i e 舭d t e s tc y c l et oi m 】湘v e l cs o 脚a r eq u a l i t y 锄ds oo n e 印e c i a l l y ,m er i s ko f f j x i n gb u 萨w 蠲i t l v e s 堍a t c d t l l i sa n i c l ed e s c r ! i b e st h em e t l l o do f 印p l y i n g d i f i b r e n tl 【i n d so ft e s t i n gm e t 量1 0 d st os o 行a r ct e s tw h i c hc o u l da v o i d 也e s h o r t a g el i s t e da b o v ee f d v e l y b ya p p l 灿g 也i sm 甜l o dt oe v o l “o n t e s t i n gw o r k sb a s c do ns u ns o l a r i s l oo p e 硎o ns 姆e m ,i n 打d d u c i n gt l l e n i g h t l yt c s ta c t i v i t y 姐dd e v e l o p i n g 咖a t i o nt 鼯tt o o lt ot h ep r o j e c t ,m e p m b 曲i l i t yo ff f 越1w 鹊r 甜u c e dg r e a t l yw h e nd c v e l o p e r sc h e c kt l l en e w c o d ei m op m d u c tt o 矗xb u g s i tp r o v e st l l i sm e t l l o dh e l p st 0i m p r o v es o f t w a r e q u a l i t y a sc o m 嘣t ot l l eo l do n e s ,i th a sb e t t e rr e t i o ns p e e da n dt e s t q u a l i 啊i l sau s a b l e 锄dr e l i a b l es 0 1 u t i o ni nr e a ls o f t w a r et e s t i n gp r o j e c t 1 ( e y w o r d s :s o 脚a r eq u a l i 魄t e s tm 抽o d ,a u i o m a t i o n t e s t ,d c s i 盟, i m p l e m e n t 一、刖罱 软件测试是软件产品质量的保证,在计算机软件行业具有重要地 位。如何有效地展开测试活动,保证软件产品质量是软件产业所面临的 重大课题。笔者在硕士生研究过程中对此进行了相关的研究实践,以s 髓 公司中国工程研究院s o l 撕s l o 的测试项目为背景,在对具体的测试活动 流程进行研究之后,了解了该如何对一个软件产品测试进行基础调研、 可行性研究、测试用例开发、测试工具开发、测试方案制定、测试活动 执行以及测试结果的评判。在此基础之上,更实际着手组织制定了j d s 3 ( j a v a d e s k t o ps y s t e i i l 3 ) e v o h m o n 软件( 个人信息管理工具软件) 的全 部测试活动。在具体的实际工作中,发现存在的新问题并针对这些问题 提出解决方案,特别是自动测试工具的开发和自动测试系统的搭建,有 效地在测试过程中发现产品缺陷,节省项目开发成本,提高开发效率。 在结合测试方案的应用实施后,共计发现e v o l 埘o n 产品缺陷3 8 7 处,其 中,缺陷等级在p r i 嘶t y 2 之上的占全部缺陷总数的一半左右,获得合理 修复的缺陷占全部缺陷总数的8 0 ,取得了显著的测试成果。在后文中 将结合具体的项目经历,来对软件测试的理论和实现进行详细的分析与 研究。 北京交通大学硕士学位论文 二、研究背景概述 2 1 问题的提出和分析 近些年来,随着i t 产业的兴起,整个社会对信息化的要求越来越 高,随之而来的是计算机软件产业的迅速发展,提高软件产品质量越来 越成为软件产业发展中极具重要意义的关键。“软件产品质量是软件企业 的生命”这一观点也已经在业内达成一致共识。软件工程实施的过程中, 软件质量缺陷不可避免。因此,在软件开发过程中积极有效地实旌软件 测试就尤其显得重要。 2 1 1 什么是软件测试 这里需要回答两个问题:其一是软件测试是什么,即它的定义为何: 其二是作为一个质量工程师( q u a l i t y e n 百n e e r ) ,他可以在软件测试中做 些什么,能够发挥怎样的作用。 软件测试( s o 脚a r ct e s 石n g ) 是软件生存期( s o f t w a r el i f ec y c l e ) 中 的一个重要阶段,是软件质量保证的关键步骤。通俗地讲,软件测试就 是在软件投入运行前,对软件需求分析、设计规格说明和编码进行最终 复审的活动。根据瑾e e a n s i 标准,软件测试的定义是:“使用为发现 错误所选择的输入和状态的组合而执行代码的过程”。这就非常明确地提 出了软件测试是以发现错误,检验是否满足需求为目标。软件测试在软 件生命周期中占有非常突出的重要地位,是保证软件质量的重要手段。 根据统计,软件开发总成本中,用在测试上的开销要占4 0 到5 0 。 2 二、研究背景概述 在笔者所参与e v o l u t i o n 软件的测试项目中,主要的工作研究内容 是如何通过在软件开发的不同生命周期时刻按照软件开发文档的要求, 分析软件产品中可能存在的问题,通过设计开发测试用例来发掘所存在 的问题,并综合运用各种具有不同针对性的测试方法,制定出合理有效 的测试系列,评估测试项目实际所需要的工作量,根据项目所需要的开 发时间来制定针对性的测试计划,执行测试,以便更快更好地发现现阶 段软件中所存在的质量问题;开发测试工具,提高测试的自动化程度, 为开发者争取更多的时间来修正缺陷,降低软件后期的开发、维护成本, 最终达到改善、提高软件产品质量的目标。例如,在开发的初期,项目 经理召集测试工程师和开发工程师一起,研究分析软件用户的需求,评 估软件开发所需要的工作量,制定软件开发的指导文档,决定软件开发 的周期和步骤,以及在每一周期上需要达到的软件功能和用以测试的方 法、要求。然后将这些具体的指标要求转换为文档保存下来,在软件开 发的每个阶段加以不断参考、修正,直至软件最后的发布。这要求质量 工程师需要了解用户需求,开发人员的意见和开发方案,以及该项目本 身的地位和可用经费等等问题。以期在这些因素中能够取得一个准确、 平衡,可广为各方人员所接受的测试方案。测试太少,则会降低产品质 量;测试过多,则拖延产品开发计划,造成成本增加,资源浪费。 在实际的项目研究过程中,笔者共参与开发制定项目计划调研四 项,开发测试用例四百多例,发现软件产品各类缺陷共计3 8 7 处,完成 测试报告一百余份,尤其是基于j a v a 的自动测试系统开发和n i 2 m l yt e s t 测试方法的弓 入,有效提高了测试的质量。 二、研究背景概述 的完整性及合理性。而在代码开发阶段所进行的自盒测试更多的是为了 检查出存在于代码中的逻辑、语法错误,努力提高软件编写程序员的代 码质量。当然,这并不能够保证此时的代码就不存在问题,更多的测试 将会在后期的测试中,根据开发文档制定的测试计划进行相应的单元模 块测试,功能测试,压力测试和回归测试等。此时的测试更多地是为了 检查出程序代码中较为明显的语法逻辑错误而设立的。这一阶段开发的 风险不仅仅来源于开发人员本身,开发初期文档整理工作的全面充分性 也是带来软件缺陷的一大因素。因此,在这一阶段,白盒方法是测试工 作的主要依据。 黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输 入,然后再输出。整个测试基于需求文档,查看编写的软件是否能够满 足需求文档中制定的功能的要求,而不涉及程序其内部的实现原理和构 造方法。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相 关的知识或经验,它适用于对系统的功能进行测试。黑盒测试的优点有: 1 比较简单,不需要了解程序内部的代码及实现; 2 与软件的内部实现无关; 3 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇 到哪些问题; 4 基于软件开发文档,所以也能知道软件实现了文档中的哪些功 能; 5 在傲软件自动化测试时较为方便。 黑盒测试的缺点有: 1 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量 的3 0 : 北京交通大学硕士学位论文 能性需求、性能要求、其他需求等) ,在此基础之上才可以开始测试设计 工作,而测试设计又是整个测试过程中非常重要的一个环节。测试设计 的输出结果是测试执行活动依赖的执行标准,测试设计的充分性决定了 整个系统过程的测试质量。因此,为了保证系统测试质量,必须在测试 设计阶段就对系统进行严密的测试设计。这就需要我们在测试设计中, 从多方面来综合考虑系统规格的实现情况。具体的体现即为测试用例的 撰写。开发设计测试用例,要求能够使其尽可能充分、全面的对整个软 件系统进行有效测试,测试的条件为何,测试如何执行,测试预期的输 出结果是什么,如何判定测试结果的正确与否,测试是否能够有效涵盖 软件产品的设计规格各方面要求等情况,都应该具体明确的在测试设计 中体现出来。测试实旌是对测试的总体安排,在什么时候进行测试,测 试哪些平台,当前测试的侧重点是什么等内容,都应涵盖在测试实施的 计划中。测试执行则是具体的进行测试的活动,测试人员按照前面几个 步骤中所提出的方案计划,对拿到的软件产品进行测试,对修正的缺陷 进行验证,察看是否仍旧存在其他缺陷并将其汇报给相应的开发工程师, 质量经理和开发经理。在所有的测试项目被逐一完成后,需要测试人员 根据测试情况对该测试产品进行评估,判定其是否可以达到设计要求的 规定,进而决定该产品是否可以作为一个合格的软件产品将其发布。这 些步骤在时间上有着先后顺序,但往往并不是一个循环即可以完成。大 多数情况下,往往需要多个循环,直至最后才可以将软件产品发布到用 户手中。 集成前测试和集成后测试是指在一个软件产品在被正式集成到系 统中之前和之后所进行的测试。集成测试的目的是确保各单元组合在 起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内 二、研究背景概述 容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的 功能。并且对以前的集成进行回归测试。一般来讲,集成前测试侧重于 对开发人员针对过去已知缺陷修正的验证,察看这些缺陷问题在新的测 试产品中是否仍旧可以复现,经过修正的软件产品是否能够正常工作, 是否可以在其所规定的运行环境中,正确完成设计文档规定的功能要求, 所有针对已知问题的修正不应该为系统带来新的比原来更加严重的缺陷 问题。而集成后测试则主要验证当所有的软件产品的修正,在通过了集 成前测试并且得到了通过的结论之后,将未通过验证的修正代码去除, 只保留经过测试人员验证后有效的代码,由这些产品、代码来重新生成 一份最终的系统软件,交由钡4 试人员进行最后的确认测试,验证缺陷被 正确的修正,未能通过集成前测试的问题应该依旧存在于现有产品中, 而修正之后的产品不应该因这些新的代码的加入而产生更加严重的新问 题。最重要的一点,集成后测试的侧重点将偏向于整个系统间的协调稳 定运行,确认对缺陷修正代码的正确集成上来。经过集成后测试的软件 产品就完成了软件产品开发的一个生命周期,从而进入下一个软件开发 的生命周期,新的测试和修正将基于这一次测试后的成果而进行。 安装测试是针对软件安装的测试,它涉及的范围很广泛,包括不同 的硬件平台,不同的安装方法,不同的安装要求等等。它是一个测试执 行过程的最开始阶段。在进行软件的功能测试之前,首先需要验证该软 件产品是否可以顺利的完成安装。测试人员应该在不同的硬件环境组合、 操作系统、软件本身的不同设置之间不断进行安装测试,察看软件是否 能够按照预期要求进行成功安装,并且可以正常工作,发挥应有的性能 效用。安装测试一般都为人工手动测试,但是如果软件产品本身支持一 些命令、脚本语言,可以在安装过程中实现人机交互功能 北蚕至量蠹驯军娶眠m 坚 霎晒芪繇赫醛烈晶弱餮黼;强预浯嘲,伟僻睫阱掠隔萨身浠。嘲堆隔篓 茜曹氢础嘲枣董酗蕾r 萤副箨荐套鞋i1 鬻裂囊孽而鼯称韵融神到力鳃 营存薹雾鸶薹零叁两墨萎鍪赫掣娶;探姥靶联到雒州西型埘矩强i 餮 篙羹冀鞭糍习醴到霎囊鐾耋霉窭:臻篓薹薹鞠薰疆 嚣瓿嚣基冀叫霞她 一囊鬟震髫帮粥蔫蓦蠢i 嚣础翟餐硭登2 名擎乞驯咎型黪嗣叫蠢酗巴班w 馥了_ e v 0 1 砸o n1 4 软件。e v o l 砸o n 目前的最新版本为2 ,6 。之所以采用较低的l ,4 版本有两方面原因:其一。 s o l a r i s l o 作为一个以稳定性而著称的服务器操作系统系列新 x 二、研究背景概述 修复后,会通知测试人员最新的软件产品已经可供测试,并且提交在此 次修正中对哪些己知的缺陷进行了修复。测试人员接到通知,除了会安排 既定的b v t ( b u g 士攀蚕自荇委静羹l 两薪硼油杆醋斯蕹;j 鞯调嘲嘲澎颈 唰懒国阳周缔i 可粥烈蒂丽娃音戮甾高刚甜彭龠筇蟛溢瞄强豳鞠 运。简壤遣彳霜碉铂碡俘凑确一纂新镦;鹭幽掣融承纷本芋带i 疆晦渲湾 溽滴璃 是用来确认一个程序的品质或性能是 否符合开发前所提出的要求。软件测试的目的,第一是确认软件的质量, 其一方面是确认软件做了所期望的事情,另一方面是确认软件以正确的方 式来做了这个事件。第二是提供信息,比如提供给开发人员或程序经理的 反馈信息,为风险评估所准备的信息。第三,软件测试不仅是在测试软件 产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之 后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件 测试的第三个目的是保证整个软件开发过程是高质量的。 质量工程师的工作任务描述如图2 1 3 1 所示: 图2 1 3 1 质量工程师 x 北京交通大学硕士学位论文 由图可见,质量工程师在软件开发过程中的任务有: 1 寻找软件产品中的故障问题; 2 避免软件开发过程中的缺陷; 3 衡量软件的品质: 4 关注用户的需求。 总的目标是:确保软件的质量。 什么是缺陷? 缺陷就是与期望的产品属性存在的差异。测试人员就 是要寻找这些缺陷。缺陷主要有以下两类: 产品规格说明中的缺陷。产品的实际功能与规格说明中的功能不 同。 与用户的期望不符。这种情况是指用户想要的东西没有创建到产品 中,却把用户没有提到的东西创建出来。而那些遗失的部分可能是一些 规格说明、需求或方法,由于这些遗失,软件的需求不能被满意的实现。 软件系统中的缺陷可以被分为错误、遗漏或超额,错误是指产品的 功能没有被正确地实现,与用户指定的需求不符。遗漏是指产品中不具 有用户指定或预期的需求,它可能与产品规格说明不符,或者是有些指 定的功能没有被实现,或者是用户的需求在软件的建立过程之中或之后 才被确定下来。超额是指产品中包含了没有被指定的内容,这与产品的 规格说明不符,不过这也可能是用户设计产品的特别之处。无论如何, 这也被认为是缺陷。它们可能存在于软件本身,也可能存在于软件的支 持手册或文档之中。既然缺陷是软件系统中的瑕疵,在没有影响用户和 系统运行之前,还没有产生什么不良后果。当缺陷引起了运行错误或对 用户产生了消极影响时,它就被称为故障。对缺陷最大的担心就是它会 转变为故障,而故障将对使用软件的用户、机构产生损害。有一些缺陷 1 4 二、研究背景概述 可能永远也不会转变为故障,但一个缺陷有可能会引起上百万的故障。 例如,一个软件设计的缺陷可能会导致该系统陷入死循环而无法相应用 户的操作,甚至程序崩溃。 2 2 问题的解决方法 了解了软件测试对保证软件产品质量的重要性和必要性质后,就需 要质量工程师( q u a l 时e n 垂n e e r ) 通过具体的实际方法来解决软件产品 生产开发中所面临的这一迫切问题。要在测试过程中综合运用各种不同 类别的测试活动,有针对性地发现产品中的隐藏缺陷错误,是质量工程 师所必须直面的艰巨任务。有效合理地制定测试计划,安排测试活动, 必须紧密结合具体软件产品的开发过程。对软件产品的开发过程有充分 的了解,将有助于质量工程师更加深一层次地理解软件测试的具体流程 和实际操作步骤,也有助于测试工程师能够有的放矢,制定出合理、针 对性强的测试计划方案,以期和研发工程师一起,共同致力于加快软件 产品的开发速度,提高软件产品的质量。因此,下面的文章笔者愿意就 软件开发和测试过程这两方面展开一些阐述。 2 2 1 软件开发过程中的方法 目前,对于软件开发过程普遍的观点是,软件开发过程基本包含分 析、设计、实现和测试这四个基本的活动。它们的关系如图2 2 1 1 所示: 北京交通大学硕士学位论文 图2 2 1 1 软件开发流程图 由图2 2 1 1 可见,在软件开发流程中,分析、设计、实现和测试是 一个基本环节所必备的四个基本要素。不论是何种开发模型,无一不是 由这四个最基本的要素构成,区别仅仅在于对整个软件开发流程的不断 改进,使其更加适合于不同的软件产品开发。例如在增量开发模型中, 系统是以一系列的增量形式进行开发的。一个增量即是一个可交付的中 间产品,通常由模型、文档和代码组成,为系统提供一些需要的功能。 一个增量阶段开发的产品被传递到下一个增量的开发阶段。连续的增量 ( 或变更) 能够不断增加系统的功能。最后个增量将产生一个可发布 的软件产品,它能够满足客户所提出的要求。这种增量开发模型常见于 针对用户需求开发一套全新的软件产品的情况下。开发人员可以逐步完 成软件功能需求文档所要求的所有功能。为了构建每个增量,开发者必 选招需求进行分析、设计、编码和测试。通常,在构建增量的时候,他 们不得不重复地进行这些活动,因为它们可能在先前的工作中找到了错 误。随着开发的进行,他们对于一些问题会有新的认识和解决方法。这 1 6 二、研究背景概述 种迭代过程更多的是被看成增量开发过程中的一部分,在对每个增量进 行计划的时候,都要包括对以上不同活动重复进行的步骤。这些步骤是 对当前模型的系统性回顾,根据经验为今后的任务标识出错误,对于已 经产生的模型或代码进行修改,而不仅仅是对将来要产生的系统而言。 增量开发对应着增量钡4 试。软件产品需要以计划好的或者没有计划 好的方式从一个增量过渡到另一个增量,测试活动也必须进行相应的改 变。对于这种增量式的开发模型,回归测试是最为重要的测试方法。它 必须在每个增量之间及迭代内部进行,以确保这些改变不会使其他正确 的代码产生错误。在一个增量中重复做另一个增量中的工作将会增加软 件产品开发和测试的复杂性。在安排增量开发活动时,必须协调好开发 人员和测试人员的工作,以便及时发现问题,尽早解决。 2 2 2 软件测试过程中的方法 软件 x 挣。曷i ;l 矗氆滴 :壬擘硬瑶氆泫稳螳尝掣驰掣肇薯引矧州到型篙掣式;醚药整醛躔酸黥 髅蛳竖舅描艘j 蠼坛溺愆嵫! 耍嗽泐憾塑嚏蹬塑啤莲缈嘲谚。聋霪堰两 伟哩浮邂摧崾蛭躞湮嘲遘:引氍骶影堇蒿潆器膨赫靶拦弼拓躲;鬟望缝 h 单氍鲜瑟鳙驰张凹熟篓螋醣;m 继峰缓夏兽粤盔溻泪鹕噬石鉴惟堰; 磐璺嗡缓嘲勰圈蟛烈羹i 峨。国澄噶懋凇嘣堙磁硼礴翔踏理讯因魁 孵慢躞磁一懑浯嵯荔臻跫鼯一霎篇翮,攫旨深攀哥;薄娣黔辐攀嚣骡 掣。点鬈迢蓊翟蹦盛訾碍竿士蓉:垂蛋嶷因嘲心甄笤痂潦群冀黧。鞋 擗强罂港彭荦贼式 蒸燃融坚萋臻担嘲;e 匠卜刚酬画确酬蔫嗣挑辩瓤 爵啡翻础鞘州 x 二、研究背景概述 谁来执行测试工作? 个项目通常要设计开发人员和测试人员两 种不同的角色。开发人员通过开发而形成软件产品,例如分析、设计、 编码、调试和文档编制。测试人员通过测试来检查软件中存在的缺陷, 包括根据特定的目的选择测试用例,构造测试,执行测试以及评估测试 结果等。在正式的测试活动中,代码的单元测试多数为开发人员自行进 行,而系统测试才是由独立的测试人员来完成。 要测试什么? 软件测试人员常常遇到这样的问题:是否软件中的每 一个部分都需要进行测试? 还是只是测试软件中具有较高风险的部分? 对这个问题的不同回答会导致完全不同的测试方法和测试效率。单纯强 调测试覆盖面的范围,就会使测试人员疲于应付常规的测试而较难发现 软件关键部分中可能隐藏的问题。单纯强调测试的针对性,又会无法全 面把握整个软件产品的质量均衡。因此,在软件产品的不同生命时期, 测试人员需要根据开发情况灵活安排测试,使测试既可以覆盖产品的基 本功能,又可以重点突出,保证产品关键部分的质量。 何时进行测试? 软件中包含的各个不同组件,在它们开发结束后就 可以对其进行测试,或者推迟至各组件装配成为具体的软件产品后再进 行测试。但是,随着开发的不断深入,未进行测试的组建对软件产品的 潜在破坏威胁也就越大。在开发人员数量相对较少时,在产品全部装配 搭建好以后进行测试具有较好的针对性和较高的效 x 二、研究背景概述 量。覆盖率可以通过两种方式来确定。种是根据软件规范说明中有多 少需求需要测试,另一种方式是根据运行测试系列中的测试用例,以判 断软件中有多少功能被执行了测试。如果有一定量的代码段或者代码中 存在的执行路径在测试过程中被至少运行过一次,则说明这个测试系列 有可能是充分的。这两种方式反映了两种基本测试方法,一个是基于软 件预期功能的测试,另一个则是基于软件实际的工作状况。要进行充分 的测试,这两种方法都应当被采纳。功能测试即为黑盒测试,它对所有 的测试级别都适用,能够保障软件产品更健壮,但是它对规范文档的质 量和测试人员的正确理解具有很大依赖性。结构测试即为白盒测试,它 能够提高代码测试执行的覆盖范围,但对开发人员具有很大依赖性。如 果开发人员没有实现完整的规范,就会产生测试的盲点,使得部分功能 无法得到测试。 在测试的开始,测试人员需要对待测软件产品作一个基本的评估, 例如需要的时间、人员、设备等资源,评估该产品的可测性有多少,标 示出那些需要被特别注意的特点,并根据这些特点确定需要构建的测试 用例。同时,测试人员还需要根据该产品的开发计划制订出一套相应的 测试计划,以更好得配合整个产品的开发过程,使开发能够高效、优质 地进行。在测试计划得以制订之后,质量工程师就需要构建起具体的测 试用例来支撑即将展开的测试执行活动。前面定义的测试用 x 二、研究背景概述 其进行修正。最后便是综合本周期所有测试活动的结果提交正式的测试 报告给相关人员,以便大家了解软件产品当前的质量状况,并决定下一 步的开发计划和测试计划。这一过程中需要着重注意的地方在于回归测 试部分。通常情况下,一个缺陷的修复往往同时也带来了额的隐藏缺陷 风险。由于在软件产品中,已知缺陷数量和未知缺陷数量成正比关系。 因此,如何降低这种风险,是所有软件产品项目人员的共同目标。除了 进行细致周密的回归测试之外,笔者在实际的项目进行过程中引入了 n i g h t l yt e s t 测试活动。在此之前,e v o l u t i o n 项目并没有这一方面的计划 安排。通过引入n i g h t l yt c s t 测试,使得发生重大软件产品质量后退情况 的几率得到大幅降低。在引入n i 曲t l y l 钮测试之前,e v o l u t i o n 项目共计 1 5 个测试周期,由于修复缺陷而引入新的严重缺陷数耳占到了每一周期 新发现的严重缺陷数量的4 0 左右,而在引入了n i g h u y1 e s t 测试之后, 这比例已经降低到了1 0 甚至更低的水平。关于n i 蛳1 y t e s t 活动的具 体实旌方案以及所遇到的问题、解决的方法,会在本文的第四章给出详 细的介绍。 2 2 3 解读测试结果的分析报告 测试报告是一个钡4 试周期的最终总结。在测试报告中应该体现各项 详尽信息以供阅读者提取各自所需的信息,它至少应该包含测试过程中 人们所关注的五个问题的回答,甚至应该提供更多信息给阅读者,以便 人们增进对产品质量的了解,掌握产品的开发情况,适当调整产品的测 试、开发计划。以下是一份具体的测试报告实例,后文将结合这一测试 报告实例给予具体说明: 三、项目介绍 算机桌面操作系统中有着极其重要的地位。 电子邮件服务是通过“存储一转发”方式为用户传递信件的。电子 邮件系统的工作原理如图3 1 所示。由图可见,电子邮件系统是i l l t l e t 上一种典型的客户,服务器系统。这个系统主要包括电子邮件客户机、电 子邮件服务器以及在电子邮件客户机和服务器上运行、支持i n t e m 吼上电 子邮件服务的各种服务协议。在i n t e l l l e t 上电子邮件服务系统中,各种服 务协议在电子邮件客户机和邮件服务器间架起了一座桥梁,使得电子邮 件系统得以正常运行。主要的电子邮件协议主要有三种,s m 仲,p o p 和d 江a p ,e v o l u t i o n 对它们都有着很好的支持。 图3 1 1 电子邮件系统组成 器;具俸夏嚣印韩 蓼豢嚣灶囊| 蕊业是i 。捌翱薹如髅矍篙罂茭裂望鼠裂嚣善霸翟 缝整强晖思;器鲤孤鞯硼m 疆辇丝翘u 飘幽莹茧。酵圳刊褥:囊蚕i 墨崞。鼋翼瑚璀溜鬻燃;器甥雠量委黧蓁蓉辍薷些冀鎏霭呸舞霖姥剪; 灌惟堪峰季酥张誊翌蠢囊辇髫憾嘲;吾碧璺蓥! 雾蓁茎薹攀萋薹囊萎薹慧婆 嚣爨煞;蚕淄潜善矬罐溶哗基;鋈黧警蔫嘲型赫囊冀需蹦棋髯蘸霎拳逡 警i 缸剐登台诺稚浴塑氟# 基鑫掣豁副箭醛蚕; 羹带耀璎瑶i 墨逛瑙嘏心曛涩嗡嘤麓嚯强冽喹s 耀灌嵫嘎 蠕骈 一 x 四、具体方案的设计实施 图4 2 1 1e v o l i n j o n 支持的h l t e m e t 邮件类型 针对邮件部分的功能测试,结合e v o l 砸o n 功能手册,笔者制定出 以下测试内容: 阅读邮件 撰写邮件 邮件过滤器 邮件搜索 邮件账户设置 邮件夹 四、具体方案的设计实旃 图4 2 1 5e v 0 1 u t i o n 发送邮件状态转换图 因此,测试的内容立即明晰起来。在e v 0 1 u t i o n 软件初始化成功后, 发送m a i l 命令,检查是否有发送人、接收人,发送数据最终获得发送成 功确认消息。如果在每一状态检查发现不具备所需要的条件,流程将转 回到最初状态等待信息的补全再次进行发送判断。在状态转换的每一步 都要设置测试点进行具体功能的测试。测试用例的设计如下 e v o l u t i o ns t a t e测试用例设计预期测试结果 1 e v o l l m o l a u n c he v o h l t i o na 1 1 dm a k ei t e v o l u d o n i n j t i a l s t 锄d b y i n i t i a l i z e d s u c c 懿s f u l l y ,s t a t e g o e sf b 州a r d 2 s e n d e r a d d s e n d e r s c l l d s e r v e r i n t :s t 8 t e 9 0 e s s c n d e rf - o r w 莉 f :r e s e t t os t a t el 3 r e c e i p t a d do n eo rm o r cr e c e i p t si 1 1t :s t a t e g o e s r e c e i p t 1 o r w 缸d 4 l 四、具体方案的设计实施 ie v o l u t i 。l p o p | p o p 卜= 钯l l 至 ;l o c a l m a i l; x 一j t e v o l l m o ns m t p l 1 “一 ia i t 一里咧u t 啦j i 旦 x 北京交通大学硕士学位论文 图4 2 1 7e v o l 仰o n 的p o p 进程状态转移图 针对e v o l u d o n 的p o p 进程状态设计测试用例如下表,可以看出测 试用例覆盖了状态中所有可能的转移条件,并针对每种情况都作了详 细的描述。这一功能的测试同样可以通过自动测试工具来完成,质量工 程师只需要针对具体的测试内容开发测试用例即可。 e v 。l u t i 。ns t a t e 测试用例设计预期测试结果 1 e v o l u t i o nl a u n c he v o l u t i o na p p l i c a t i o n ,e v o l u t i o nl a u n c h e sw i 也 i 曲i t i a l甜l d s 酏u p t l l ep o pm a i lp o pa c c o 啪t a c c 0 u n t 2 c 。m m u i l i c a t ec o 纰e c t t os e n r e ra t1 l o p o nc o 衄e c d o ns 咖p 北京交通大学硕士学位论文 件对于d v 纽协议的支持框架模型。 脚 。【丑 n 脚 c o m m a n d s r m t 申。曩 c o n l m 2 旺l d s 7 l i m a p c l i 锄ts c r v e r 图4 2 1 _ 8e v o l u t i o n 的咄接口模型 相对于p o p 而言,d a p 由于提供了更多的服务功能,因此e v o l i n j o n 与n 讧a ps e r v e r 的会话状态更加复杂,有着更多的通信命令。具体可以 参考r f c 2 0 6 0 协议文档。而对于e v o l “t i o n 讧a p 功能的测试用例开发, 可以围绕山蟠命令展开,包括e v o l u t i o n 客户端与山婶s e r v e r 间的通 信握手、登陆认证、邮件目录操作、查看信件等等,下面仅列出部分 e v o l u t i o nd 讧a p 测试用例来进行说明。 e v o l u t i o n测试用例设计预期测试结果 c o m m a n d 1 1 0 9 i n 1 l a u n c he v o l u t i o na i l ds e t u pe v o l l n i o ns e n d s 1 0 百n a i ln 噍a p m a i la c c o u n td a t at os e r v e lc o i l i l e c 虹o n 四、具体方案的设计实施 2 h l p u t1 0 百n n 锄ea n ds e n l p p 船s w o r d 2 c h e c k o p c i l h l b o x 岛l d e r i i l r e c e i v e dm a i l sc a nb e e v o l u t i o nc h e c k e d 3 c r e a t e 1 m g h tc l i c k 蹦a p o tf o l d e r f o l d e ri sc r e a t e dw i m a n ds e l e c tc r e a t ec o m m a n d r i g h t n 锄e 2 g i v ean 锄e , s a yn e w f o l d 盯t o t h i s f o l d e r 4 s e l e c t e x p a i l dt 1 1 c 珈a pm o t 如l d c r f 0 1 d e rc mb es e l e c t e d a n dc l i c ko n eo f t h e mm a i l si n t h i sf b l d e ra r e l i s t e d 5 s u b s c r i b e1 s e i i d l s u b c 锄m a i l dt os e l e c t e df b i d e rc a nb e 巧压a ps e r v 盯t ol i s ts u b s c b e ds u b s c r 主b e d f 0 1 d e r 2 s e l l d s e l e c t ,t os e r v e r 3 s l l b s c r i b es e l e c t e df o l d e ri n s t 印2 4 - 2 2e v o l u t i o n 的其他功能测试 e v o l 砸o n 还具有其他许多功能,同样需要针对它们进行详细的测试 分析和测试用例开发,执行铡试活动。限于篇幅,仅在此予以简单介绍。 这些功能包括日程事件管理、联系人管理、打印功能、标准文件的导入 和导出功能和同步功能等部分。这些功能虽有不同的功用,但在具体的 结构中大都只有以下两种工作模式:本地模式和网络模式。本地模式 e v 0 1 m i o n 读取存储于本地文件夹的数据信息,通过u i 界面与用户发生 北京交通大学硕士学位论文 联系。网络模式则是根据不同应用的网络应用协议,e v o l u t i o n 作为客户 端工具和服务器进行通信联系,交换数据,使用户能够通过网络对其需 要的信息进行获取、更新等。测试用例主要围绕e v o l u t i o n 对数据的交互 访问和软件产品的人机界厦而展开。 l c 篙丽函;n 舔石z m o d c 图4 2 1 9e v o l u t i o n 的两种工作模式 4 3 测试方案执行 测试活动从最甄选项目开始,测试工程师就需要和开发工程师一起 工作,评估不同的备选项目,确定开发、测试计划,编制开发测试用例, 执行测试活动,评估测试结果,给出测试结论报告,开发人员和测试人 员一起,共同解决软件产品中存在的缺陷和错误,提高软件产品质量。 这一流程环环相扣,每一阶段既是上一流程的结束,又是下一流程的开 始。下面笔者就结合e v o l u t i o n 项目测试中具体测试方案的执行过程,说 明测试思想理论是如何贯彻体现于实际项目中。 四、具体方案的设计实施 护不便,无法及时对测试用例进行修改更新操作。另外,由于每一个参 与测试开发的人员所编写的h t m l 页面有不同的外观风格,使得整个测 试用例风格凌乱不统一,给其他人员的阅读也会带来不便。最重要的是 这种测试管理方式仅仅能够提供软件开发测试人员阅读测试用例的简单 功能,而无法完成测试报告的自动生成和分析,甚至测试执行的自动化 等能力。而使用黼誊誊训# 泰秒群型茧霉函蟹。戮融;器堕曩霪西毽爨 磅嘲瑟淫壅囊旃骊幕管。们撞囊辇塌i ! 湛囊蓊靳扈餮犍惦j 擅征硝呼笏 袭浮逸造唧淳;制定好鸥测试报告表各皇融菲财。蟹现有嚣酾矧攀蠹酾 隆蓟幕甬。烈争羹剩哞心淳璎噬i 钡| 羹要荆善薛趔职露蹦州蹦戮酗黧凰;澄 啭卫鎏蟒喟泽一博耋娄囊丝鬓描酷轻趱编。划姑锈善赢潮镒姜借蒋菥攀 型籀群器窘羹蓼,隐衡i 骂那i 一工具发布在了该项目的内部主页上, 使测试报告 可以在任何时间自动生成,为质量工程师争取更多的时间用于测试用例 四、具体方案的设计实施 问题,在实习研究过程中,笔者和开发工程师、发行工程师一起,引进了n i g h t l y t e s t 活动。n i 曲t l yt e s t 是指在开发工程师有了新的修正方案 ;|=;郧忿国脚崖肃篓萋羹丽鼙螋篝州量器墼冀稀,竖裂搿lf警埕降墨 塑薷。#氡矗剖教耐鞋觜嚣抽饕猷霎僻。弪丛俗套菩套鬟的开发只需要根据所需要执 行的测试类型和测试目的,用或其他任何文本文件编辑器即可。将需 要测试的命令集写入文件生成测试用例。例如,如果需要进行e v o l u t i o n 的s m t p 协议部分功能,我们可以在u 证x 系统终端提示符下这样编写测 试用例: 其中,$ 为系统s l l e l l 提示符,撑为注释标记,表示其后整行内容为注 释,余下的部分为s m t p 协议中包含的械 x 四、具体方案的设计实施 相应的操作,释放操作信息给系统,以便于后面的g n o p 锄i c u s 工具进行 信息的抓取。 g n o p e r n i c u s 工具默认安装时并不能够提供d e b u g 输出的能力,要在 这一自动测试系统中使用它,必须需要从 邱:f l p g n o m e o 咖u b 朗o m “s o l 眦e s 细o p c i n i c u “1 o 网站上下载最新版 本( v e r s i o n1 o ) 的源代码,自行编译生成具有d c b u g 功能的使用版本。 在编译g n o p e m i c u s 之前,必须确认系统中已经安装有c s p i 1 o , g c o n f _ 2 0 , 曲b - 2 o ,g t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SSBME 2-2025家用LED紫外治疗设备
- T/SATA 081-2024食品中二氧化硫残留量的测定 间断化学分析法
- T/CSWSL 044-2025猪舍吊装轨道巡检机器人
- T/CI 080-2023富有机硒脐橙生产技术规程
- T/CSPSTC 185-2025深埋地下管道数字化综合探测技术规程
- T/SSX 012-2024发酵人参粉
- 2025-2026学年辽宁省营口市初中数学九年级期末上册高分快速提分卷详细参考解析
- Photoshop CS2 试题及详细参考答案
- 2025-2026学年四川省广元市初中数学八年级期末下册点睛提升黑金试题(附答案)
- 废旧电缆回收拆解操作规程
- 2026年学校德育体系实施方案-五维融通,三阶递进
- 山东省菏泽市菏泽经济技术开发区2026-2027学年七年级上学期10月阶段检测语文试题(含答案)
- 2026年广东省公需课《加快培育发展新质生产力》考试答案
- 2026年农田废弃物的资源化利用路径
- 2026年公路水运工程助理试验检测师练习题附答案
- 2026年成人高考专升本政治真题试卷及完整答案解析(官方标准)
- 中远海运集团招聘笔试题目及答案
- 2026中国电信历年考试笔试题库及答案
- 护理副高职称评审答辩自我介绍模板
- 教学能力大赛-教学实施报告《大学英语2c》
- 法律制度金融预期与会计准则
评论
0/150
提交评论