测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx

上传人:b****7 文档编号:22357916 上传时间:2023-02-03 格式:DOCX 页数:59 大小:875.53KB
下载 相关 举报
测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx_第1页
第1页 / 共59页
测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx_第2页
第2页 / 共59页
测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx_第3页
第3页 / 共59页
测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx_第4页
第4页 / 共59页
测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx

《测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx(59页珍藏版)》请在冰豆网上搜索。

测试数据的自动化生成和报表比对技术的研究硕士学位论文Word文件下载.docx

1.1软件测试综述1

1.1.1软件测试1

1.1.2软件的自动化测试1

1.1.3测试数据的自动化生成3

1.2论文研究的目的与意义4

1.3论文研究的内容和组织结构4

1.3.1论文研究的内容4

1.3.2论文的组织结构4

1.4本章小结5

第2章软件测试技术2

2.1软件测试的基本理论2

2.1.1软件测试的目的2

2.1.2软件测试的原则2

2.1.3软件测试的内容4

2.1.4软件测试的分类5

2.2测试数据的自动化生成8

2.2.1测试数据自动化生成概述8

2.2.2基于GA的测试数据自动生成8

2.2.3基于神经网络的测试数据生成9

2.2.4基于专家系统的测试数据生成10

2.2.5基于智能规划的测试数据生成11

2.3报表比对技术11

2.3.1图形比对技术11

2.3.2基于小波变换方式图形比对技术11

2.3.3基于分形技术图形比对15

2.4本章小结16

第3章自动化生成测试数据的工具开发18

3.1自动化生成测试数据的需求18

3.2自动化生成测试数据的工具设计18

3.2.1测试数据的生成19

3.2.2测试数据管理22

3.3工具拓展(配置文件)22

3.4工具的拓展(异常处理)31

3.5本章小结33

第4章报表比对技术研究34

4.1数据比对技术34

4.1.1数据的预处理34

4.1.2数据比对管理34

4.2数据比对技术实现35

4.3本章小结36

第5章实际项目中应用37

5.1项目测试数据生成37

5.1.1部分测试数据生成举例38

5.1.2部分异常提醒42

5.1.3测试数据的导入44

5.2报表比对技术的应用44

5.2.1数据的预处理45

5.2.2数据的比对47

5.3本章小结48

第6章总结与展望49

参考文献50

作者简历52

致谢53

图目录

图1.1流程图2

图1.2测试数生成流程图3

图2.1测试分类4

图2.2软件测试分类6

图2.3预测测试数据生成原理9

图2.4基于专家测试数据生成10

图3.1测试数据类型21

图3.2测试数据管理图22

图3.3配置文件图23

图3.4OutputInput生成模块26

图3.5时间生成模块图27

图3.6标准日期生成模块图27

图3.7时间模块生成图28

图3.8ExchangeName主线测试数据29

图3.9Hourminute为主线生成图29

图3.10配置文件判断模块图30

图3.11异常处理图33

图4.1数据比对图35

图4.2数据比对代码图35

图5.1数据生成管理图37

图5.2以ExchangeName为主线图38

图5.3测试数据图一39

图5.4以HourMinute为主线图40

图5.5测试数据图二41

图5.6配置文件图42

图5.7测试数据图三42

图5.8Count异常图43

图5.9Hour异常图43

图5.10Minute异常图43

图5.11主线异常图43

图5.12Day异常图43

图5.13报表比对框架图44

图5.14原始数据图45

图5.15报表中的部分数据图46

图5.16预处理后的数据图46

图5.17数据比对的结果图47

图5.18图表比对结果图48

表目录

表2.1成本修复表3

表3.1测试数据字段表19

表3.2常用函数名称表19

表3.3字段类型表的类型24

表3.4异常处理类表31

第1章绪论

1.1软件测试综述

1.1.1软件测试

软件测试早期的定义是为了发现错误而执行程序或系统的过程[1]。

软件测试的标准定义是使用人工或者自动的手段来运行或测试某个系统的过程,其目的在于检验客户的需求或者弄清预期结果与实际结果之间的差别(1983,IEEE软件工程标准术语)[2]。

笔者对软件测试的理解是,一个软件产品包括相应的程序及文档,我们即要对程序行程测试,也要对文档进行测试。

程序主要是实现某种功能的指令集合,比如C语言程序、VB程序、Python程序、Java语言程序等等,所以我们需要对这些程序语言进行白盒测试;

文档主要是软件开发、使用和维护的过程中间的一些图文集合,例如《系统规格说明书》、《用户手册》,readme等等,所以我们也需要对这些文档进行测试,解决不应该存在的错误,最后通过所有的这些测试,将一个能够正常工作,符合客户需求的产品交给客户的过程。

1.1.2软件的自动化测试

软件的自动化测试是软测试的一个重要分支之一,它可以理解为测试过程自动化和测试结果分析自动化。

测试过程自动化主要指不用手工逐个的对用例进行测试。

测试结果分析自动化主要指不用人工的一点点去分析测试过程中的中间结果和数据流[3]。

软件的自动化测试主要通过一些测试工具如LoadRunner,QTP或者编写测试脚本如Python,Perl语言,来按照软件测试工程师的预设条件,让机器代替手工测试,并且能够到达和手工测试一样的目的,评估运行的结果,从而提高了软件测试的效率,其中预设的条件包括正常的条件和异常的条件。

在一般的运用测试工具进行自动化测试过程中,都需要遵循以下的测试流程,如图1.1

图1.1流程图

(1)指定测试计划。

在任何的软件测试过程中,测试计划是必不可少的。

一个好的测试计划就能够保证整个测试任务顺利的完成,实现测试的目标。

测试计划应该包括用例的设计,场景模拟设计等等。

(2)录制测试脚本。

一般的测试工具都会提供一个友好的图形界面,可以供用户在操作测试工具时进行录制、回放和修改测试脚本,软件测试工程师也可以根据自己的需求来编写测试脚本,从而形成测试所需的实用型脚本。

(3)创建运行场景。

创建运行场景是整个测试过程中的重要一步,软件测试工程师可以根据测试计划来设计脚本的运行方式,模拟用户操作的场景,来实现测试的目的。

例如运用LoadRunner来模拟大量用户登录情景,可以设置用户数每隔一段时间增加一定的数量,来测试系统最大可实现多少用户能够同时登录的情况,从而找出系统的瓶颈所在。

(4)运行测试。

运行测试只需要软件测试工程师点击Run按钮即可,测试工具就会根据已录制好的脚本和已配置好的运行场景,自动运行脚本,从而达到了模拟用户操作的目的。

(5)监视场景。

在一些性能测试工具的运行过程中,我们可以对整个服务器的各项性能进行实时监测,比如系统响应时间,吞吐量,是否按照预设的规则运行等等,在一些功能测试工具的运行过程中,我们可以对系统操作的整个过程进行实时监测,例如模拟用户打开网站,输入用户名、密码进行登录操作等等。

(6)分析测试结果。

测试结果分析是评判软件产品质量好坏的重要依据。

例如性能测试工具LoadRunner提供了强大的报表功能,从而帮助测试人员对整个测试结果进行系统的分析。

1.1.3测试数据的自动化生成

软件测试数据的自动化生成是软件测试中的首要环节,是整个软件测试的驶入点。

生成、维护测试数据也同样重要,然而测试数据的自动化生成和管理等问题已被广泛研究,它可以减少软件开发的费用,而且能够有效的提高软件测试的质量。

测试数据的自动化生成的一般流程,如图1.2

图1.2测试数生成流程图

(1)测试数据需求。

每一个项目都需要自身的一类或一些测试数据需求,明确测试数据类型以及数据字段的多少、各个字段的内容等,这是测试数据生成的前提条件。

(2)测试数据的生成。

明确测试数据需求之后,我们可以根据测试数据的要求,利用测试工具生成符合我们目标的测试数据。

(3)测试数据的管理。

测试数据的管理也是测试过程中的一个重要环节,合理、有效的管理测试数据可以提高整个软件测试的效率。

(4)测试数据的应用。

测试数据的应用是检验测试数据生成的合理性,如果测试数据本身就存在缺陷或者不合理的地方,那测试数据输入系统后,产出的实际结果肯定也存在缺陷。

终上所述,测试数据的自动化生成是整个测试过程中的重要环节,也是必要的前提准备。

1.2论文研究的目的与意义

软件测试是软件工程中的一个重要环节,它能够保证发布出去的软件产品达到一定的质量。

软件测试工程师利用测试工具,按照测试计划和客户要求对软件产品进行功能和性能测试,甚至还可以根据需求编写不同的测试工具,设计和维护系统,对整个测试方案可能会出现的漏洞或缺陷进行分析和评估,从而提高软件测试自身的质量。

自动的生成软件测试数据、维护测试数据是软件测试的一项重要工作,然而这项工作却又是非常繁琐、重复且极易出错的,所以如果能够找到一种通用的方法来生成、维护测试数据是非常有意义的事情。

有了测试数据之后,我们将测试数据与相对应的报告进行比对,从而找出系统是否存在着bug。

基于此,本文主要结合在实习工作中的项目情况,运用脚本语言设计、生成符合要求的测试数据,生成相对应的测试报表,最后研究如何快速的找出bug,定位bug,以此来提高项目的整体质量。

1.3论文研究的内容和组织结构

1.3.1论文研究的内容

本文将介绍利用测试工具自动化生产一类测试数据和软件测试技术的相关理论知识,包括软件测试的目的、原则、内容、分类、发展以及各自的优缺点。

重点介绍测试数据自动化生成工具的开发以及将这一测试数据生成工具应用于某一项目,在需求大量数据的前提下,通过比对报表技术的研究,准确定位bug。

1.3.2论文的组织结构

本文主要分为六章,主要的结构内容如下:

第一章概述了软件测试技术的主要定义及笔者对软件测试的理解,然后介绍了本文研究的目的与意义,最后介绍了全文的研究内容及组织结构。

第二章介绍软件测试的相关理论知识,介绍测试数据自动化生成的方法,分析各类方法的优缺点。

第三章介绍测试数据自动化生成工具的开发,然后将工具扩展成一类测试数据的自动化生成,最后将测试工具的进一步扩展,引进一些异常处理。

第四章介绍了报表比对技术的方法及相关研究,如何定位是否有缺陷存在并且缺陷存在的位置。

第五章主要结合第三章、第四章的知识,运用上述的测试工具和相关研究应用于实际项目,从而实现了高效的软件测试,保证软件产品的质量。

第六章总结了软件测试中自动化测试数据生成的方法,工具的开发过程及报表比对技术的研究。

1.4本章小结

本章概述了软件测试的基本概念,自动化测试的一些流程,以及自动化测试数据的生成,然后阐述了本文研究的目的与意义,最后介绍了全文的内容和组织结构。

第2章软件测试技术

2.1软件测试的基本理论

2.1.1软件测试的目的

软件测试的目的性决定了如何去执行软件测试。

一、如果软件测试是为了如何尽可能多的找出软件存在的缺陷或错误,那么软件测试的目的就应该针对软件逻辑或功能比较复杂的部分,或者是以前经常出错的地方,从而来提高软件产品的质量。

二、如果软件测试是为了给用户提供一个可靠的质量评价,那么测试就应该针对软件产品在实际应用中经常会用到的商业假设。

软件测试的主要目的[4]:

1.帮助开发人员、测试工程师发现问题、分析问题并解决问题。

2.减少软件的缺陷数目或降低软件的缺陷密度。

3.提高软件的可靠性。

4.评估软件的性能指标。

5.增加用户对软件的信心。

6.测试的最终目的是为了避免错误的发生,确保应用程序能够正常高效的运行。

总而言之,软件测试的目的是为了确保软件产品的质量,提高用户使用软件产品的满意度。

2.1.2软件测试的原则

为了提高软件测试的质量,保证软件产品的质量,我们必须遵循以下几条原则:

1.制定测试计划,如果时间允许,尽量把测试时间安排的宽松,预留一部分时间作为缓冲时间,因为在软件测试过程中,随时都可能遇到一些临时事情需要解决,不要希望在极短的时间内做一个高水平的测试。

测试的计划部分应该包括:

软件的功能和必要的性能、输入和输出、测试的内容、各项测试的进度安排表、以及一些测试资料、工具和测试用例等等。

2.尽可能早的进入测试。

在整个软件生命周期中,越早发现软件的缺陷,修复的成本就越低。

如表2.1

表2.1成本修复表

阶段

修复成本

需求阶段

0.1-0.2

设计阶段

0.5

编码阶段

1

单元测试阶段

2

验收阶段

5

维护阶段

20

3.测试应该从小做起,一开始测试主要集中在单个程序或者功能点上,然后将测试转向集成模块,在集成模块中寻找软件缺陷,最后扩展到整个系统,对整个系统进行测试,寻找软件的错误。

4.测试用例一般都应该有三部分组成:

测试的输入、测试的执行步骤和对应的输出预期结果。

5.测试过程中需按照组件和功能,遵循优先级从高到低的测试。

6.对测试发现的缺陷,要有一个再次确认的过程。

7.注意回归测试的关联性,因为一个错误的修正,可能会引起更多的错误出现的现象,这种现象并不少见。

8.妥善保管好一切测试过程的文档,如测试计划,测试用例,缺陷管理及跟踪,这样才能维护软件,保证软件的质量。

9.正确的输入、存储并检索区域,往往一些特殊字符在数据库或其它地方有着特定含义,从而导致输出不正确的结果。

10.程序员避免检查自己的程序,往往会很难发现自己存在的错误,所以测试工作应该有独立的软件测试人员或者机构来进行测试。

