自动化测试在大型软件开发中的应用
摘 要 大量研究表明软件开发过程中出现的错误大部分是由设计活动引入的错误,因此,软件测试需要贯穿整个开发周期。手工测试是过去项目测试的主要手段,手工测试的繁琐不仅增加了项目人力成本和沟通成本。自动化测试可以用简单的脚本实现大量重复的操作,因此,自动化测试是软件测试未来发展的必然趋势。本论文主要介绍了对中兴通讯M6000系列路由器MPLS_LDP模块的测试流程及结果的分析。首先,软件工具主要用到secureCRT和TESTORM。SecureCRT功能为连接虚拟机、仿真测试拓扑环境,测试人员主要利用secureCRT系统仿真搭建测试环境并完成手工测试。TESTORM作为管理测试用例、自动化脚本的软件系统,测试人员可以在测试管理子系统中编辑脚本,在自动化测试子系统中运行脚本。使用的脚本语言为Tcl语言,命令简单,功能强大。硬件除了测试产品M6000系列路由器外,还有Spirent TestCenter测试仪。Spirent TestCenter常被用来通告路由、发流、统计报文等。结果表明,自动化脚本会因为外界原因(如版本挂起)运行失败,影响测试结果。因此,脚本需要工作人员多次检查确定脚本是否完善才能将其应用到测试中。自动化测试适用于逻辑性不强、简单的性能测试、压力测试等。对于一些经常要更新版本的软件系统,自动化测试在大量的回归测试中有着不可替代的优势。手工测试和自动化测试如何找到平衡是未来研究的重点。
目 录
摘 要 I
ABSTRACT II
目 录 III
第一章 绪论 1
1.1 自动化测试国内外发展状况 1
1.2 课题研究的目的和意义 1
1.2.1 课题的目的 1
1.1.2 课题意义 1
1.3 测试方法介绍 2
1.3.1 软件测试分类 2
1.3.2 自动化测试 4
第二章 方案论证 7
2.1 路由器分组转发选择 7
2.1.1 传统IP路由的局限性 7
2.1.2 MPLS优点 7
2.1.3标记分配协议 LDP 9
2.2 路由器的测试方法选择 11
2.2.1手工测试局限性
*好棒文|www.hbsrm.com +Q: ^351916072*
11
2.2.2自动化测试的优点 12
第三章 硬件系统简介 13
3.1 M6000路由器 13
3.1.1 产品简介 13
3.1.2 测试内容 14
3.2 Spirent TestCenter测试仪 15
3.2.1 Spirent TestCenter简介 15
3.2.2 Spirent TestCenter应用 15
第四章 软件系统简介 18
4.1 SecureCRT 18
4.2 TESTORM 21
4.3 Tcl脚本语言 22
第五章 测试过程及结果分析 24
5.1 测试过程 24
5.1.1 手工测试用例 24
5.1.2 自动化脚本编写 24
5.1.3 运行脚本 27
5.2 测试结果分析 28
5.3 遇到的问题 29
总结与展望 31
致谢 32
参考文献 33
附录 34
附录A 中英文翻译 34
附录B 脚本示例 43
第一章 绪论
1.1 自动化测试国内外发展状况
随着软件危机的出现以及人们对软件质量的进一步认识,软件测试的地位得到了空前的提高[1]。软件测试的方法也一直在进步。自动化测试是人们为了节约时间、提高测试效率而想出的最新的测试方法。国内对自动化测试的认知和国外相比还有很大差距,例如美国国防部有专门针对自动化测试系统的研究机构,可见国外对自动化测试的重视程度。由于前期投资大、回报率不稳定等因素,国内发展自动化测试的企业并不多,大家对它的认识也不全面。M6000系列路由器是一款高性能宽带综合业务网关产品,它是由中兴通讯公司全力打造的,它的生产主要是为了迎接三网融合、移动互联网、IPv6、物联网和云计算时代,该产品的测试就是通过自动化测试进行的。存在即是合理的。我们不能忽略自动化测试的优越性,取其精华,去其糟粕,才是对待一门新技术的正确态度。
1.2 课题研究的目的和意义
1.2.1 课题的目的
大多数人被问到软件测试的分类时,很少会有人知道自动化测试的概念。而我们通信工程有很大一部分同学在毕业之后选择从事软件开发或者软件测试的工作,所以有必要弄清楚软件测试的分类、流程以及自动化测试的概念和优越性,列举自动化测试与手工测试的各自的优缺点和适用范围,为什么自动化测试被越来越多的公司认可,为什么自动化测试在国内发展较慢等,这都需要我们去探讨,这也是本课题的研究目的。
1.1.2 课题意义
自动化测试的特点在于可以用简单的脚本来实现大量的重复操作,对于一些简单的、缺少逻辑性的性能测试、压力测试等有其不可替代的优势。目前有很多大型软件系统需要经常更新版本,这时候自动化测试可以对程序的新版本自动执行回归测试,避免手工测试者重复回归测试,避免浪费大量的人力和物力等资源。在软件业飞速发展的时代,普及自动化测试具有非常重要的意义:
⑴ 自动化测试适用于一些功能相对成熟、经常发布新版本的软件。新版本和旧版本之间一般大部分功能相同,针对这部分功能的测试选用自动化测试比较合适。
⑵ 提高测试工作效率。软件开发周期一般不会很长,而在测试期间是每隔一两天就会发布一个新版本,成千上万的测试功能点如果全部需要测试人员手工测试的话,会需要花费很多时间,这会大大降低测试工作效率。
⑶ 一致性和可重复性。自动化测试主要依靠自动化脚本的重复执行来完成测试任务,其中所用的脚本都是相同的, 所以每次执行脚本的运行结果相对具有一致性,也正因为一致性,测试人员能够轻易发现被测软件的任何异常。
⑷ 较高的时间利用率。理想的自动化测试能够不需要人工监测自动运行,工作人员吃饭、下班甚至周末的时候,脚本可以连续运行。所有脚本运行结束后,根据运行结果对测试fail的脚本进行检查即可,提高测试效率的同时,大大节约了测试人员的时间
⑸ 简化繁琐的任务。手工测试的过程是非常麻烦的,并且需要大量的测试人员重复操作才能够完成。自动化测试不同于手工测试最明显的是自动测试,不需要大量的重复操作,再麻烦的测试工作都可以被自动完成。
⑹ 增加软件可信度。任何一个软件,只有经过大量测试过程的才是可信任的、可被用户接受的,而只有自动测试才能够大大缩短完成大量的测试案例的时间。
一个软件的研发离不开软件开发和软件测试,过去大家充分肯定了软件开发的重要性,却忽略了软件测试为一个软件的诞生所做出的贡献。一个成熟的系统需要测试工程师成千上百次地测试从而发现开发者的开发漏洞,没有经过测试的系统是不健全的、不会被大众认可的、失败的系统。而自动化测试,作为软件测试发展的潮流,我们需要弄清楚自动化测试的工作流程,在它的帮助下,完善越来越多的软件系统。
1.3 测试方法介绍
1.3.1 软件测试分类
软件测试是一项复杂的系统工程,是指使用某些手段来测定某个软件产品系统是否完整的过程,尽量找出软件的错误是软件测试工作的唯一目标。软件测试有很多种类,除了本文主要区别的手工测试和自动化测试外,还可将它按以下角度分类:静态测试和动态测试;单元测试、集成测试、系统测试、验收测试和回归测试;白盒测试和黑盒测试。具体可以参照图1.1。
按阶段划分
按是否运行程序划分
软件测试
按是否查看源代码划分 功能测试
目 录
摘 要 I
ABSTRACT II
目 录 III
第一章 绪论 1
1.1 自动化测试国内外发展状况 1
1.2 课题研究的目的和意义 1
1.2.1 课题的目的 1
1.1.2 课题意义 1
1.3 测试方法介绍 2
1.3.1 软件测试分类 2
1.3.2 自动化测试 4
第二章 方案论证 7
2.1 路由器分组转发选择 7
2.1.1 传统IP路由的局限性 7
2.1.2 MPLS优点 7
2.1.3标记分配协议 LDP 9
2.2 路由器的测试方法选择 11
2.2.1手工测试局限性
*好棒文|www.hbsrm.com +Q: ^351916072*
11
2.2.2自动化测试的优点 12
第三章 硬件系统简介 13
3.1 M6000路由器 13
3.1.1 产品简介 13
3.1.2 测试内容 14
3.2 Spirent TestCenter测试仪 15
3.2.1 Spirent TestCenter简介 15
3.2.2 Spirent TestCenter应用 15
第四章 软件系统简介 18
4.1 SecureCRT 18
4.2 TESTORM 21
4.3 Tcl脚本语言 22
第五章 测试过程及结果分析 24
5.1 测试过程 24
5.1.1 手工测试用例 24
5.1.2 自动化脚本编写 24
5.1.3 运行脚本 27
5.2 测试结果分析 28
5.3 遇到的问题 29
总结与展望 31
致谢 32
参考文献 33
附录 34
附录A 中英文翻译 34
附录B 脚本示例 43
第一章 绪论
1.1 自动化测试国内外发展状况
随着软件危机的出现以及人们对软件质量的进一步认识,软件测试的地位得到了空前的提高[1]。软件测试的方法也一直在进步。自动化测试是人们为了节约时间、提高测试效率而想出的最新的测试方法。国内对自动化测试的认知和国外相比还有很大差距,例如美国国防部有专门针对自动化测试系统的研究机构,可见国外对自动化测试的重视程度。由于前期投资大、回报率不稳定等因素,国内发展自动化测试的企业并不多,大家对它的认识也不全面。M6000系列路由器是一款高性能宽带综合业务网关产品,它是由中兴通讯公司全力打造的,它的生产主要是为了迎接三网融合、移动互联网、IPv6、物联网和云计算时代,该产品的测试就是通过自动化测试进行的。存在即是合理的。我们不能忽略自动化测试的优越性,取其精华,去其糟粕,才是对待一门新技术的正确态度。
1.2 课题研究的目的和意义
1.2.1 课题的目的
大多数人被问到软件测试的分类时,很少会有人知道自动化测试的概念。而我们通信工程有很大一部分同学在毕业之后选择从事软件开发或者软件测试的工作,所以有必要弄清楚软件测试的分类、流程以及自动化测试的概念和优越性,列举自动化测试与手工测试的各自的优缺点和适用范围,为什么自动化测试被越来越多的公司认可,为什么自动化测试在国内发展较慢等,这都需要我们去探讨,这也是本课题的研究目的。
1.1.2 课题意义
自动化测试的特点在于可以用简单的脚本来实现大量的重复操作,对于一些简单的、缺少逻辑性的性能测试、压力测试等有其不可替代的优势。目前有很多大型软件系统需要经常更新版本,这时候自动化测试可以对程序的新版本自动执行回归测试,避免手工测试者重复回归测试,避免浪费大量的人力和物力等资源。在软件业飞速发展的时代,普及自动化测试具有非常重要的意义:
⑴ 自动化测试适用于一些功能相对成熟、经常发布新版本的软件。新版本和旧版本之间一般大部分功能相同,针对这部分功能的测试选用自动化测试比较合适。
⑵ 提高测试工作效率。软件开发周期一般不会很长,而在测试期间是每隔一两天就会发布一个新版本,成千上万的测试功能点如果全部需要测试人员手工测试的话,会需要花费很多时间,这会大大降低测试工作效率。
⑶ 一致性和可重复性。自动化测试主要依靠自动化脚本的重复执行来完成测试任务,其中所用的脚本都是相同的, 所以每次执行脚本的运行结果相对具有一致性,也正因为一致性,测试人员能够轻易发现被测软件的任何异常。
⑷ 较高的时间利用率。理想的自动化测试能够不需要人工监测自动运行,工作人员吃饭、下班甚至周末的时候,脚本可以连续运行。所有脚本运行结束后,根据运行结果对测试fail的脚本进行检查即可,提高测试效率的同时,大大节约了测试人员的时间
⑸ 简化繁琐的任务。手工测试的过程是非常麻烦的,并且需要大量的测试人员重复操作才能够完成。自动化测试不同于手工测试最明显的是自动测试,不需要大量的重复操作,再麻烦的测试工作都可以被自动完成。
⑹ 增加软件可信度。任何一个软件,只有经过大量测试过程的才是可信任的、可被用户接受的,而只有自动测试才能够大大缩短完成大量的测试案例的时间。
一个软件的研发离不开软件开发和软件测试,过去大家充分肯定了软件开发的重要性,却忽略了软件测试为一个软件的诞生所做出的贡献。一个成熟的系统需要测试工程师成千上百次地测试从而发现开发者的开发漏洞,没有经过测试的系统是不健全的、不会被大众认可的、失败的系统。而自动化测试,作为软件测试发展的潮流,我们需要弄清楚自动化测试的工作流程,在它的帮助下,完善越来越多的软件系统。
1.3 测试方法介绍
1.3.1 软件测试分类
软件测试是一项复杂的系统工程,是指使用某些手段来测定某个软件产品系统是否完整的过程,尽量找出软件的错误是软件测试工作的唯一目标。软件测试有很多种类,除了本文主要区别的手工测试和自动化测试外,还可将它按以下角度分类:静态测试和动态测试;单元测试、集成测试、系统测试、验收测试和回归测试;白盒测试和黑盒测试。具体可以参照图1.1。
按阶段划分
按是否运行程序划分
软件测试
按是否查看源代码划分 功能测试
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/1106.html