从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx

上传人:b****1 文档编号:929801 上传时间:2023-04-29 格式:DOCX 页数:20 大小:122.42KB
下载 相关 举报
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第1页
第1页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第2页
第2页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第3页
第3页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第4页
第4页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第5页
第5页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第6页
第6页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第7页
第7页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第8页
第8页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第9页
第9页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第10页
第10页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第11页
第11页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第12页
第12页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第13页
第13页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第14页
第14页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第15页
第15页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第16页
第16页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第17页
第17页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第18页
第18页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第19页
第19页 / 共20页
从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx

《从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx(20页珍藏版)》请在冰点文库上搜索。

从功能性与性能性角度论述如何提高软件质量学位论文Word文档格式.docx

1.1课题背景1

1.2研究意义1

1.3国内外发展的现状2

1.4研究内容2

2功能性测试基本理论2

2.1软件功能测试的定义2

2.2功能测试在测试阶段中得定位3

2.3软件性能的指标3

2.4基于软件模型的功能测试策略3

2.4.1原型模型3

2.4.2V模型4

2.4.3PTGM测试过程模型4

3.功能性测试方法5

3.1功能性测试流程5

3.1.1测试需求分析5

3.1.2功能点分解6

3.1.3建立测试用例6

3.1.4测试执行6

3.1.5BUG管理6

3.2测试用例设计方法6

3.2.1等价类划分法6

3.2.2边界值分析法7

4.性能性测试8

4.1软件性能测试的目标8

4.1.1发现缺陷8

4.1.2性能调优8

4.1.3能力检验与规划8

4.2性能分析8

4.2.1性能下降曲线的分析8

4.2.2性能计数器的分析9

4.3性能测试报告和分析9

4.4软件性能测试工具LoadRunner9

5.总结10

注释11

参考文献12

致谢13

1绪论

软件质量是软件产品或服务的特征或特征的整体,它取决于满足给定需求的能力。

我国1996年公布的“计算机软件工程规范国家标准汇编”中关于软件质量的定义如下:

(1)软件产品满足给定需求的特征及特征的总体能力;

(2)软件拥有所期望的各种属性组合的程度;

(3)顾客或用户认为软件满足他们综合期望的程度;

(4)软件组合特性在使用中,将满足用户预期需求的程度。

软件功能性是为了发现软件功能错误而执行程序的过程,因此软件功能性测试目的就是尽可能多地发现并改正软件中的功能错误,以提高软件质量。

软件性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

1.1课题背景

随着人类社会的进步,各种领域应用计算机技术的普及,全球的信息化已经有了长足深入的发展,作为计算机“灵魂”的各种软件系统,时时刻刻的出现在各个场合,为人们的办公、生活、学习、休闲等提供了前所未有的方便。

当一个软件由雏形前进到真正在一台计算机上运行的时候,没有人能够保证制作出的软件能够一步到位的满足客户或使用者的需求,以及良好的使用体验,因此软件生产周期中需要一个环节来检验并保证软件具备了人们期望的功能与运行的稳定,并且确认这些功能以正确的方式完成了人们期望的工作。

因此为了满足这样的要求,应运而生了软件功能性测试技术与软件性能性测试技术[1]。

1.2研究意义

软件功能性测试是一种以用户视角进行的验证软件是否满足预期需求、是否具备预期功能、功能是否正确执行的测试方法。

在实际情况中软件功能复杂而多样,如何保证所有功能都被加以检测,理论上只有采取穷举输入法,把所有可能[2]的输入都作为测试情况进行考虑,才能查出程序中的所有错误。

但实际上将软件所有功能点及所有的输入进行穷举验证是不现实的,所以我们需要进行有针对性的测试,通过制定测试方案指导测试的进行,保证软件有组织、按步骤、有计划的进行测试。

因此功能测试行为必须能够加以量化,才能真正保证软件功能的质量。

 软件性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试和压力测试都属于性能测试,两者可以结合进行。

