版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章软件测试模型2.1
软件开发的基本过程
软件开发过程的组织形式如何变化,软件开发所包含的核心工作并没有改变,仍然是需求分析、设计、编码和测试,此外还有为了保证开发过程顺利实施的软件项目管理、配置管理、质量保证、验证与确认等支持活动。合理计划并执行这些活动,才能保障软件开发的成功。需求分析主要目标
与客户和其他涉众在系统的工作内容方面达成并保持一致,使系统开发人员能够更清楚地了解系统需求,定义系统边界,为软件实施计划提供基础,为估算开发系统所需要的成本和时间提供基础,定义系统用户的需要和目标。任务
首先,是需求分析的建模阶段,即在充分了解需求的基础上,要建立起系统的分析模型。
2.1
软件开发的基本过程需求分析任务
其次,是需求分析的描述阶段,就是把需求文档化,用软件需求规格说明书的方式把需求表达出来。
软件需求规格说明书是需求分析阶段的输出,它全面、清晰地描述了用户需求,因此是开发人员进行后续软件设计的重要依据。软件需求规格说明书应该具有清晰性、无二义性、一致性和准确性等特点。同时,它还需通过严格的需求验证、反复修改的过程才能最终确定。2.1
软件开发的基本过程目标和过程软件设计的目标是构建解决方案,设计的过程是把对软件的需求描述转换为软件表示,这种表示能在编码开始以前对其质量做出评价。通俗来讲,软件设计就是要把需求规格说明书里归纳的需求转换为可行的解决方案,并把解决方案反映到设计说明书里。关键软件设计的关键是对软件体系结构、数据结构、过程细节以及接口性质这四种程序属性的确定。2.1
软件开发的基本过程设计原则进行软件设计的过程中应该遵循一系列的原则:模块化、抽象化、逐步求精、信息隐藏2.1
软件开发的基本过程设计编码
软件编码也称为软件构建,就是用某种编程语言编写程序或以界面工具构造出应用界面。编码的过程就是要把软件设计的成果转化为可以在计算机上运行的软件产品的过程。
编码和测试工作历来都是密不可分的。通常情况下,模块的编码和单元测试交替进行,也就是所说的“一边编码,一边测试”。
软件一旦构造出来应及时纳入配置管理,将构造出的新模块/对象和重用的模块/对象组成一个版本,以便有任何改变需重新测试时方便处理。2.1
软件开发的基本过程在编码过程中,选择合适的程序设计语言是关键。程序设计语言经历了漫长的发展和演变,它的发展阶段如图所示:2.1
软件开发的基本过程编码测试
测试就是执行产品所提供的功能的过程。软件测试的目的是为了发现软件产品中存在的软件缺陷,进而保证软件产品的质量。软件测试是软件开发过程中的一个重要阶段。在软件产品正式投入使用之前,软件开发人员需要保证软件产品正确地实现了用户的需求,并满足稳定性、安全性、一致性、完全性等各个方面的要求,从而通过软件测试来对产品的质量实现保证。2.1
软件开发的基本过程测试软件缺陷
所谓的软件缺陷是指软件产品中所存在的问题,表现为用户所需的功能没有实现,无法满足用户需求。在实际的项目开发过程中,缺陷的产生是不可避免的。开发人员之间的交流不畅、系统设计上的失误以及编码中产生的问题等都会造成软件缺陷,从而为修复这些缺陷带来巨大的成本损失。为了尽早地揭示这些软件缺陷,提高软件产品的质量,降低软件开发的成本,软件测试的过程是必须的。2.1
软件开发的基本过程测试
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。5大过程启动过程——确定一个项目或某阶段可以开始,并要求着手实行;计划过程——进行(或改进)计划,并且保持(或选择)一份有效的、可控的计划安排,确保实现项目的既定目标;执行过程——协调人力和其他资源,并执行计划;2.1
软件开发的基本过程项目管理控制过程——通过监督和检测过程确保项目目标的实现,必要时采取一些纠正措施;收尾过程——取得项目或阶段的正式认可,并且有序地结束该项目或阶段。9个知识领域
包括整体管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理和采购管理。2.1
软件开发的基本过程项目管理2.2软件开发过程模型根据过程模型提出的时间不同,可以把软件过程模型分为传统软件工程过程模型和现代软件工程过程模型。传统软件工程过程模型是主要代表是编码修正模型、瀑布模型、增量模型、演化模型和螺旋模型;Rational统一过程(RUP)、敏捷过程(AP)和微软解决方案(MSF)等则是现代软件工程过程模型的主要代表。编码修正模型
编码修正模型是所有模型中最古老也是最简单的模型,该模型将软件开发过程分为编码和测试两项活动。
该模型的主要特点是:最适用于很小且很简单的项目。编码修正模型是从一个大致想法开始工作,然后经过非正规的设计、编码、调试和测试过程,最后完成工作。成本可能很低,经过少量设计就进入编码阶段。2.2软件开发过程模型传统软件工程过程模型编码修正模型易于使用,人员只需要很少的专业知识,写过程序的人都可以用。对于一些非常小的、开发完成后就会很快丢弃的软件可以采用。对于规模稍大的项目,采用这种模型是很危险的,由于缺乏预先的计划并且通常伴随着不正规的开发方式,容易导致代码碎片,交付的产品质量也很难保证。且因为设计没有很好的文档化,因此代码维护困难。2.2软件开发过程模型传统软件工程过程模型瀑布模型
瀑布模型是典型的软硬件开发模型,它包括需求、设计、编码、测试、运行与维护几个阶段。在每一阶段提交以下产品:软件需求规格说明书、系统设计说明书、实际代码和测试用例、最终产品、产品升级等。2.2软件开发过程模型传统软件工程过程模型瀑布模型该模型的主要特点是:每一阶段都以验证/确认活动作为结束,其目的是尽可能多地消除本阶段产品中存在的问题;在随后的阶段里,尽可能对前面阶段的产品进行迭代。2.2软件开发过程模型传统软件工程过程模型增量模型
增量模型是由瀑布模型演变而来的第一个模型,它是对瀑布模型的精化。该模型有一个假设,即需求可以分段,成为一系列增量产品,对每一增量可以分别地开发。
2.2软件开发过程模型传统软件工程过程模型增量模型
增量模型作为瀑布模型的一个变体,具有瀑布模型的所有优点,此外,还有以下优点:第一个可交付版本所需要的成本和时间较少。开发由增量表示的小系统所承担的风险不大。由于很快发布了第一个版本,因此可以减少用户需求的变更。允许增量投资,即在项目开始时,可以仅对一个或两个增量投资。2.2软件开发过程模型传统软件工程过程模型演化模型
演化模型是显式地把增量模型扩展到需求阶段。为了第二个构造增量,使用了第一个构造增量来精化需求。这一精化可以有多个来源和路径。演化模型的长处和不足与增量模型类似。优点有:在需求不能予以规范时,可以使用这一演化模型;用户可以通过运行系统的实践,对需求进行改进;与瀑布模型相比,需要更多用户/获取方的参与。2.2软件开发过程模型传统软件工程过程模型
螺旋模型
螺旋模型是另一种过程模型。在这一模型中,开发工作是迭代进行的,即只要完成了开发的一个迭代过程,另一个迭代过程就开始了。2.2软件开发过程模型传统软件工程过程模型2.2软件开发过程模型传统软件工程过程模型
螺旋模型
开发人员和客户使用螺旋模型可以完成如下工作:确定目标、方案和约束;识别风险和效益的可选路线,选择最优方案;开发本次迭代可供交付的内容;评估完成情况,规划下一个迭代过程;交付给下一步,开始新的迭代过程。RUP模型RUP吸取了已有模型的优点,克服了瀑布模型过分强调序列化和螺旋模型过于抽象的不足,总结了多年来软件开发的最佳经验:迭代开发,提前认知风险。需求管理,及早达成共识。基于构建,搭建弹性框架。2.2软件开发过程模型现代软件工程过程模型RUP模型可视化建模,打破沟通壁垒。持续验证质量,降低缺陷代价。管理变更,有序积累资产。2.2软件开发过程模型现代软件工程过程模型MSF过程模型2000年微软公司在其解决方案框架(MSF)中提出了自己的应用开发过程模型。该模型综合了瀑布模型和螺旋模型的优点。2.2软件开发过程模型现代软件工程过程模型AP敏捷开发过程模型
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷的最低要求应该是使得项目具备以下基本条件:可追溯性、可理解性、可验证量性、其他“开发时质量要求”2.2软件开发过程模型现代软件工程过程模型2.3软件生命周期中的测试
从软件工程的角度看,软件生命周期一般分为4个活动时期:软件分析时期、软件设计时期、编码和测试时期、软件运维时期。
软件测试横跨其中两个阶段,在进行编码的同时,也进行着单元测试。在编码结束后,还有对整个系统的综合测试,这时,主要测试模块接口的正确性和整个系统的功能。测试阶段与开发阶段的关系,如图:2.4软件测试的基本流程测试的基本流程包括:设计一组测试用例。每个测试用例由输入数据和预期输出结果两部分组成;用各个测试用例的输入数据实际运行被测试程序;检查实际输出结果与预期的输出结果是否一致。若不一致则认为程序有错。
通常程序输入数据的可能值的个数很多,再加上程序内部结构的复杂性,要彻底地测试一个程序是不可能的。我们只能执行有限个测试用例,并求尽可能多地发现一些错误。能尽可能多地发现错误的测试用例被称为“高产的”。2.5软件测试的组织
独立测试组(IndependentTestGroup,ITG)的作用是为了避免开发人员进行测试所引发的固有问题,独立测试可以消除利益冲突。
在整个软件项目中,开发人员和测试组要密切配合,以确保进行充分的测试。在测试进行的过程中,必须随时可以找到开发人员,以便及时修改发现的错误。2.6测试过程模型
软件测试过程模型是对软件测试过程的一种抽象,用于定义和描述软件测试的流程和方法。软件测试过程模型的发展伴随着人们对软件工程理解和软件测试理解的深入和发展。V模型V模型是最有代表性的软件测试过程模型,最早由PaulRook在20世纪80年代提出。
在V模型中,单元测试和集成测试验证程序的设计,检测程序的执行是否满足软件设计的要求;系统测试验证系统设计,验证系统功能、性能的质量特性是否达到系统设计的指标;验收测试验证软件需求,确定软件的实现是否满足用户需求或合同的要求。2.6测试过程模型V模型
但是,V模型没有明确说明早期的测试,不能体现“及早的和不断的进行软件测试”原则,因此前期各开发阶段隐藏的错误,需要完成该阶段对应的测试活动才能发现。2.6测试过程模型W模型由Evolutif公司提出,强调测试活动伴随着整个软件开发周期,而且测试对象不仅仅是程序,需求、设计等活动同样需要测试,也就是说,测试与开发是同步进行的。W模型可以说是V模型的自然而然的发展。W模型体现了“及早的和不断的进行软件测试”原则,能够帮助改进项目的内部质量,减少总体测试时间,加快项目进度,降低测试和修改成本。W模型2.6测试过程模型W模型2.6测试过程模型H模型,它将测试活动完全独立出来,形成一个独立的流程,将测试准备活动和测试执行活动清晰的体现出来。H模型体现了测试活动的独立性,它存在于整个软件生命周期并与其他流程并发进行,体现了“及早的和不断的进行软件测试”原则。不同的测试活动可以按照某个次序先后进行,也可以支持反复和迭代过程。只要某个测试达到测试就绪点,测试执行活动就可以进行。H模型
2.6测试过程模型X模型也是对V模型和W模型的改进。X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。X模型左边描述的是对单独程序片段所进行的分离的编码和测试,此后将通过频繁的交接,最终集成为一个可执行的程序X模型2.6测试过程模型
前置测试模型是由RobinFGoldsmith等人提出的,是一个将测试和开发紧密结合的模型,该模型提供了轻松的方式,可以使项目加快速度。
前置测试模型的特点如下:开发和测试相结合对每一个交付内容进行测试在设计阶段进行测试计划和测试设计前置测试模型2.6测试过程模型融合测试和开发让验收测试和技术测试保持相对独立迭代的开发和测试发现内在的价值前置测试模型2.6测试过程模型前置测试模型2.6测试过程模型2.7测试过程改进模型1987年,SEI发布第一份技术报告介绍软件能力成熟度模型(CMM)及作为评价国防合同承包方过程成熟度的方法论。后来,为了解决在项目开发中需要用到多个CMM模型的问题,SEI又提出了能力成熟度模型集成(CMMI),将各种CMM模型融合到一个统一的改进框架内,为组织提供了在企业范围内进行过程改进的模型。TMM1996年,IleneBurnstein、C.RobertCarlson和TaratipSuwannasart参照CMM提出了测试成熟度模型(TMM),TMM是一个采用分级方法确定软件测试能力成熟度的模型,它描述了测试过程的管理,为软件测试过程提供了一个可操作框架。TMM的建立,得益于以下3点:充分吸收CMM的精华;基于历史演化的测试过程;业界的最佳实践。2.7测试过程改进模型TMM将软件测试过程成熟度分为5个递增等级初始级:在初始级中,测试过程是混乱无序的,几乎没有妥善定义。定义级:在定义级中,测试过程已被定义,测试和调试已被明确区分开。集成级:在集成级中,测试不再仅仅是软件生命周期中紧随编码阶段之后的一个阶段,而是贯穿在整个软件生命周期中。管理和度量级:在管理和度量级,测试已被彻底定义并成为一个度量和质量控制过程。优化级:在优化级中,测试过程是可重复、已定义、已管理和已度量的,已经建立起规范的测试过程,因此能够对测试过程不断优化。TMM2.7测试过程改进模型TPI模型的建立是以TMap(TestManagementApproach,测试管理方法)为基础的,TMap是一种结构化的、基于风险策略的测试方法体系,目的是能更早地发现缺陷,以最小的成本、有效地、彻底地完成测试任务,以减少软件发布后的支持成本。TPI2.7测试过程改进模型TMap模型由四个基础部分组成,包括测试活动生命周期——L(Lifecycle)、管理和控制测试过程的组织——O(Organizational)、测试基础设施——I(Infrastructure)、测试过程中采用的各种各样的技术——T(Techniques)TPI2.7测试过程改进模型
测试活动生命周期是从软件产品研发开始到发布为止,分为五个阶段:计划和控制阶段、准备阶段、说明阶段、执行阶段、完成阶段。
管理和控制测试过程的组织是指对测试的开发管理、操作执行、硬件软件安排、数据库管理等必要的控制和实施。它强调测试小组必须融入到项目组织中,每个测试人员必须被分配任务和承担责任。
测试基础设施包括:测试环境、测试工具和办公环境这三个方面,它涵盖了测试工作中必要的外部和内部环境。
测试过程中采用的各种各样的技术用来完成和完善测试工作。TPI2.7测试过程改进模型TPI模型包括五个部分:关键域、成熟度级别、检查点、测试成熟度矩阵和改进建议。其构成如图所示。TPI2.7测试过程改进模型关键测试过程(CriticalTestProcess,CTP)评估模型CTP模型将测试过程分为四个关键过程——计划(Plan)、准备(Prepare)、执行(Perform)和完善(Perfect)。这个四个关键过程还可进一步细分为12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学二年级第一学期班主任工作计划12篇
- 竞选班干部演讲稿范文汇编9篇
- 社会实践活动总结【6篇】
- 行政部个人年终工作总结怎么写
- 车间火灾安全
- 单位统计个人工作总结范例
- 校园安全主题演讲稿集锦15篇
- 出国金融案例分享会
- 奋进新时代争做追梦人征文10篇
- 二年级班先进班集体事迹材料【五篇】
- 《生命 生命》课堂记录观察表
- 汽轮机安装工程工序流程图
- 新教科版五年级科学下册课件2.5给船装上动力
- 基坑安全监测~个人年终总结
- 手术质量与安全监测分析制度
- A9.安规设计规范
- 消防安全操作规程
- 建筑装饰施工组织与管理教学大纲
- 衬里工业管道施工工艺标准
- 号间冷塔冷却三角组合及安装作业指导书
- 突发公共卫生事件处理流程图
评论
0/150
提交评论