11.测试用例要确保的覆盖到所有路径,每一条路径都有可能存在着缺陷,一旦错过,以后修复的成本会大幅度的提高。

12.需要充分注意集群现象。

往往百分之八十的错误存在着百分之二十的地方。

经验表明:

软件残存的错误与已发现的错误数量成正比。

所以对错误集群的程序片段或者功能部分应该重点进行测试。

13.测试用例的设计,应该包括合理的输入和不合理的输入。

合理的输入产出不合理的输出,不合理的输入产出合理的输出,都是软件存在的缺陷。

其中不合理的输入条件主要包括一些异常、临界值等。

2.1.3软件测试的内容

测试主要分为软件测试和硬件测试,而软件测试的主要内容包括程序的测试和文档的测试。

程序的测试主要包括程序的一些逻辑功能、界面、性能、易用性、兼容性、安装等的测试。

文档测试主要包括文档内容和截图的检验,排版风格的检验,错别字的检验。

如图2.1

图2.1测试分类

1.功能:

软件的功能根据需求文档和详细设计文档开发而来,检验软件是否完成或者达到了客户的需求,主要包括完全实现了用户需求的功能,不引进多余的功能(客户不需求的)。

2.边界值:

边界值测试是软件测试的重要方面,系统的缺陷往往存在于输入或输出范围的边界上,而不是在输入范围的内部,因此有关的边界值测试用例可以发现更多缺陷。

3.性能测试:

性能测试主要包括一般性能测试、压力测试和负载测试。

一般性能测试指系统在正常的情况下运行,不向其施加任何压力的性能测试;

压力测试指不断的对系统施加压力,直到系统顶不住压力,最后导致系统崩溃,目的用来检测系统所能够承担的最大压力,确定其瓶颈位置。

负载测试指在系统能够达到的最大压力范围内,持续运行,测试系统的稳定性情况的测试。

4.易用性测试:

易用性测试主要指用户在使用软件的过程中,发现软件哪些方面是不合理的或者不方便的测试。

2.1.4软件测试的分类

根据不同的角度,我们可以对软件测试有不同的分类。

按阶段分,我们可以将软件测试分为单元测试、集成测试、系统测试和验收测试;

按是否运行程序分,我们可以分为静态测试和动态测试;

按是否查看源代码分,可以分为白盒测试、黑盒测试和灰盒测试,黑盒测试又可以分为功能测试和性能测试,功能测试又包含了逻辑功能测试、界面测试、易用性测试、安装测试和兼容性测试,性能测试又包含一般性能测试、稳定性测试、负载测试和压力测试;

最后还有回归测试、冒烟测试和随机测试等。

如图2.2

图2.2软件测试分类

2.1.4.1单元测试、集成测试、系统测试和验收测试

单元测试是对整个软件系统中最小的、可测的程序或者模块进行检查和验证的测试,它主要依据源程序本身和项目的《详细设计》文档。

它的一般标准是程序必须通过所有的单元测试用例,语句覆盖率需到达100%,分支的覆盖率到达85%以上,这样才能保证以后的集成测试得到顺利的进行。

集成测试是以单元测试为前提,只有通过了单元测试,才能进入集成测试阶段,它主要指对单元模块组装成系统或者子系统后,再进行测试,主要针对不同模块之间的接口进行测试。

集成测试一般依据单元测试模块以及《概要设计》文档来进行测试。

系统测试指主要对整个系统进行测试,主要包括对系统的功能、性能和运行系统所需要的软硬件环境进行测试。

系统测试是非常关键的一步测试,因为它是把软件交给客户的最后一道关口,测试完成后,需要把软件产品交给客户,所以系统测试的好坏直接影响到客户对软件产品的满意度。

系统测试主要依据《需求规格说明书》来进行测试。

验收测试主要指以用户的角度来测试,在系统测试的后期举行,也是将软件产品交给客户的最后一道防线。

验收测试主要依据《需求规格说明书》和用户的最终验收标准来进行测试。

2.1.4.2静态测试和动态测试

静态测试与动态测试的主要区别是看是否运行程序来进行测试。

静态测试主要是通过不运行程序,对源程序进行代码走读、审查来分析程序的语法、结构是否正确。

动态测试指通过运行程序,查看运行的实际结果和预期的结果是否一致,分析程序的运行效率和健壮性等问题,主要有三部分组成:

制定测试用例,运行测试程序,比对实际结果与预期结果。

2.1.4.3白盒测试和黑盒测试

白盒测试(白箱测试)是软件测试的主要方法之一,它主要针对代码的内部逻辑,覆盖全部代码、分支、路径和条件,使用程序设计的控制结构导出测试用例

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

当前位置:首页 > 职业教育 > 中职中专

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

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