孙秋云
山东交通职业学院山东潍坊261206
摘要:软件测试是保证软件质量的重要手段,针对大数据云计算背景下软件测试所面临的问题,分别论述了传统软件测试技术和基于云计算的软件测试技术以及云计算下软件测试的体系结构,并进行性能对比分析。
关键词:云计算;软件测试;体系结构
1云计算与软件测试基本概念
云计算是本世纪初正式提出的一个新概念,一经出现便得到产业界和学术界广泛关注,并在各行业各领域得到应用。美国国家标准与技术研究院对云计算定义如下[1]:云计算是一个模型,它可以让用户方便地、通过网络按需访问公共可配置资源池(如网络、服务器、存储设备、应用程序以及服务等),这些资源可以被快速地提供并发布,同时最小化管理成本或与服务提供商的交互。可通过网络访问的公共资源池,就是通常所说的“云”,它包括硬件资源和软件资源[2]。本地客户端只需要具备具有网络访问能力的用户交互界面,就可以方便、高效地获取云上近乎“无限”的数据存储、处理和计算能力[3]。
测试领域与计算机技术发展息息相关,云计算的出现和快速发展为测试领域带来了新的机遇。云技术对测试测量行业产生了革命性影响,测试技术与云计算的融合将会是通用测试领域的一个新兴研究热点[4]。软件测试是保证软件质量和可靠性的重要手段。软件测试是软件生命周期的一个重要组成部分,贯穿整个开发过程。软件测试是保证软件达到高质量和高可靠性的关键元素。传统的软件测试是在本地对软件进行测试,每次只能在一个硬件上对测试用例串行的进行测试,且在此过程中产生的各类成本严重限制了测试技术的发展。而基于云计算的测试技术充分利用云计算的分布式特点及优势,可以合理动态调用各类资源,通过一个共享可用的自动化测试环境交付平台给用户提供高效的便捷服务。
2传统软件测试
传统的软件测试方法主要是通过在本地对软件进行测试来发现软件中所可能存在的问题,其分类可分为静态测试和动态测试两种。静态测试主要是对软件源代码和软件产品需求和设计规格说明书进行研读审查来实现对软件的测试,该种方法在查错和功能分析上很有优势。而动态测试主要是通过实际运行程序来发现其中的问题,可分为白盒测试和黑盒测试[5]。
白盒测试是对软件的过程性细节做细致的检查,把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,因此又被称为结构测试或逻辑驱动测试。对白盒测试的研究主要在提高软件的各种覆盖率上[5]。目前一般认为,基于同一测试覆盖准则,测试覆盖率越高,软件的可靠性或可信性就越高。
黑盒测试将被测对象看作一个打不开的黑盒,测试人员在不考虑程序内部结构和内部特性的情况下,只依据需求规格说明书,设计测试用例,检查程序的功能是否按照规范说明的规定正确地执行。它着重于验证软件功能和性能的正确性,典型测试项目包括功能测试、性能测试、边界侧试、余量测试、强度测试等。黑盒测试主要缺点是:测试结果取决于测试例的设计,而测试例的设计部分来源于经验,没有状态转换的概念,给寻找和确定程序缺陷带来困难。
3基于云计算的软件测试
基于云计算的软件测试是基于云计算的一种新型测试方案,这种测试方案可以给用户带来高效率、低成本的专业服务。其测试使用门槛低,提供按需服务并有针对性的收费的方式,用户通过互联网及时获取到所需的测试资源,实现快速测试。不仅节约了本地资源开销,同时还节约了维护和审批的成本。除此之外,用户可以在任意时刻、在不同的环境中进行测试,而且可以快速的拿到有效的测试报告并将其投入使用。
自动测试是指模拟手工测试步骤,由测试工具自动执行测试过程,即测试步骤是在“自动主体”的控制下“自动”完成测试的。从系统学的角度讲,自动测试就是在自动主体的控制下,自动地向被测系统输入正常工作所需的激励信号、信息,自动地采集并定性或定量地判定被测系统在测点上的响应信号、信息是否符合规定要求。现代测试技术的发展,始终是随着自动测试主体的变化而不断演化与进步的:最早的硬件自动测试,其自动主体的角色多由微控制器承担;随着计算机技术的发展,自动主体又演化为分立式计算机[2];如今,随着云计算的日益成熟和广泛应用,自动测试的主体内核可由云计算技术承担。基于云计算重构自动测试技术体系,可以充分利用云计算成本低、性能好、计算力强、存储空间大、访问便捷和方便群组协作的优点,为测试领域带来革新性的变化。
4基于云计算的软件测试体系结构
“测试体系结构”可以看成单套测试系统或多套测试系统组成的集合在其所处环境中的高层抽象,利用体系中的基本单元及这些单元之间的关系来刻画测试系统。基于云计算的软件测试作为一种基于云计算的测试方案,其特征是拥有一个基于云的共享构架平台,测试程序可以在任意终端上执行,用户可以通过该平台获取软件测试所需的资源从而完成测试工作。其体系结构可以分为三层:硬件层、测试服务层、用户层[6]。用户层即客户端,用户通过客户端选择所需服务并执行测试项目。测试服务层是测试的核心部分,用于实现相关的测试算法,其功能主要包括测试资源的控制及管理、测试程序的调度与执行和测试程序的编辑与开发等。无论是测试数据库的访问还是进行资源的管理控制都是在该平台下进行的。硬件则为实现测试提供相应的基础设施。这些基础设施的使用是通过利用云平台构建其虚拟测试资源池来实现的。
5基于云计算软件测试的优势
传统的软件测试重点关注测试的过程,以求能尽可能深入的了解测试项目的真实情况。因此,在这种设计模式下,测试人员必须要设计出多种组合的测试用例,尽可能的考虑到所有情况并对这些测试用例逐一进行测试,才能得出较优的测试结果。但是随着移动互联网的发展,现如今的软件的更新换代速度非常快,人工逐个进行用例测试是一件很耗时的事情。除此之外,使用传统的软件测试所需要的环境的搭建和维护的成本很高,测试资源弹性也很弱。
而基于云计算的软件测试与传统软件测试不同,它更注重对全局的关注,能够提供自动化的测试,并利用云计算分布式的特点将所有的测试用例分散到不同的硬件设备上,并行的完成测试,从而缩短测试所需的时间。因其对软件的测试是在云上完成的,与传统软件测试相比,在云上进行测试还要关注一些额外的东西,例如线上监控和热修复等。尽管云计算下的软件测试在安全性能上不如传统的软件测试,但其在成本节约、可靠性、实时性和容错性能上都比传统的软件测试要强。
6总结
人类发展是一个发现问题,解决问题的改善过程。软件业的发展带来的问题,需要通过软件测试来解决,因此软件测试具有重要的地位和作用。随着大数据云计算的发展,传统软件测试方法的不足将会愈加明显,而基于云计算的测试方法将拥有广阔的应用前景。
参考文献:
[1]MellPeter,GranceTimothy.TheNISTdefinitionofcloudcomputing[M].NISTSpecialPublication,2011:80-145.
[2]肖明清,胡雷刚,王邑等.自动测试概论[M].北京:国防工业出版社,2012.
[3]肖明清,杨召,薛辉辉等.云计算及其在测试领域的应用探索[J].空军工程大学学报(自然科学版),2015,16(1):50-55.
[4]夏骆辉,谭丽.云测试技术备受关注或将引发测试领域革命[J].世界电信,2011(05):69-72.
[5]曹晓勇.软件测试工具的分类和使用.信息系统工程,2009,9,8:81-84.
[6]黄艳敏.浅谈电子产品的硬件测试技术[J].单片机与嵌入式系统应用,2010(2):16-17.
作者简介:孙秋云(1979-),女,四川小金人,硕士,讲师,研究方向为软件测试技术。