当前位置:文档之家› 03_ 软件生命周期中的测试

03_ 软件生命周期中的测试

软件测试方法研究及软件测试学习心得 2013年3月 姓名: 专业:计算机科学与技术 指导老师:

目录 1 引言 (1) 1.1 编写目的 (1) 1.2 相关背景 (2) 1.3 参考资料 (2) 2 软件测试概念 (3) 2.1 软件测试定义 (3) 2.2 软件测试概述 (3) 3 软件测试的原则 3.1 测试的基本原则(一) (4) 3.2 测试的基本原则(二) (4) 4 软件测试的内容 4.1 验证(VERIFICATION) (5) 4.1 确认(V ALIDATION ) (5) 5 软件测试的分类 5.1 常用分类........................................................................................... 6错误!未定义书签。 5.2 黑盒测试和白盒测试 (6) 5.3 静态测试 (11) 5.4 动态测试 (12) 6 感想与致谢 (16)

1引言 1.1编写目的 本学期学习了软件测试这门计算机专业的专业课,作为计算机专业的一门很重要的课程,在计算机领域占据着不可替代的角色,随着人类社会的进步,各种领域计算机的普及,计算机软件也越来越多的出现在各个场合,为人们的办公,生活,学习,休闲等提供了前所未有的方便。因此,当一个软件从雏形到真正的在一台计算机上运行的时候,谁也不能保证计算机软件能一步到位的满足人们的需求。所以就有了软件测试,其目的是:第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。作为计算机专业的学生,我想以我自己的观点来阐述一下我对软件测试的理解。 1.2参考资料 参考书籍: 1、Ron Patton 《软件测试》机械工业出版社2002 2、张克东等《软件工程与软件测试自动化教程》电子工业出版社2002 3、Dustin,E.《软件自动化测试:引入、管理与实施》电子工业出版社2003 4、James A. Whittaker 《实用软件测试指南》电子工业出版社2003 5、Zadrozny 《J2EE性能测试》电子工业出版社2003 6、Jones,C.《软件评估、基准测试与最佳实践》机械工业出版社2003 7、Edward Kit 《软件测试过程改进》机械工业出版社2003 8、Hung Q.Nguyen 《Web应用测试》电子工业出版社2003 9、Robert V.Binder《面向对象系统测试模型视图与工具(影印版)》 10、Rakitin,S.K.《软件验证与确认的最佳管理办法》电子工业出版社2002 11、麦格雷戈《面向对象的软件测试》机械工业出版社2002 参考网络资料

软件生命周期模型选择及WBS分解指南 一、概述 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为“软件生命周期”。软件生命周期模型,通俗说就是,软件开发过程中所遵循的模式,即把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。 软件生命周期模型和项目开发过程有非常紧密关系,它是经过多次实践总结出来适合于不同项目使用的经典、有效的软件开发方法,它按照软件生命周期的各个阶段划分任务,依照一定的规则和步骤,有效地进行软件开发。 选用恰当的软件生命周期模型进行软件开发,可以提高产品质量;降低项目管理难度;缩短开发进度;便于项目状态跟踪;为过程改进和度量提供基线;改善组织级的过程弱势,提高过程能力成熟度级别。 为了便于分类汇总和统计各种生命周期模型的指标和数据,结合公司软件开发过程的实际,我们选择了常用的几种基本模型进行了描述,项目开发小组在进行项目策划时,可以根据模型的适用前提、优缺点和项目的实际需要进行选择,并在《项目实施计划》中,参加评审。 二、软件生命周期模型 常用的软件生命周期模型有:瀑布模型、迭代模型、增量模型、原型模型等。 以上所提到的件生命周期模型病不存在孰优孰劣的问题,每一种模型在实际工作中都有所应用。只要选择了最适合的,并按照此模型的流程来开发软件,都会取得成功。 需要强调的是,不管采用什么模型,项目实施中有四项活动是必不可少的——需求、设计、编码和测试。不管是有意识还是无意识,这些活动都会出现在项目过程中。这也是最重要的四项活动,其他的活动其实都是为这些活动服务的,不管是配置管理、风险管理,还是评审等等。 以下对各种常用的软件生命周期模型的设计思想、WBS划分(Work Breakdown Structure,即工作分解结构)、优缺点、使用范围进行分析。

