浅析工控主机安全软件自动化测试
2021-12-22 14:10:55   来源:威努特工控安全   评论:0 点击:

  工业控制设备广泛应用于石油化工、电力水利、轨道交通等国家关键基础设施领域,其正常运行直接关系到工业生产的安全、经济安全甚至是国家安全。工控安全软件的作用是保护工控设备稳定运行,因此工控安全软件产品质量尤为重要,然而工控主机安全软件的测试工作要做充分却并非易事。

  工控主机很多都是运行多年的老设备,操作系统几乎涵盖了主流Windows和Linux系统,再加上32、64位系统区别,操作系统的数量很多,测试工作的人力消耗非常大。对于这种测试人员来说,要面临版本转测试,需要验证的操作系统多、测试周期紧张,测试人员需要深度思考的问题往往没办法发现,枯燥、重复性的工作又会消磨测试人员的积极性,长此以往对整个测试团队是一种伤害。

  自动化“擅长”做的事

  工控主机测试的难点,刚好是自动化很“擅长”做的事,大量重复的工作交给自动化测试去做,测试人员把更多的精力用于深挖测试思路和拓展测试方法。同时,开发人员也可以通过自动化测试完成转测试前的验证,大大提高了转测试产品的质量。

 

  自动化测试采用什么框架更好

  自动化测试常用的框架有pytest、Unittest、Robotframework这几种。

  Unittest是Python中相对比较流行的自动化测试框架,早期主要用作单元测试,随着自动化更新,也经常应用到UI自动化测试和接口自动化测试中,用来管理和维护测试用例脚本。

  Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,还可进行分布式测试执行。简单易上手,但规模大一些维护性较差。

  pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试、自动化测试工作中,基本上Unittest能做的,pytest都能做,而且在分级执行和失败重试上支持得更好,所以采用pytest框架更合理。

  自动化测试从哪些方面开始

  界面部分可以采用selenium方式,通过页面一步步点击完成界面测试,当然这部分在所有自动化测试中的比例尽量降低。如页面改动频繁会导致稳定性差,同时执行效率也不太高,导致后期维护成本很高。

  界面配置部分尽量采用接口测试,通过接口requests或者产品提供的接口实现功能配置和数据获取,这种方法执行效率高、稳定性强,不会因为频发的变化导致后续维护成本暴增。

  被测试机部分通过Windows的Winrm,Linux采用paramiko,或者通过Socket等手段,完成被测机器的注册表、策略组、命令行等操作。

  

  结合界面配置、执行、结果回馈的方式,可以完成端到端的自动化测试,端到端是完整的实现方式,但是这部分实现比例还需要根据项目综合考虑,尽量挑选主流的重要场景实现。以这种方式实现,会导致执行周期较长,对于版本周期较短的项目并不适用。

  定位部分可以采用logging的方式,增加打印输出,以方便测试人员对失败case的问题定位。

  脚本执行可以通过Jenkins调用,通过版本上传SVN/Git触发任务,并发测试多台被测设备,提高执行效率,完成后,Allure报告通过邮件形式发送给测试人员。



 

  要验证大量操作系统,在很短的周期内无论是对人力还是环境都是巨大的挑战,因此工控主机安全很适合自动化测试。一旦自动化脚本形成规模,将自动化环境管理执行起来,可以做到随时测试,测试人员就可以从容应对版本测试了。当然,自动化也不是万能的,产品质量还要依赖于测试人员不断的学习和思考。自动化测试只是将测试人员从繁琐的工作中解放出来,去挖掘更有深度的问题,再将新的思路形成自动化脚本,形成良性循环,从而不断地提升产品质量,更好地服务于客户,保障客户的工控安全。

相关热词搜索:工业互联网安全 人工智能 主机安全

上一篇:工业互联网安全逆势上扬步入增长快车道
下一篇:奇安信北京冬奥网络安全保障中心启动

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