企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx

上传人:b****8 文档编号:9325728 上传时间:2023-02-04 格式:DOCX 页数:61 大小:886.20KB
下载 相关 举报
企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx_第1页
第1页 / 共61页
企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx_第2页
第2页 / 共61页
企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx_第3页
第3页 / 共61页
企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx_第4页
第4页 / 共61页
企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx

《企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx》由会员分享,可在线阅读,更多相关《企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx(61页珍藏版)》请在冰豆网上搜索。

企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文 精品.docx

企业级软件产品系统测试的敏捷方法研究和实践硕士学位论文精品

企业级软件产品系统测试

的敏捷方法研究和实践

摘要

系统测试属于软件产品对外发布前的产品验收测试,其目的是验证软件产品是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

在传统的瀑布开发模型下,系统测试通常要等到代码开发阶段结束后开始。

独立的系统测试阶段有利于测试工作的顺利进行,但缺点也显而易见——不能尽早消除系统层面的软件缺陷导致测试和修复缺陷的成本居高不下,同时也增加了软件开发生命周期的时间。

敏捷测试是遵守敏捷宣言的软件测试实践方法,是敏捷开发的关键组成部分。

敏捷系统测试的引入加快了软件开发生命周期并提高了软件产品的整体质量,但不可避免的增加了系统测试过程的难度。

如何发挥敏捷系统测试的优势,并降低其带来的影响是本论文主要分析和讨论的内容。

软件测试成熟度模型(TMM)是基于CMM产生的,TMM的目标是帮助组织提高软件测试成熟度,它能够用于分析软件测试机构运作过程中最优秀或最混乱的区域,并辅助软件测试机构进行测试过程的评估与改进。

作者将在论文中运用TMM模型与敏捷系统测试过程模型的基本思想,提出基于TMM模型的敏捷系统测试具体过程实现模型、软件缺陷管理方案、企业级软件系统测试用例设计,并通过作者在黑莓公司实习期间参与的敏捷系统测试项目加以论证运用TMM模型可以改进敏捷系统测试过程。

关键词:

系统测试,敏捷测试,系统测试过程模型,系统测试具体过程实现模型,软件测试成熟度模型

Abstract

Systemtestingbelongstoacceptancetestingofsoftwareproductbeforeitsofficialreleasetothecustomers.Itaimstoverifywhetherthesoftwareproductmeetsthedefinitionofitsspecificationrequirement,andspecifytheplacesinsidethesoftwarethatviolatetherequirement.Intraditionalwater-falldevelopmentmodel,systemtestingisalwaysstartedaftercodedevelopmentcompletion.Whileindependentphaseofsystemtestingmakesthetestingprocessprogresssmoothly,theshortcomingsofitarealsoobvious.Traditionalsystemtestingprocessishardtoeliminatesystemlevelsoftwaredefectsintheearlyphaseoftesting,whichresultsinmakingthetestingoverheadatthehighlevel.Besides,inordertofullyachievetestinggoals,independentsystemtestingprocesstendstoprolongtimeusageofsoftwaredevelopmentlifecycle.

Agiletestingisonekindofsoftwaretestingpracticewhichfollowsagilemanifesto,andit’soneofindispensablepartsofagiledevelopment.Incorporatingagilemethodintosystemtestingcanacceleratethesoftwarereleaseprocessandhighlyimprovethequalityofsoftwareproduct.However,theredoexistdifficultiesinagilesystemtestingprocess.Inthefollowingparagraphsofthemainbodyofthesis,theauthorwillexplainhowtotakeadvantageoftheagilesystemtesting,andminimizetheimpactoftheitsagileprocess.

SoftwareTestingMaturityModel(abbr.TMM)isderivedfromCapacityMaturityModel(abbr.CMM),anditaimstohelptestingorganizationimprovetheleveloftestingmaturity.Itisusedtofindoutthestrengthandweaknessofthesoftwaretestingorganization,aswellastocoordinatetheevaluationandimprovementofit.Inthethesis,theauthorwillcombinetheTMMandagilesystemtestingprocessmodeltogethertocomeupwiththeagilesystemtestingprocessimplementationmodel,softwaredefectmanagementsolution,designmethodofsystemtestingcasesofenterprisesoftware.Acasestudywillbeprovidedafterallthosetheoreticalexplanations.

