- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenStack云测试平台及其性能分析研究
基于OpenStack云测试平台及其性能分析研究
摘要:云测试是基于云计算的软件测试新模式。在传统的软件测试中,当测试任务高并发、原有的硬件资源无法满足测试时间要求时,需要更换硬件资源、重新配置测试环境。使用云测试可以实现按需分配硬件资源、无需重新配置测试环境,因而比传统软件测试更能节省测试成本。介绍了如何在OpenStack云平台上配置和运行软件代码覆盖率测试工具SAT。实验表明,当测试任务高并发时,所搭建的云测试平台可以在不用重新配置环境的情况下满足用户对测试时间的要求,降低了用户测试成本。
关键词:云计算;OpenStack;软件测试;云测试平台;SAT
中图分类号:TP393
文献标识码:A
0 引言
云测试是基于云计算的软件测试新模式。软件测试工具SAT是一款常见的针对C语言的代码覆盖率测试工具。采用云计算平台来运行SAT工具不仅可以提高软件的测试效率,而且可以降低软件开发的测试成本。
目前主流的云测试平台中,Soasta主要用于测试Web应用和网站的性能;Sauce Labs提供基于Selenium的测试服务,可跨多浏览器测试Web应用;BlazeMeter主要用于负载与性能测试,能够创建负载测试脚本。这些平台能够实现的主要功能是性能测试、负载测试和Web应用测试服务,并没有涉及到软件代码覆盖率测试服务。常用的C代码覆盖率测试工具主要有ATAC、GCOV和SAT,其中ATAC和GCOV都是通过对代码的每个基本块进行插装来获取代码覆盖信息,而SAT是基于超级块支配图插装的软件测试工具。它在不丢失代码覆盖信息的情况下能对插装探针个数进行有效优化,减少代码插装对被测程序性能的影响。但在SAT的常用运作模式中,SAT测试环境都是搭建在一台计算资源已经固定的单机环境上,而在系统使用高峰期,出现测试任务高并发的情况下,由于计算资源的限制,会导致任务测试时间明显增加,无法满足用户对测试时间的要求。
传统的软件代码覆盖率测试在搭建好测试环境后,当业务变更或业务量增加时,由于原有硬件资源的限制,会导致用户的测试时间增加。为了降低用户的测试时间,需要更换硬件配置,重新配置测试环境(如系统重装,软件的安装、配置文件的修改等),而这些工作无疑会加大测试成本的投入。使用云计算平台则可以有效地解决这个问题。云计算平台具有“按需服务”的特点,用户可以按需部署测试资源,不需要重新配置测试环境,因而测试成本可以明显降低。
除了Soasta、Sauce Labs和BlazeMeter等商业性的云测试软件之外,目前也有一些成熟的、开源的云测试软件可以利用,包括业内熟知的Hadoop、Eucalyptus、Openstack、CloudStack和OpenNebula。其中,OpenStack虽然出现较晚,但是因为官方文档相对完备,安装配置非常容易,且兼容亚马逊公共云平台,因此很快获得广泛推广。OpenStack已被成功地应用于数据仓库系统、混合存储系统、Web应用测试等领域,但在软件代码覆盖率测试方面还没有相关应用。
本文的第二部分将介绍SAT的基本原理和SAT在OpenStack云平台上运行的工作机制;第三部分阐述如何在OpenStack上配置SAT,以形成一个完整的云测试平台;第四部分对这一平台的性能进行分析评估;最后,在第五部分给出本文结论。
1 相关原理
软件测试的一般流程为首先根据程序的内部结构设计测试用例集,然后将测试用例作为输入,对被测程序的运行结果进行分析。而在度量测试的完整程度,判断测试用例是否足够、测试何时可以结束时,就需要用到代码覆盖率测试。代码覆盖率测试工具SAT工作流程如图1所示。
由图1可知,对任意一个待测程序,SAT完成一个完整的测试流程都需要三个步骤:编译系统satCC将待测程序编译成可执行文件;输入测试用例,运行编译后的程序;覆盖率分析器sat根据前两个步骤产生的静态文件和动态跟踪文件,获得测试报告。在步骤一中,预处理器sat cpp先将待测程序Test.c的源码展开,得到预处理后的源码Test.i;接着代码插装器sat i对Test.i进行分析,得到记录程序行列信息的静态文件Test.sat,同时对Test.i进行插装,获得插装探针函数后的源码Test sat.i;最后编译器sat cc对Test sat.i进行编译,并链接相应库函数,生成可执行文件Test。在步骤二中,将测试用例作为输入,运行程序Test,生成记录程序运行情况的动态追踪文件Test.trace。在步骤三中,覆盖率分析器通过对Test.sat和Test.trace文件进行分析,生成测试报告,获得Test程序代码的覆盖率情况。
从上述SAT的工作流程可知,每一个待测程
文档评论(0)