转型升级对云计算下的测试业务至关重要
- 来源:中国信息化周报 smarty:if $article.tag?>
- 关键字:技术,发展,改革 smarty:/if?>
- 发布时间:2020-05-26 17:51
云计算是信息技术发展和服务模式创新的集中体现,是信息化发展的重大变革和必然趋势。支持企业上云,有利于推动企业加快数字化、网络化、智能化转型,提高创新能力、业务实力和发展水平;有利于加快软件和信息技术服务业发展,深化供给侧结构性改革,促进互联网、大数据、人工智能与实体经济深度融合,加快现代化经济体系建设。
国家先后出台了一系列的政策文件,包括《国务院关于促进云计算创新发展培育信息产业新业态的意见》(国发〔2015〕5号)、《云计算发展三年行动计划(2017-2019年)》(工信部信软〔2017〕49号)和《推动企业上云实施指南(2018-2020年)》(工信部信软〔2018〕135号),鼓励企业上云务实推进企业上云工作,引导企业加快数字化转型步伐,促进新一代信息技术与实体经济深度融合。
基于这一大的技术转型背景,本文重点分享云计算技术当下的核心技术优势、软件测试行业转型下的云测试和测试云以及部分实践情况。
云计算技术的核心技术及优势
云计算,通俗来讲就是放在云端的IT服务,云计算让使用IT资源就像用水、用电一样的方便。你无需关心电厂在哪里、是怎么工作的,将插头插入插座即可获取电能,对用户来说电厂好像有用不完的电,而用户仅需为自己使用那部分电能付费。云计算的快速发展,依托于以下的一些核心技术:
虚拟化技术 云计算技术的核心基础,实现对物理资源的统一管理。从表面上看,云上运行的虚拟机都是独立的服务器,但实际上,它们共享了物理服务器的CPU、内存、硬件和网卡等资源。KVM目前是最热门的虚拟化方案,但由于用户交互体验不是很好,不方便使用,因此OpenStack这样的云管理平台就出现了。很多厂商基于KVM以及OpenStack等主流方案构建自己的云平台。
容器技术 更轻量级的虚拟化技术。它和虚拟机有很大不同,虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。大家经常听说的Docker就是创建容器的工具,是应用容器引擎。容器的技术优势在于极其轻量、秒级部署、一次构建随处部署、弹性伸缩。总之容器是一种轻量级的打包和隔离应用工作负载的方法。容器允许在同一物理或虚拟服务器上毫不冲突地运行多项工作负载。Kubernetes(k8s)目前几乎成为实际默认的容器化平台标准,集成了大规模容器的配置和注册管理功能。
微服务架构 最新的应用软件架构设计模式,推崇单一职责、服务自治、轻量通信和接口明确等原则。应用架构正在从采用瀑布模型开发法的单体代码库转变为独立开发和部署的松耦合服务。成千上万个相关的服务相互连接就形成了应用。微服务很适合采用容器的方式部署,每个容器承载一个服务。单台物理机或者虚拟机可以同时运行多个容器,从而轻松地模拟出复杂的微服务架构的应用。容器允许开发人员选择最适合于每种服务的工具或技术栈,并且可以独立于应用的其他服务组件,轻松共享、部署、更新和瞬间扩展。
DevOps技术 是一种软件开发方法,涉及软件在整个开发生命周期中的持续开发,持续测试,持续集成,持续部署和持续监控。现代化开发流程快速、持续且具备自动执行能力,最终目标是开发出更加可靠的软件。通过持续集成 (CI) 和持续部署 (CD),每次开发人员签入代码并顺利测试之后,IT 团队都能够集成新代码。作为开发运维方法的基础,CI/CD 创造了一种实时反馈回路机制,持续地传输小型迭代更改,从而加速更改,提高质量。持续集成环境通常是完全自动化的,通过 git 推送命令触发测试,测试成功时自动构建新镜像,然后推送到容器镜像库。通过后续的自动化和脚本,可以将新镜像的容器部署到预演环境,从而进行进一步测试。
云测试
云测试,狭义的理解就是基于云计算支撑技术,在云平台进行测试服务的平行迁移工作,开展的类似传统的测试服务工作。
测试上云的方式主要表现在于利用云平台的快速部署能力,迅速地将传统的信息化系统测评能力迁移到云平台中,配套开展传统信息系统相关的功能测试、性能测试、兼容性测试、安全性测试等测评服务工作。
云测试的主要优势在于快速的环境部署能力。基于虛机模板技术以及备份策略,可以快速地部署服务器端应用程序;依托云平台灵活的主机配置参数调整能力、存储部署能力以及便捷的网络部署配置能力,可以在云平台上快速地构建和更换被测环境;同时基于虚机的定制镜像技术,也可以快速高效地推送部署测试工具环境以及测试过程管理平台,相较于传统测试,更加高效、便捷,也同步降低了测试成本。另外针对移动应用的盛行,类似于Testin云测、百度MTC、腾讯移动云测试平台等,都推出了基于真实终端设备环境,基于自动化测试技术的7×24云端服务,可以在线上通过键盘鼠标的操作控制远程的移动终端设备(手机或者平板电脑),开展移动APP的功能测试、兼容性测试、安全测试、远程真机调试、定制化测试等服务。
测试云
测试云,简单的理解就是针对云计算平台的特性以及容器、微服务和DevOps等新的技术发展方向,开展有针对性的测试技术研究,利用云平台构建进一步的测试组合环境,并采用新的技术方式或者业务模式,创新性地开展测试工作。
当下主要研究发展方向如下:
面向微服务架构的测试探索。面向与容器化部署的微服务应用程序,微服务具有颗粒度更小、部署灵活、运行时环境复杂多变的特性,如何在云环境下有效地对微服务展开接口测试、Mock测试、性能测试以及故障模拟测试,相较于传统测试,都是新的挑战。基于流量录制和回放的测试方法,已经在阿里、京东等企业内部用于演练双十一、6·18等购物狂欢的压测;基于APM原理的全链路监测分析技术,也将极大地提升微服务架构平台的性能监测和故障检测能力。
大数据和人工智能技术在测试中的应用。目前已经出现了基于人工智能技术,进行交互界面的图像识别,自动创建可编辑的自动化脚本。随着数据分析技术以及自然语言处理技术的不断成熟,在自动化测试过程中的数据准备、脚本编辑以及结果验证比对方面,将发挥更大的应用作用。另外,对于测试结果以及缺陷的分析工作,也将随着沉淀的数据规模增长,为数据分析提供更充分的原料。
面向开源软件的检测服务探索。开源技术进一步引起了大家的关注。开源代码的应用与共享、缺陷分析、安全检测和溯源工作,也成为了各家机构关注的重点。源代码检测工具的线上SaaS化,以及跨工具的检测结果整合分析,已经成为工具厂商和集成厂商的工作方向之一。源代码的溯源、危险成分分析也是当下围绕开源工作的热门工作。
众包。众包测试(Crowdsourced Testing)是软件测试的一个新兴趋势,它利用了众包和云平台的优势、有效性和效率。允许招募大量的工作人员,围绕特定的工作内容展开线上的协作工作。当下,围绕数据采集、数据标注以及众包测试等新型的创新工作方式,也成为一些公共测试服务平台布局的功能之一。
实 践
隶属于中国电子信息产业发展研究院的中国软件评测中心与青云公司合作,部署了自己的私有云环境,物理节点40多个,552个物理CPU,2.3TB物理内存,40TB存储空间,已经完成了云测试的迁移工作,针对主流的测试业务构建了大量的测试镜像资源,能够相对娴熟地在云平台上开展传统的测评业务。
中国软件评测中心正在探索研发一体化测试管理平台,实现全程的信息化管理;积极开展微服务架构的测试、APM技术的应用探索;针对工业互联网的典型应用,开展工业时序数据库产品的专项测评技术突破工作;另外围绕医疗行业移动APP、工业互联网平台的业务需求,开发部署了线上实施数据的监测分析服务平台,进一步延伸测评咨询服务能力。
周润松