第二章软件生命周期中的测试 1.以下选项中,不属于典型的V-模型的测试级别是 a组件/单元测试 b集成测试 c回归测试 d验收测试 2.以下选项中,不属于验收测试典型的类型有 a用户验收测试 b运行验收测试 c合同和法规性验收测试 d维护测试 3.对于商业现货(COTS)产品的系统集成,购买者可能会在系统级别进行集成 测试(integration testing)(与基础设施集成测试,和其他系统的集成测试或系统的商业部署)和验收测试(acceptance testing)(功能/非功能测试,用户或操作测试),这种情况说明 a根据项目的特征或系统的架构,可以对测试级别进行合并或重新进行组合b组件测试测试忽略 c可以使用集成测试替代系统测试 d验收测试只能在系统级别进行 4.关于测试的类型,下面哪个是正确的组合 1.通讯录地址的修改 2.确认测试/再测试 3.语句覆盖 4.压力测试 A.功能测试 B.与变更有关的测试 C.非功能的测试 D.结构性测试 a1-A; 2-B; 3-C; 4-D

b1-A; 2-B; 3-D; 4-C c1-C; 2-A; 3-D; 4-B d1-B; 2-A; 3-D; 4-C 5.关于测试类型的应用范围,下面哪是正确的 a结构测试只能用在组件测试或集成测试 b功能测试只能用在系统测试或验收测试 c白盒测试方法不能用于系统测试 d功能测试和结构性测试可以应用在任何测试级别 6.关于维护测试,下列哪个选项正确 a在软件系统交付给用户真正使用之前必须进行维护测试 b在每个测试级别都需要进行维护测试 c维护测试是在一个现有的运行系统上进行的测试 d在一个现有的运行系统,因为开发已经完成了,所以不再需要测试 7.关于软件确认测试和回归测试的描述,下列哪个选项是错误的 a当修改了缺陷后,应该重新进行测试以确定原来的缺陷已经成功的修改,称之为确认测试 b回归测试是对已被侧过的程序在变更后进行的重复测试,以发现在这些变更后是否有新的缺陷引入 c当软件发生变更或者应用软件的环境发生变化时,需要进行回归测试 d回归测试可以在所有的测试级别上进行,并且只适用于功能测试 8.有一个系统已经在市场上运行了,这种情况对系统进行修改,然后进行的测 试属于 a.维护测试 b.验收测试 c.组件测试 d.系统测试 9.在生命周期模型中,一个好的测试都应具有哪些特点中错误的是 a每个开发活动都有相应的测试活动 b每个测试级别都有其特有的测试目标 c对于每个测试级别,需要在相应的开发活动过程中进行相应的测试分析和设计 d在开发生命周期中,测试员在文档中间阶段就应该参与文档的评审

瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最展本的和最效的?种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求-〉分析-〉设计?〉编码-> 测试的阶段进行,每-个阶段都可以定义明确的产出物和验证准则.瀑布模型在每?个阶段完成后都可以组织相关的评审和验证,只有在评审通过后才能够进入到下-个阶段. 由于需要对每?个阶段进行验证,瀑布模型要求每?个阶段都有明确的文档产出,对于严格的瀑布模型每?个阶段都不应该重叠,而应该是在评审通过,相关的产出物都己经基线后才能够进入到下?个阶段. 瀑布模型的优点仍然是可以保证整个软件产品较高的质量,保证缺陷能够捉前的被发现和解决. 采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性?但对于前期需求不明确,而又很难短时间明确淸楚的项目则很难很好的利用瀑布模型.另外对于中小型的项目,需求设计和开发人员往往在项目开始后就会全部投入到项目中,而不是分阶段投入,因此采用瀑布模型会导致项目人力资源过多的闲置的情况,这也是必须要考虑的问题. 很多人往往会以进度约束而不选择瀑布模型,这往往是?个错误的观点.导致这种情况的?个关键因素往往是概念需求阶段人力不足.冈此在概念需求阶段人力能够得到充分保证的情况下,瀑布模型和迭代模型在开发周期上并不会存在太人的差别.反而是很多项目对于迭代或嫩捷模型用不好,为了赶进度在前期需求不明确,没有经过?个总体的架构设计情况下就开始编码,后期出现大量的返工而严重影响进度. 架构设计是软件开发中?个重要的关注点.因此在RUP中也捉及到软件开发要以架构为核心.因此在架构设计完成后系统会彼分为相关的f?系统和功能模块.每个功能模块间的接口都可以定义淸楚.在这种情况下,当模块B的详细设计做完成后往往就没有必妥等到其它模块的详细设计都妥完全作完才开始编码,冈此在架构设计完成后可以将系统分为多个模块并行开发,每个模块仍然遵循先设计和编码测试的瀑布模型思路.这是瀑布模型的?种最重要的改进思路,也可以说这是?种增量开发的模型.