通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

研究软件功能性与性能性测试方法即是研究如何分解软件中的功能点,建立测试用例来将测试量化的办法。

作为一名计算机专业的学生,掌握软件功能性测试的方法与技术,对提高自己的专业技术水平,丰富软件工程知识,以及为今后参加工作打下基础都是具有理论价值和实际意义的工作。

1.3国内外发展的现状

为推进和协调软件测试的研究工作,1999年在美国洛杉矶召开的第21届国际软件工程会议上,软件测试及其过程作为技术专题开展了讨论。

近年来,国外在软件测试过程方面的理论和技术上均有了很大的发展,形成了一套较为完善的[3]软件测试过程技术和管理理论体系,测试方法与手段日趋成熟和多样化。

软件测试在我国起步较晚,但在软件测试管理、软件测试技术以及软件测试工程方法上取得了一些研究成果。

例如,中国科学院计算技术研究所进行的软件测试方法研究,华中科技大学计算机学院基于并行工程的软件测试模型研究,上海计算机软件技术开发中心进行的软件测试管理研究等。

研究表明,软件测试的[4]过程必须在软件投入生产运行之前尽早开始,提高软件质量。

然而,无论是传统还是最新的软件测试理论和技术,在软件测试管理、测试过程的理解和实施方法上仍然存在着局限性,因此,在实施测试过程改进的工作中,不能直接照搬他人的成功经验,要结合所在组织和具体项目研究适用有的改进方法。

在国内大部分软件开发组织依然存在“重开发,轻测试”的现象,对于软件功能与性能质量的控制并不重视,但一些电信通讯或软件外包公司等高端领域的开发企业已经开始意识到软件测试对保证和提升软件质量与软件运行稳定性的重要性,并逐步加大了对产品测试的力度及相关测试方法的学习和研究。

1.4研究内容

本课题通过对软件功能性测试的概念和方法的研究,分析了软件功能性测试中功能测试流程、测试用例建立规则及测试性能的建立方法。

并对实际应用软件进行功能性测试与性能性测试。

1.介绍课题来源、研究背景、国内外研究现状以及论文的目标与主要内容。

2.介绍相关的软件测试基本理论,分析针对几种不同软件项目模型下的功能测试策略。

3.介绍软件功能性测试概念、功能性测试方法。

4.介绍软件行能性测试概念、性能性测试方法、软件性能测试工具LoadRunner。

5.对功能测试与性能测试方法进行总结,并结合在实习单位测试功能中总结经验教训

2功能性测试基本理论

2.1软件功能测试的定义

早期的测试理论通常使用黑盒测试的概念定义功能性测试,但经过测试技术的不断发展,仅以功能性测试作为黑盒测试的全部过程已经不能满足软件质量的要求,因此功能性测试的内容被更加细化,目标及其定义也变得更加明确。

恰当的功能性测试被定义为:

根据软件产品的特征、操作、描述和用户方案对软件系统特性和可操作行为进行测试,以确定它们满足需求中预期功能性的行为称为软件的功能性测试。

[5]

功能测试通常在已知软件应当具有哪些功能后,以用户角度来进行程序功能的使用,参照需求分析和规格说明书作为评定标准,以确保软件中各个可以功能满足用户需求,并且功能可以有效运行。

2.2功能测试在测试阶段中得定位

一般来讲,对软件产品进行的测试统称为软件测试,软件测试大致可分为单元测试、集成测试、功能测试、性能测试、兼容性测试、可靠性测试、验收测试[6]等7个阶段,软件的功能性测试属于软件测试中黑盒测试的一部分。

软件的功能性测试是在单元测试与集成测试完成后进行的一项检验软件功能是否符合预期要求及功能正确性的测试过程[7]。

2.3软件性能的指标

为了能够客观地度量软件的性能,人们定义了一系列性能指标,比便于在不同情况下度量软件的性能。

合理的性能指标应该记能够以客观的方式进行度量,也能够基本与人对软件性能的主观感受比较一致。

