云测试(Cloud-testing)是基于云平台提供测试服务的新模式。面向企业及开发者,通过云端调配和使用测试工具、测试设备、测试工程师,以解决企业软件和系统的功能、
兼容、性能、安全等全周期的测试需求。具备
云服务弹性可伸缩的特征,以
AI+RPA(业务流程自动化)的测试能力部分或全部取代人工测试为主要发展趋势。云测试通常能将企业的软件和系统测试效率提高50%,测试成本降低30%。
优势
立即可用
云测试提供一整套
测试环境,测试人员利用
虚拟桌面等手段登录到该测试环境,就可以立即展开测试。这将软硬件安装、环境配置、环境维护的代价转移给云测试提供者(
公共云的经营者或
私有云的维护团队)。以
虚拟化技术,在测试人员指定
硬件配置、软件栈(操作系统、
中间件、工具软件)、网络拓扑后,创建一套新的测试环境只需几个小时。如果测试人员可以接受已创建好的标准测试环境,那么他可以立即登录。
装配完备
云测试不但可以提供完整的
测试环境,还可以提供许多附加服务。对于测试机,它可以提供
还原点,以便测试人员将
虚拟机重置到指定状态。对于测试执行,它可以监控被
测试程序的一举一动,例如注册表访问、硬盘文件读写、网络访问、系统日志写入、系统资源占用率、内存映像序列化、
屏幕录像等。将这些信息与
测试用例一起展现出来,可以帮助测试人员发现问题,定位错误。对于大规模的测试,云测试可以提供多台测试客户机,他们从主控机上下载测试用例,执行并汇报测试结果,主控机将结果汇总后报告给测试人员。实际上,这些功能已经被各种工具所实现,云测试平台的任务是整合它们,提供统一、完备的功能。这样,测试人员就可以将精力最大限度地投入到专属的测试领域中,而不是与各种工具搏斗。
专家服务
最高级的测试服务是提供专业知识的服务。这些知识可以通过
测试用例、测试数据、
自动测试服务等形式提供。例如,许多应用需要读取文件,云测试可以提供针对文件读取的
模糊测试。测试人员将被测试的应用程序提交给云,云将其部署到多台测试机上。在每一台测试上,应用程序要读取海量的文件,每一个文件都是特意构造的攻击文件。一旦
栈溢出、堆溢出等问题被发现,立即保存应用程序的内存映像。一段时间后,测试人员将获得云测试返回的测试结果:一份详细的分析报告和一大堆内存映像文件。
节约成本
每个企业都在追求成本最低和利润最大化。软件测试作为研发生产过程的一部分也有降低成本的要求,即使用最少的机器购买最少的测试软件来完成软件测试工作。利用云测试可实现巨大节省,不需要购买或准备很多的个人电脑,购买和安装各类测试用软件,也不再需要部署复杂的网络。只需要列出测试目的、环境的要求、
虚拟机台数、何时间断租用即可,实现按需支付。例如购买一套自动化测试软件至少花8000元钱,测试中只需要使用2个月,但如果按800元/月租用该软件云测试平台,只需要支付1600元。同时随着企业软件版本和技术的发展,依赖的测试软件或环境亦需要升级换代,又会产生升级和维护费用。而在云
测试环境中这些因素都无须企业考虑,交由提供云测试服务的供应商完成即可。
提高效率
用云测试这种方式,极大地减少了
测试环境搭建时间,如机器和网络准备、操作系统安装、各种测试工具软件安装等都将节省,只需提前将需要的配置环境告之云测试服务商,到时间直接使用即可。由于是基于网络上的应用,当测试中遇到软件使用上等问题时,亦可获得云测试服务商远程快速支持,而很少会出现停滞甚至停止测试现象。
适用项目
通过云测试的定义我们看出:凡是测试中需要使用的软件工具和环境都可进行云测试,当前适合做云测试的项目或内容大概有:
硬件环境:测试软件在不同应用场景下对硬件环境的要求;
软件环境:操作系统、数据库、浏览器等,测试软件对不同运行平台的适应性;
适应性软件:
防火墙及防病毒软件等,测试在安装不同防火墙及防病毒软件时,软件运行可靠性;
随着
云计算技术的发展,为软件测试服务的各种应用亦将得到发展。适合做云测试的项目也将不断增多。
云测试方法
内外部测试
内外部测试意味着把整个云基础设施当作一个系统来进行测试。其范围依赖于组织和应用的设置。云系统可以是单个的,也可以是内部的,或者也可以是多系统的,既有内部也有外部的。测试的一项重要考虑是识别云系统的结构以及受测试应用在系统内是如何运作的。测试者需要知道所有的连接点,包括数据连接和传输的细节,或者用来传递信息给应用的数据消息服务。
从测试每一个云的内部功能开始,然后为所有的连接点或额外的云建立测试。注意,知道云的性质以及云是内部的、外部的还是混合的很重要。测试需要被修改为在内部云完全测试数据的安全,并测试该数据是可以被外部访问还是通过消息系统访问。
测试云端应用包括类似用于Web应用测试的渗透和数据测试技术。不同的是系统结构和基础设施有云供应商而不是内部组织管理时测试者获得访问的数量。其主要目标使验证数据和应用在内部使安全的,并测试所有的连接点,因为每一个连接都有可能是未经许可的入口或访问。
跨系统测试
跨云系统测试类似于从“外部”测试,但也有不同。跨云系统测试意味着测试公有、私有或混合云应用。大多数云应用的目的都是在应用以及因此也在云系统之间
共享数据。再次地,在知道云系统的总体结构、云应用与该系统的交互方式以及共享信息或数据方式时测试最有效。
安全测试跨云和应用进行时,主要的关注点是确定数据是否被不恰当地访问或共享。作为测试者,我希望看看是否可以通过操纵云系统配置及访问或角色安全,或者通过拦截消息或消息队列获得非授权的数据访问。把注意力集中到发现以及测试任何可以被操纵为允许访问进入云系统的集成或连接点上。除了复杂的路径以外,也要测试那些看似更简单或明显的地方,以便验证黑客无法获得对机密数据的访问。
Web应用测试与云应用测试的另一个需要记住的重要差别是,Web应用有边界,而云应用没有。因为有可能是无边界的,所以测试者需要深入全面调查任何连接点或安全边界情况。包括测试网络访问、逻辑错误以及架构性安全问题。安全测试云应用迫使测试者跳出盒子去测试,因为云基础设施在设计上就是开放的。