版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TR4—TR6阶段测试项目管理软件测试概念使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别.它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness)、完全度(completeness)和质量(quality)的软件过程;是SQA(softwarequalityassurance)的重要子域。GrenfordJ.Myers曾对软件测试的目的提出过以下观点:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能.但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此!(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法软件测试的内容软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念:验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Dotherightthing)1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Doitright)1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。从不同的角度出发,软件测试可以划分为不同的分类从是否关心软件内部结构和具体实现的角度划分A.白盒测试B.黑盒测试C.灰盒测试从是否执行程序的角度A.静态测试B.动态测试。从软件开发的过程按阶段划分有A.单元测试B.集成测试C.确认测试D.验收测试E.系统测试软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。编码和单元测试属于软件生存期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试,这是软件生存期的另一个独立阶段,即测试阶段。一、软件测试的目的软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Dotherightthing),另一方面是确认软件以正确的方式来做了这个事件(Doitright)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doingtherightthingsrightattherighttime.)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Qualityisdefinedasconformancetorequirements,notas“goodness”or“elegance”.)。四、质量也代表着它符合客户的需要(Qualityalsomeans“meetcustomerneeds”.)。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。测试人员在软件开发过程中的任务:1、寻找Bug;2、避免软件开发过程中的缺陷;3、衡量软件的品质;4、关注用户的需求。总的目标是:确保软件的质量。二、软件测试的原则软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心。为了达到上述的原则,那么需要注意以下几点:1.应当把“尽早和不断的测试”作为开发者的座右铭2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完。3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。5.对测试错误结果一定要有一个确认的过程,一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。ong/wiki/%E5%AF%B9%E8%B1%A1target="_new"class=innerlink>对象软件测试并不等于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应该是软件测试的对象。在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来。四、软件测试方法软件测试的基本方法单元测试的基本方法综合测试的基本方法确认测试的基本方法系统测试的基本方法软件测试的基本方法软件测试的方法和技术是多种多样的。对于软件测试技术,可以从不同的角度加以分类:娘从是否疾需要执行被鱼测软件的角惭度,可分为懒静态测试和器动态测试。苗从测试膏是否针对系壤统的内部结里构和具体实乞现算法的角塑度来看,可崭分为凤白盒测试顿和董黑盒测试宋;缩1、黑盒测迈试岩黑盒测饮试也称冬功能测试妖或糕数据驱动测鲁试膛,它是在已稿知产品所应躺具有的功能积,通过测试迟来检测每个叠功能是否都安能正常使用冻,在测试时界,把程序看雕作一个不能绢打开的黑盆槽子,在完全缘不考虑程序腰内部结构和盒内部特性的不情况下,测既试者在程序某接口进行测铺试,它只检剧查程序功能篇是否按照需哈求规格说明顺书的规定正锯常使用,程秘序是否能适退当地接收输橡入数锯而产桃生正确的输泳出信息,并餐且保持外部验信息(如野数据库勉或政文件浩)的完整性鹊。黑盒测试犯方法主要有截等价类划分猴、边值分析葡、因果图、笔错误推测等书,主要用于洪软件确认测拢试。撤“是黑盒晨”盛法着眼于程孟序外部结构援、不考虑内员部逻辑结构葬、针对软件夕界面和软件怎功能进行测返试。倒“街黑盒予”姜法是穷举输耳入测试,只接有把所有可链能的输入都枕作为测试情亿况使用,才识能以这种方般法查出程序居中所有的错姨误。实际上唇测试情况有帆无穷多个,遗人们不仅要跑测试所有合劫法的输入,牌而且还要对仿那些不合法严但是可能的立输入进行测拢试。渗2、白盒测富试条白盒测到试也称俭结构测试萌或成逻辑驱动测亮试洋,它是知道磁产品内部工亏作过程,可吵通过测试来爪检测产品内京部动作是否有按照规格说段明书的规定袭正常进行,历按照程序内绑部的结构测夏试程序,检绵验程序中的而每条通路是本否都有能按岩预定要求正的确工作,而醒不顾它的功熊能,白盒测鸟试的主要方仓法有逻辑驱惩动、基路测未试等,主要摊用于软件验竹证。惕“抱白盒记”吃法全面了解瞎程序内部逻正辑结构、对宣所有逻辑路宝径进行测试耐。意“俯白盒吹”浅法是穷举路禾径测试。在太使用这一方哑案时,测试岗者必须检查稿程序的内部剃结构,从检闷查程序的逻吐辑着手,得摇出测试数据障。贯穿程序睁的独立路径挣数是天文数芦字。但即使落每条路径都放测试了仍然冻可能有错误隶。第一,穷李举路径测试观决不能查出蛮程序违反了酱设计规范,呜即程序本身蜘是个错误的辣程序。第二足,穷举路径庆测试不可能参查出程序中伏因遗漏路径积而出错。第乎三,穷举路检径测试可能师发现不了一矮些与数据相读关的错误。护3.ALA谷C(Act塞-like青-a-cu累stome厅r)测试恶ALA热C测试是一钢种基于客户华使用产品的煎知识开发出要来的测试方蹲法。ALA攻C测试是基漠于复杂的软歇件产品有许背多错误的原励则。最大的殖受益者是用型户,缺陷查型找和改正将奏针对那些客秋户最容易遇蔬到的错误。踪单元测试的杰基本方法全单元测试的袍对象是软件播设计的最小芹单位模块。讨单元测试的闯依据是详细等设描述,单额元测试应对轿模块内所有占重要的控制吧路径设计测戴试认用例坝,以便发现哲模块内部的幼错误。单元宁测试多采用真白盒测试技较术,系统内君多个模块可卵以并行地进甜行测试。勤单元测试任献务裕单元测邪试任务包括价:1模块朝接口测试;他2模块局咏部数据结构纵测试;3班模块边界条麻件测试;4在模块中所恰有独立执行速通路测试;姐5模块的烦各条错误处朱理通路测试率。食模块接士口测试是单影元测试的基玉础。只有在猾数据能正确抹流入、流出衰模块的前提茄下,其他测丑试才有意义代。测试接口唱正确与否应窑该考虑下列滑因素:担1柜输入的实际调参数与形式妈参数的个数勤是否相同;揪2笔输入的实际六参数与形式煎参数的属性攀是否匹配;途3李输入的实际滔参数与形式挤参数的量纲荷是否一致;茄4林调用其他模乖块时所给实王际参数的个丰数是否与被铃调模块的形项参个数相同劣;恭5咬调用其他模钓块时所给实桌际参数的属用性是否与被漠调模块的形画参属性匹配陶;锐6调筛用其他模块擦时所给实际腰参数的量纲陷是否与被调怎模块的形参咱量纲一致;赵7恭调用预定义亭函数时所用丢参数的个数趣、属性和次吓序是否正确洽;神8许是否存在与蔽当前入口点猎无关的参数材引用;盲9绿是否修改了度只读型参数匪;奥10违对全程变勺量的定义各伐模块是否一推致;尿11非是否把某些在约束作为参弄数传递。棍如果模找块内包括外式部输入输出盆,还应该考周虑下列因素覆:剥1创文件属性是东否正确;权2撕OPEN/三CLOSE系语句是否正库确;纸3余格式说明与搂输入输出语寺句是否匹配锈;撇4缓弃冲区大小与胞记录长度是馋否匹配;思5文粥件使用前是拴否已经打开理;妄6是荷否处理了文只件尾;拴7是瓜否处理了输乓入/输出错吃误;石8输柔出信息中是俩否有文字性祖错误;刻检查局芳部数据结构斜是为了保证秧临时存储在呼模块内的数枕据在程序执为行过程中完据整、正确。狡局部数据结泻构往往是错乞误的根源,环应仔细设计因测试用例,乓力求发现下睛面几类错误暑:吨1克不合适或不援相容的肢类型那说明;介2变葵量无初值;规3变矩量初始化或伟省缺值有错钟;秘4不泳正确的变量首名(拼错或旨不正确地截惕断);暗5出时现上溢、下狡溢和地址异方常。隐除了局疾部数据结构雁外,如果可怨能,单元测宾试时还应该雷查清全局数棵据(例如F瓜ORTRA无N的公用区围)对模块的泰影响。乡在模块听中应对每一能条独立执行固路径进行测阅试,单元测扶试的基本任算务是保证模研块中每条语达句至少执行惜一次。??至的比较和不脂适当的控制瓶流造成的错险误。此时基逐本路径测试跟和循环测试喷是最常用且吸最有效的测绕试技术。计衔算中常见的子错误包括:绿1兽误解或用错骄了算符优先丛级;尚2混妄合类型运算糠;摩3变躲量初值错;庸4精才度不够;景5表般达式符号错周。渣比较判再断与控制流淋常常紧密相秒关,测试用稠例还应致力康于发现下列累错误:薪1不示同数据类型律的对象之间寇进行比较;霜2错楚误地使用逻兆辑运算符或辩优先级;溉3因后计算机绪表示的局限翻性,期望理败论上相等而市实际上不相虫等的两个量趋相等;其4比这较运算或变掏量出错;省5循从环终止条件凶或不可能出痒现;料6迭削代发散时不唤能退出;匀7错愈误地修改了签循环变量。原一个好驴的设计应能座预见各种出校错条件,并厦预设各种出蜓错处理通路鹿,出错处理析通路同样需灭要认真测试谈,测试应着尘重检查下列偿问题:倚1输兴出的出错信停息难以理解群;羊2记史录的错误与慕实际遇到的图错误不相符冷;议3在朝程序自定义梦的出错处理锈段运行之前战,系统已介标入;伍4异晓常处理不当剑;墓5错杆误陈述中未抱能提供足够语的定位出错脉信息。注边界条额件测试是单刮元测试中最驾后,也是最想重要的一项闷任务。众的毯周知,软件慧经常在边界亮上失效,采沾用边界值分久析技术,针所对边界值及若其左、右设忍计测试用例烂,很有可能调发现新的错街误。报单元测试过绕程棒一般认崖为单元测试姜应紧接在编填码之后,当散源程序编制念完成并通过桶复审和编译树检查,便可哀开始单元测鸦试。测试用尺例的设计应坊与复审工作描相结合,根浮据设计信息居选取测试数伴据,将增大组发现上述各守类错误的可丘能性。在确峰定测试用例箩的同时,应拖给出期望结辽果。郑应为测盛试模块开发啄一个驱动模留块(dri桃ver)和屑(或)若干懂个桩模块(欧stub)傲,下图显示惯了一般单元盘测试的环境滋。驱动模块惯在大多数场哥合称为矛“源主程序母”政,它接收测刊试数据并将酱这些数据传免递到被测试好模块,被测波试模块被调五用后,征“道主程序制”障打印扰“肢进入-退出范”握消息饥。荷驱动模乌块和桩模块皂是测试使用友的软件,而执不是软件产泊品的组成部霉分,但它需悔要一定的开熊发费用。若饿驱动和桩模蚕块比较简单旷,实际开销希相对低些。粉遗憾的是,异仅用简单的忌驱动模块和脾桩模块不能计完成某些模昌块的测试任孝务,这些模帽块的单元测逮试只能采用尊下面讨论的馋综合测试方恰法。村提高模扒块的内聚度减可简化单元跑测试,如果崭每个模块只担能完成一个渔,所需测试呀用例数目将梦显著减少,漆模块中的错碍误也更容易载发现。环综合测试的掠基本方法款时常井有这样的情映况发生,每差个模块都能猛单独工作,市但这些模块础集成在一起烤之后却不能删正常工作。奇主要原因是兵,模块相互闹调用时接口俭会引入许多怨新问题。例背如,数据经竭过接口可能路丢失;一个勇模块对另一挨模块可能造呢成不应有的视影响;几个肾子功能组合杏起来不能实争现主功能;葱误差不断积络累达到不可脉接受的程度况;全局数据究结构出现错宿误,等等。餐综合测试是站组装软件的气系统测试技单术,按设计主要求把通过垦单元测试的它各个模块组前装在一起之洗后,进行综魄合测试以便洒发现与接口绩有关的各种堵错误。快某设计播人员习惯于将把所有模块纹按设计要求棚一次全部组醒装起来,然悬后进行整体辞测试,这称索为非增量式坏集成。这种雪方法容易出利现混乱。因道为测试时可泊能发现一大控堆错误,为阅每个错误定蚂位和纠正非脆常困难,并乳且在改正一症个错误的同滩时又可能引哥入新的错误甲,新旧错误创混杂,更难烟断定出错的赞原因和位置非。与之相反爷的是增量式刺集成方法,披程序一段一申段地扩展,狭测试的范围荡一步一步地须增大,错误壳易于定位和姿纠正,界面话的测试亦可珠做到完全彻煮底。下面讨唉论两种增量浪式集成方法洽。撞1自顶向蹲下集成惧自顶向拐下集成是构昨造程序结构加的一种增量断式方式,它芽从主控模块剖开始,按照寄软件的控制据层次结构,吼以深度优先泻或广度优先龟的策略,逐底步把各个模命块集成在一占起。深度优涨先策略首先近是把主控制杰路径上的模活块集成在一贩起,至于选准择哪一条路黄径作为主控缝制路径,这词多少带有随百意性,一般浮根据问题的杰特性确定。军以下图为例的,若选择了砍最左一条路查径,首先将粘模块M1,零M2,M5毯和M8集成阳在一起,再陷将M6集成答起来,然后温考虑中间和握右边的路径叫。广度优先尖策略则不然坟,它沿控制飞层次结构水狼平地向下移庄动。仍以下寨图为例,它阿首先把M2暖、M3和M谋4与主控模惊块集成在一肃起,再将M妨5和M6撒和其他模块伴集资集成起婆来。强自顶向蚀下综合测试忘的具体步骤驱为:缸1拨以主控模块劈作为测试驱戚动模块,把漏对主控模块速进行单元测番试时引入的乡所有桩模块摔用实际模块出替代;退2徒依据所选的散集成策略(驰深度优先或若广度优先)虑,每次只替治代一个桩模筝块;桌3休每集成一个栽模块立即测帮试一遍;眉4葬只有每组测株试完成后,拨才着手替换船下一个桩模罪块;锅5烦为避免引入济新错误,须绞不断地进行侧回归测试(踩即全部或部登分地重复已驰做过的测试享)。漂庸从第屈二步开始,门循环执行上惧述步骤,直衣至整个程序部结构构造完照毕。下图中遇,实线表示姜已部分完成辣的结构,若盘采用深度优拢先策略,下语一步将用模妙块M7替换娘桩模块S7概,当然M7兆本身可能又忠带有桩模块逆,随后将被烂对应的实际砍模块一一替梁代。其自顶向初下集成的优绵点在于能尽膝早地对程序灭的主要控制案和决策机制蓄进行检验,德因此较早地离发现错误。赵缺点是在测闷试较高层模典块时,低层茧处理采用桩尺模块替代,间不能反映真燕实情况,重饰要数据不能盼及时回送到预上层模块,广因此测试并肃不充分。解俘决这个问题浇有几种办法芝,第一种是疏把某些测试茫推迟到用真负实模块替代旨桩模块之后与进行,第二赖种是开发能很模拟真实模昨块的桩模块铁;第三种是珍自底向上集授成模块。第南一种方法又诚回退为非增绢量式的集成蛛方法,使错百误难于定位读和纠正,并额且失去了在由组装模块时照进行一些特伯定测试的可趟能性;第二志种方法无疑锅要大大增加签开销;第三服种方法比较夸切实可行,尺下面专门讨厨论。芒2自底向上螺集成朵自底向拼上测试是从灶“拨原子柄”酒模块(即诵软件结构框最低层的模矿块)开始在组装测试务,因测试到喜较高层模块皱时,所需的圈下层模块功受能均已具备肚,所以不再险需要桩模块纹。深自底向寿上综合测试进的步骤分为定:引1冬把低层模块岂组织成实现体某个子功能域的模块群(屈clust捎er);索2托开发一个测磁试驱动模块贩,控制测试签数据的输入绍和测试结果肌的输出;丽3贩对每个模块锣群进行测试欣;狮4纽删除测试使什用的驱动模声块,用较高书层模块把模许块群组织成听为完成更大擦功能的新模爹块群。跟从第一土步开始循环虚执行上述各圾步骤,直至表整个程序构堵造完毕。驾下图说旷明了上述过千程。首先细“点原子奴”月模块被分为她三个模块群胶,每个模块阿群引入一个宁驱动模块进徒行测试。因舟模块群1、僵模块群2中什的模块均隶臂属于模块M阿a,因此在欢驱动模块D晓1、D2去墓掉后,模块华群1与模块泊群2直接与白Ma接口,塔这时可对M皮aD3被去波掉后,M3写与模块群3趋直接接口,抢可对Mb进备行执集成测试盲,最后Ma卖、Mb和今Mc全部集看成在一起进扛行测试。嫩自底警向上集成方偿法不用桩模也块,测试用续例的设计亦奥相对简单,证但缺点是程悠序最后一个嗓模块加入时迷才具有整体旦形象。它与舅自顶向综合爽测试方法优侮缺点正好相差反。因此,相在测试软件度系统时,应述根据软件的孕特点和工程政的进度,选忌用适当的测粉试策略,有蹦时混和使用受两种策略更什为有效,上沉层模块用自迟顶向下的方旬法,下层模呆块用自底向卡上的方法。滨此外,似在综合测试扣中尤其要注毫意关键模块额,所谓关键逗模块一般都础具有下述一堆或多个特征究:兴①案对应几条需者求;疤②燕具有高层控烫制功能;蔬③之复杂、易出滚错;妹④秘有特殊的性另能要求。关磨键模块应尽疏早测试,并隆反复进行回排归测试。架确认测试的隶基本方法歉通过授综合测试之桌后,软件已匆完全组装起裕来,接口方细面的错误也咐已排除,软含件测试的最掉后一步确认倡测试即可开晨始。确认测魔试应检查软朗件能否按合无同要求进行首工作,即是哗否满足软件嗓需求说明书送中的确认标阳准。剂1.确认典测试标准吵实现软机件确认要通愧过一系列墨欧盒测试。确添认测试同样米需要制订测月试计划和过例程,测试计选划应规定测惜试的种类和吧测试进度,豪测试过程则酸定义一些特辩殊的测试用辆例,旨在说傅明软件与需薄求是否一致翻。无是计划管还是过程,钞都应该着重该考虑软件是诵否满足合同丘规定的所有躲功能和性能北,文档资料域是否完整、脊准确人机界鞋面和其他方颠面(例如,沫可移植性、亚兼容性、错茅误恢复能力点和可维护性胶等)是否令脏用户满意。崭确认测烟试的结果有梅两种可能,宪一种是功能株和性能指标始满足软件需亿求说明的要阳求,用户可冰以接受;另诵一种是软件密不满足??穿这个阶段才闲发现严重错哥误和偏差一从般很难在预剥定的工期内馅改正,因此殊必须与用户洲协商,寻求基一个妥善解丑决问题的方缘法。由2.配置洲复审始确认测振试的另一个层重要环节是靠配置复审。丹复审的目的猛在于保证软漂件配置齐全荒、分类有序溪,并且包括晓软件维护所境必须的细节征。牙3.叫α征、栋β否测试瞒事实上救,软件开发灵人员不可能狼完全预见用嫌户实际使用艰程序的情况雪。例如,用类户可能错误谋的理解命令潮,或提供一徒些奇怪的数冻据组合,亦风可能对设计炉者自认明了懂的输出信息受迷惑不解,侧等等。因此鼠,软件是否彼真正满足最笨终用户的要朗求,应由用柄户进行一系驰列薄“揪验收测试提”钳。验收测试串既可以是非晴正式的测试适,也可以有孩计划、有系烟统的测试。烈有时,验收博测试长达数协周甚至数月描,不断暴露休错误,导致贼开发延期。音一个软件产邪品,可能拥党有众多用户驻,不可能由识每个用户验绳收,此时多玩采用称为争α瑞、导β凳测试的过程颤,以期发现略那些似乎只烛有最终用户苗才能发现的竭问题。剥α堡测试是指软屠件开发公司蔽组织内部人治员模拟各类冶用户行对即睡将面市软件毅产品(称为傲α迎版本)进行闭测试,试图伏发现错误并裂修正。副α侦测试的关键卷在于尽可能鬼逼真地模拟胜实际运行环陶境和用户对轨软件产品的蒸操作并尽最庄大努力涵盖说所有可能的坐用户操作旋方式。经过档α五测试调整的规软件产品称偶为脚β崭版本。紧随揉其后的杠β桨测试是指软婶件开发公司矮组织各方面博的典型用户割在日常工作架中实际使用刺β炉版本,并要田求用户报告速异常情况、梦提出批评意她见。然后软贡件开发公司册再对捷β事版本进行改低错和完善。闹系统测试的角基本方法恐计算机软件凯是基于计算秩机系统的一钱个重要组成液部分,软件沫开发完毕后朽应与系统中串其它成分集描成在一起,系此时需要进仇行一系列系到统集成和确幕认测试。对岛这些测试的帝详细讨论已屿超出旋软件工程逗的范围,这逃些测试也不猛可能仅由软狮件开发人员脾完成。在系创统测试之前淹,软件工程拾师应完成下惯列工作:撇(1珍)为测试原软件系统的右输入信息设谦计出错处理劝通路;勉(2知)设计测枪试用例,模仓拟错误数据谁和软件界面彻可能发生的坑错误,记录沸测试结果,团为系统测试腐提供经验和界帮助;饶(3浪)参与系扎统测试的规突划和设计,芬保证软件测霜试的合理性养。居系统测涂试应该由若卖干个不同测截试组成,目莫的是充分运雅行系统,验抹证系统各部既件是否都能豪政党工作并披完成所赋予姓的任务。下缺面简单讨论鸡几类系统测昏试。谨1、恢复测宗试栗恢复测旗试主要检查幕系统的容错配能力。当系吃统出错时,锦能否在指定蚀时间间隔内愧修正错误并用重新启动系目统。恢复测召试首先要采俘用各种办法圈强迫系统失然败,然后验厅证系统是否遮能尽快恢复过。对于自动博恢复需验证甘重新初始化踪(rein颠itial赤izati泥on)、检件查点(ch慈eckpo届intin吉gmec足hanis锁ms)、数过据恢复(d愤atar万ecove叙ry)和重纯新启动(矿resta备rt)等机栽制的正确性马;对于人工延干预的恢复盆系统,还需幻估测平均修送复时间,确疮定其是否在前可接受的范留围内。程2、安全测坚试沿安全测弟试检查系统辉对非法侵入篇的防范能力资。安全测试香期间,测试偶人员假扮非差法入侵者,俱采用各种办底法试图突破轰防线。例如厅,闷①曲想方设法截馆取或破译口颂令;星②尾专门定做软鸡件破坏系统饮的保护机制还;毫③遵故意导致系中统失败,企随图趁恢复之腿机非法进入与;致④亮试图通过浏购览非保密数衰据,推导所愈需信息,等兔等。理论上封讲,只要有穴足够的时间院和资源,没张有不可进入矛的系统。因盼此系统安全巾设计的准则蹦是,使非法张侵入的代价泪超过被保护洋信息的价值植。此时非法添侵入者已无棚利可图。弹3、强度测括试贺强度测福试检查程序卡对异常情况铁的抵抗能力庭。强度测试最总是迫使系势统在异常的掉资源配置下时运行。例如暑,吧①狠当中断的正路常频率为每翻秒一至两个液时,运行每还秒产生十个突中断的测试岭用例;竹②墨定量地增长艇数据输入率陷,检查输入站子功能的反杂映能力;聋③第运行需要最玉大存储空间娱(或其他资捞源)的测试婆用例;鞠④解运行可能导销致虚存畜操作系统丙崩溃或磁盘载数据剧烈抖块动的测试用袭例,等等。或4、生性能测试白对于那阴些实时和妥嵌入式系统叔,软件部分签即使满足功须能要求,也安未必能够满站足性能要求证,虽然从单趁元测试起,帅每一测试步脾骤都包含性藏能测试,但乓只有当系统饱真正集成之沈后,在真实甚环境中才能砌全面、可靠式地测试运行拍性能系统性点能测试是为掌了完成这一工任务。性能要测试有时与慧强度测试相童结合,经常晓需要其他软化硬件的配套兔支持。章五、软件测印试的类型俱常见的软件痕测试类型有母:歇浊BVT喂(Buil泳dVer嫩ifica拆tion琴Test)夫逝BVT是走在所有开发术工程师都已养经检入自己普的代码,项猪目组编译生亏成当天的版桥本之后进行版,主要目的虚是验证最新赔生成的软件农版本在功能顾上是否完整翠,主要的软令件特性是否瑞正确。如无情大的问题,今就可以进行抽相应的功能虹测试。BV叮T优点是时们间短,验证巷了软件的基扬本功能。缺剑点是该种测暗试的覆盖率孝很低。因为圾运行时间短显,不可能把植所有的情况袋都测试到。袍命Scen第ario幕Tests捡(基于用户解实际应用场祖景的测试)训钓在做BV眠T、功能测脉试的时候,秀可能测试主责要集中在某岸个模块,或膊比较分离的牧功能上。当予用户来使用猛这个应用程艰序的时候,丝各个模块是系作为一个整铲体来使用的而,那么在做微测试的时候竖,就需要模妹仿用户这样豪一个真实的孔使用环境,弯即用户会有豆哪些用法,斗会用这个应燃用程序做哪介些事情,操卸作会是一个老怎样的流程躲。加了这些泡测试用例后子,再与BV术T、功能测画试配合,就弄能使软件整鸦体都能符合嫂用户使用的削要求。Sc弓enari捐oTes怜ts优点是疲关注了用户流的需求,缺与点是有时候资难以真正模石仿用户真实维的使用情况昨。绒番Smok驰eTes筋t杆你在测试中采发现问题,朱找到了一个择Bug,然浮后开发人员直会来修复这蜂个Bug。浪这时想知道圈这次修复是烧否真的解决据了程序的B处ug,或者荡是否会对其努它模块造成封影响,就需撇要针对此问罢题进行专门领测试,这个里过程就被称油为Smok雾eTes药t。在很多盼情况下,做确Smoke旨Test绩是开发人员镇在试图解决片一个问题的暴时候,造成或了其它功能璃模块一系列丘的连锁反应许,原因可能夸是只集中考松虑了一开始耳的那个问题半,而忽略其瞧它的问题,晚这就可能引致起了新的B缸ug。Sm沫okeT刃est优点辜是节省测试练时间,防止庆build但失败。缺点痛是覆盖率还巷是比较低。拉腊此外,A垦pplic杜ation检Comp黎atibi趟lity陪Test糖(兼容性测喇试),主要寺目的是为了吗兼容第三方卧软件,确保父第三方软件令能正常运行瞒,用户不受挂影响。Ac友cessi努bilit执yTes线t(软件适亮用性测试)牲,是确保软疾件对于某些讽有残疾的人付士也能正常衰的使用,但谦优先级比较穴低。其它的途测试还有F华uncti即onal颂Test(伶功能测试)闹、Secu斥rity捷Test(巨安全性测试探)、Str农essT斧est(糖压力测试虏)、Per电forma染nceT统est(性纯能测试)、剖Regre大ssion侮Test碌(回归测试注)、Set啊up/Up咱grade初Test领(安?支持榴工具魔脱一些受软原件开发人员悟欢迎的软件签测试工具为何软件测试提屋供了强有力滑的支持。本唇文将介绍美塑国委Ratio均nal巾公司的著名伐套装软件饲SQA盯和Pure邮Atri附a公司极具鼓特色的Pu中rify。竭骄孙SQAS植uiteS亏QA直接支妥持对客户/庙服务器应用论软件的测试谁,它的一个仗重要特点是黎可以自动驱饲动被测程序陪的运行。S煌QA可以自练动记录和重拳放程序执行图过程,从而刘实现了对测蚁试进行"复需查"的自动味化。先部蜻由于测试锅是一个需要泻反复进行的然过程,常常直要数十次甚佣至数百次地箭重复。因此毙,这一特性锡大大地提高共了软件"再侨测试"(R边e-Tes慰t)和"回鲁归测试"(循Regre疲ssion手)的自动化灭程度,把测探试人员从繁扫杂的、重复曲性的手工测巡试中解脱出扭来,从而显董著地提高软考件测试效率毛。雪跌除了这个抹最基本的自示动录放功能全外,它还提庙供了一系列照的辅助支持辞功能,比如臂,陶监·晃被录制的溪程序执行过暗程可以被自解动转换成具弃有良好可读抖性的高级语谢言程序,从含而使这个测者试驱动程序味可以由测试晒人员根据测抚试需要进行努必要的修改俗,甚至完全伐用手工方式暴编制。蹄川·犯自动记录和睡分析比较测详试的执行结归果。不论是恢简单的正文禾方式的输出竖结果,还是痒任意的图表丹、声音、动浪画、图形用乐户界面(G偏UI)中的肌任一娱构件责,都可以根消据测试人员绪的指定被自海动记录在测县试结果库中华,并可对两军次测试的结梯果自动地进劈行比较,指俊出其差异部闷分。此项功定能无疑对"乖自动查找错初误"很有帮悬助。英追·乘调节和设定鱼事件的发生振时间和速度量。饶析·耀基本的测试跨库管理功能恢。捕田此外,S笔QA还支持旧软件测试人设员进行以下泊工作:外号·约制定测试计遣划和测试大冷纲,并将这猴些文档按照薪自然的树状射结构谱分层律地管理起来交,并据此控匙制和驱动整抢个测试过程摩。置殿·肆不仅能够自爆动记录各类蜡测试结果,久而且对其进状行修改,从拦而使得测试浑人员可以在押程序运行结鸟果尚有许多强错误的情况留下,通过对卖所记录下的筐结果做适当化修正来获得季理想的"期只望结果"挥,为测试结汤果的自动比闭较奠定基础晒。趁爹·完测试问题报量告的记录与妙管理。远题总之,S肝QASu诵ite提供粉了一个比较另完整的测试射平台,以支浅持软件测试茎的各种基本术活动,包括跨测试计划与先测试大纲的首制定、回归铜测试的自动洪化、测试结胸果的分析比万较、软件问劫题报告的生慕成与自动分励发和控制等蔽。对于许多恳应用软件的宵开发无疑是凤个有力的测绢试支持工具疲。砌宣坟Purif优y是原Pu冬reAtr桃ia公司(叉现已经与美扬国Rati讯onal公平司合并,改盼名为美国R积ation轮al公司)尽于90年代父初率先推出掀的专门用于研检测程序中野种种内存使棒用错误的机软件工具翻。几乎所有域使用过C语丈言开发软件签的程序员都歪会有这样的杨体会,C语寸言中使用极惯为灵活的指抱针给程序员间带来了很大忽便利,但同所时也制造了免许多的麻烦务。由于指针臭使用不当而叮引起的错误米通常是最难名发现的,同薄时也是最难完定位的一类页错误。而P卷urify恩对多种常见柄的内存使用乓错误的检错备能力和准确路的定位,受偷到广大软件农开发人员的苏青睐。笛城殿Purif舞y可以自动统识别出二十愈多种内存使言用错误,包祝括茧狂·疑未初始化的竞局部变量脉上·泡未申请的内颗存内信·铜使用已释放役的内存悄惕·限数组越界名规·叠内存丢失匠视·毫文件描述问防题砌读·际栈溢出问题腿摸·挤栈结构边界抓错误等唱柏在下面的蓬例子中,暗谋藏着两个内哈存使用错误浆。第一行为烈指针数组p斗p申请的空阴间尺寸不对妄。这类错误煎往往不易发术现,因为在棕C语言中,数一些"轻微墙"的内存越求界可能被系涛统所容忍。产但这往往是嘱导致更严重撕错误的根源搞。例如,可张能破坏其它码数据区等。偶最后一行的咱错误是在释瞧放pp之营前没有释放距赋予它的字镜符串空间,反从而把它们撤"丢失"了组。这类错误衔犹如慢性自色杀,它会逐巩渐消耗掉内值存,降低系朱统的运行效箭率,直到完睁全崩溃。而穗真正的问题钱在于,这些颂程序中的"胆恶性肿瘤"诊用常规的测跃试手段和调啄试工具是极惊难发现和加吨以定位的。燃Purif倚y则在此充喷分显示了它见的强大功效很,所到之处偶,即对所测挤试过的情况湖,上述各种轧常见的内存亡错误都可以符被一一揭露汤出来,并且躬准确地指出好错误的类型排和位置。从野而大大地提蚁高了测试和罢纠错的效率葛,提高了软洲件的可靠性尖。把琴…除/"to卵get1站0wor惊dsan丘dpri布ntth躁emou肚t"/差尤if(!宴(pp=(搜char*纪*)mal霉loc(1辫0))){粥搭/*Si洽zesh酒ould鱼be10花*size晚of(ch酷ar*)*纸/筹墓prin脱tf("O待utof孔memo皮ry.\n裳");增校exit套(-1);}厕席for(套i=源0;i<1白0;i)筹{镰芬scan叠f("%s强",buf井fer);恢奇if(!罩(pp【i响】=(ch惊ar*)m蜜alloc挡(strl嘱en(bu圆ffer)豪1)))闲{贷伸prin种t("Ou延tof售Memor福y.\n拆");租去exit过(-1);}拌泽strc驶py(pp光【i】,b铲uffer汗);销乖prin锯tf(pp术【i】);}悬司free存(pp);歌/*all灿the扁strin荡gspo妄inted病byi填tare恢lost爹!*/………告刃翼今年以来箭,原Pur宣eAtri眨a公司陆续爬推出了其系缎列产品?/相FONT>钻Pure,互包括支持内顾存检测的P荣urify衬,支持路容径覆盖的P喊ureCo讯verag品e,支持多侵线程辣应用程序性扰能测试的Q坏uanti移fy,以及仁用以提高测膨试期间连接号编译被测程勾序效率的P棵ureLi摧nk等。P恰ure系列狡现已支持C眠、C、F堵ORTRA笔N语言,以巨及UNIX迷和Wind研owNT抛等操作系统册,如Sun径伐OS葛、Sola轮ris2续.3,HP缘-UX,W趴indow睡sNT攀Serve博r以及IB垄MA/唤X等。荣张结束语顽另份充分认识软租件测试的重楼要性和复杂诸性,合理地司选择测试方借法,有效地遣组织测试人把员和安排测班试任务,并列且尽量使用凶软件测试工剩具增强软件修测试的自动雄化程度,无谱疑可以帮助藏软件开发和经测试人员大未大提高测试那效率和软件狮的质量。幻七、软件测叮试的基本过誉程汪覆软件测试咽是一个极为璃复杂的过程踩。如图一所梯示,一个规氏范化的软件已测试过程通室常须包括以莲下基本的测沫试活动。畏桑·帖拟定软件测爪试计划绘坊·句编制软件测请试大纲较丢·闲设计和生成拐测试用例幸肆·蜘实施测试垂毕·剖生成软件问丢题报告宪衔伪对整个测试值过程进行有戴效的管理实吹际上,软件葱测试过程与续??早在需卖求分析阶段奋即应开始制糟定,其它相修关工作,包灰括测试大纲池的制定、测张试数据的生正成、测试工茂具的选择和签开发等也应淹在测试阶段润之前进行。次充分的准备非工作可以有骑效地克服测咱试的盲目性串,缩短测试帖周期,提高荷测试效率,供并且起到测壁试文档与开快发文档互查熊的作用。厌筹此外,软侨件测试的实田施阶段是由无一系列的测仙试周期(T纹estC万ycle)杯组成的。在愤每个测试周脏期中,软件签测试工程师概将依据预先锈编制好的测气试大纲和准拔备好的测试脑用例,对被欣测软件进行苦完整的测试原。测试与纠抖错通常是反撞复交替进行监的。当使用欣专业测试人剖员时,测试叙与纠错甚至毅是平行进行云的,从而压棚缩总的开发逐时间。更重累要的是,由泥于专业测试爱人员丰富的毕测试经验、抚所采用的系树统化的测试称方法、全时学的投入,特召别是独立于句开发人员的燥思维,使得允他们能够更爆有效地发现月许多单靠开加发人员很难揭发现的错误青和问题。识椒软件测试庸大纲是软件塔测试的依据净。它明确详愉尽地规定了仓在测试中针巷对系统的每庸一项功能或亚特性所必须毯完成的基本逝测试项目和票测试完成的征标准。无论扎是自动测试饭还是手动测割试,都必须肉满足测试大俯纲的要求。肿意一般而言蛋,测试用例斗是指为实施村一次测试而画向被测系统演提供的输入钱数据、操作兰或各种环境看设置。测试垮用例控制着晌软件测试的筋执行过程,铲它是对测试才大纲中每个绒测试项目的响进一步实例跪化。已有许铜多著名的论葱著总结了设每计测试用例睡的各种规则落和策略。从剪工程实践的系角度讲有几炒条基本准则肃:炊办1.测试泥用例的代表奇性:能够代猜表各种合理厚和不合理的且、合法的和即非法的、边泛界和越界的势,以及极限摘的输入数据舟、操作和环泛境设置等;族减2.测试捞结果的可判坡定性:即测票试执行结果霜的正确性是党可判定的或越可评估的;伞申3.测试畅结果的可再冲现性:即对留同样的测试系用例,系统蝴的执行结果励应当是相同村的。愁八、制定成避功的测试计坊划霜喇“歌工欲善其事多,必先利其妹器巩”垒。专业的测爸试必须以一得个好的测试老计划作为基浮础。尽管测公试的每一个暴步骤都是独貌立的,但是忆必定要有一烦个起到仰框架字结构作用的脸测试计划。活测试的计划具应该作为测卧试的起始步寒骤和重要环聋节。一个测线试计划应包友括:产品基秃本情况调研叨、测试需求员说明、测试蜘策略和记录作、测试资源尽配置、计划险表、问题跟跑踪报告、测积试计划的评慰审、结果等贱等。压虫产品基本池情况调研:暮溉这部分应得包括产品的赏一些基本情秋况介绍,例准如:产品的脚运行平台和已应用的领域板,产品的特遮点和主要的强功能模块,膜产品的特点燃等。对于大曲的测试项目钥,还要包括锐测试的目的鸡和侧重点。须谣具体的要掀点有:顿服目的:重会点描述如何具使测试建立仅在客观的基棋础上,定义利测试的策略蚊,测试的配有置,粗略首的估计测试碎大致需要的戏周期和最终死测试报告递举交的时间。脂嗽浪变更:说明野有可能会导惠致测试计划假变更的事件羽。包括测试五工具改进了播,测试的环缠境改变了,任或者是添加旺了新的功能锦。傍陆技术结构傍:可以借助竟画图,将要小测试的软件难划分成几个牧组成部分,撇规划成一个煌适用于测试困的完整的系绒统,包括数宾据是如何存灾储的,如何岂传递的(数辱据流图),招每一个部分登的测试是要倾达到什么样倦的目的。每钱一个部分是爷怎么实现数破据更新的。唐还有就是常卖规性的技术改要求,比如锣运行平台、甲需要什么样茫的数据库等饿等。遵盾圆产品规格:坛就是制造商竿和产品版本些号的说明。圈下渗测试范围:鲁简单的描述文如何搭建测价试平台以及辅测试的潜在幅的风险。陪句反项目信息:秒说明要测试起的项目的相敌关资料,如戚:用户文档冬,产品描述完,主要功能恰的举例说明婆。兄盘测试需求猛说明:笨列这一部分候要列出所有防要测试的功新能项。凡是俗没有出现在廊这个清单里铅的功能项都西排除在测试荐的范围之外厨。万一有一典天你在一个奇没有测试的广部分里发现泥了一个问题民,你应该很焦高兴你有这搁个记录在案松的文档,可养以证明你测泰了什么没测照什么。具体炉要点有:沸尿钟功能的测试沙:理论上是识测试是要覆做盖所有的功旷能项,例如搁:在数据库馒中添加、编边辑、删除记草录等等,这墓会是一个浩困大的工程,菌但是有利于动测试的完整病性。寺鲁设计的测或试:对于一密些用户界面况、菜单的结朴构还有窗体席的设计是否痰合理等的测苏试。管延整体考虑坐:这部分测面试需求要考养虑到数据流滋从软件中的名一个模块流岸到另一个模奏块的过程中咏的正确性。姜拳测试的策沫略和记录:停歉这是整个屠测试计划的寇重点所在,已要描述如何修公正客观地亚开展测试,碑要考虑:模葱块、功能、辞整体、系统毒、版本、压乞力、性能、戴配置和安装附等各个因素请的影响。要丘尽可能的考经虑到细节,扣越详细越好屡,并制作测朱试记录文档世的模板,为召即将开始的捏测试做准备叮,测试记录社重要包括的害部分具体说墨明如下:毅谜公正性声芽明:要对测闭试的公正性孙、遵照的标湖准做一个说镜明,证明测竭试是客观的悬,整体上,替软件功能要意满足需求,骄实现正确,耳和用户文档历的描述保持财一致。偿扫筝测试案例:备描述测试案衰例是什么样垃的,采用了客什么工具,旅工具的来源威是什么,如郊何执行的,葱用了什么样舱的数据。测仅试的记录中得要为将来的但回归测试留虽有余地,当均然,也要考危虑同时安装叫的别的软件僚对正在测试环的软件会造将成的影响。辆旱特殊考虑色:有的时候千,针对一些季外界环境的蝴影响,要对势软件进行一恰些特殊方面绘的测试。恳鲁经验判断虚:对以往的澡测试中,经件常出现的问尼题加以考虑院。肚亭设想:采炎取一些发散博性的思维,搂往往能帮助泉你找的测试琴的新途径。英哄鸡测试资源配藏置:枣骂项目资源史计划:制定盼一个项目资缎源计划,包扯含的是每一续个阶段的任服务、所需要宿的资源,当遇发生类似到裕了使用期限慢或者资源共温享的事情的误时候,要更睛新这个计划沈。调丙计划表:舅通测试的计塑划表可以做递成一个多个述项目通用的含形式,根据斤大致的时间青估计来制作味,操作流程币要以软件测腰试的常规周龄期作为参考海,也可以是偿根据什么时谱候应该测试蚂哪一个模块辰来制定。偿丢问题跟踪秆报告:慈凳在测试的难计划阶段,扮我们应该明载确如何准备昏去做一个问警题报告以及本如何去界定规一个问题的防性质,问题争报告要包括蜻问题的发现掠者和修改者局、问题发生涉的频率、用屋了什么样的璃测试案例测帮出该问题的增,以及明确米问题产生时拔的测试环境创。喇飘统问题描述居尽可能是定动量的,分门唱别类的列举咱,问题有几钟种:断励1、严重拖问题:严重淹问题意味着忘功能不可用警,或者是权评限限制方面酸的失误等等顺,也可能是虏某个地方的汤改变造成了辽别的地方的阵问题。弟慎2、一般莫问题:功能开没有按设计节要求实现或雷者是一些界备面交互的实谅现不正确。穗稍3、建议卸问题:功能律运行得不象盛要求的那么瞧快,或者不钞符合某些约表定俗成的习歼惯,但不影堂响系统的性尊能,界面先条是错误,格期式不对,含虹义模糊混淆刚的提示信息规等等。岂奥测试计划粥的评审:氏避又叫测试闹规范的评审欠,在测试真窜正实施开展代之前必须要集认真负责的伟检查一遍,悬获得整个测味试部门人员冒的认同,包泛括部门的负府责人的同意爽和签字。罪独结果:微纤计划并不始是到这里就观结束了,在扭最后测试结罩果的评审中晋,必须要严衣格验证计划丽和实际的执浓行是不是有茅偏差,体现秀在最终报告熟的内容是否谎和测试的计破划保持一致丘,然后,就块可以开始着热手制作下一累个测试计划稻了。食九、报告软样件测试错误闷的规范骗倦谦姻报告软件阶测试错误的馋目的是为了稻保证修复错胖误的人员可脊以重复报告磁的错误,从杀而有利于分王析错误产生扮的原因,定拍位错误,然凉后修正之。让因此,报告书软件测试错较误的基本要邻求是准确、床简洁、完整缘、规范。需缺要掌握的报警告技术归纳涝如下。才1.叨描述(返Descr废iptio积n),简洁广、准确,完纠整,揭示错节误实质,记老录缺陷或错预误出现的位友置柱描述要略准确反映错男误的本质内册容,简短明制了。为了便钳于在软件错题误管理数据蚊库中寻找制猛定的测试错盐误,包含错助误发生时的简用户界面(苹UI)是个爷良好的习惯聋。例如记录畅对话框的标磨题、菜单、东按钮等控件让的名称。勒2.仓明确指明错倦误类型:布灶局、翻译、朽功能、双字霞节钥根据错误的绳现象,总结菜判断错误的顽类型。例如隐,即布局错供误、翻译错锅误、功能错挪误、双字节像错误,这是挎最常见的缺毒陷或错误类汇型,其他形佩式的缺陷或收错误也从属滚于其中某种市形式。唇3.鉴短行之间使典用自动数字董序号,使用正相同的字体预、字号、行冶间距酸短行之暗间使用自动盛数字序号,碧使用相同的峰字体、字号峡、行间距,猾可以保证各师条记录格式侦一致,做到深规范专业。忙税4.龄UI要加引归号,可以单键引号,推荐弃使用双引号何叹UI加篇引号,可以懂容易区分U径I与普通文刑本,便于分农辨、定位缺墙陷或错误。伪姿5.倡每一个步骤泼尽量只记录泥一个操作词保证简栽洁、条理井且然,容易重拦复操作步骤纱。借6.籍确认步骤完办整,准确,作简短锋保证快尝速准确的重球复错误,挥“称完整钉”链即没有缺漏买,锄“搭准确帖”购即步骤正确帐,汪“耽简短乒”寿即没有多余剪的步骤。石7.怜根据缺陷或订错误类型,沸选择图象捕葛捉的方式冶为了直荒观的观察缺然陷或错误现愈象,通常需胶要附加缺陷崭或错误出现忆的界面,以笨位图的形式宜作为附件附罢着在记录的阅“盒附件虑”笛部分。为了令节省空间,举又能真实反贝映缺陷或错晨误本质,可录以捕捉缺陷迅或错误产生睬时的全屏幕习,活动窗口射和局部区域戴。为了迅速萌定位、修正富缺陷或错误退位置,通常狐要求附加中服英文对照图鞠。朵8.有附加必要的披特殊文档和络个人建议和索注解茂如果打筑开某个特殊劝的文档而产甜生的缺陷或裹错误,则必旁须附加该文渠档,从而可农以迅速再现孔缺陷或错误遮。有时,为米了使缺陷或关错误修正者棋进一步明确屑缺陷或错误美的表现,可匙以附加个人新的修改建议安或注解。栽9.战检查拼写和博语法错误章在提交伞每条缺陷或伍错误之前,蜓检查拼写和运语法,确保慌内容正确,析正确的描述陵错误。榆10.起尽量使用丛业界惯用的皱表达术语和弟表达方法该使用业楚界惯用的表勾达术语和表右达方法,保么证表达准确如,体现专业到化。疮11.爆通用UI植要统一、准材确苏错误报搅告的UI要坟与测试的软率件UI保持新一致,便于吨查找定位。毁垒12.亭尽量使用恩短语和短句朗,避免复杂垒句型句式恶软件错落误管理数据负库的目的是处便于定位错陕误,因此,兼要求客观的挥描述操作步义骤,不需要徒修饰性的词鉴汇和复杂的青句型,增强碍可读性。库13.粗每条错误氏报告只包括饶一个错误济每条错单误报告只包狱括一个错误奖,可以使错组误修正者迅伴速定位一个姨错误,集中抵精力每次只担修正一个错画误。校验者腥每次只校验板一个错误是月否已经正确嫌修正。元以上概夺括了报告测裹试错误的规框范要求,随呼着软件的测抹试要求不同鞭,测试者经误过长期测试扮,积累了相航应的测试经余验,将会逐笑渐养成良好浙的专业习惯樱,不断补充瓦新的规范书肌写要求。此把外,经常阅纽读、学习高残级测试工程铲师的测试错该误报告,结载合自己以前页的测试错误棵报告进行对河比和思考,还可以不断提产高技巧。蛋团资湖十、软件测作试人员结构辟组成分析搭眠软件测试届工程师是软寿件行业中一警种即年轻又快古老的职业稠,进入二十带一世纪以来虾,随着中国奇加入WTO寿以后,从事横这项职业的失人也越来越牺多。一个公煌司在组建一插个测试队伍敢的时候如何除分配人员结站构,从而使谁公司软件测处试工作水平懒得到提高,滨是大家比较睬关注的问题情。本人依照疯自己的经验希提出自己的绞观点:芦我们首先来独看一下测试音人员的纵向元结构失1,测试经攻理钻测试经理主扭要负责测试奶队伍的内部之管理以及与乔其他外部人讽员,客户的值交流,详细温说来主要包熟括进度管理滨,夫风险管理详,资金管理点,人力资源刘管理,交流嘴管理等等,刺测试经理需役要具有项目挥经理的知识战和技能。同饿时测试工作肤开始前项目横经理需要书默写《测试计松划书》,测疗试结束需要表书写《测试溜总结报告》监2,测试文姐档审核师东测试文档审摆核师主要负肢责前置测试此,包括在需血求期与设计片期间产生的块文档进行审随核,比如《袭业务建模焦书》,《需雄求规格说明束书》,《概攻要设计书》际,《详细设革计书》等等宪。审核需要送进行书写审赞核报告。当继文档确定后埋,需要整理烫文档报告,根并且反映介货绍给测试设泻计师。芦3,测试设舍计师烦测试设计师按主要根据需雹求期与设计梨期间产生的餐文档设计各壁个测试阶段摸的测试用例风。含(往往测试虎文档审核师耗,测试设计趟师可以有相挣同的一组人蒜来完成)神4,测试蠢工程师摸测试工程师脾按照测试用蛾例,来完成槐测试工作。饥但是测试人邀员应该有哪驻些人来组成甚呢?也就是纹测试人员的娱横向组成,明让我们再来亡讨论讨论:纺1,需要忆具有一定开灰发经验的计椅算机专业人互员窗由于具有一上定开发经验吧的计算机专腾业人员即懂牌得计算机的崇基本理论,味又有一定的热开发经验。朽所以对于软里件中哪里容蛮易出错,哪拉里不容易出另错他们了如仙指掌;他们蛾可以分析程之序的性能,泽软件性能差熊是否是占有茶内存空间太词多,或者是地占有CPU杜时间太多引历起的,还是斤其他原因,谨他们往往是从专家。尤其出是进行非功御能测试的时桨候,他们可灿以更好的搭船建系统测试备平台。这种溪人员应该占雨测试队伍中颤一半以上。墨2,需要画具有本软件唉业务经验的晚人员游测试队伍中许需要有这样纳的人员的目范的在于,这小些人员由于胃对业务非常旺熟悉,软件明质量的前提惠又是满足用亦户的需求。烤专业业务知桌识是计算机董专业人员达总不到的,所授以这方面人凭才可以利用溉它们的业务膝知识和专业础水平,参与段系统需求期阁间的文当审诱核,可以发祝现软件中存毁在的业务性要错误。比如吩专业用语不陈准确,业务球流程不规范括等等,这种跳人才对于专户业性比较强容的软件测试亿工作尤为重假要,比如税糖务,法律,澡艺术,CA俭D,甘CAM警…衰3,只需闹要会操作计捕算机的人员悦由于软件一垂旦卖出去之亲后,使用软淘件的人各种餐各样,各种梳各样的人带荷来各种各样惠的操作情况鉴,请一大部己分人员在软土件测试工作秩后期进行测姓试工作是十傅分重要的,负他们往往会智发现专业测郑试人员测试露不出的东西辽和一些希奇谎古怪的错误箩。这就是软指件测试学中袄所谓的猴子兆测试法。卖对于一个软寇件公司来说声,并不是说佛所有的测试任队伍都需要略这三种人员糖,实际中可顾以一组人代永替多个角色飘,但是要遵凯循以下原则售:梅1,对于业禁务不是很专听业的软件,宗具有一定开绍发经验的计和算机专业人者员与具有本蚊软件业务经道验的人员可虎以合并;哑2,只需要纪会操作计算足机的人员,宽可以由公司葬行政人员来嘴充当。熔十一、软件锹测试的现实舞和理想爽火披“咸从我在微软备工作的经历犬来看,软件返测试绝对不饲是开发活动跳完成后的收握尾工作,很宗多大型的开姿发项目,测干试会占据项务目周期一半像以上的时间现。以IE4蚀.0为例,他代码开发时鱼间为6个月天,而稳定程紫序花去了8亡个月的时间芳。刻”耍前微软亚洲尺研究院博士传、软件测试蚂专家陈宏刚珠谈道。从投换入的资金和秀人力物力来谨看,测试、申使产品稳定拦和修改花去农的时间可能绸占到80%乳。廉还处在婴儿米期玩软件测多试之所以发左展相对缓慢丈,一个原因扇是做研究和机做开发的人找交流的机会朵相对少。只袭有做大型系响统工程的人卸才会对测试骄提出较高的垃要求,重要他性才能显现暗出来,而做扔研究和教学径的人没有大仔型系统工程唯案例,所以题造成了测试资理论研究的春发展缺乏充由实的基础材迎料。真正做腿大型系统开影发的工程师乔,又没有时捡间将第一手盐的测试经验麦变成系统的欺理论。放“盆在美国,佛良罗里达州和挥华盛顿州分岭别有一所大晃学开设软件钱测试课程,刘其他有正规但课程的学校申不是很多。尿软件测试正抹停留在没有纸学科系统、寇没有系统教挎育的阶段。萝虽然已经有此学校开设了翁这门课程,父但是使用的骡教学案例,驴多半是单机渐软件,还谈忍不上系统的规理论。茫”外陈宏刚博士碑介绍说。观高素质催的快“厅杂牌军岩”但由于企辈业对测试人转才有着迫切敲的需要,因疗此,只好自吸??品制定骆测试规范,抵开设一些课右程,通过讲斯座的形式对每测试技术人塘员进行培训握,但是也还考未形成系统缝的理论。鱼即使在僻微软,测试舞队伍是典型走的咸“辩杂牌军男”鬼,没有科班包,没有统一驶的专业,更者多的是具有柏丰富的经验债和不同行业歉背景的员工千,例如具有美语言学、数队学、物理学南、计算机、衡工程、管理拣等学科等背森景的员工。漫但是,这不粒是说随便什谎么人都可以榨做测试工作横,陈宏刚工奋作过的那个遗试验室,2元0个人中有丈7个博士。痕可见,虽然役测试不是一啄个专门的学壤科,但是,筐这个部门对蝇于一个成熟贩的软件企业稀又是至关重溜要的部门。话怪认识需截再提高龄IBM诵和微软公司惹属于领先的羡大公司,对堂测试的认识拜也经历了一贩个过程。开孩始的时候,音也是开发人谨员兼职做测张试,就像今缩天国内一些员较小规模的彼软件企业。跳但是,后来蔑的结果表明寒,花在软件惯修补上面的拼费用太高,政以至于远远察超出了所能川够允许的范注围。这个时军候,增加测养试队伍的规杆模,提高测敌试队伍的素衡质,提高测删试队伍的待惯遇和受重视岗的程度是更执加划算的。胞御还有一耗个问题是,向很多工程师浇不愿意做测饶试,认为是月一种打下手叼的工作,没砖有前途,这义也是国内比恰较大软件企努业面临的问种题。所以,萝企业从上到旱下普遍自觉遇和不自觉地芹只重视技术与,不重视质蝴量,后果是廊产品在市场搁上竞争力不锅高,产品售英后维护和服点务费用偏高誉。苏巨大反转差昆微软的普开发工程师蛮与测试工程立师的比例是戚1键∶态2,国内一亡般公司是6突∶柱1。而且,狡致命的问题福是没有哪个望机构专门培述养测试工程日师。这个矛象盾提示我们渐,在中国不连能等到实际昨的需求和人馋力资源矛盾旷十分尖锐的犬时候,再谈批培养问题;予也不能等到吊产品质量成开为产业阻碍凭的时候再来遭提高软件业决的测试水平扒。测试工作慧不能靠手工发劳动来完成薄,更多的情午况是要使用死工具软件和蒙编写测试程怜序来完成,梢培养全面的总测试专业人托才是项任重租道远的工作偏。亮十二、软件漠测试的新模蚕型岔选埋通常情况杀下,一个软养件模型说明贴的内容主要唤包括,在测扑试过程中你君应该考虑到跑哪些问题,馋如何对测试掠进行计划,蔬测试要达到没什么目标,粉什么时候开惑始,在测试趴中你要用到观哪些信息资页源。一个好婶的模型可以宜引导你对问劣题进行思考乓,而不好的毙模型则只能碰使你误入歧飞途。钥较这里我要充宣称的是,封目前的大多蒸数软件测试脚模型都是不得好的模型。热这是因为这但些测试模型默仅仅是屑软件开发模受型李的一些装饰从和补充而已抵。序婶人们一直丈在苦苦寻找圣软件开发的径模型,在创斥建了新的模廉型后,就把境测试作为一乱个阶段放在亡模型的后面胶部分。因此关测试总被作价为一种事后摄行为,测试耽总是被开发常所驱动。总值的来说,我股们是在检测鲁他们的完成扭品。但是,素作为事后处古理的测试,迷其驱动方式俘是不正确的剃。实际上它惊显而易见地叛和开发过程佳中各种行为惩之间有关,扇测试没有起专到应有的平聋衡作用。这种样的测试只屯是检测了开初发人员做了俭什么,而并燕没有检测到盈他们是否按寸照规则做了此什么,这样刚的做法割裂泳了本该紧密丽联系的行为绒,剩下的只浑有那些匆忙画而草率的想抱法所带来的惨伤害。谣全而这样做互的结果就是水效果很差的毯、效率很低捐的测试。效却果很差的测纠试将导致很揉多bug没奖有被发现,学而效率很低价的测试所浪杏费的是成本萌。斑欺在本文中熟,我要做2甘件事,其一禾,我要否定糖一个不好的轿模型,即V侧模型。我希速望通过论述途来表明,歪“魄单元测试市”融和宰“燥集成测试照”确这2个词汇越可以从我们竿的词汇表中学取消了。其委二,我将描终述一个更好贵的模型。不嫁过首先我认泳为,要真正久拥有一个充去分合理的模纳型还为时尚雹早。我仅仅括是描述了一弊些新模型应坐该符合的重演要的要求。笑这些要求将规在本文末尾鼻处列举。慌愉V模型有竟什么问题呢壮?征彻在本文中觉我要把V模享型作为不好观的模型的典辉型来进行分效析。我选择碰V模型作为它分析的典型炉是因为V模斥型是最广为蜘人知的测试御模型。弃牌最典型的柿V模型版本丧一般会在其慌开始部分对竞软件开发过海程进行描述熔,如下图所潜示:愉顶(图1-匹-V模型的哑各级开发阶竭段)考托这是古老尤的瀑布模型包。作为开发唱模型,它有移很多问题,为不过这里不辨作讨论。尽肤管它的各种湿状态是我们舒接着要讨论予的大家最熟瓣悉的V模型捞的基础。我赶的批评意见扑同时也针对忆其它的装饰横在一些更好魄的开发模型隐之上的测试还模型,例如贿螺旋模型【烫Boehm独88】。倘赢在V模型恰中,测试过王程被加在开彼发过程的后郊半部分,如述下图所示:机历(图2-棵-V模型示凭意图)咏滥单元测试峡所检测的是洽,代码的开咱发是否符合望详细设计的秤要求。集成武测试所检测询的是,此前题测试过的各数组成部分是避否能完好地脊结合到一起况。系统测试遍所检测的是平,已集成在史一起的产品督是否符合系摔统规格说明姑书的要求。枪而验收测试棋则检测产品乔是否符合最毙终用户的需夸求。便乏对于测试气设计,显而伍易见的是,江V模型的用弃户往往会把质执行测试与狂测试设计分腔开对待。在裂开发文档准副备就绪后,萍就可以开始切进行相关的技测试设计。访如下图所示樱,相应的测旧试设计覆盖将在了相关的膀开发过程之垦上:奸日(图3-竞-将测试设牛计覆盖了开兽发过程后的刑V模型)敞郊V模型有修着很吸引人雁的对称外形详,并且把很乱多人都带入尼了歧途。本晃文将集中讨料论它在单元忧测试和集成杂测试中引起办的问题。便拘为了说明孩的方便,这若里专门制作熄了以下图片吃,图中包括再一个单独的写单元,以及弟一个单元组缩,我称之为围子系统胶(subs错ystem厌)。锁盯(图4-炕-一个假想型的子系统)乌誉对于一个洋单元应该多寇大才最为合景适的问题,暖已经有过很感多的讨论,行究竟一个单辟元仅仅是一购个函数,一雁个类,还是椒相关的类的栗集合?这些瑞讨论并不影栽响我在这里继所要阐述的册观点。我们今权且认为一添个单元就是长一个具有最百小程度的代寇码块,开发仅人员可以对愚进行独立地触讨论。追础V模型认深为人们首先径应该对每一惭个单元进行养测试。当子圆系统中所有激的单元都已交经测试完毕肆,它们将被陵集中到一起头进行测试,拥以验证它们族是否可以构窗成一个可运巩行的整体。话类那么,如笑何针对单元佛进行测试呢亦?我们会查贿看在详细设剧计中对接口第的定义,或上者查看源代镰码,或者同船时对两者进与行查看,找阶出符合某些久测试设计中雪的有关准则划的输入数据枪来进行输入迈,然后检查川结果,看其牧是否正确。恒由于各单元龟一般来说不翅能独立地运蝴行,所以我绸们不得不另祝外设计桩模转块(Stu识b)和驱动络模块(Dr姑iver)忙,如下图所煌示。枣议(图5:耗单元及其外滤部的驱动模委块和桩模块岛)竟球图中的箭特头代表了测池试的执行轨耍迹。这就是餐大多数人所稀说的奉“券单元测试饺”败。我认为这蹄样的方法有评时候是一种斯不好的方法谎。摄玉同样的输雨入也可以有保同一子系统乖中的其它单断元来提供,舰这样,其它属的单元既扮肃演了桩模块尽,又扮演了多驱动模块。顺如下图所示饲:喊芳(图6-换-子系统内讯部各单元间躁的测试执行身轨迹)愈概到底选择筒哪一种方法欠,这需要一退种折衷和权草衡。设计桩夫模块和驱动畏模块要付出算多少代价?少这些模块如过何进行维护贷?子系统是控否会由此而刮掩盖了一些鸽故障?在整鄙个子系统范锡围内进行排排错的困难程隙度有多大?上如果我们的旧测试直到集铜成测试时才留真正开始,蓬那么一些b炊ug可能较唉晚才被发现虾。由此造成典的代价同设巨计桩模块和滩驱动模块的更代价如何比趣较?等等。圾采V模型没爷有去考虑这贡些问题,当板单元开发完详成后就执行浪单元测试,必而当自系统斑被集中在一赴起后就执行堡集成测试,符仅此而已。傲令我奇怪和殃沮丧的是,看人们从不去泉做一些权衡麻,他们已经筐受制于他们蝴的模型。姻赞因此,一妈个有用的模傲型应该允许尾测试人员考宫虑节省并推弄迟测试的可贪能性。粉颜一个测试训,如果要发篇现一个特定驾的单元中的科bug,最跪好是在该单罪元保持独立孙的情况下执域行,并且在常其外部辅以毕特定的桩模沟块和驱动模果块。而另一接种方法则是通让它作为子紫系统的一部浙分来进行测俭试,该测试啦的设计主要饮是为了发现巷集成的问题旷。由于一个剧子系统本身姨也需要桩模昨块和驱动模敏块来模拟该覆子系统和其赢它子系统的闪联系,因此劣,单元测试迟和集成测试渣可能被推迟或到至少整个偿系统已经部禾分集成的时绳候。在这种著情况下,测蚂试者可能通截过产品的外饶部接口同时尾进行单元测榨试、集成测狠试和系统测定试,同样的排,其主要目品的还是为了萌减少总体生被命周期的成爬本,对测试更成本和延期掠进行测试及订由此造成延肚期发现bu舞g的代价成购本进行权衡订。据此而言雹,涉“缠单元测试泄”兔、产“皮集成测试设”动和禽“提系统测试从”贤的区别已经忆大大削弱了不。其结果可板参考下图:娱鱼(图7-有-新的方法宪:在部分阶谋段延迟进行毒单元测试和校集成测试)叨慈在上图右童边的方块中治,最好要改锅成为艺“殃执行某些适余当的测试并渐得到相应的朽结果丈”醒。序芹图中的左叶边会怎样?传考虑一下系渐统测试设计活,它的主要冶根据和信息珠来源是是规井格说明。假打设你知道有晃2个单元处电在一个特定世的子系统中携,它们在运猎行时相互联怜系,并且要嘱执行规格说么明中的一个闲特定的声明命。为什么不夕在该子系统弟被集成时立悦即对此规格议说明中的声混明进行测试邻,就象是在勒设计完成后赔立即开始测况试的设计一耗样呢?如果础该声明的执今行和子系统志外的子系统圣没有任何关讯系,为什么群还要等到整研个系统完成监以后再测试菊呢?难道越凤早发现bu凯g成本越低券不对吗?否偷在上一张祥图片中,我恒们用了向上枝指的箭头(容更有效,但辫在时间上有衣延迟)。这洲里还可以把嘱箭头往下指惧(在时间上绒提前):公疼(图8-堵-新的方法提:在不同阶激段上提前进昏行测试设计蜓)款层在这种情争况下,左边坟的方块中最蛮好被标记为锡:怪“洪在当前信息疤条件和情况扒下可以做的孤任何测试设董计昨”抱。这样,当脑测试设计得荒自于系统中丈某一个细组件历的描述时,逗模型必须允养许这样的测乔试在组件被帝装配之前被铲执行。我必突须承认我的送图片非常难垫看,这些箭此头指得到处今都是,对此钉我有2点说色明:脊久1.我怨们所讨论的铅事情不是创急造美,而是不想要发现尽凤可能多的严切重错误,同亮时尽可能地末降低成本。天演2.难衡看的部分原径因也是因为爆必须按照某术些次序来执树行的结果,兔亦即开发人抖员先提供系浓统描述文档顶,然后测试爽和这些文档艳进行关联。脚这些文档就饺象是坚实的痕老橡树,而必测试设计则健象是细细的蒙枝条缠绕在级树上。如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色古风清明主题班会
- 4.4运行与维护数据库
- 阳光体育冬季长跑活动方案4篇
- 2026化工(危险化学品)企业安全隐患排查指导手册(危险化学品仓库企业专篇)
- 麻纺厂生产进度调整办法
- 2026内蒙古鄂托克旗青少年活动中心招聘1人备考题库附参考答案详解(典型题)
- 2026中国中煤能源集团有限公司春季招聘备考题库附参考答案详解(培优b卷)
- 账务处理报税模板(商业小规模)
- 2026广东中山市绩东二社区见习生招聘备考题库附参考答案详解(a卷)
- 2026甘肃甘南州舟曲县城关镇社区卫生服务中心招聘3人备考题库含答案详解(能力提升)
- 2026年中考英语专题复习:5个主题作文 预测练习题(含答案+范文)
- DB11∕T 1444-2025 城市轨道交通隧道工程注浆技术规程
- DG-TJ08-2062-2025 住宅工程套内质量验收标准
- 天耀中华合唱简谱大剧院版
- GB/T 4272-2008设备及管道绝热技术通则
- GB/T 23901.5-2019无损检测射线照相检测图像质量第5部分:双丝型像质计图像不清晰度的测定
- GB/T 17766-1999固体矿产资源/储量分类
- GA 898-2010大型焰火燃放作业人员资格条件及管理
- 住宅小区恒温恒湿恒氧系统教程文件课件
- PCR技术及其发展和应用课件
- 2022年山西电力职业技术学院单招考试面试试题及答案解析
评论
0/150
提交评论