??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国产高清久久久久久91,精品国产青草久久久久福利,99蜜桃臀久久久欧美精品网站http://www.shnenglu.com/mzty/category/1814.html<br/>
<br/>
<a href = "http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html"><font size = 5 color ="#00FFFF">{C++ 基础}<font/></a>
<a href = "http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html"><font size = 5 color ="#00FFFF">{C++ 高}<font/></a>
<a href = "http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html"><font size = 5 color ="#00FFFF">{C#界面QC++核心(j)法}<font/></a>
<a href = "http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html"><font size = 5 color ="#00FFFF">{设计模式}<font/></a>
<a href = "
http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html"><font size = 5 color ="#FF0000">{C#基础}<font/></a>
zh-cnMon, 19 May 2008 14:35:03 GMTMon, 19 May 2008 14:35:03 GMT60- 软g试试题http://www.shnenglu.com/mzty/archive/2006/06/09/8332.html梦在天(dng)梦在天(dng)Fri, 09 Jun 2006 04:34:00 GMThttp://www.shnenglu.com/mzty/archive/2006/06/09/8332.htmlhttp://www.shnenglu.com/mzty/comments/8332.htmlhttp://www.shnenglu.com/mzty/archive/2006/06/09/8332.html#Feedback5http://www.shnenglu.com/mzty/comments/commentRss/8332.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/8332.html
(tng)
?-1】从供选择的答案中选出应填入下? (tng) )中的字句?br />软g试的目的是Q?A Q。ؓ(f)?jin)提高测试的效率Q应该( B Q。用白盒测试方法时Q确定测试数据应Ҏ(gu)Q?C Q和指定的覆盖标准。与设计试数据无关的文档是Q?D Q?br />软g的集成测试工作最好由Q?E Q承担,以提高集成测试的效果?br />供选择的答案:(x)
A. (tng) (tng) (tng)?评h(hun)软g的质? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?发现软g的错?br />?扑և软g中的所有错? (tng) (tng) (tng) (tng) (tng) (tng)?证明软g是正的
B. (tng) (tng) (tng)?随机地选取试数据 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)
?取一切可能的输入数据作ؓ(f)试数据
?在完成编码以后制定Y件的试计划
?选择发现错误的可能性大的数据作为测试数?br />C. (tng) (tng) (tng)?E序的内部逻辑 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?E序的复杂程?br />?使用说明? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?E序的功?br />D. (tng) (tng) (tng)?该Y件的设计人员 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?E序的复杂程?br />?源程? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?目开发计?br />E. (tng) (tng) (tng)?该Y件的设计人员 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?该Y件开发组的负责h
?该Y件的~程人员 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?不属于该软g开发组的Y件设计h?br />?-2】请从供选择的答案中选出应填入下列( (tng) Q中的字句?br />E序的三U基本控制结构是Q?A Q。它们的共同Ҏ(gu)Q?B Q。结构化E序设计的一U基本方法是Q?C Q。Y件测试的目的是( D Q。Y件调试的目的是( E Q?br />供选择的答案:(x)
A. (tng) (tng) (tng)?q程Q子E序Q分E序 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?序Q条Ӟ循环
?递归Q堆栈,队列 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?调用Q返回,转移
B. (tng) (tng) (tng)?不能嵌套使用 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?只能用来写简单的E序
?已经用硬件实? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?只有一个入口和一个出?br />C. (tng) (tng) (tng)?{选法 (tng) (tng) (tng) (tng) (tng) (tng)?递归? (tng) (tng) (tng) (tng) (tng) (tng)?归纳? (tng) (tng) (tng) (tng) (tng) (tng)?逐步求精?br />D. (tng) (tng) (tng)?证明E序中没有错? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?发现E序中的错误
?量E序的动态特? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?(g)查程序中的语法错?br />E. (tng) (tng) (tng)?扑և错误所在ƈҎ(gu)? (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?排除存在错误的可能?br />?寚w误性质q行分类 (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?l计出错的次?
?-3】从下列关于软g试的叙qCQ选出5条正的叙述?br />(1) 用黑盒法试Ӟ试用例是根据程序内部逻辑设计的?br />(2) 量用公pE或子程序去代替重复的代码段?br />(3) 试是ؓ(f)?jin)验证该软g已正地实现?jin)用L(fng)要求?br />(4) 对于q锁型分支结构,若有n个判定语句,则有2n条\径?br />(5) 量采用复合的条件测试,以避免嵌套的分支l构?br />(6) GOTO语句概念单,使用方便Q在某些情况下,保留GOTO语句反能使写出的E序更加z?br />(7) 发现错误多的E序模块Q残留在模块中的错误也多?br />(8) 黑盒试Ҏ(gu)中最有效的是因果图法?br />(9) 在做E序的单元测试时Q桩Q存根)(j)模块比驱动模块容易编写?br />(10) E序效率的提高(sh)要应通过选择高效的算法来实现?br />?-4】从供选择的答案中选出同下列关于Y件测试的各条叙述关系最密切的字句?br />(1) 对可靠性要求很高的软gQ例如操作系l,q三者对源代码进行逐行(g)查?br />(2) 已有的Y件被改版Ӟ׃受到变更的媄(jing)响,改版前正常的功能可能发生异常Q性能也可能下降。因此,对变更的软gq行试是必要的?br />(3) 在意识到被测试模块的内部l构或算法的情况下进行测试?br />(4) Z(jin)认用户的需求,先做出系l的主要部分Q提交给用户试用?br />(5) 在测试具有层ơ结构的大型软gӞ有一U方法是从上层模块开始,׃Cq行试。此Ӟ有必要用一些模块替代尚未测试过的下层模块?br />供选择的答案:(x)
A ?EQ? (tng) (tng) (tng)?仿真? (tng) (tng) (tng) (tng) ?代码审查 (tng) ?模拟? (tng) (tng) (tng) ?? (tng) (tng) (tng) (tng) (tng) (tng) ?驱动?
?域测? (tng) (tng) (tng) ?黑盒试 (tng) (tng) (tng) ?原型 (tng) (tng) (tng) (tng) (tng) (tng) (tng) ?白盒试 (tng) (tng) (tng) ?退化测?br />?-5】对的E序q行ID试是可能的Q用ID试能否保证E序是百分之百正呢Q?br />?-6】在M情况下单元测试都是可能的吗?都是需要的吗?
?-7】从供选择的答案中选出应填入下面有兌Y件测试的叙述的( (tng) Q内的正答案?br />软g试Ҏ(gu)可分为黑盒测试法和白盒测试法两种?br />黑盒试法是通过分析E序的( A Q来设计试用例的方法。除?jin)测试程序外Q它q适用于对Q?B Q阶D늚软g文档q行试?br />白盒试法是Ҏ(gu)E序的( C Q来设计试用例的方法。除?jin)测试程序外Q它也适用于对Q?D Q阶D늚软g文档q行试?br />白盒法测试程序时常按照给定的覆盖条g选取试用例。( E Q覆盖比Q?F Q覆盖严|它得每一个判定的每一条分支至经历一ơ。( G Q覆盖既是判定覆盖,又是条g覆盖Q但它ƈ不保证各种条g都能取到所有可能的倹{( H Q覆盖比其他条g都要严格Q但它不能保证覆盖程序中的每一条\径?br />单元试一般以Q?I Qؓ(f)主,试的依据是Q?J Q?br />供选择的答案:(x)
A, CQ① 应用范围 (tng) (tng) (tng)?内部逻辑 (tng) (tng) (tng) (tng)?功能 (tng) (tng) (tng) (tng) (tng) (tng)?输入数据
B, DQ① ~码 (tng) (tng) (tng) (tng) (tng) (tng) (tng)?软g详细设计 (tng) (tng) (tng)?软gM设计 ?需求分?br />E, F, G, HQ① 语句 (tng) (tng) (tng)?判定 (tng) (tng) (tng) (tng) (tng) (tng)?条g (tng) (tng) (tng) (tng) (tng) (tng)?判定/条g
?多重条g (tng) (tng) (tng)?路径
IQ① 白盒? (tng) (tng) (tng) (tng) (tng)?黑盒?br />JQ① 模块功能规格说明 (tng) (tng) (tng)?pȝ模块l构? (tng) (tng) (tng)?pȝ需求规D?br />?-8】从供选择的答案中选出应该填入下列关于软g试的叙q的( )内的正确{案?br />软g试中常用的?rn)态分析方法是Q?A Q和Q?B Q。( B Q用于检查模块或子程序间的调用是否正。分析方法(白盒Ҏ(gu)Q中常用的方法是Q?C Q方法。非分析Ҏ(gu)Q黑盒方法)(j)中常用的Ҏ(gu)是( D Q方法和Q?E Q方法。( E Q方法根据输出对输入的依赖关p设计测试用例?br />供选择的答案:(x)
A ?BQ? (tng) (tng) (tng)?引用分析 (tng) (tng) (tng) (tng) ?法分析 (tng) (tng) (tng) ?可靠性分? (tng) (tng) (tng) ?效率分析
(tng) (tng) (tng) (tng) (tng)?接口分析 (tng) (tng) (tng) (tng) ?操作分析
C ~ EQ? (tng) (tng) (tng)?路径试 (tng) ?{h(hun)c? (tng) (tng) (tng) ?因果? (tng) (tng) (tng) ?归纳试
?l合试 (tng) ?q踪 (tng) (tng) (tng) (tng) (tng) (tng) ?深度优先 (tng) (tng) (tng) ?调试
?相对?br />
?-9】下面是选择排序的程序,其中datalist是数据表Q它有两个数据成员:(x)一是元素类型ؓ(f)Element的数lVQ另一个是数组大小n。算法中用到两个操作Q一是取某数l元素V的关键码操作getKey ( )Q一是交换两数组元素内容的操作Swap( )Q:(x)
(tng) (tng) (tng) void SelectSort ( datalist & list ) {
(tng) (tng) (tng) //对表list.V[0]到l(f)ist.V[n-1]q行排序, n是表当前长度?br /> (tng) (tng) (tng) (tng) for ( int i = 0; i < list.n-1; i++ ) {
(tng) (tng) (tng) (tng) (tng) (tng) (tng) int k = i; (tng) (tng) (tng) (tng) (tng) (tng) (tng) //在list.V.key到l(f)ist.V[n-1].key中找h最关键码的对?br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) for ( int j = i+1; j < list.n; j++)
(tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; (tng) (tng) (tng) //当前h关键码的对?br /> (tng) (tng) (tng) (tng) (tng) (tng) (tng) if ( k != i ) Swap ( list.V, list.V[k] ); (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) //交换
(tng) (tng) (tng) }
(tng) (tng) }
(1) 试计此E序D늚McCabe复杂性;
(2) 用基本\径覆盖法l出试路径Q?br />(3) 为各试路径设计试用例?br />?-10】根据下面给出的规格说明Q利用等L(fng)划分的方法,l出_的测试用例?br />“一个程序读入三个整数。把此三个数值看成是一个三角Ş的三个边。这个程序要打印Z息,说明q个三角形是三边不等的、是{腰的、还是等边的。?br />?-11】设要对一个自动饮料售货机软gq行黑盒试。该软g的规D明如下:(x)
“有一个处理单价ؓ(f)1?角钱的盒装饮料的自动售货Y件。若投入1?角硬币,按下“可乐”、“雪”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同旉q?角硬币。?br />(1) 试利用因果图法,建立该Y件的因果图;
(2) 设计试该Y件的全部试用例?br />?-12】对一个长度ؓ(f)100,000条指令的E序q行试Q记录下来的数据如下Q?br />?试开? 发现错误个数?;
?l过160时的测? 累计Ҏ(gu)100个错? 此时, MTTF = 0.4时Q?br />?又经q?60时的测? 累计Ҏ(gu)300个错? 此时, MTTF = 2时Q?br />(1) 估计E序中固有的错误L;
(2) ZMTTF辑ֈ10时, 必须试和调试这个程序多长时?
(3) l出MTTF与测试时间t之间的函数关pR?br />?-13】应该由谁来q行认试Q是软g开发者还是Y件用PZ么?
(tng)软g试工程师笔试试?br />h据?zhn)以往的学?fn)和工作l历Q结合?zhn)的个人经验回{以下问题。?zhn)可以可能详l和完整的表辑և自己的思想Q如果书写空间不够,(zhn)可以将{案写在题目所在页的背面。如果需要稿U请同接待h员联pR?/span>01. (tng) (tng) Z么要在一个团队中开展Y件测试工作?
02. (tng) (tng) (zhn)是否了(jin)解以往所工作的企业的软g试q程Q如果了(jin)解,误q在q个q程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03. (tng) (tng) (zhn)是否了(jin)解以往所工作的企业的软g开发过E?如果?jin)解Q请试述一个完整的开发过E需要完成哪些工作?分别由哪些不同的角色来完成这些工作?Q对于Y件测试部分,可以qͼ(j)
04. (tng) (tng) (zhn)在以往的测试工作中都曾l具体从事过哪些工作Q其中最擅长哪部分工作?
05. (tng) (tng) (zhn)所熟?zhn)的Y件测试类型都有哪些?误着分别比较q些不同的测试类型的区别与联p(如功能测试、性能试……)(j)
06. (tng) (tng) 误着比较一下黑盒测试、白盒测试、单元测试、集成测试、系l测试、验收测试的区别与联pR?br />07. (tng) (tng) 试计划工作的目的是什么?试计划工作的内定w包括什么?其中哪些是最重要的?
08. (tng) (tng) (zhn)认为做好测试计划工作的关键是什么?
09. (tng) (tng) (zhn)所熟?zhn)的测试用例设计方法都有哪些?请分别以具体的例子来说明q些Ҏ(gu)在测试用例设计工作中的应用?0. (tng) (tng) (zhn)认为做好测试用例设计工作的关键是什么?

]]> - 软g试q程理实践介绍http://www.shnenglu.com/mzty/archive/2006/05/19/7402.html梦在天(dng)梦在天(dng)Fri, 19 May 2006 02:20:00 GMThttp://www.shnenglu.com/mzty/archive/2006/05/19/7402.htmlhttp://www.shnenglu.com/mzty/comments/7402.htmlhttp://www.shnenglu.com/mzty/archive/2006/05/19/7402.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/7402.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/7402.html引言
1963q_(d)在美国发生了(jin)q样一件事Q编Eh员把一个FORTRANE序的@环语句DO 5 I=1Q?误写为DO 5 I=1.3。一点之差导致飞往火星的火爆炸,造成1000多万元的损失。这U情늚发生Q迫使h们考虑在Y件投入用之前必进行彻底的试。今天,在Y件比较发辄国家QY件测试已l成Z个独立的产业QY件公司纷U徏立独立的试队伍研究试技术ƈ开展测试工作。中国的软g试h较晚Q但随着我国软g产业的蓬勃发展以?qing)h们对软g质量的重视,软g试正在成ؓ(f)一个新兴的产业。近两年来,国内新成立专业性测试机?0余家Q一Ҏ(gu)专业的Y件测试h员正涌现出来。每q国内都有大量的试技术交会(x)议D办,有大量的试研究论文在专业刊物上发表。在试技术发展的同时Q测试过E的理昑־犹ؓ(f)重要。一个成功的试目Q离不开Ҏ(gu)试过E科学的l织和监控,q程理已成为测试成功的重要保证?/p>
1 试q程概述
1Q? 软g试q程概述
(tng) (tng) (tng) 软g试q程是一U抽象的模型Q用于定义Y件测试的程和方法。众所周知Q开发过E的质量军_?jin)Y件的质量Q同L(fng)Q测试过E的质量直接媄(jing)响测试结果的准确性和有效性。Y件测试过E和软g开发过E一P都遵循Y件工E原理,遵@理学原理?br /> (tng) (tng) (tng) 随着试q程理的发展,软g试专家通过实践ȝZ(jin)很多很好的测试过E模型。这些模型将试zdq行?jin)抽象,q与开发活动有机的q行?jin)结合,是测试过E管理的重要参考依据?/p>
1Q? 软g试q程模型介绍
Q模?/p>
(tng) (tng) (tng) V模型最早是由Paul Rook在2Q世U8Q年代后期提出的Q旨在改qY件开发的效率和效果。)(j)模型反映Z(jin)试zd与分析设计活动的关系。在?-1中,从左到右描述?jin)基本的开发过E和试行ؓ(f)Q非常明的标注?jin)测试过E中存在的不同类型的试Qƈ且清楚的描述?jin)这些测试阶D和开发过E期间各阶段的对应关pR?/p>
(tng)
?-1 软g试V模型
(tng) (tng) (tng) V模型指出Q单元和集成试应检程序的执行是否满软g设计的要求;pȝ试应检系l功能、性能的质量特性是否达到系l要求的指标Q验收测试确定Y件的实现是否满用户需要或合同的要求?br />但V模型存在一定的局限性,它仅仅把试作ؓ(f)在编码之后的一个阶D,是针对程序进行的L错误的活动,而忽视了(jin)试zd寚w求分析、系l设计等zd的验证和认的功能?/p>
Qh?/p>
(tng) (tng) (tng) W模型由Evolutif公司公司提出Q相对于V模型QW(xu)模型增加?jin)Y件各开发阶D中应同步进行的验证和确认活动。如?-2所C,W(xu)模型׃个V字型模型l成Q分别代表测试与开发过E,图中明确表示Z(jin)试与开发的q行关系?br /> (tng) (tng) (tng) W模型Q测试伴随着整个软g开发周期,而且试的对象不仅仅是程序,需求、设计等同样要测试,也就是说Q测试与开发是同步q行的。W模型有利于尽早地全面的发现问题。例如,需求分析完成后Q测试h员就应该参与到对需求的验证和确认活动中Q以早地找出缺h在。同Ӟ寚w求的试也有利于?qing)时了(jin)解目隑ֺ和测试风险,及(qing)早制定应对措施Q这显著减M试旉Q加快项目进度?br /> (tng) (tng) (tng) 但W模型也存在局限性。在W模型中,需求、设计、编码等zd被视Z行的Q同Ӟ试和开发活动也保持着一U线性的前后关系Q上一阶段完全l束Q才可正式开始下一个阶D工作。这样就无法支持q代的开发模型。对于当前Y件开发复杂多变的情况QW(xu)模型q不能解除测试管理面临着困惑?/p>
(tng)
(tng)
?-2 软g试W模型
Q模?/p>
(tng) (tng) (tng) V模型和W(xu)模型均存在一些不妥之处。如前所qͼ它们都把软g的开发视为需求、设计、编码等一pd串行的活动,而事实上Q这些活动在大部分时间内是可以交叉进行的Q所以,相应的测试之间也不存在严格的ơ序关系。同Ӟ各层ơ的试Q单元测试、集成测试、系l测试等Q也存在反复触发、P代的关系?br />Z(jin)解决以上问题Q有专家提出?jin)H模型。它?yu)测试活动完全独立出来,形成了(jin)一个完全独立的程Q将试准备zd和测试执行活动清晰地体现出来Q如?-3所C?/p>
(tng)
(tng) (tng)
?-3 软g试H模型
(tng) (tng) (tng) q个C意图仅仅演CZ(jin)在整个生产周期中某个层次上的一ơ测试“微循环”。图中标注的其他程可以是Q意的开发流E。例如,设计程或编码流E。也是_(d)只要试条g成熟?jin),试准备zd完成?jin),试执行zd可以(或者说需要)(j)q行?jin)?br /> (tng)
(tng) (tng) (tng) H模型揭示?jin)一个原理:(x)软g试是一个独立的程Q诏I品整个生命周期,与其他流Eƈ发地q行。H模型指出软g试要尽早准备,早执行。不同的试zd可以是按照某个次序先后进行的Q但也可能是反复的,只要某个试辑ֈ准备qA点,试执行zd可以开展?/p>
其他模型
(tng) (tng) (tng) 除上q几U常见模型外Q业界还?gu)传着其他几种模型Q例如X模型、前|测试模型等。X模型提出针对单独的程序片D进行相互分ȝ~码和测试,此后通过频繁的交接,通过集成最l合成ؓ(f)可执行的E序。前|测试模型体C(jin)开发与试的结合,要求Ҏ(gu)一个交付内容进行测试。这些模型都针对其他模型的缺Ҏ(gu)Z(jin)一些修正意见,但本w也可能存在一些不周到的地斏V所以在试q程理中,正确选取q程模型是一个关键问题?/p>
1Q? 软g试q程模型选取{略
(tng) (tng) (tng) 前面介绍的测试过E模型中QV模型?jin)在整个目开发中需要经历的不同的测试别,但忽视了(jin)试的对象不应该仅仅是程序。而W(xu)模型在这一点上q行?jin)补充,明确指出应该寚w求、设计进行测试。但是V模型和W(xu)模型都没有将一个完整的试q程抽象出来Q成Z个独立的程Q这q不适合当前软g开发中q泛应用的P代模型。H模型则明指出测试的独立性,也就是说只要试条g成熟?jin),可以开展测试?/p>
(tng) (tng) (tng) 在实际测试工作中我们应该可能地d用各模型中对目有实用h(hun)值的斚wQ不能强行的Z用模型而用模型。在试实践中,我们采用的方法是Q以W模型作ؓ(f)框架Q及(qing)早的、全面的开展测试。同时灵z运用H模型独立试的思想Q在辑ֈ恰当的就l点时就应该开展独立的试工作Q同时将试工作q行q代Q最l保证完成测试目标?/p>
2 试q程理理念
(tng) (tng) (tng) 生命周期模型为我们提供了(jin)软g试的流E和Ҏ(gu)Qؓ(f)试q程理提供?jin)依据。但实际的测试工作是复杂而烦(ch)琐的Q可能不?x)有哪种模型完全适用于某Ҏ(gu)试工作。所以,我们应该从不同的模型中抽象出W合实际现状的测试过E管理理念,依据q些理念来策划测试过E,以不变应万变。当然测试管理牵涉的范围非常的广泛,包括q程定义、h力资源管理、风险管理等{,本节仅介l几条从q程模型中提炼出来的Q对实际试有指导意义的理理念?/p>
2Q? 早试
(tng) (tng) (tng) “尽早测试”是从W模型中抽象出来的理念。我们说试q不是在代码~写完成之后才开展的工作Q测试与开发是两个怺依存的ƈ行的q程Q测试活动在开发活动的前期已经开展?br /> (tng) (tng) (tng) “尽早测试”包含两斚w的含义:(x)W一Q测试h员早期参与Y仉目,?qing)时开展测试的准备工作Q包括编写测试计划、制定测试方案以?qing)准备测试用例;W二Q尽早的开展测试执行工作,一旦代码模块完成就应该?qing)时开展单元测试,一旦代码模块被集成成ؓ(f)相对独立的子pȝQ便可以开展集成测试,一旦有BUILD提交Q便可以开展系l测试工作?br /> (tng) (tng) (tng) ׃?qing)早的开展了(jin)试准备工作Q测试h员能够于早期?jin)解试的难度、预测试的风险Q从而有效提高(sh)(jin)试效率Q规避测试风险。由于及(qing)早的开展测试执行工作,试人员早的发现Y件缺P大大降低?jin)BUG修复成本。但是需要注意,“尽早测试”ƈ非盲目的提前试zdQ测试活动开展的前提是达到必ȝ试qA炏V?/p>
2Q? 全面试
(tng) (tng) (tng) 软g是程序、数据和文档的集合,那么对Y件进行测试,׃仅仅是对E序的测试,q应包括软g“副产品”的“全面测试”,q是W模型中一个重要的思想。需求文档、设计文档作Y件的阶段性品,直接影响到Y件的质量。阶D品质量是软g质量的量的积累,不能把握q些阶段产品的质量将D最lY件质量的不可控?br /> (tng) (tng) (tng) “全面测试”包含两层含义:(x)W一Q对软g的所有品进行全面的试Q包括需求、设计文档,代码Q用h档等{。第二,软g开发及(qing)试人员Q有时包括用P(j)全面的参与到试工作中,例如寚w求的验证和确认活动,需要开发、测试及(qing)用户的全面参与,毕竟试zdq不仅仅是保证Y件运行正,同时q要保证软g满?jin)用L(fng)需求?br /> (tng) (tng) (tng) “全面测试”有助于全方位把握Y件质量,最大可能的排除造成软g质量问题的因素,从而保证Y件满量需求?/p>
2Q? 全过E测?/p>
(tng) (tng) (tng) 在W模型中充分体现的另一个理念就是“全q程试”。双V字过E图形象的表明了(jin)软g开发与软g试的紧密结合,q就说明软g开发和试q程?x)彼此?jing)响,q就要求试人员对开发和试的全q程q行充分的关注?br /> (tng) (tng) (tng) “全q程试”包含两层含义:(x)W一Q测试h员要充分x(chng)开发过E,对开发过E的各种变化?qing)时做出响应。例如开发进度的调整可能?x)引h试进度及(qing)试{略的调_(d)需求的变更?x)?jing)响到试的执行等{。第二,试人员要对试的全q程q行全程的跟t,例如建立完善的度量与分析机制Q通过对自w过E的度量Q及(qing)时了(jin)解过E信息,调整试{略?br /> (tng) (tng) (tng) “全q程试”有助于?qing)时应对目变化Q降低测试风险。同时对试q程的度量与分析也有助于把握试q程Q调整测试策略,便于试q程的改q?/p>
2Q? 独立的、P代的试
(tng) (tng) (tng) 我们知道QY件开发瀑布模型只是一U理想状c(din)ؓ(f)适应不同的需要,Z在Y件开发过E中摸烦(ch)Z(jin)如螺旋、P代等诸多模型Q这些中需求、设计、编码工作可能重叠ƈ反复q行的,q时的测试工作将也是q代和反复的。如果不能将试从开发中抽象出来q行理Q势必ɋ试理陷入困境?br /> (tng) (tng) (tng) 软g试与Y件开发是紧密l合的,但ƈ不代表测试是依附于开发的一个过E,试zd是独立的。这正是H模型所d的思想。“独立的、P代的试”着重强调了(jin)试的就l点Q也是_(d)只要试条g成熟Q测试准备活动完成,试的执行活动就可以开展?/p>
(tng) (tng) (tng) 所以,我们在遵循尽早测试、全面测试、全q程试理念的同Ӟ应当测试过E从开发过E中适当的抽象出来,作ؓ(f)一个独立的q程q行理。时L握独立的、P代测试的理念Q减因开发模型的J杂l测试管理工作带来的不便。对于Y件过E中不同阶段的品和不同的测试类型,只要试准备工作qAQ就可以?qing)时开展测试工作,把握产品质量?/p>
3 试q程理实践
(tng) (tng) (tng) 本节以一个实际项目系l测试过E(不对单元试和集成测试过E进行分析)(j)的几个关键过E管理行Zؓ(f)例,来阐qC节中提出的测试理c(din)在一个构件化ERP目中,׃前期需求不明确Q开发周期相对较长,Z(jin)寚w目进行更好的跟踪和管理,目采用增量和P代模型进行开发。整个项目开发共分三个阶D完成:(x)W一阶段实现q销存的单的功能和工作流Q第二阶D:(x)实现固定资理、胦(ch)务管理,q完善第一阶段的进销存功能;W三阶段Q增加办公自动化的管理(OAQ。该目每一阶段工作是对上一阶段成果的一ơP代完善,同时新功能q行?jin)一ơ叠加?/p>
3Q? {划试q程
(tng) (tng) (tng) 依据传统的方法,系l测试作Y件开发的一个阶D,pȝ试执行工作在三个阶段完成后开展,很明显,q样做不利于BUG的及(qing)时暴霌Ӏ有些缺陷可能会(x)埋藏臛_期发玎ͼq时的修复成本将大大提高。我们依据“独立和q代”的试理念Q在本系l中Q对试q程q行独立的策划,扑և试准备qA点,在就l点?qing)时开展测试。该pȝ的三个阶D具有相对的独立性,在每一阶段完成所提交的阶D品具有相对的独立性,可以作ؓ(f)pȝ试准备的就l点。故而,在该pȝ开发过E中Q系l测试组计划开展三阶段的系l测试,每个阶段pȝ试h不同的侧重点Q目的在于更好的配合开发工作尽早发现Y件BUGQ降低Y件成本。Y件开发与pȝ试q程的关pd?-1所C?br /> (tng) (tng) (tng) 实践证明Q这U做法vC(jin)预期的效果,与开发过E紧密结合而又相对独立的测试过E,有效的于早期发现?jin)许多系l缺P降低?jin)开发成本,同时也Z复杂开发模型的试理工作更加清晰明了(jin)?br /> (tng) (tng)
3Q? 把握需?/p>
(tng) (tng) (tng) 在本pȝ开发过E中Q需求的获取和完善诏I每个阶Dc(din)对需求的把握很大E度上决定了(jin)软g试是否能够成功。系l测试不仅仅认软g是否正确实现功能Q同时还要确认Y件是否满用L(fng)需要。依据“尽早测试”和“全面测试”原则,在需求的获取阶段Q测试h员参与到?jin)对需求的讨论之中。测试h员(sh)开发h员及(qing)用户一赯论需求的完善性与正确性,同时从可试性角度ؓ(f)需求文档提出徏议。这些徏议对开发h员来_(d)是从一个全新的思维角度提出的约束。同Ӟ试l结合前期对目的把握,很容易制定出?jin)完善的试计划和方案,各阶段产品的测试方法?qing)q度、h员安排进行了(jin){划Q整个目的进展有条不紊?br />实践证明Q测试h员早期参与需求的获取和分析中Q有助于加深试人员寚w求的把握和理解,同时也大大促(j)q需求文档的质量。在需求h员把握需求的同时Q于早期制定目计划和方案,?qing)早准备试zdQ大大提高(sh)(jin)试效率?/p>
3Q? 变更控制
(tng) (tng) (tng) 变更控制体现的是“全q程试”理c(din)在软g开发过E中Q变更往往是不可避免的Q变更也是造成软g风险的重要因素。在本系l测试中Q仅W一阶段发生了(jin)7ơ需求变_(d)调整?jin)两ơ进度计划。依据“全q程试”理念,试l密切关注开发过E,跟随q度计划的变更调整测试策略,依据需求的变更?qing)时补充和完善测试用例。由于充分的试准备工作Q在试执行q程中,没有废弃一个测试用例,试的进度ƈ没有因ؓ(f)变更而受到过多媄(jing)响?/p>
3Q? 度量与分?/p>
(tng) (tng) (tng) Ҏ(gu)试过E的度量与分析同样体现的“全q程试”理c(din)对试q程的度量有利于?qing)时把握目情况Q对q程数据q行分析Q很Ҏ(gu)发现优势劣势Q找出需要改q的地方Q及(qing)时调整测试策略?br /> (tng) (tng) (tng) 在ERP目中,我们在测试过E中对不同阶D늚BUG数量q行?jin)度量,q分析测试执行是否充分。如?-2所C,通过分析我们得出Q相同时间间隔内发现的BUG数量呈收敛状态,试是充分的。在BUG数量收敛的状态下l束l测是恰当的?br /> (tng)
?-2 软g开发与pȝ试关系?/p>
(tng) (tng) (tng) 试中,我们对不同功能点的测试数据覆盖率和发现问题数q行度量Q以便分析测试用例的充分度与BUG发现率之间的关系。如?-1所C,对类似模块进行对比发玎ͼ(x)某一功能点上所覆盖的测试数据组多QBUG的用例发现率高。如果再l合工作量、用例执行时间等因素q行l计分析Q便可以扑ֈ适合实际情况的测试用例书写粒度,从而帮助测试h员判断测试成本和收益间的最?jng)_^衡点?/p>
?-1 试数据覆盖率与BUG发现率对应表
模块名称 (tng)功能Ҏ(gu) (tng)试数据敊W测试数据覆盖率 (tng)BUG的用例发现率Q)(j)
模块AA (tng)6个?5l?2.5l?每功能点 (tng)40% Q?/15Q?br />模块BB (tng)30个?6l?.3l?每功能点 (tng)17% Q?/42Q?br />模块CC (tng)15个?7l?.1l?每功能点 (tng)18% Q?/28Q?br />模块DD (tng)16个?6l?.8l?每功能点 (tng)23% Q?/22Q?br />…?tng)…?tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng)?…?tng)…?..
注:(x)通过l计可以得出试数据与BUG发现率之间的关系Q便于及(qing)时调整测试用例编写策略?br /> (tng) (tng) (tng) 所有这些度量都是对试全过E进行跟t的l果Q是?qing)时调整试{略的依据。对试q程的度量与分析能有效的提高?sh)(jin)测试效率,降低了(jin)测试风险。同Ӟ度量与分析也是Y件测试过E可持箋改进的基本?/p>
4 试q程可持l改q?/p>
(tng) (tng) (tng) 试技术发展到今天Q已l存在诸多可供参考的试q程理思想和理c(din)但信息技术发展一日千里,新技术不断涌玎ͼq就注定试q程也需要不断的改进。我们提倡基于度量与分析的可持箋q程改进Ҏ(gu)Q本文不做详l论qͼ(j)。在q种Ҏ(gu)中,对现状的度量被制度化Qƈ作ؓ(f)q程改进的基。组l可以自定义需要度量的q程数据Q将攉来的数据加以分析Q以扑և需要改q的因素。在不断的改q中Q同步的调整需要度量的q程数据Q度量与分析始lؓ(f)?jin)过E改q服务,而过E改q也包含对度量和分析的改q?br /> (tng) (tng) (tng) 掌握?jin)基于度量和分析的可持箋q程改进Ҏ(gu)Q测试过E管理将能够不断完善Q测试活动将能够始终处于优化状态?/p>

]]>
þþƷ99Ʒ|
þ99ֻƵƷ8|
þþWWWëƬ|
˾Ʒþ岻|
ƷŮþþAV|
ŷ龫Ʒþþþþ|
ƷþþþþĻ
|
þþþAvר|
鶹Ʒþһ|
91Ʒþþþþ|
þþƷһ99|
ȾþùƷ|
Ʒþһ
|
þƷ123|
һ˾þþƷ|
91Ʒ91Ⱦþþþø|
Ʒھþ|
㽶þþƷ|
ձƷþþþþþþ|
þƷƷ|
99þùۺϾƷ|
ݺɫۺþö|
þֹۺƷ|
ƷþþӰ㽶
|
þһŷպ|
þۺ|
þþþþþ|
ھƷþþþþþþ|
þþƷ|
ó˾þAvѸ|
ձWVһһþ㽶|
Ⱦþվȡ|
ɫ8ŷ˾þۺϵ|
þѾƷһ|
þþƷƷ2020
|
91Ʒþþþþio|
þþþþþƵ|
þùAVJUST鶹|
ҹƷþþþ9999|
ձձȾþþƷ|
˾þô߽ۺ5g|