缺陷漏测分析:测试过程改进 一、漏测的定义 所谓漏测,是指软件产品的缺陷没有被测试组发现而遗漏到了用户那里,却最终被用户所发现。如果产品在用户那里出现问题,产生的后果是非常严重的。在软件开发过程中,缺陷越早被发现,发现和解决缺陷所花的成本就越小。如果缺陷是在测试组测试中发现的而不是被用户使用时发现的,那么所花的成本将小得多。如果缺陷是被开发组在开发过程中发现的,那么所花的代价将更小。因此,进行漏测分析、预防漏测、促使缺陷尽可能在开发过程的早期被发现,是非常有意义的,它有利于降低软件产品成本、提高软件产品质量。 二、漏测分析的目的 进行漏测分析的目的是为了促进软件质量和开发测试过程得到持续改进。具体来讲,就是通过分析开发和测试过程中漏测的缺陷,制定相应的预防措施以避免今后再发生类似的漏测。测试过程的持续改进将提高测试环境的效果和测试执行的效率、降低遗留到用户处的缺陷数和缺陷解决成本,从而提升软件的质量、声誉和销售。在软件产品开发过程中重视漏测分析并参与到漏测分析工作中的团队越多,漏测分析的效果就越好。如果开发和测试团队都重视漏测分析、并密切配合进行漏测分析工作的话,漏测分析将取得非常好的效果。 在实际工作中,漏测分析过程应该重点关注那些普遍、严重而解决成本高的问题。具体来讲,漏测分析的目标是: 对漏测进行分类以便于更进一步深入的分析 对分类数据进行统计 在统计分析的基础上进行全过程的标识和变更 在对一些特殊的漏测项进行分析的基础上,对过程的一些局部进行标识和变更 运用度量数据说明过程变更的效果 三、如何进行漏测分析 漏测分析活动可以参照下面的建议进行。在熟悉了漏测分析流程以后,需要确定进行漏测分析活动的频度。为了取得较好的效果,最好是遵照一个时间表来定期进行漏测分析活动,一个月进行一次是一个比较合适的频度。 1. 计划 这个过程是针对多项目组联合进行漏测分析而设置的,在联合项目组中实行该过程最有效。如果不可能组建联合项目组进行漏测分析,也可以修改该过程只在测试组内部实行。 制订计划如果不确定关注点的话,这个计划将难以有效实施。漏测分析要想取得理想的效果,就需要计划好进行漏测分析活动的确切的人员数目、活动时间。过程执行的效果完全取决于执行它的方式,如果不切切实实的做好计划,你的过程将不会得到太多的改进。 实际进行漏测分析活动时,只选择漏测分类的一部分子集进行分析,将有利于更有效的进行漏测分析工作。进行漏测分类前,需要在计划中确定选择哪部分子集进行分析。例如,如果漏测的严重度等级分为一到四级,一级严重度最高,四级严重度最低,那么也许只分析一、二级的漏测最合适,这样可以避免在那些对用户无关紧要的漏测缺陷上花太多的无用功;也可以只分析那些被关闭和修复了的漏测缺陷,因为如果分析那些没有被关闭和修复的缺陷,可能会漏掉一些至关重要的信息;另外,还可以在进行漏测分析之前排除掉重复缺陷和那些由于用户错误操作引起的缺陷,这样就只需要分析那些有效的漏测缺陷,它们才能真正提供开发和测试过程需要改进的信息。

三年级科学下册《动物的生命周期》测试卷附参考答案 一、卷面书写(10分) 二、填空题(每空2分,共40分) 1、蚕的一生是不断生长变化的,要经历(蚕卵)、(蚕)、(蛹)、(蚕蛾)四个不同形态的变化阶段。 2、蚕的一生经历了(出生)、(生长发育)、(繁殖)、(死亡)四个阶段,这就是蚕的生命周期。 3、在人的一生中,有两个时期长得最快。第一个时期是(出生前后),即胎儿期到出生后1岁,第二个时期是(青春发育期),即10岁至20岁之间。 4、人的一生有(两)副牙,一副是(乳牙),一副是(恒牙)。成年人共有(28—32)颗恒牙,恒牙长出后终生不换。 5、变态是昆虫生长发育过程中的一个重要现象,根据发育过程中是否有蛹期可以把绝大多数昆虫分为(完全变态)与(不完全变态)两大类。蝴蝶是(完全变态)昆虫,蜻蜓是(不完全变态)昆虫。 6、蚕生长到一定的阶段,会长出新皮,换下旧皮,这叫(蜕皮),蚕的一生要蜕(4)次皮。 三、判断题(每小题2分,共20分) 1、各种动物都有自己的生命周期,包括出生、生长发育、繁殖和死亡。(√) 2、养蚕、抽取蚕丝织成丝绸,是我国的伟大发明之一,早在3000多年以前我国劳动人民就已经开始养蚕。(×) 3、蚕的身体可分为头部、胸部和腹部三部分。(√) 4、蚕身体两侧的小黑点是蚕的气门,是蚕呼吸器官的开口。(√) 5、所有动物的生命周期长短都相同。(×) 6、蚕不叶子了,身体也发黄发亮说明要开始结茧了。(√) 7、从蚁蚕天吐丝结茧共蜕四次皮,所以蚕共分为4龄。(×) 8、蚕的生命周期大约为56天。(√) 9、青春期是从童年到成年的过渡阶段,对每个人来说,都是生长发育的重要时期。(√) 10、蝗虫是完全变态的昆虫。(×) 四、简答题(每小题10分,共30分)

软件生命周期模型 .软件生命周期对于一个软件的研制,从问题的提出,经过开发、使用、维护、修订,直到最后终止使用而被另一软件所取代,就像是一个生命体从孕育、出生、成长到最后消亡,软件的这个状态变化的过程称为生命周期(life cycle)。软件生命周期的演化具有阶段性,依据一定的原则,可以把软件生命 周期划分为若干不同阶段,相邻的阶段既相互区别又相互联系,每个阶段都以 其前一阶段的工作成果作为本阶段工作的基础。软件生命周期的划分有助于软 件开发和管理人员根据不同阶段的特点进行软件开发及其管理。软件开发的经 验表明,软件开发越到后期,改正前期开发工作的失误越困难,因此在软件开 发工作中应该对软件开发工作的阶段性给予充分认识,在前期工作不无分的前 提下不应过早地进入软件开发的下一阶段。依据不同的原则对软件生命周期的 划分也不同,《软件工程国家标准--计算机软件开发规范》(GB8566-88)中将软件生命周期划分为8个阶段:可行性研究与计划、需求分析、概要设计、详细 设计、实现(包括单元测试)、组装测试(集成测试)、确认测试、使用和维护。 本书按照人们所习惯的粗分方法把上面8个阶段划分为计划、开发和维护3个 阶段,在概述其他两个阶段的基础上重点介绍软件的开发过程。2.软件开发方 法在规定的投资规模和时间限制内,实现符合用户需求的高质量软件是软件开 发的目标,为实现这一目标,人们根据软件开发的特点,提出了多种软件开发 策略。通过不同的软件开发模型阐明从问题提出到最终软件实现,软件开发工 作过程的阶段性任务分解,并规定了每一个阶段的目标、任务以及工作结果的 表达形式。常见的软件设计模型有:瀑布模型(waterfall model)、渐进模型(increamental model)、演化模型(evolutionary model)、螺旋模型(spiral model)、喷泉模型(fountain model)、智能模型(intelligent model)等。这里介绍其中的3种。(1)瀑市模型瀑市模型1970年由W.Royce提出,其开发过程 依照固定顺序进行,各阶段的任务与工作结果如图1所示。该模型严格规定各 阶段的任务,上一阶段任务输出作为下一阶段工作输入。此模型适合于用户需 求明确、开发技术比较成熟、工程管理严格的场合使用,其缺点是:由于任务 顺序固定,软件研制周期长,前一阶段工作中造成的差错越到后期越大,而且 纠正前期错误的代价高。图1瀑布型开发过程(2)渐进模型从一组简单的基本用户需求出发,首先建立一个满足基本要求的原型系统。通过测试和运行原型系

常用的软件开发模型 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。 软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。 1. 瀑布模型-最早出现的软件开发模型 1970年温斯顿?罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。对于经常变化的项目而言,瀑布模型毫无价值。(采用瀑布模型的软件过程如图所示)

I S T Q B测试生命周期 与测试模拟题 SANY标准化小组 #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

第二章软件生命周期中的测试 1.以下选项中,不属于典型的V-模型的测试级别是 a组件/单元测试 b集成测试 c回归测试 d验收测试 2.以下选项中,不属于验收测试典型的类型有 a用户验收测试 b运行验收测试 c合同和法规性验收测试 d维护测试 3.对于商业现货(COTS)产品的系统集成,购买者可能会在系统级别进行集成 测试(integration testing)(与基础设施集成测试,和其他系统的集成测试或系统的商业部署)和验收测试(acceptance testing)(功能/非功能测试,用户或操作测试),这种情况说明 a根据项目的特征或系统的架构,可以对测试级别进行合并或重新进行组合b组件测试测试忽略 c可以使用集成测试替代系统测试 d验收测试只能在系统级别进行 4.关于测试的类型,下面哪个是正确的组合 1.通讯录地址的修改 2.确认测试/再测试 3.语句覆盖 4.压力测试 A.功能测试 B.与变更有关的测试 C.非功能的测试 D.结构性测试 a1-A; 2-B; 3-C; 4-D b1-A; 2-B; 3-D; 4-C c1-C; 2-A; 3-D; 4-B d1-B; 2-A; 3-D; 4-C 5.关于测试类型的应用范围,下面哪是正确的 a结构测试只能用在组件测试或集成测试 b功能测试只能用在系统测试或验收测试 c白盒测试方法不能用于系统测试 d功能测试和结构性测试可以应用在任何测试级别 6.关于维护测试,下列哪个选项正确

《软件测试基础》教案 第三讲 教材内容:3 课时1 ----------------------------------------------------------------------------------------------------------------------------- 2 1.回顾上一章: [5分钟] --------------------------------------------------------------------------------------------------- 2 2.课程知识点讲解: ----------------------------------------------------------------------------------------------------- 3 2.1.具体知识点1:基于生命周期测试概述[10分钟] (3) 2.2.具体知识点2:生命周期各个阶段的测试要求[10分钟] (3) 2.3.具体知识点2:HP ALM对生命周期软件测试的支持[10分钟] (3) 3.本节总结[10分钟] --------------------------------------------------------------------------------------------------- 4 4.考核点--------------------------------------------------------------------------------------------------------------------- 4 5.测试题--------------------------------------------------------------------------------------------------------------------- 4 6.扩展部分------------------------------------------------------------------------------------------------------------------ 4 7.学员问题汇总 ----------------------------------------------------------------------------------------------------------- 4 8.作业------------------------------------------------------------------------------------------------------------------------ 4课时2 ----------------------------------------------------------------------------------------------------------------------------- 5 9.回顾上一章: [5分钟] --------------------------------------------------------------------------------------------------- 5 10.课程知识点讲解:-------------------------------------------------------------------------------------- 5 10.1.具体知识点1:[10分钟] (5) 10.2.具体知识点2:[10分钟] (5) 10.3.具体知识点3:[10分钟] (5) 11.本节总结[10分钟] ----------------------------------------------------------------------------------- 6 12.考核点 ----------------------------------------------------------------------------------------------------- 6 13.测试题 ----------------------------------------------------------------------------------------------------- 6 14.扩展部分 -------------------------------------------------------------------------------------------------- 6 15.学员问题汇总-------------------------------------------------------------------------------------------- 6 16.作业 -------------------------------------------------------------------------------------------------------- 6

软件测试的起源与发展 软件测试的概念与定义 软件测试是伴随着软件的产生而产生的。早期的软件开发过程中,那时软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。 直到1957年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。由于一直存在着“为了让我们看到产品在工作,就得将测试工作往后推一点”的思想,潜意识里对测试的目的就理解为“使自己确信产品能工作”。测试活动始终后于开发的活动,测试通常被做为软件生命周期中最后一项活动而进行。当时也缺乏有效的测试方法,主要依靠“错误推测ErrorGuessing”来寻找软件中的缺陷。因此,大量软件交付后,仍存在很多问题,软件产品的质量无法保证。 到了20世纪70年代,这个阶段开发的软件仍然不复杂,但人们已开始思考软件开发流程的问题,尽管对“软件测试”的真正含义还缺乏共识,但这一词条已经频繁出现,一些软件测试的探索者们建议在软件生命周期的开始阶段就根据需求制订测试计划,这时也涌现出一批软件测试的宗师,BillHetzel博士就是其中的领导者。1972年,软件测试领域的先驱BillHetzel博士(代表论著《TheCompleteGuidetoSoftwareTesting》),在美国的北卡罗来纳大学组织了历史上第一次正式的关于软件测试的会议。在1973年,他首先给软件测试一个这样的定义:“就是建立一种信心,认为程序能够按预期的设想运行。Establishconfidencethataprogramdoeswhatitissupposedtodo.”后来在1983年他又将定义修订为:“评价一个程序和系统的特性或能力,并确定它是否达到预期的结果。软件测试就是以此为目的的任何行为。Anyactivitiesaimedatevaluatinganattributeorcapabilityofaprogramorsystem.”在他的定义中的“设想”和“预期的结果”其实就是我们现在所说的用户需求或功能设计。他还把软件的

软件生命周期 定义 软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。 生命周期的每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据。按照软件的生命周期,软件的开发不再只单单强调“编码”,而是概括了软件开发的全过程。软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果“正确”前提上的延续;因此,每一周期都是按“活动-结果-审核-再活动-直至结果正确”循环往复进展的。 阶段 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控

制和管理。可以将软件生命周期概括为软件计划与可行性研究阶段(问题定义、可行性研究)、需求分析阶段、软件设计阶段(概要设计和详细设计)、软件编码阶段、软件测试阶段和软件运行与维护阶段。软件计划与可行性研究阶段(问题定义、可行性研究):此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 需求分析阶段:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,也是在整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。 软件设计阶段(概要设计和详细设计):主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件编码阶段:是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。 软件测试阶段:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。 软件运行和维护阶段:是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。 模型分类 从概念提出的那一刻开始,软件产品就进入了软件生命周期。在

软件测试过程管理-考题-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

一、软件测试过程管理 1. 关于软件测试模型,描述正确的是(C) A. V模型测试的对象就是程序本身,测试与开发可以同一阶段进行 B. W模型测试的对象是程序,需求、设计等,可以支持迭代的开发模型 C. H模型软件测试过程活动完全独立,贯穿产品整个生命周期,与其他流程并发地进行。 D. X模型是事先计划再进行测试。 2. 制定测试计划的步骤:(D) A. 确定项目管理机制预计测试工作量测试计划评审 B. 确定测试范围确定测试策略确定测试标准、预计测试工作量 C. 确定测试构架确定项目管理机制预计测试工作量测试计划评审 D. 确定测试范围确定测试策略确定测试标准确定测试构架确定项目管理机制预计测试工作量测试计划评审 3、编写测试计划的目的是:(ABC)(多选) A、使测试工作顺利进行 B、使项目参与人员沟通更舒畅 C、使测试工作更加系统化 D、软件工程以及软件过程的需要 E、软件过程规范化的要求 F、控制软件质量 4、某公司采用的软件开发过程通过了CMM2认证,表明该公司(C)。 A. 开发项目成效不稳定,管理混乱 B. 对软件过程和产品质量建立了定量的质量目标 C. 建立了基本的项目级管理制度和规程,可对项目的成本、进度进行跟踪和控制 D. 可集中精力采用新技术新方法,优化软件过程 5. (B )可以作为软件测试结束的标志。 A.使用了特定的测试用例B.错误强度曲线下降到预定的水平C.查出了预定数目的错误D.按照测试计划中所规定的时间进行了测试 6.软件测试计划的内容应包括(D)。 A. 测试目的、背景 B. 被测软件的功能、输入和输出 C. 测试内容和评价标准 D. 以上全部 7.下面不属于软件测试过程中的输入类的是(B)。 A. 软件配置 B. 测试用例 C. 测试配置 D. 测试工具 8. 下列不属于测试需求分析阶段的输入的是(A)。 A. 软件测试的方法与规范 B. 软件需求规格说明 C. 软件测试计划 D.软件设计说明

软件缺陷生命周期流程规范 软件测试部 吴XX 2015年12月05日

1. 目的 对软件功能评测过程中发现的问题进行记录、跟踪,从缺陷的产生开始,经过修正、验证等等一系列操作后,最终关闭,包含了软件缺陷的整个生命周期。同时,通过汇总缺陷和分析缺陷曲线,判断产品缺陷是处于发散期、平稳期乃至收敛期,由此作为评估产品稳定性的依据。 2. 范围 自主研发项目,合作研发项目和OEM项目及上市阶段样机的软件功能评测问题类。3. 定义 3.1 缺陷跟踪库:用于存储测试过程中的缺陷,并对整个缺陷生命周期进行跟踪的数据库,结合当前流行的测试工具,目前采用Mantis来处理和跟踪缺陷。 3.2 研发中心:负责提交测试申请,接收测试中心提交的问题点,并修正。 3.3测试部:负责接收测试申请,执行测试,并对测试问题进行汇总和校验,提交测试报告。 3.4测试经理/组长:对接收的测试任务进行合理的资源分配,并执行测试,过滤测试工程师提交的缺陷,并提交缺陷进行分流和执行关闭动作。 3.5测试工程师:执行测试并提交测试缺陷,同时对已经修改的缺陷在新版中进行验证。 4. 流程 4.1 缺陷处理流程图

4.2 流程解释 按照箭头的走向,所有能走通的路径都是有效路径。以下过程是按照主线来走的。详细请见状态转换说明 4.2.1测试部接收测试申请,并根据测试计划执行测试; 4.2.2测试工程师对测试过程中发现的问题进行初步筛选、判断,新建缺陷,并提交相应软件人员; 4.2.3测试经理/组长收到新提交的测试缺陷后,进行再次筛选和过滤,将状态改为“已审核”; 4.2.4软件接口人收到转移过来的缺陷后,进行过滤确认问题,并转给具体的工程师修改; 4.2.5软件工程师收到问题后,进行分析,发现了根本原因后则将状态设为“已确认”;4.2.6问题已经解决后则将状态设为“待验证”,并转移给问题提交人进行确认; 4.2.7问题暂时无法解决、优先级降低,将状态设置为“延期”,软件责任人不变; 4.2.8问题提交人确认问题已解决后将问题“已关闭”。如果问题本身路径已经修改完成但相关路径出现问题,则仍然将此问题“关闭”,同时提交新问题,并备注说明这是该问题的衍生问题; 4.2.9问题提交人确认未修改,则将问题“重新打开”给软件人员/软件接口人; 4.2.10测试经理对验证通过的问题进行再次筛选和过滤,然后将问题关闭; 4.2.11对于描述有问题的bug,相关人员将问题打回给问题创建人员,并简要说明理由;4.2.12对于不是问题、设计如此、重复提交的情况,相关人员将问题状态设为“打回”并转给问题提交人/测试经理,并简要说明理由; 4.2.13问题提交人/测试经理发现测试工程师提交的问题不是问题,则直接关闭问题; 4.2.14测试人员验证概率性问题,暂无法复现的,将状态改成“跟踪”,跟踪三个软件版本仍未复现,则将此bug关闭,如复现bug,则“重新打开”此bug。 附录: 5. BUG缺陷库解释 5.1 用户组成员及其权限

软件测试过程改进模型入门介绍 转自51testing 摘要:测试常被看作是一个昂贵且不可控的过程。测试花费太多的时间,耗费的比计划投入的多,无法提供充分的关于测试过程本身的质量情况。因此,信息系统的质量和商务风险难以判断。 很多组织意识到改进测试过程可以解决这些问题。但是,实际上为了改进和控制测试过程到底应该采取什么步骤以及什么次序是困难的。 基于实践知识和测试过程开发经验,测试过程改进模型(以下简称TPI)被开发出来。TPI提出了一个组织内测试过程成熟度的观点。 在这份文件里将介绍TPI的内容和结构。同时,测试过程改进的一些方面及面临的挑战也将做些讨论。 1、概述 测试常被看作是一个昂贵且不可控的过程。测试花费太多的时间,耗费的比计划投入的多,无法提供充分的关于测试过程本身的质量情况。因此,信息系统的质量和商务风险难以判断。 很多组织意识到改进测试过程可以解决这些问题。但是,实际上为了改进和控制测试过程到底应该采取什么步骤以及什么次序是困难的。 基于实践知识和测试过程开发经验,测试过程改进模型(以下简称TPI)被开发出来。TPI提出了一个组织内测试过程成熟度的观点。 在这份文件里将介绍TPI的内容和结构。同时,测试过程改进的一些方面及面临的挑战也将做些讨论。 2、软件测试的目的 一个信息系统开发阶段的测试活动可以这样来加以说明: 测试活动是从测试计划、测试准备到测试执行、测试分析这样一个过程,测试的目标是对信息系统(泛指软件)的特性进行确认,以发现该系统应有状态与实际状态的差异。 测试计划和测试准备活动用以定义测试过程何时开始。在任何测试方法应用前(即测试执行阶段前),测试过程要求有明确的计划和准备阶段。 测试可以降低系统质量的不确定度级别,但是测试效果的好坏依赖于系统发布所带来的风险,还有我们愿意花费在降低不确定度等级上的时间和资金。

产品生命周期的可靠性测试类型 可靠性的主要测试类型根据产品生命周期的各个阶段大约分为四类,即HALT(研发早期)、ALT(研发中期)、RDT(研发末期暨生产导入期)、ORT(量产期)。 其他的一些可靠性GoTest由于目的单纯,所以样品数往往是经验值或与可靠性目标相关的统计学方法值,此处暂不赘述。 这四个阶段的测试对于样品数的要求都有所不同,下面给出一些参考意见。 HALT:此测试主要目的是找出设计中的重大问题和主要失效模式,增加产品的稳健度(Robustness),确定产品的四个极限即Low&HighDL(DestructiveLimit)和Low&HighOL(OperatingLimit)。所以,样品数非常少,通常每次仅2-4个。当然根据不同产品类型和测试条件,相应作出调整,但此时,样品数并不依据统计学方法给出。 ALT:此测试主要目的是验证MTBF目标。此时,样品数的选择和几个因素有关,主要是MTBF目标、加速因子(AF)、GEMFactor、测试时间。而加速因子与加速老化测试的条件(condition)相关,如温度、温湿度、温湿度加开关交变加速率等;GEMFactor同可接受失效数和置信度相关。下面的表示温湿度ALT测试时间与样品数之间关系的公式可以进一步说明: Duration(hrs)=(MTBFspecxGEMfactorCL)/(SampleSizexAFtempxAFRH). GEMfactor如下表 RDT:此测试目的是为了验证可出货产品是否满足可靠性目标。RDT可分为加速和非加速两种。做RDT 计划,首先要知道产品寿命分布曲线(lifedistribution)。然后根据lifedistribution,确定以下三种测试方法中的一种,即二项式参数(ParametricBinomial)、非二项式参数(Non-ParametricBinomial)、指数卡方(ExponentialChi-Squared)。 最后根据可靠性目标与相关参数的关系确定测试计划。例如要确认产品的lifedistribution为非二项式参数(Non-ParametricBinomial)的可接受失效数为零的测试样品数公式为 当然,以上的计算可以通过一些商业软件非常容易地计算出来。 有时RDT是持续性测试(SequentialTesting),持续数周,数量也比较多。 加速RDT可以通过增加应力级数(stresslevel)相应缩短测试时间和样品数。 ORT:此测试主要目的就是为了筛除那些受到生产流程中的各种因素影响而导致可靠性下降不能满足目标的产品。此时可以使用统计学方法计算样品数。但是,由于产品类型的不同和量产时的情况复杂多变,包括样品数在内的各种测试条件和类型往往都是定制的。没有一个统一的定论。 总结:每个阶段的测试条件各不相同,人们总想要最少的样品,最短的测试时间,而我也不认为可靠性越高对公司就越好。要知道,可靠性也是合适的才是最好的。所以,在定制测试计划时,不应一成不变,而是要充分了解产品特性、客户要求、自身能力等因素,从中找到一个平衡点,制定出合理的计划。

常用软件开发模型比较分析 2007-09-26 20:21 正如任何事物一样,软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般称其为“软件生命周期”。软件生命周期一般分为6个阶段,即制定计划、需求分析、设计、编码、测试、运行和维护。软件开发的各个阶段之间的关系不可能是顺序且线性的,而应该是带有反馈的迭代过程。在软件工程中,这个复杂的过程用软件开发模型来描述和表示。 软件开发模型是跨越整个软件生存周期的系统开发、运行和维护所实施的全部工作和任务的结构框架,它给出了软件开发活动各阶段之间的关系。目前,常见的软件开发模型大致可分为如下3种类型。 ① 以软件需求完全确定为前提的瀑布模型(Waterfall Model)。 ② 在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如螺旋模型(Spiral Model)。 ③ 以形式化开发方法为基础的变换模型(T ransformational Model)。 本节将简单地比较并分析瀑布模型、螺旋模型和变换模型等软件开发模型。 1.2.1 瀑布模型瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。采用瀑布模型的软件过程如图1-3所示。

图1-3 采用瀑布模型的软件过程 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品,也称为“线性顺序模型”或者“传统生命周期”。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下且呈线性图式的,因此瀑布模型存在严重的缺陷。 ① 由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样软件与用户见面的时间间隔较长,也增加了一定的风险。 ② 在软件开发前期末发现的错误传到后面的开发活动中时,可能会扩散,进而可能会造成整个软件项目开发失败。 ③ 在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的。 1.2.2 螺旋模型螺旋模型将瀑布和演化模型(Evolution Model)结合起来,它不仅体现了两个模型的优点,而且还强调了其他模型均忽略了的风险分析。这

相关主题
文本预览
相关文档 最新文档