KeyWords:

SystemTesting,AgileTesting,SystemTestingProcessModel,SystemTestingProcessImplementationModel,SoftwareTestingMaturityModel

目录

摘要i

Abstractii

目录I

图目录IV

表目录V

第1章绪论1

1.1课题背景1

1.1.1敏捷开发与敏捷测试概述1

1.1.2系统测试概述3

1.2研究目标4

1.3论文组织架构4

第2章软件测试成熟度模型理论分析6

2.1软件测试能力成熟度模型概述6

2.2软件测试能力成熟度模型等级划分6

2.2.1初始级概述7

2.2.2阶段定义级概述7

2.2.3集成级概述8

2.2.4管理和度量级概述10

2.2.5优化、缺陷预防和质量控制级概述10

2.3软件测试能力成熟度模型度量评估12

2.4软件测试能力成熟度模型实践12

2.5本章小结13

第3章系统测试理论分析14

3.1系统测试和敏捷系统测试概述14

3.1.1系统测试概述14

3.1.2敏捷的系统测试概述15

3.2系统测试过程模型16

3.2.1里程碑模型16

3.2.2软件产品发布生命周期模型17

3.2.3里程碑模型和敏捷迭代开发模型相结合的模型19

3.3基于TMM的系统测试过程具体实现模型20

3.3.1系统测试开始前的准备工作计划20

3.3.2第一个里程碑阶段测试过程22

3.3.3第二个里程碑阶段测试过程24

3.3.4第三个里程碑阶段测试过程25

3.3.5第四个里程碑阶段测试过程26

3.4本章小结26

第4章软件缺陷管理概述27

4.1软件缺陷管理概述27

4.2软件缺陷管理系统特点分析27

4.2.1软件缺陷管理系统局的方便性28

4.2.2软件缺陷管理系统的追踪性29

4.3软件缺陷管理系统局限性分析29

4.4软件缺陷管理系统使用的必要性分析30

4.5本章小结30

第5章企业级软件产品概述31

5.1企业级软件概述31

5.2通用软件产品概述31

5.3企业级软件系统测试用例分析32

5.3.1黑莓手机管理平台解决方案概述32

5.3.2系统测试用例设计举例34

5.4本章小结35

第6章案例分析36

6.1项目背景及测试结果分析36

6.1.1系统测团队架构分析36

6.1.2项目系统测试过程实现模型分析38

6.1.3项目软件缺陷管理方案分析39

6.1.4系统测试测试结果分析39

6.2项目改进成果46

6.3本章小结47

第7章总结与展望48

7.1论文总结48

7.2今后展望48

参考文献49

作者简历50

致谢51

图目录

图1.1敏捷开发模型示例2

图1.2传统瀑布开发模型示例3

图2.1软件测试能力成熟度模型具体内容6

图2.2软件测试能力成熟度模型等级划分7

图3.1系统测试过程具体实现过程示例14

图3.2里程碑模型示例17

图3.3软件产品发布生命周期示例18

图3.4里程碑模型和敏捷迭代模型相结合的系统测试过程示例19

图5.1黑莓手机管理平台解决方案产品线32

图5.2软件测试类型示例34

图5.3系统完整系测试示例35

图6.1TC项目的时间表37

图6.2TC项目的敏捷系统测试过程模型38

图6.3第一个迭代系统部署测试执行中发现的软件缺陷示例42

图6.4第二阶段系统部署测试中发现的软件缺陷示例45

表目录

表3.1采用里程碑模型下各个阶段里程碑目标示例17

表3.2四里程碑系统测试过程示例20

表3.3系统测试开始前准备工作示例20

表3.4第一个里程碑系统测试具体过程22

表3.5第二个里程碑系统测试具体过程24

表3.6第三个里程碑系统测试具体过程25

表3.7第四个里程碑系统测试具体过26

表6.1操作系统和数据库兼容性信息40

表6.2第一阶段设计的测试用例分布41

表6.3第一阶段测试执行结果41

表6.4第一阶段确定的缺陷里程碑分类43

表6.5第二阶段设计的测试会话分布44

表6.6第二阶段测试执行结果44

表6.7第二阶段确定的缺陷里程碑分类46

表6.8第三阶段设计的测试用例分布46

第1章绪论

1.1课题背景

1.1.1敏捷开发与敏捷测试概述

敏捷开发是以团队为核心,具有迭代性和增量性的开发方法[1],图1.1是经典的敏捷开发模型示例。

敏捷开发是针对传统的瀑布开发模型的弊端而产生,目的是提高软件开发效率和响应能力。

敏捷开发过程中,软件功能以持续整合的方式不断集成到软件产品中,在整个开发过程中都强调高效沟通和及时反馈。

敏捷软件开发关注保持简洁的代码,经常性测试和及时地交付应用的功能模块。

敏捷思想的出现是为了替代传统的瀑布模型开发流程。

敏捷开发遵循敏捷宣言,其正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法[2]。

敏捷宣言强调的敏捷软件开发的四个核心价值是:

(1)个人和互动高于流程和工具

(2)工作软件高于理解文档

(3)客户协作高于合同协商

(4)变化响应高于计划遵循

敏捷宣言提出的十二条原则包括:

(1)最重要的目标是通过持续不断地及早交付有价值的软件使客户满意。

(2)欣然面对需求变化,即使在开发后期也一样。

为了客户的竞争优势,敏捷过程掌控变化。

(3)经常地交付可工作的软件,倾向于采取较短的周期。

(4)业务人员和开发人员必须相互合作,项目中的每一天都不例外。

(5)激发个体的斗志,以他们为核心搭建项目。

提供所需的环境和支援,辅以信任,从而达成目标。

(6)不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

(7)可工作的软件是进度的首要度量标准。

(8)敏捷过程倡导可持续开发。

责任人、开发人员和用户要能够共同维持其步调稳定延续。

(9)坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

(10)以简洁为本,它是极力减少不必要工作量的艺术。

(11)最好的架构、需求和设计出自自组织团队。

(12)团队定期地反思如何能提高成效,并依此调整自身的举止表现

图1.1敏捷开发模型示例

敏捷测试是遵守敏捷宣言的软件测试实践方法,是敏捷模型的关键组成部分[3]。

敏捷思想的广泛传播使人们开始关注如何有效测试,同时敏捷项目也进一步改变了测试人员在团队中的角色。

把质量构建进产品的思想是敏捷团队的中心任务。

敏捷团队在迭代中工作高度协作以确保产品的质量状态。

敏捷团队是高度跨职能的,开发人员,测试人员和其他人在整个迭代中紧密协作,以确保产品质量。

敏捷团队中的几个核心概念都与测试有关。

在测试驱动开发中,程序员为自己编写的代码进行单元测试。

此外,开发人员也会编写测试代码进行集成测试以保证代码单元之间按要求协同工作,驱动测试开发(TDD)能够从代码层面深入思考软件设计并防止缺陷[4]。

作者将单元测试和单元集成测试归于传统瀑布模型的开发阶段,主要由开发工程师负责。

下文将阐述的敏捷测试主要指“面向业务”的测试,也称为“面向客户”的测试,测试定义了软件产品设计期望的特性和功能。

测试工程师在敏捷开发过程中所进行的工作包括验证产品功能的测试和发现最终产品可能存在的缺陷以及缺陷改进后的测试。

瀑布模型一般会明确定义软件开发生命周期的各个阶段,即以需求分析和设计文档开始,代码编写和软件开发其次,以测试阶段结束(瀑布模型在该阶段通常会出现无法按时完成项目而匆忙进行测试,甚至延迟软件交付等情况)[5],图1.2是经典的瀑布开发模型示例。

瀑布模型的优点在于各个阶段目的明确、团队角色分工清晰、管理简单。

但缺点也十分明显:

需求固定,开发效率较低,软件质量无法提高等。

在使用瀑布开发模型的开发团队中,测试人员虽被视为软件产品的质量守护者,但在由于测试阶段在代码交付和开发完成后开始,测试人员不能通控制代码如何编写提高软件质量,甚至不能控制开发人员是否进行单元测试。

同时,由于需求冻结,测试人员无法直接通过改变产品需求改善软件质量。

敏捷模型针对瀑布模型存在的缺陷提出改进。

在敏捷团队中,开发人员、测试人员、产品经理、项目架构师等相互协作,及时反馈信息,此外团队在工作中密切接触业务,详细了解需求。

在敏捷模型中,测试人员不再等待开发完成才开始工作,而是从设计阶段就开始寻找整个开发周期中可以贡献价值的地方,并且测试人员可以在迭代过程中与产品经理和项目负责人及时沟通,变更产品需求,甚至可以在需求分析阶段,从提高软件质量等角度提出产品需求。

敏捷团队是以整体团队方式运行。

整体团队运行方式要求每个人都对测试任务负责。

架构师和项目经理需要参与敏捷测试计划的制定,参与软件缺陷生命周期的管理,而开发人员通过使用测试驱动开发,来编写高效高质量的代码。

传统开发模型中的测试人员在敏捷开发过程中所进行的工作包括验证产品功能的测试和发现最终产品可能存在的缺陷以及缺陷改进后的测试。

敏捷测试的优点之一就是可以快速从测试中得到反馈,它驱动项目前进,每个迭代里程碑都需要达到既定的测试目标。

由于敏捷项目开发和测试在一定程度上并行,因此相对于传统瀑布模型开发,项目整体进展时间较快。

图1.2传统瀑布开发模型示例

软件缺陷生命周期管理在敏捷测试中也具有高度迭代性。

在一个迭代周期中,当发现软件缺陷之后,测试人员将与开发人员、产品经理或软件架构师沟通交流,在得到反馈和确认之后将提交软件缺陷报告。

敏捷团队负责人和架构师将判断该软件缺陷的优先程度,并将其设定为此迭代或在未来迭代周期中需解决的缺陷,而当开发人员在某个迭代周期中修复此软件缺陷之后,测试人员会得到反馈并进行回归测试验证。

1.1.2系统测试概述

系统测试是将经过集成测试的软件,作为系统计算机的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行[6]。

它是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试。

它是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

系统测试是软件产品发布前的最终产品验收测试。

由于系统测试属于最终产品对外发布前的验收测试,在传统的瀑布开发模式下,为了版本稳定性,通常要等到代码开发阶段、对代码的单元测试和对产品功能的集成测试完成之后开始系统测试。

在所有开发代码的活动全部完成后,开发人员开始参与到系统测试活动中来,他们的工作将转向协助测试人员修复发现的软件缺陷。

1.2研究目标

作者将在下文引入软件测试成熟度模型(TMM),软件测试成熟度模型(TMM)是基于CMM产生的,TMM的目标是帮助组织提高软件测试成熟度,它能够用于分析软件测试机构运作过程中最优秀或最混乱的区域,并辅助软件测试机构进行测试过程的评估与改进。

作者将在论文中运用TMM模型与敏捷系统测试过程模型的基本思想,提出基于TMM模型的敏捷系统测试具体过程实现模型,阐述如何发挥敏捷系统测试的优势,并减少其带来的测试难度;分析软件缺陷管理方案、企业级软件系统测试用例设计;并提供案例分析以论证运用TMM模型可以改进敏捷系统测试过程。

作者对论文的主要贡献包括:

(1)总结了适用于系统测试过程的模型。

(2)结合TMM和敏捷系统测试过程模型,提出了适用于敏捷系统测试过程的敏捷系统测试过程实现模型。

1.3论文组织架构

根据上述研究目标,文章其余部分内如组织如下:

第二章:

作者将在第二章重点阐述了软件测试成熟度模型(TMM),软件测试成熟度模型是基于CMM产生的,TMM的目标是帮助组织提高软件测试成熟度,并辅助软件测试机构进行测试过程的评估与改进。

作者将在下文对敏捷系统测试运用测试成熟度模型的改进和度量评估方法。

第三章:

第三章将介绍系统测试和敏捷系统测试的一般特点,并分析了系统测试过程的具体实现模型和系统测试过程模型。

此外,作者将在3.3节提出基于软件测试能力成熟度模型(TMM)分析的系统测试具体过程实现模型,它是里程碑模型和敏捷迭代开发的系统测试过程模型的具体实现,并结合了TMM对如何提高软件测试成熟度的分析。

第四章:

作者在第四章通过对软件缺陷、软件缺陷管理的概述介绍了基于TMM第四级——管理和度量级别所要求的软件缺陷度量和管理,并将举例说明如何实现敏捷的软件缺陷管理。

第五章:

作者在第五章将介绍企业级软件的主要特点,并根据第二章TMM分析结合黑莓企业手机管理平台解决方案,提出了企业级软件系统测试用例设计方案。

第六章:

第六章中,作者将根据TC项目系统测试测试过程,对该项目运用文中在3.3节中提出敏捷系统测试具体过程实现模型。

该章将对TC项目的敏捷系统测试迭代阶段进行了案例分析,并给出了测试结果和结果分析。

第七章:

第七章将对全文内容进行总括,展望敏捷系统测试未来可继续改进的方面。

第2章软件测试成熟度模型理论分析

2.1软件测试能力成熟度模型概述

能力成熟度模型(CapabilityMaturityModel)简称CMM[7],其基本思想是:

由于问题是由管理软件开发过程的方法引起的,所以新技术的运用不会自动提高生产率和利润率。

能力成熟度模型主要包括五个等级:

初始级(Initial)、可重复级(Repeatable)、定义级(Defined)、管理级(Managed)、优化级(Optimizing)。

软件测试成熟度模型(TestingMaturityModel)简称TMM[8],是基于CMM产生的。

其基本思想是提出一个与CMM类似的框架,来评估组织团队测试过程的成熟度,目标是帮助组织提高测试成熟度。

作为一类等级递增模型,它能够用于分析软件测试机构运作过程中最优秀或最混乱的区域,并辅助软件测试机构进行测试过程的评估与改进。

软件测试成熟度模型具有如下优点:

(1)等级水平结构、关键活动和角色的定义精细。

(2)测试相关因素覆盖全面。

(3)支持测试过程成熟度增长。

(4)有定义良好的评估模型的支持。

2.2软件测试能力成熟度模型等级划分

TMM制定了五个成熟度等级:

初始级,阶段定义级,集成级,管理和度量级,优化、缺陷预防和质量控制级[9]。

如图2.1,各级成熟度水平包含了一组成熟度目标和子目标,以及支持它们的任务、职责和活动。

图2.2为软件测试能力成熟度模型的等级划分。

图2.1软件测试能力成熟度模型具体内容

图2.2软件测试能力成熟度模型等级划分

2.2.1初始级概述

TMM初始级软件测试过程的特点是测试过程无序,有时甚至是混乱的,几乎没有妥善定义的。

初始级中软件的测试与调试常常被混为一谈,软件开发过程中缺乏测试资源,工具以及训练有素的测试人员。

初始级的软件测试过程没有定义成熟度目标。

2.2.2阶段定义级概述

TMM的定义级中,测试己具备基本的测试技术和方法,软件的测试与调试己经明确地被区分开。

测试被定义为软件生命周期中的一个阶段,紧随代码开发阶段之后。

TMM的定义级中需实现3个成熟度目标:

制订测试与调试目标,启动测试计划过程,制度化基本的测试技术和方法。

软件组织必须清晰地区分软件开发的测试过程与调试过程,识别各自的目标,任务和活动。

正确区分这两个过程是提高软件组织测试能力的基础。

与调试工作不同,测试工作是一种有计划的活动,可以进行管理和控制。

这种管理和控制活动需要制订相应的策略和政策,以确定和协调这两个过程。

制订测试与调试目标包含5个子成熟度目标:

(1)分别形成测试组织和调试组织,并有经费支持。

(2)规划并记录测试目标;规划并记录调试目标。

(3)将测试和调试目标形成文档,分发至项目涉及的所有管理和开发人员。

(4)将测试目标反映在测试计划中。

制订计划是使一个过程可重复,可定义和可管理的基础。

测试计划应包括测试目的,风险分析,测试策略以及测试设计规格说明和测试用例。

此外,测试计划还应说明如何分配测试资源,如何划分单元测试、集成测试、系统测试等。

启动测试计划过程包含5个子目标:

(1)建立组织内的测试计划组织并予以经费支持。

(2)建立组织内的测试计划政策框架并予以管理上的支持。

(3)开发测试计划模板并分发至项目的管理者和开发者。

(4)建立一种机制,使用户需求成为测试计划的依据之一。

(5)评价,推荐和获得基本的计划工具并从管理上支持工具的使用。

为改进测试过程能力,组织中需应用基本的测试技术和方法,并说明何时和怎样使用这些技术,方法和支持工具。

基本测试

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1