之所以人们在性能测试中使用多种性能指标,是因为不同人员对软件性能的视角不同,关注点也不同。

图2-1显示了功能测试与性能测试在软件测试过程中的定位,及测试进行的顺序。

图2-1软件测试中的功能测试

因此,功能性测试与性能性测试的开展是有前提条件的。

在软件未实现功能的集成前进行的单一功能测试都含有风险,无法保证后续集成进的模块不会对之前正确的功能带来负面影响。

2.4基于软件模型的功能测试策略

软件测试工作是有组织有计划的对某个软件进行的缺陷暴露工作。

因此为了做到有计划有针对性,在不同软件开发模式下都应当有相对应的软件开发模型,使得测试工作能够满足整个软件制造流程的风格要求,并且能与各阶段顺畅衔接。

2.4.1原型模型

原型模型是指在软件开发过程中,开发方通过制作形象化的模型展示最终软件系统的外观(原型体现软件的功能外观,并辅以功能机制说明来掩饰工作流程与处理逻辑,并非实际的软件程序),来响应客户需求的方法。

在基于原型模型进行的开发中,开发方和客户在项目初始阶段不断审评该原型,以最终确定的软件原型生成系统需求、规格说明书,并以此作为项目开发的基础。

因此,在测试以原型模型进行的项目的功能时,评判功能是否完备、以及功能是否正确的标准来自最终的系统需求、规格说明书,并且功能测试应当在根据需求、规格研发出软件实体之后进行。

根据以上分析,基于原型模型的功能测试应如图2-2所示。

图2-2基于原型模型的功能测试

原型模型是比较简单的软件工程模型,依照此模型进行的功能测试只能测试出软件产品针对于需求、规格说明文档中不符的缺陷。

对于软件需求中存在的错[8]误,通过基于此模型进行的功能测试是很难发现其缺陷所在的。

2.4.2V模型

V模型是在古老的瀑布模型基础上演变而来的软件工程模型,由于将软件开发与测试构造成一个V字形而得名。

V模型中的功能测试被定义在了整个软件开发过程的后半部分,它强调了测试活动与软件设计间的关系,将软件实现和验证有机的结合起来,以确保较高的软件质量。

在V模型中各个测试阶段的测试标准都参考相对应的设计文档,若测试出缺陷则通过相对应的文档入手返回开发阶段按照模型一次修改。

因此,在测试以V模型进行的项目时,功能测试的依据主要来自于软件的概要设计、规格说明书,以验证集成在一起的软件系统是否符合概要设计、规格说明书内的要求。

根据以上分析,基于V模型的功能测试应如图2-3所示。

图2-3基于V模型的功能测试

V模型是标准的软件开发模型,具备完善的各类设计与文档,功能测试阶段具有自己独立的测试参考标准——概要设计,因此在进行功能测试的时候只需要分析概要设计中对软件功能的描述,即可对系统进行测试[6]。

但使用V只有在后期的功能测试中才可发现前期设计上面的问题,发现缺陷后需要较多的工序来进行修改。

虽可保证软件产品的质量,但是整个周期较长。

2.4.3PTGM测试过程模型

与功能性测试相比,性能测试的复杂性更高,测试执行的困难更大,对测试工具的依赖也更强,更需要过程模型的指导。

图2-4给出一个性能测试的过程模型——性能测试通用模型(PerformanceTestingGeneralModel,PTGM),该模型的实质是将针对功能测试的自动化测试模型进行适当调整,以适应性能测试的需要,在第四章中进行详细介绍[9]

图2-4PTGM模型示意图

3.功能性测试方法

3.1功能性测试流程

功能性测试按步骤可划分为7个部分,即获取测试系统、测试方法选定、进行测试需求分析、功能点分解、建立测试用例、测试执行、BUG管理。

图3-1展示了功能性测试经历的7个步骤。

图3-1功能性测试流程

