CN110673873B - 一种基于审计的软件发布方法 - Google Patents
一种基于审计的软件发布方法 Download PDFInfo
- Publication number
- CN110673873B CN110673873B CN201910955442.4A CN201910955442A CN110673873B CN 110673873 B CN110673873 B CN 110673873B CN 201910955442 A CN201910955442 A CN 201910955442A CN 110673873 B CN110673873 B CN 110673873B
- Authority
- CN
- China
- Prior art keywords
- file
- audit
- information
- engine
- compiling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于审计的软件发布方法,通过SSH运维隧道来控制命令,通过SSH协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验;通过SFTP通道来传输文件,通过对SFTP协议的解析,保存文件并计算文件的特征值,判断文件的完整性和正确性。本发明通过在软件发布中引入审计的方法,实现了内容可回溯,问题易定位的效果,具有较好的实用性。
Description
技术领域
本发明属于互联网的技术领域,具体涉及一种基于审计的软件发布方法。
背景技术
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发过程通常涉及源代码开发、编译、测试、发布上线等几个环节。
现有的技术中,软件开发过程中的编译、测试以及发布上线的环节是独立进行的。具体的,需要人为手动配置编译、测试以及发布上线环节的运行环境。例如编译环节需要人工根据源代码的语言类型配置不同的编译环境;测试环节需要测试人员根据源代码的特点部署测试系统版本、语言类型以及具体的测试用例。
当前的自动化发布系统设计方式为——发布管理平台+文件服务器+发布代理。代理从发布管理平台获取信息,从文件服务器获取软件。本发明联合测试功能,达到测试发布一体自动化完成;并且创造性的引入审计功能,起到内容可回溯,问题易定位的作用。
发明内容
本发明的目的在于提供一种基于审计的软件发布方法,本发明通过在软件发布中引入审计的方法,实现了内容可回溯,问题易定位的效果,具有较好的实用性。
本发明主要通过以下技术方案实现:一种基于审计的软件发布方法,主要包括以下步骤:
步骤S1:当仓库的代码发生变动时,则通过CI工具通知runner将代码推送到编译环境;
步骤S2:代码编译后打包,然后通过HTTP协议或者SFTP协议部署到测试环境;
步骤S3:检查产品的功能,分别通过接口、WebDriver/图形、压力工具保证应用的功能交互、转台展示、系统状态的正确性;
步骤S4:测试通过之后通过将app推送到发布/归档环境;在文件传输过程中,审计文件信息,校验传输前后文件的正确性;
所述步骤S1-S2中,通过SSH运维隧道来控制命令,通过SSH协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验;所述步骤S2-S4中通过SFTP通道来传输文件,通过对SFTP协议的解析,保存文件并计算文件的特征值,以判断文件的完整性和正确性。
为了更好的实现本发明,进一步的,在编译之前,审计引擎会记录源码的分支、时间、commit ID信息;在编译过程中,审计引擎记录编译过程中执行的命令,并获取预设的错误信息关联字段;若捕获到预设的错误字段,则首先通过SSH运维隧道发送命令使编译过程暂停,并通知AI分析引擎处理。
为了更好的实现本发明,进一步的,在部署完成后,审计引擎对部署好的应用环境后台记录的分支、时间、commit ID信息进行记录,并与编译前的信息做比对,若不一致,则表明编译流程的预设信息错误,并通知人工处理。
为了更好的实现本发明,进一步的,在部署过程中,审计引擎通过计算文件的特征值判断文件的完整性、正确性,以预防文件在网络传输过程中出现的数据包丢失,若出现错误,则通过AI分析引擎处理。
为了更好的实现本发明,进一步的,所述AI分析引擎处理是指根据具体错误信息搜索互联网上的处理方法并提取,并根据消息源进行优先级排序、去重,然后对提取到的信息进行语义分析,以转化为可执行的命令,然后尝试修复错误,若错误被修复,则继续执行流程,否则根据预设的错误等级选择忽略或者通知人工处理。
为了更好的实现本发明,进一步的,在接口测试过程中,HTTP协议审计引擎解析request与response的内容并记录,提供直观、可视化的日志;对于response出现的异常错误,通过AI分析引擎分析错误信息的语义修改request请求中的数据格式与内容。
为了更好的实现本发明,进一步的,对于WebDriver/图形测试,图形协议审计引擎捕捉出错点,在触发异常时保存录像,对于不稳定的GUI测试,提供了回溯的手段,并在出错时通过AI分析引擎尝试自动修复JS无法获取DOM元素以及窗口失焦的常见问题。
为了更好的实现本发明,进一步的,对于压力测试,字符协议审计引擎实时监控后台系统数据的状态,对CPU、内存、IO、网络、进程的状态进行监控,通过预设阈值实现向人工告警。
本发明的有益效果:
(1)与现有技术相比,本发明在软件发布流程系统的基础上,在每个环节引入了智能审计方法,大大地减少了通用的错误导致的自动化流程异常终止,并且记录了整个发布流程,为事后查看完整的信息并在有异常情况时快速、准确的追溯提供了条件。
(2)本发明全程数据流重组回放,记录关键信息,追溯整个流程中可能出现的故障;通过AI分析引擎,尝试自动修复策略,提升了整个方案的高可用性。
(3)本发明通过审计引擎与AI分析引擎的联动,相比单一的发布流程,实现了对于编译过程的监控、捕获异常、自动修复。在实际的应用场景中,对于可通过文件、库层面的异常起到了较好的自动修复效果,大大提升了发布流程的易用性与效率。
(4)本发明通过与编译过程中产生的数据做对比,确认了二进制文件的正确性。在实际的应用场景中,有效的预防了多端开发、共同打包时,由于沟通不畅导致开发人员对于编译预设参数设置错误的情况。在测试阶段之前发现问题,避免通过测试时通过功能验证来发现问题,大大的降低了人力资源成本以及潜在风险。
(5)本发明通过审计引擎,在测试阶段实时的、连续的监控资源的变化状态,大大的提升了隐藏在系统层面的问题的发现概率;还通过AI分析引擎对接口和WebDriver的联合测试,在实际场景中,对于接口的变动起到自动调整参数的效果,提升了测试case组合的效率。
(6)在步骤S1-步骤S2的过程中,通过SSH运维隧道来控制命令。SSH协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验,起到审批->允许/拒绝的作用,还可以添加黑白名单和告警功能。
(7)本发明通过FTP通道来传输文件,通过对FTP协议的解析,保存文件并计算文件的特征值,判断文件的完整性和正确性。预防了文件在网络传输过程中出现的数据包丢失的情况。
(8)在自动测试过程中,分别对接口测试和页面测试,可以解析HTTP和RDP协议,通过图形化的方式捕捉出错点,在触发异常时通过类似浏览器自动化测试框架提供的“Screen Shot”方法的动态截屏保存一定长度的录像。相对于文字方式的日志记录,由于记录了直观的“事故现场”,可以更加快速定位问题,并且易于追溯上下文。对于目前业界不稳定性较高的GUI自动测试,保证了发布系统的稳定性与快速修复,达到高可用的目的。
(9)区别于传统图形审计“记录”功能。本发明针对页面加载速率异常,JS无法获取DOM元素,窗口失焦等常见WebDriver和GUI自动测试场景,进行“监控”->“判断”->“尝试修复”->“记录”处理,并提供可回溯的常规审计功能。
附图说明
图1为本发明的原理框图;
图2为实施例1的原理框图。
具体实施方式
实施例1:
一种基于审计的软件发布方法,如图1-2所示,主要包括以下步骤:
1)监测模块通过CI工具监测代码托管平台的状态,当仓库的代码发生变动时,平台通知CI,CI再通知Runner将代码推送到编译环境。
2)代码推送到编译环境之后,根据源码相关信息自动选择分支环境进行编译,然后打包并推送到部署模块。
编译之前,审计引擎会记录源码的分支、时间、commit ID等信息。编译过程中,审计引擎记录编译过程中执行的命令,并获取预设的错误信息关联字段。若捕获到预设的错误字段,首先通过SSH运维隧道来发送命令,使编译过程暂停,并通知AI分析引擎,分析引擎会根据具体错误信息搜索互联网上的处理方法并提取,并根据消息源进行优先级排序、去重,然后对提取到的信息进行语义分析,转化为可执行的命令,然后尝试修复错误。若错误被修复,则继续执行编译流程,若错误未被修复,则根据预设的错误等级选择忽略或通知人工处理。
本步骤通过审计引擎与AI分析引擎的联动,相比单一的发布流程,实现了对于编译过程的监控、捕获异常、自动修复。在实际的应用场景中,对于可通过文件、库层面的异常起到了较好的自动修复效果,大大提升了发布流程的易用性与效率。
3)部署模块将编译并打包的文件通过HTTP协议或者SFTP协议部署到测试环境。
在部署环节,审计引擎通过计算文件的特征值,判断文件的完整性和正确性,预防文件在网络传输过程中出现的数据包丢失,该过程出现的错误同样通过步骤2中所述的AI分析方法尝试修复。在部署完成之后,审计引擎会对部署好的应用环境后台记录的commitID等信息进行记录,并和步骤2中编译之前记录的信息做比对。若不一致,则说明编译流程的预设信息不正确,此时会通知人工处理。
本步骤通过与步骤2过程中产生的数据做对比,确认了二进制文件的正确性。在实际的应用场景中,有效的预防了多端开发、共同打包时,由于沟通不畅导致开发人员对于编译预设参数设置错误的情况。在测试阶段之前发现问题,避免通过测试时通过功能验证来发现问题,大大的降低了人力资源成本以及潜在风险。
4)测试模块检查产品的功能,分别通过接口、WebDriver/图形、压力工具保证应用的功能交互、转台展示、系统状态的正确性。
审计引擎在测试阶段分别对以下三种测试方法进行处理:
① 对于接口测试,审计引擎解析HTTP协议,将request与response的内容并记录,提供更加直观、可视化的日志,对于response出现的异常错误,通过AI分析引擎分析错误信息的语义修改request请求中的数据格式与内容。
② 对于WebDriver/图形测试,审计引擎解析HTTP&RDP协议,捕捉出错点,在触发异常时保存录像,对于相对不稳定的GUI测试,提供了回溯的手段,并在出错时通过AI分析引擎尝试自动修复JS无法获取DOM元素,窗口失焦等常见问题。
③ 对于压力测试,审计引擎实时监控后台系统数据的状态,对CPU、内存、IO、网络、进程等状态进行监控,通过预设阈值实现向人工告警。
本步骤通过审计引擎,在测试阶段实时的、连续的监控资源的变化状态,大大的提升了隐藏在系统层面的问题的发现概率;还通过AI分析引擎对接口和WebDriver的联合测试,在实际场景中,对于接口的变动起到自动调整参数的效果,提升了测试case组合的效率。
5)测试通过之后通过将app推送到发布/归档环境。
文件传输过程中审计文件信息,校验传输前后文件的正确性。
本发明全程数据流重组回放,记录关键信息,追溯整个流程中可能出现的故障;通过AI分析引擎,尝试自动修复策略,提升了整个方案的高可用性。
在步骤1-2的过程中,通过SSH运维隧道来控制命令。SSH协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验,起到审批->允许/拒绝的作用,还可以添加黑白名单和告警功能。
本发明通过FTP通道来传输文件,通过对FTP协议的解析,保存文件并计算文件的特征值,判断文件的完整性和正确性。预防了文件在网络传输过程中出现的数据包丢失的情况。
在自动测试过程中,分别对接口测试和页面测试,可以解析HTTP和RDP协议,通过图形化的方式捕捉出错点,在触发异常时通过类似浏览器自动化测试框架提供的“ScreenShot”方法的动态截屏保存一定长度的录像。相对于文字方式的日志记录,由于记录了直观的“事故现场”,可以更加快速定位问题,并且易于追溯上下文。对于目前业界不稳定性较高的GUI自动测试,保证了发布系统的稳定性与快速修复,达到高可用的目的。
区别于传统图形审计“记录”功能。本发明针对页面加载速率异常,JS无法获取DOM元素,窗口失焦等常见WebDriver和GUI自动测试场景,进行“监控”->“判断”->“尝试修复”->“记录”处理,并提供可回溯的常规审计功能。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (5)
1.一种基于审计的软件发布方法,其特征在于,主要包括以下步骤:
步骤S1:当仓库的代码发生变动时,则通过CI工具通知runner将代码推送到编译环境;在编译之前,审计引擎记录源码的分支、时间、commit ID信息;在编译过程中,审计引擎记录编译过程中执行的命令,并获取预设的错误信息关联字段;若捕获到预设的错误字段,则首先通过SSH运维隧道发送命令使编译过程暂停,并通知AI分析引擎处理;
步骤S2:代码编译后打包,然后通过HTTP协议或者SFTP协议部署到测试环境;在部署过程中,审计引擎通过计算文件的特征值判断文件的完整性、正确性,以预防文件在网络传输过程中出现的数据包丢失,若出现错误,则通过AI分析引擎处理;在部署完成后,审计引擎对部署好的应用环境后台记录的分支、时间、commit ID信息进行记录,并与编译前的信息做比对,若不一致,则表明编译流程的预设信息错误,并通知人工处理;
步骤S3:检查产品的功能,分别通过接口、WebDriver/图形、压力工具保证应用的功能交互、转台展示、系统状态的正确性;
步骤S4:测试通过之后通过将app推送到发布/归档环境;在文件传输过程中,审计文件信息,校验传输前后文件的正确性;
所述步骤S1-S2中,通过SSH运维隧道来控制命令,通过SSH协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验;所述步骤S2-S4中通过SFTP通道来传输文件,通过对SFTP协议的解析,保存文件并计算文件的特征值,判断文件的完整性和正确性。
2.根据权利要求1所述的一种基于审计的软件发布方法,其特征在于,所述AI分析引擎处理是指根据具体错误信息搜索互联网上的处理方法并提取,并根据消息源进行优先级排序、去重,然后对提取到的信息进行语义分析,以转化为可执行的命令,然后尝试修复错误,若错误被修复,则继续执行流程,否则根据预设的错误等级选择忽略或者通知人工处理。
3.根据权利要求1所述的一种基于审计的软件发布方法,其特征在于,在接口测试过程中,HTTP协议审计引擎解析request与response的内容并记录,提供直观、可视化的日志;对于response出现的异常错误,通过AI分析引擎分析错误信息的语义修改request请求中的数据格式与内容。
4.根据权利要求3所述的一种基于审计的软件发布方法,其特征在于,对于WebDriver/图形测试,图形协议审计引擎捕捉出错点,在触发异常时保存录像,对于不稳定的GUI测试,提供了回溯的手段,并在出错时通过AI分析引擎尝试自动修复JS无法获取DOM元素以及窗口失焦的常见问题。
5.根据权利要求4所述的一种基于审计的软件发布方法,其特征在于,对于压力测试,字符协议审计引擎实时监控后台系统数据的状态,对CPU、内存、IO、网络、进程的状态进行监控,通过预设阈值实现向人工告警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910955442.4A CN110673873B (zh) | 2019-10-09 | 2019-10-09 | 一种基于审计的软件发布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910955442.4A CN110673873B (zh) | 2019-10-09 | 2019-10-09 | 一种基于审计的软件发布方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673873A CN110673873A (zh) | 2020-01-10 |
CN110673873B true CN110673873B (zh) | 2022-11-01 |
Family
ID=69081198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910955442.4A Active CN110673873B (zh) | 2019-10-09 | 2019-10-09 | 一种基于审计的软件发布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673873B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256581B (zh) * | 2020-10-27 | 2024-01-23 | 华泰证券股份有限公司 | 高仿真证券业交易类系统的日志回放测试方法及装置 |
CN113037710A (zh) * | 2021-02-03 | 2021-06-25 | 南京物通物语科技有限公司 | 一种工业物联网用对大数据传输的处理方法 |
CN116028313B (zh) * | 2023-03-30 | 2023-06-09 | 北京久安世纪科技有限公司 | 一种基于vt序列的终端审计方法、系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1431591A (zh) * | 2003-01-29 | 2003-07-23 | 西安海星现代科技股份有限公司 | 基于软件令牌的适用于网络的动态口令身份认证系统 |
CA2936106A1 (en) * | 2016-07-14 | 2018-01-14 | Mirza Kamaludeen | Encrypted data - data integrity verification and auditing system |
CN107835982A (zh) * | 2015-05-04 | 2018-03-23 | 赛义德·卡姆兰·哈桑 | 用于在计算机网络中管理安全性的方法和设备 |
CN108334437A (zh) * | 2018-03-02 | 2018-07-27 | 江苏电力信息技术有限公司 | 一种基于持续集成及自动化测试的软件持续交付验收方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062550B1 (en) * | 1999-01-20 | 2006-06-13 | Bindview Corporation | Software-implemented method for identifying nodes on a network |
US20050219044A1 (en) * | 2004-03-16 | 2005-10-06 | Science Traveller International Inc | Emergency, contingency and incident management system and method |
TWI494872B (zh) * | 2012-11-06 | 2015-08-01 | Quanta Comp Inc | 自動軟體稽核系統及自動軟體稽核方法 |
US20160162813A1 (en) * | 2014-12-03 | 2016-06-09 | Martin Hoffmann | Integration of big-data analysis into audit engagement software |
CA2897683A1 (en) * | 2015-07-16 | 2017-01-16 | Caseware International Inc. | Method, software, and device for displaying a graph visualizing audit risk data |
CN109391613A (zh) * | 2018-09-06 | 2019-02-26 | 国网山东省电力公司电力科技研究院 | 一种基于scd解析的智能变电站安全审计方法 |
-
2019
- 2019-10-09 CN CN201910955442.4A patent/CN110673873B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1431591A (zh) * | 2003-01-29 | 2003-07-23 | 西安海星现代科技股份有限公司 | 基于软件令牌的适用于网络的动态口令身份认证系统 |
CN107835982A (zh) * | 2015-05-04 | 2018-03-23 | 赛义德·卡姆兰·哈桑 | 用于在计算机网络中管理安全性的方法和设备 |
CA2936106A1 (en) * | 2016-07-14 | 2018-01-14 | Mirza Kamaludeen | Encrypted data - data integrity verification and auditing system |
CN108334437A (zh) * | 2018-03-02 | 2018-07-27 | 江苏电力信息技术有限公司 | 一种基于持续集成及自动化测试的软件持续交付验收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110673873A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110673873B (zh) | 一种基于审计的软件发布方法 | |
CN102184138B (zh) | 一种软件错误自动重现和定位的方法及系统 | |
CN102736978B (zh) | 一种检测应用程序的安装状态的方法及装置 | |
US20130024842A1 (en) | Software test automation systems and methods | |
WO2009108203A1 (en) | Identification of elements of currently-executing component script | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
US9411711B2 (en) | Adopting an existing automation script to a new framework | |
CN110610089B (zh) | 用户行为模拟方法、装置及计算机设备 | |
WO2017206476A1 (zh) | 一种cpu占用的检测方法、装置及设备 | |
CN112860645A (zh) | 一种离线压缩文件的处理方法、装置、计算机设备及介质 | |
CN111639000B (zh) | 一种安卓移动终端备份数据快速提取的方法及自动化备份系统 | |
CN111930703A (zh) | 日志文件自动抓取方法、装置和计算机设备 | |
CN109815124B (zh) | 基于mbse的联锁功能缺陷分析的方法及装置、联锁系统 | |
JP2010256997A (ja) | フィールドトラブルのエラー再現システム、エラー再現調査方法およびシナリオ実行プログラム | |
US20140095938A1 (en) | Latent defect identification | |
CN110704299A (zh) | 一种安卓平台app异常测试方法及装置 | |
US8458669B2 (en) | Automated test system | |
CN116305247B (zh) | 一种车载应用软件过程数据的敏感信息检测方法及系统 | |
CN117667643A (zh) | 测试用例集的演化方法、装置、计算设备集群及存储介质 | |
CN114661582A (zh) | 视频平台测试系统和方法 | |
CN113037521B (zh) | 识别通讯设备状态的方法、通讯系统及存储介质 | |
CN112445634B (zh) | 一种故障修复方法、装置、电子设备及存储介质 | |
CN110321130B (zh) | 基于系统调用日志的不可重复编译定位方法 | |
US8527465B1 (en) | System and method for modeling data change over time | |
CN110795338A (zh) | 一种基于前后端交互的自动化测试方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |