软件开发生命周期与测试生命周期 毕业论文.doc
《软件开发生命周期与测试生命周期 毕业论文.doc》由会员分享,可在线阅读,更多相关《软件开发生命周期与测试生命周期 毕业论文.doc(17页珍藏版)》请在三一办公上搜索。
1、毕 业 论 文 论文题目: 软件开发生命周期与测试生命周期 内 容 摘 要软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 从软件产业的发展初期到目前的大型软件开发过程,软件测试已成为其中一个不可分割的部分。随着软件规模的日益增大,软件测试问题也日益突出,现代社会对软件的依赖越来越强,高可信软件测试有着广泛的需求,基于缺陷模式的软件测试技术作为高可信软件的重要保证,可以大大降低软件的缺陷密度,提高软件的可信性。本文从测试的基本概念入手,深入剖析软件测试相关理论。关键词 软件设计 软件测试 程序联调
2、缺陷密度Abstract The general process of design idea and method of the software, including software design, software functions and the implementation of the algorithm and the method, architecture design and module design, programming and debugging, program debugging and testing, and submit written proced
3、ures.From the early development of the software industry to the current large-scale software development process, software testing has become an inseparable part of. With the increasing scale of software, software testing is becoming increasingly prominent, the modern society is more and more depend
4、ent on software, software testing has a wide range of needs, based on the software testing technology of defect modes as an important guarantee for high assurance software, defect density can greatly reduce the software, improve software reliability. This paper starts from the basic concept of test,
5、 analyze the theory of software testing.Key words: software design software testing program debugging defect density目 录引 言11软件开发生命周期思想概述11.1生命周期法的起源11.2生命周期划分的原则21.3生命周期的划分21.4生命周期法的特点22软件开发生命周期概述22.1可行性分析22.2需求分析与说明22.3程序编码32.4软件测试32.5运行维护43软件测试概述54软件测试生命周期概述54.1软件测试过程54.1.1动态测试64.1.2软件可靠性测试定义94.1.
6、3软件可靠性测过程9结 论11注释12参考文献13致谢14引 言有很多种不同的生命周期模型用于软件的开发。软件开发的生命周期是以对软件的需求定义为起点,以对软件的正式验收作为终点。它并不是独立存在的,而是一个完整产品生命周期实实在在的一部分。在产品生命周期之中,软件的开发会不断改正其自身的错误并且时常针对软件的需求而进行调整。软件产品最简单的形式只不过是一个程序软件,但实际上确没有那么简单,由于软件产品是由开发出的不同软件部分所构成的一个完整的系统,这将会使产品变的非常复杂.有许多不同的软件开发生命周期模型,但是它们都有一个共同的特点,那就是在生命周期中的某一时刻,软件都会被测试。这篇文章概述
7、了一些常用的软件生命周期模型,并重点强调了在各个模型中的测试工作.每一个软件的发布都会经过验收测试以证明软件的各个部分所构成的整体确实实现了需求。但是每个阶段的测试和集成将会耗费大量的时间和精力。由于过多的开发周期会增加成本,耗费时间,所以应该经过认真估算,尽早地规划好到底应该使用多少个周期来进行软件的开发。 在早期开发出来的产品没有任何的实用价值,只是作为下一步开发的一个原型。这些原型仅仅是用来满足、核对用户关键需求所走的一个捷径。可是如果其中缩减了文档的书写和对软件的测试,那么就有必要将这些将这个原型抛弃并从下一个阶段开始重新设计。因为一个缺乏质量的原形不可能给下一步的开发打下一个好基础。
8、1 软件开发生命周期思想概述软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验证明正确的原理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程借助工程的理论来指导软件开发,大量软件开发实例证明了采用软件工程方法进行开发,可以消除或缓解软件危机,提高软件开发的成功率和生产率。1 1.1 生命周期法的起源 人类解决复杂问题时普遍采用的一个策略是各个击破,也就是对问题进行分解,然后再分别解决各个子问题的策略.软件工程采用的生命周期法,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的
9、漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶段的任务. 1.2 生命周期划分的原则各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理.1.3 生命周期的划分 软件生命周期一般分为:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,综合测试),软件使用与维护等三个时期. 21.4 生命周期法的特点 1.阶段具有顺序性和依赖性 2.推迟实现的观点 3.质量保证的观点 4.每个阶段都必须完成规定的文档 5.每个阶段结束前都要对所
10、完成的文档进行评审,以便尽早发现问题,改正错误。2 软件开发生命周期概述2.1 可行性分析根据输入数据与期望输出分析项目需求,输入值输出转换处理,成本效益分析以及项目的安排。可行性分析还包括根据可使用的软件工程、硬件和软件技术人员,分析项目技术的可行性。在这个项目结束时将创建整个项目的可行性报告。2.2 需求分析与说明 主要集中于描述系统目的。需求提出和分析仅仅集中在使用者对系统的观点上。开发人员和用户确定一个问题领域,并定义一个描述该问题的系统。这样的定义称作系统规格说明,并且它在用户和开发人员之间充当合同。在问题分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和建模,清除用户需求的
11、模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员要将对原始问题的理解与软件开发经验结合起来,以便发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。3在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节
12、,定义软件的其它有效性需求。进行需求分析时,应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,并尽量将分析进度提交给用户。在不进行直接指导的前提下,让用户进行检查与评价。从而达到需求分析的准确性。分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。4软件设计 1.设计应该展现层次结构使得软件各部分之间的控制更明智。2. 设计应当模块化;这就是说,软件应在逻辑上分割为实现特定的功能和子功能的部分。3. 设计应当由清晰且可分离的数据和
13、过程表达来构成。4. 设计应使得模块展现独立的功能特性。5. 设计应使得界面能降低模块之间及其与外部环境的连接复杂性。6. 设计应源自于软件需求分析期间获得的信息所定之可重复方法的使用。要拥有良好的设计特征不是靠碰运气,而在设计过程中通过综合运用基础设计原理、系统方法论、彻底的评定回顾可以有助于良好的设计。软件设计方法每天都在进化,作为已经经过测试和细化的方法,良好的设计应具有以下的四种特性,并在所有这些特性之间保持一致。52.3 程序编码 程序编码是将上一阶段的详细设计得到的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。包括将涉及文档中确定的设计,实现成为可执行的编程语言代码。
14、编码阶段将输出软件的源代码,用作测试与维护简短的输入。2.4 软件测试 工程师理解产品的功能要求,并对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。据介绍,按其级别和职位的不同,软件测试工程师可分为初级软件测试工程师、中级软件测试工程师、高级软件测试工程师 三类。初级软件测试工程师通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷;中级软件测试工程师则编写软件测试方案、测试文档,与 项目组一起制定软件测试阶段的工作计划,
15、能够在项目运行中合理利用测试工具完成测试任务;而高级软件测试工程师则要熟练掌握软件测试与开发技术,且对所测 试软件对口行业非常了解,能够对可能出现的问题进行分析评估。据了解,软件测试人员必须具有创新性和综合分析能力,必须具备判断准确、追求完美、执着认 真、善于合作的品质,以及具有丰富的编程经验与查检故障的能力。使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。1测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。2程序员应该避免检查自己的程序,软件测试应该由第三方来负责。3设计测试用例时
16、应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。4应该充分注意测试中的群集现象。65对策就错误结果进行地一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格的确认,是否真的存在这个问题以及严重程度等。6制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。7妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。软件测试主要工作内容是验证和确认,下面分别给出其概念:验证是保证软件正确地实现了一些特定功能的一
17、系列活动, 即保证软件以正确的方式来做了这个事件.1.确定软件生命周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的对象不仅仅是程序测试,
18、软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。72.5 运行维护对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。 那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本
19、身特有的问题。做 好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。83 软件测试概述软件测试的发展历史:20世纪60年代(软件工程建立前),为表明程序正确而进行测试。. 1972年在北卡罗来纳大学举行了首届软件测试正
20、式会议。. 1975年John Good Enough和Susan Gerhart在IEEE上发表了测试数据选择的原理的文章,软件测试被确定为一种研究方向。. 1979年,Glenford Myers的软件测试艺术,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成的计算机软件的正确度,完全度,和质量的软件过程软件开发过程、开发技术水平、软件测试等多方面进行保障。而软件测试又是保障软件质量的最重要的手段之一。软件可靠性测试是软件开发过程
21、中的一个环节,软件可靠性测试的目的是对软件的可靠性进行验证。是软件生命周期的一个重要阶段和关键步骤。通过排除软件测试中发现的错误和缺陷。随着软件规模的不断扩大,软件功能的不断增加,软件测试的难度进一步提高,软件产品的可靠性也更加难以度量。由于目前在软件可靠性方面还没有建立起权威性的管理体系和规范,建立的许多软件可靠性模型在一定程度上描述了软件可靠性,但均存在局限性,至今尚无哪一个模型能够适合广泛的应用。因此从事软件可靠性测试与评估研究是一个具有理论价值和实际意义的工作。94 软件测试生命周期概述4.1 软件测试过程软件测试指为了发现错误而执行程序的过程。它是根据软件开发各阶段的规格说明和程序的
22、内部结构精心设计一批测试用例,用这些测试用例去执行程序,以发现程序错误的过程。软件测试追求的是通过系统的测试方法,发现软件中的错误。软件测试是软件开发过程中一个非常重要的阶段。其目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。静态分析静态分析的基本特征是在对软件进行分析、审查和测试时不实际运行被测程序。而是采用其它手段达到检测的目的。由专用的软件测试工具评审软件文档或程序,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率。静态分析是对被测程序进行特性分析的一些方法的总称。这些方法本身各有自己的目标和步骤。比如,有的是要收
23、集一些程序信息,以利于查找程序中的各种欠缺和可疑的程序构造:有的只是从程序中提出语义的或结构要点,供进一步分析。静态分析只是对代码进行扫描分析,检测它的语法规则等是否规范,以发现程序的不足之处。它主要是为软件的质量保证提供依据,以提高软件的可靠性和易维护性。10静态分析包含对软件开发过程中的软件需求、设计和编码所生成的文档的检验。1.需求分析阶段检验需求分析文档与用户要求是否一致:检验所有参加项目人员对需求分析文档和用户要求的理解是否正确。2.设计阶段检验设计(概要设计和详细设计)是否与需求分析文档一致;设计的结构化程序及每个模块是否合理;检验每个模块是否符合系统规范要求;检验模块与系统间的组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件开发生命周期与测试生命周期 毕业论文 软件 开发 生命周期 测试

链接地址:https://www.31ppt.com/p-3994214.html