每一步按照箭头所示方向向下进行,最终完成功能性测试过程。

3.1.1测试需求分析

测试需求分析阶段是研究用户需求,完全理解用户对软件所需求的完功能,并确认用户对软件功能的需求,建立可评判的、可验证的基本依据的的过程。

因此,测试需求分析阶段就是对用户需求的理解过程,通过研究需求分析文档把用户想要哪些功能摸清,把用户对于每个功能想要达到的目标摸清,就完成了测试需求的分析。

3.1.2功能点分解

软件的功能繁多而复杂,即使是单一的文本输入框在功能测试时也不只是测试能否输入文本这么简单,能输入的最大字符长度、可输入的字符类型、输入超过超过规格限定的数据时的系统反馈等都是需要进行测试的项目。

功能测试的功能点分解阶段即是将软件中所有功能的测试点分解出来,建立一个可视化的、有规律的、全面性的文档指导之后的测试用例建立,以及测试执行时覆盖这些功能点的依据。

3.1.3建立测试用例

建立测试用例阶段在功能分解之后进行,此阶段主要进行的是根据测试需求分析阶段获得的功能正确性评判依据对分解出的每个功能点进行测试执行时具体操作的规划。

建立出的测试用例集可

以作为执行测试时每一步操作的依据,并记录测试执行的结果以备分析缺陷情况使用。

3.1.4测试执行

测试执行阶段是在之前的准备工作完成后具体实施测试操作的环节,在此环节中通过已建立的评判体系对系统各个功能点进行验证,以求暴露出所有存在的缺陷。

通过实习期间的亲身体会,在测试执行时,一昧的按照测试用例去执行,以期单纯的使用这样的方法来发现软件缺陷往往是不够的。

更多时候,需要测试操作者通过自己已有的知识、经验和灵感增加随机的测试用例,丰富按照固定模式生成的测试用例集的覆盖的场景,才可更多的暴露出软件潜藏的缺陷与不足。

3.1.5BUG管理

BUG管理阶段是对已发现的软件缺陷进行确认、上报、跟踪、回归的过程[10]。

在测试执行中发现的软件缺陷应通过有序、详细、规范的BUG汇报呈现出来,以方便开发人员根据缺陷产生条件定位错误原因。

在BUG被修改时,测试人员应当密切关注BUG的状态以及修复情况,积极与开发员人沟通,摸清BUG产生的原因。

待缺陷被修复后通过输入缺陷产生的条件来验证修复完成度。

BUG管理阶段是功能测试中非常重要的阶段,只有将发现的缺陷处理好,才能真正改善软件功能质量。

3.2测试用例设计方法

针对分解出的不同功能项,在生成测试用例时应采用合适、恰当的测试方法生成测试用例,但实际情况下需要考虑更多的问题,有时需要测试设计人员根据经验编写出恰当的测试用例,以下介绍常用的生成测试的方法,包括:

等价类划分法、边界值分析法。

3.2.1等价类划分法

等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中选取少数的代表性数据当作测试用例的方法。

等价类是指某个输入域的子集合。

每一子集合代的代表性数据在测试中的作用都是等效于这一子集合中的其他值。

如果这一类中的一个例子发现了错误,则这一类中的其他例子也能发现同样的错误;

反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。

这就可以用少量代表性的测试数据取得较好的测试结果。

使用这一方法设计测试用例,必须在分析需求规格说明、功能说明的基础上找出每个输入条件,然后为每个输入条件划分两个或多个等价类,列出等价类表。

等价类可分为有效等价类和无效等价类。

[11]

有效等价类:

有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据所构成的集合。

无效等价类:

与有效等价类相反,是指由对程序的规格说明不合理或无意义的输入数据所构成的集合。

在划分等价类时应遵循以下基本原则:

1)在输入条件规定了取值范围或值的情况下,则可以确立一个有效等价类和两个无效等价类;

2)在输入条件规定了输入值的集合或规定了“必须如何”条件的情况下,可确立一个有效等价类和一个无效等价类;

3)在输入条件是一个布尔值的情况下一个有效等价类和一个无效等价类;

4)在规定了输入数据必须遵守的规则的情况下,可确立一个符合规则的有效等价类和若干个不符合规则的无效等价类(以不同角度违反规则);

5)在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

3.2.2边界值分析法

边界值分析法用于列出单元功能、输入、状态及控制的合法边界值和非法边界值,对数据进行测试,检查用户输入的信息、返回结果以及中间计算结果是否正确。

是用来补充等价类划分的测试用例设计方法。

边界值分析法用于考察正处于等价类划分边界或在边界附近的状态,选择输入和输出等价类的边界,选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

典型的边界值分析包括if语句中的判别值、定义域、值域边界、空或畸形输入等[12]。

在对边界值设计测试用例时应遵循以下基本原则:

1)若输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据;

2)若输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据;

3)若程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个原则作为测试数据;

4)若程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。

4.性能性测试

4.1软件性能测试的目标

由于软件的性能在开发时难以准确确定,而且影响软件性能的因素不仅仅包括软件本身,因此软件性能测试的目标不仅仅是发现(和改正)性能缺陷(PerformanceBug),还包括探索和规划软件的实际性能,具体而言,软件性能测试包括以下几方面的目标。

[13]

4.1.1发现缺陷

和其他测试一样,性能测试的首要目标是发现缺陷。

对于软件而言,在开发阶段完全避免引入缺陷几乎是不可能的,性能缺陷也是如此。

由于性能缺陷的揭示必须基于整个系统的运行,此时的性能测试一般是伴随系统测试进行的。

通常,性能测试需要精心设置测试环境。

例如,某软件有这样的性能需求“在电脑配置一定的情况下,最多支持多少台抓拍机”,则需要在模拟多台抓拍机并发运行环境的基础上才能测试该电脑最多支持多少台抓拍机同时使用。

4.1.2性能调优

性能调优类似于其他测试中得调试。

人们一般不把调试看做测试的一个环节,但测试的确应该为调试提供更多帮助,否则即使发现软件中有错误也不得不发布包含错误的软件。

与调试不同的是,性能调优并不一定针对发现的性能缺陷,也可能是为了更好地发挥系统的潜能。

4.1.3能力检验与规划

由于软件的实际使用场景在未来可能发生变化,软件性能测试不但需要测试软件在规定的场景下是否满足性能需求,往往还需要测试在其他场景下是否满足性能需求或能否通过性能调优满足要求。

4.2性能分析

4.2.1性能下降曲线的分析

对于性能测试来说,分析“性能下降曲线”往往可以获得许多重要信息。

所谓性能下降曲线,就是指性能指标随用户的增加而变化的曲线,由于性能总体来说是随用户数的增加而下降的,故称为性能下降曲线。

一般来说,分析性能下降曲线会把曲线分为以下几个区间。

1)性能平坦期:

随着用户数的增加性能指标首先会出现一个平坦区。

是软件运行的正常状态,因此人们希望该期间越长越好。

而该指标对于性能分析和性能调优有重要的参考意义。

2)性能轻微下降期:

当用户数继续增加,就会出现性能轻微下降区。

通常认为该下降区是软件承受高负载的缓冲区,该区间也是越长越好

3)性能急剧下降区:

通过性能轻微下降区,软件的性能会出现急剧下降。

此时,不是软件运行的正常区间,但该区间对于分析性能瓶颈缺有很大作用。

一般来说,性能急剧下降区的起始点(也称性能拐点)就是性能瓶颈出现的地方,此时进一步分析资源利用率就可以找到造成性能瓶颈的原因[13]。

4.2.2性能计数器的分析

性能测试其实就是一些测试数据的体现与现有测试资源的综合利用的指标,这些指标通常可以利用操作系统、应用服务器或数据库服务器提供的命令或系统调用获得。

4.3性能测试报告和分析

性能测试报告

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2