CN109445837A - 一种应用程序的发布方法及设备 - Google Patents
一种应用程序的发布方法及设备 Download PDFInfo
- Publication number
- CN109445837A CN109445837A CN201811017865.3A CN201811017865A CN109445837A CN 109445837 A CN109445837 A CN 109445837A CN 201811017865 A CN201811017865 A CN 201811017865A CN 109445837 A CN109445837 A CN 109445837A
- Authority
- CN
- China
- Prior art keywords
- source code
- code data
- program
- application program
- rollback
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012360 testing method Methods 0.000 claims abstract description 56
- 238000012795 verification Methods 0.000 claims abstract description 48
- 238000003860 storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 235000013399 edible fruits Nutrition 0.000 claims 2
- 230000008569 process Effects 0.000 abstract description 27
- 230000010354 integration Effects 0.000 abstract description 9
- 230000010365 information processing Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明适用于信息处理技术领域,提供了一种应用程序的发布方法及设备,包括:接收应用程序内各个程序模块的源码数据;基于模板标识,将源码数据导入到程序模块对应的源码数据库内;若满足预设的校验条件,则从各个源码数据库中提取上传时间最新的源码数据,并集成应用程序的程序文件;通过应用程序的测试实例对程序文件进行测试,生成程序文件的测试结果;若测试结果为测试通过,则发布程序文件。本发明能够对应用程序在发布过程中的各个环节自动流转,无需开发人员手动操作,开发人员只需对程序模块的源码数据进行编写即可,提高了应用程序的发布效率,并降低了发开人员的操作难度。
Description
技术领域
本发明属于信息处理技术领域,尤其涉及一种应用程序的发布方法及设备。
背景技术
随着终端技术的不断发展,为了满足用户使用过程中的各种需求,应用程序的种类以及数量也不断增长,这也使得应用程序的发布周期随之压缩。现有的应用程序的发布技术,由于一个应用程序开发往往需要多个开发人员共同对源码数据进行编写,并在编写将每个源码段进行组合,得到应用程序的程序文件,即应用程序的发布过程,需要经过源码数据整合、程序文件校验、应用程序发布等多个环节,上述各个环节之间的状态流转均需要各个环节对应的开发人员手动操作,操作步骤繁琐,从而降低了应用程序的发布效率。
发明内容
有鉴于此,本发明实施例提供了一种应用程序的发布方法及设备,以解决现有的应用程序的发布方法,应用程序发布过程中的各个环节之间的状态流转均需要各个环节对应的开发人员手动操作,操作步骤繁琐,从而降低了应用程序的发布效率的问题。
本发明实施例的第一方面提供了一种应用程序的发布方法,包括:
接收应用程序内各个程序模块的源码数据;所述源码数据包含所述程序模块的模块标识以及上传时间;
基于所述模板标识,将所述源码数据导入到所述程序模块对应的源码数据库内;所述源码数据库记录有各个上传时间上传的源码数据;
若满足预设的校验条件,则从各个所述源码数据库中提取上传时间最新的源码数据,并集成所述应用程序的程序文件;
通过所述应用程序的测试实例对所述程序文件进行测试,生成所述程序文件的测试结果;
若所述测试结果为测试通过,则发布所述程序文件。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。
实施本发明实施例提供的一种应用程序的发布方法及设备具有以下有益效果:
本发明实施例通过接收各个开发人员上传的程序模板的源码数据,并导入到各自对应的源码数据库内,在满足预设的校验条件时,自动从各个源码数据库中提取各个程序模块的源码数据,组合得到应用程序的程序文件,无需开发人员手动封装整合,并在得到程序文件后通过对应的测试实例对应用程序进行测试,校验成功后则自动发布程序文件。本发明能够对应用程序在发布过程中的各个环节自动流转,无需开发人员手动操作,开发人员只需对程序模块的源码数据进行编写即可,提高了应用程序的发布效率,并降低了发开人员的操作难度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种应用程序的发布方法的实现流程图;
图2是本发明第二实施例提供的一种应用程序的发布方法具体实现流程图;
图3是本发明第三实施例提供的一种应用程序的发布方法体实现流程图;
图4是本发明第四实施例提供的一种应用程序的发布方法具体实现流程图;
图5是本发明第五实施例提供的一种应用程序的发布方法S105具体实现流程图;
图6是本发明一实施例提供的一种终端设备的结构框图;
图7是本发明另一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过接收各个开发人员上传的程序模板的源码数据,并导入到各自对应的源码数据库内,在满足预设的校验条件时,自动从各个源码数据库中提取各个程序模块的源码数据,组合得到应用程序的程序文件,无需开发人员手动封装整合,并在得到程序文件后通过对应的测试实例对应用程序进行测试,校验成功后则自动发布程序文件,解决了现有的应用程序的发布方法,应用程序发布过程中的各个环节之间的状态流转均需要各个环节对应的开发人员手动操作,操作步骤繁琐,从而降低了应用程序的发布效率的问题。
在本发明实施例中,流程的执行主体为终端设备。该终端设备包括但不限于:服务器、计算机、智能手机以及平板电脑等具有应用程序的发布功能的设备。特别地,该终端设备可以为一对用户上传的应用程序的发布平台,即当检测到用户上传的应用程序通过验证后,则可以直接向全网和/或目标终端进行发布的设备,优选地,该终端设备还可以为集成了应用程序的源码数据整合、验证、封装以及发布等多个功能的设备,从而能够减少开发人员在应用程序的发布过程中的操作,提高了应用程序的发布效率。图1示出了本发明第一实施例提供的应用程序的发布方法的实现流程图,详述如下:
在S101中,接收应用程序内各个程序模块的源码数据;所述源码数据包含所述程序模块的模块标识以及上传时间。
在本实施例中,整个应用程序会根据应用内的功能不同,划分为多个不同的程序模块,每个应用模块可以交由一个或多个开发人员进行源码数据的编写,最后在应用程序需要进行发布是,将该应用程序的所有程序模块的源码数据进行整合,则可以得到该应用程序的程序文件。因此,不同开发人员在对自身的应用程序进行开发过程中,进度是不一样的,而且由于每个程序模块的编写工作也是分离的,因此将不同程序模块进行集合时,可能会出现漏洞或异常情况,需要通过对应用程序进行测试,才能够识别其中存在异常的情况。例如,两个程序模块中所定义的接口名称相同,在每个程序模块进行单独测试的过程中,并不会出现异常,而当将两个程序模块进行集合,输出应用程序的程序文件时,则会出现接口重名而导致处理逻辑异常的情况。因此,终端设备在对应用程序进行发布之前,需要获取各个程序模块的源码数据,并将多个源码数据进行封装,生成应用程序的程序文件,对该程序文件进行测试,当测试成功后,可以对该应用程序执行发布流程。
在本实施例中,开发人员在对程序模块的源码数据编写完毕后,可以上传至终端设备,终端设备在接收到源码数据后,会检测该程序模块的模块标识,并记录接收到该源码数据的时间,作为该源码数据的上传时间。当然,该上传时间还可以为开发人员发送源码数据时刻对应的时间,即开发人员通过用户终端向终端设备上传源码数据时,会获取当前时刻的时间信息,并将该时间信息封装于应用程序的源码数据内。当开发人员在上传完毕后,当该程序模块的需求发生变更,或开发人员发送上一次上传的应用程序存在漏洞,可以重新向终端设备发送关于一个新的源码数据,源码数据的模块标识与上一次上传的源码数据的模块标识一致,但上传时间会存在差异,因而开发人员可以通过上述两个参数信息唯一确定程序模块的源码数据。当开发人员需要对程序模块进行版本回滚时,终端设备可以通过输入所需回滚的源码数据的上传时间以及模块标识提取对应的源码数据,将该程序模块还原至所需的状态。
在本实施例中,终端设备确定程序模块的方式可以为:立项需要开发一个应用程序时,开发人员会创建该应用程序的需求文件,该需求文件中定义了应用程序所需完成的功能,终端设备可以根据各个功能之间的关联性,将具有关联关系的功能组合为同一个程序模块,而将不相关或关联度低于预设阈值的功能,归类为另一个程序模块,从而对各个功能进行关联性识别,则可以确定该应用程序中包含的程序模块,并为每个程序模块配置对应的模块标号,继而一个开发用户或开发团队可以对该程序模块的源码数据进行编写。
在S102中,基于所述模板标识,将所述源码数据导入到所述程序模块对应的源码数据库内;所述源码数据库记录有各个上传时间上传的源码数据。
在本实施例中,终端设备会为该应用程序的各个程序模块建立与之对应的源码数据库,终端设备会将关于该程序模块的所有曾经上传的源码数据存储至该源码数据库内,因而该源码数据库中记录各个上传时间上传的源码数据。如上所述,开发人员可以通过模块标识确定源码数据库,并通过上传时间从源码数据库中提取对应的源码数据。
在本实施例中,终端设备在接收用户终端上传的源码数据后,会通过提取该源码数据中包含的模块标识,并基于该模块标识确定该程序模块对应的源码数据库,继而基于将该源码数据导入到该源码数据库内,其中该源码数据在源码数据库中的存储次序可以基于上传时间确定。例如,源码数据库可以基于上传时间的先后次序,确定各个源码数据在该源码数据库中的编号。
可选地,在本实施例中,终端设备可以与多个外设存储终端进行连接,该连接可以为物理接口直连或者通过网络接口进行远程连接,每个外设存储终端作为一个模块程序的源码数据库,在该情况下,终端设备记录有各个源码数据库的路由表,并根据模块标识确定与之对应的源码数据库的通信地址,将该源码数据上传至对应的外设存储设备予以存储。
在S103中,若满足预设的校验条件,则从各个所述源码数据库中提取上传时间最新的源码数据,并集成所述应用程序的程序文件。
在本实施例中,终端设备当检测到当前时刻满足预设的校验条件时,会执行应用程序的测试流程,对该应用程序的程序文件进行合法性检测。其中,该测试流程的触发可以为开发人员主动触发,在该情况下,该预设的校验条件可以为检测到测试启动指令;当然,该预设的校验条件还可以为自动触发的条件,包括但不限于:时间触发条件以及事件触发条件,例如,终端设备设置有一校验周期或多个校验时间节点,当终端设备检测到当前时刻到预设的校验时间节点或到达预设的校验周期时,则启动S103的相关操作。而事件触发条件可以为:终端设备检测到每个模块程序均上传了新的源码数据,则执行S103的相关操作,或者检测到源码数据的上传次数到达预设阈值,则执行S103的相关操作。
在本实施例中,终端设备会从各个源码数据库中提取上传时间最新的源码数据,从而通过各个模块程序的源码数据集成得到该应用程序的程序文件。由于上传时间最新的源码数据,具体为开发人员将已检测到的漏洞以及异常进行修改后得到的源码数据,因而终端设备将各个上传时间最新的源码数据集成为应用程序的程序文件,该程序文件能够测试通过的概率较大,从而能够加快应用程序发布的速度。另一方面,终端设备只获取用户已上传的源码数据,而不获取各个用户正在编译的源码数据,从而避免妨碍开发人员对在编的源码数据的编写。
在S104中,通过所述应用程序的测试实例对所述程序文件进行测试,生成所述程序文件的测试结果。
在本实施例中,终端设备在生成应用程序的程序文件后,可以根据应用程序的程序标识,获取该应用程序对应的测试实例库,并通过该测试实例库中包含的各个测试实例对程序文件进行测试,从而得到各个测试实例的测试数据,继而通过各个测试数据生成该程序文件的测试结果。
在本实施例中,生成应用程序的测试用例的方式可以为:终端设备根据应用程序的版本编号,获取与该应用程序具有关联关系的关联程序,识别关联程序与应用程序之间的版本变更信息,并基于该版本变更信息以及该关联程序的测试用例,生成该应用程序的测试用例。由于应用程序与关联程序为版本较为接近的两个应用程序,因此在对应用程序的程序文件进行测试的过程中,可以借用关联程序的测试用例,来对应用程序进行测试,从而能够提高测试用例的生成速率,无需用户手动配置。
在本实施例中,应用程序在封装完毕后,终端设备会直接从封装状态直接流转到测试状态,即S103至S104两个步骤之间无需用户手动激活,终端设备在获取得到各个程序模板的源码数据后,可直接集成得到应用程序的程序文件并进行测试,提高了各个状态之间的流转速率,从而提高了应用程序的发布效率。
在S105中,若所述测试结果为测试通过,则发布所述程序文件。
在本实施例中,终端设备在输出了应用程序的测试结果后,会对该测试结果进行解析,若该测试结果为测试通过,则可以将该应用程序的程序文件进行发布,即用户可以下载该应用程序的程序文件,发布程序文件具体可以为上载到第三方应用商城,以便用户终端可以通过该第三方应用商城下载所需的应用程序;还可以定向发送给目标用户终端。
可选地,在本实施例,若测试结果为测试不通过,则可以向应用程序的发开人员的终端发送一个程序异常信息,以便开发人员通过该程序异常信息调整应用程序的程序模块的源码数据。优选地,若该测试结果标记出异常的程序模块,则可以向该异常的程序模块对应的开发人员的用户终端定向发送源码异常信息,以便该程序模块的开发人员进行故障修复。
以上可以看出,本发明实施例提供的一种应用程序的发布方法通过接收各个开发人员上传的程序模板的源码数据,并导入到各自对应的源码数据库内,在满足预设的校验条件时,自动从各个源码数据库中提取各个程序模块的源码数据,组合得到应用程序的程序文件,无需开发人员手动封装整合,并在得到程序文件后通过对应的测试实例对应用程序进行测试,校验成功后则自动发布程序文件。本发明能够对应用程序在发布过程中的各个环节自动流转,无需开发人员手动操作,开发人员只需对程序模块的源码数据进行编写即可,提高了应用程序的发布效率,并降低了发开人员的操作难度。
图2示出了本发明第二实施例提供的一种应用程序的发布方法的具体实现流程图。参见图2所示,相对于图1述实施例,本实施例提供的一种应用程序的发布方法中在所述发布所述程序文件之前,还包括:S201~S203,具体详述如下:
进一步到,在所述发布所述程序文件之前,还包括:
在S201中,为所述程序文件配置版本编号,并提取集成该程序文件的各个所述源码数据的上传时间。
在本实施例中,终端设备在检测到某一应用程序的程序文件的测试结果为测试通过,则表示该应用程序已经可以发布,而在发布之前,为了更好地对已发布的应用程序进行管理,终端设备会为该应用程序配置一个版本编号,具有版本编号的应用程序则可以识别为一个合法的应用程序。具体地,终端设备为应用程序的程序文件配置版本编号的具体方式可以为:终端设备基于该应用程序的程序编号,获取该程序编号的版本编码规则以及已发布版本列表,从而确定该程序文件的版本编号。例如,某一应用程序的版本编码规则为“编码均为偶数”,且已发布版本列表中,最后发布的版本编号为1.02.88,则可以确定该应用程序的版本编号为:1.02.90。
在本实施例中,由于生成程序文件的各个程序模板的源码数据分别存储于各个源码数据库内,即并没有单独的存储程序文件的程序数据库。为了能在后续的版本回溯以及建立该应用程序的一个程序版本索引表,终端设备会获取构成该程序文件的各个源码数据的上传时间,具体地,即各个源码数据库中上传时间最新的上传时间。
在S202中,建立所述版本编号与各个所述源码数据的上传时间之间的关联关系,并基于所述关联关系生成关于所述版本编号的版本索引信息。
在本实施例中,终端设备在获取了各个源码数据的上传时间后,会建立该版本编号与上传时间之间的关联关系,从而能够确定生成该版本编号的程序文件具体使用了源码数据库中的哪一个源码数据。需要说明的是,若应用程序中包含了N个程序模块,则会建立N条关联关系,即每一个源码数据库中的源码数据均会与该版本编号建立一个关联关系。由于通过模块标识以及上传时间能够在多个源码数据库内唯一确定一个源码数据,因此建立了版本编号以及上传时间之间的对应关系后,则可以从源码数据库内提取生成该程序文件所需的源码数据。
在本实施例中,终端设备在建立了版本编号与各个源码数据的上传时间的关联关系后,可以基于所有关联关系生成一条关于该版本编号的版本索引信息,通过该版本索引信息能够从各个源码数据库中提取对应的源码数据,从而重新构建该版本编号对应的程序文件。
在S203中,将所述版本索引信息添加到所述应用程序的历史版本索引表。
在本实施例中,终端设备可以把生成的版本索引信息添加到应用程序的历史版本索引表内,该历史版本索引表用于存储该应用程序的各个版本编号对应的版本索引信息,从而可以通过该历史版本索引表重构得到各个版本编号对应的程序文件,从而能够方便开发人员对应用程序进行管理,以及比对不同版本之间程序代码的差异,便于对后续应用程序的升级以及漏洞修复。
在本实施例中,终端设备可以响应不同应用程序的发布流程,因此不同应用流程会生成不同的历史版本索引表,终端设备可以通过存储历史版本索引表再本地存储单元,而将各个应用程序的源码数据库进行分布式处理,从而当需要构建某一应用程序的程序文件时,可以查询本地的关于该应用程序的历史版本索引表,从各个分布式存储的源码数据库提取对应的源码数据,并响应该构建请求,从而能够提高终端设备的存储效率。
在本发明实施例中,通过建立版本编号与各个源码数据的上传时间之间的对应关系,并生成该版本编号对应的版本索引信息,方便对应用程序进行管理,提高了应用程序的管理效率。
图3示出了本发明第二实施例提供的一种应用程序的发布方法的具体实现流程图。参见图3所示,相对于图2述实施例,本实施例提供的一种应用程序的发布方法还包括:S301~S303,具体详述如下:
在S301中,接收版本回滚请求;所述版本回滚请求携带有回滚版本号。
在本实施例中,当开发人员需要回滚某一版本编号的程序文件时,可以向终端设备发送一个版本回滚请求。由于终端设备存储应用程序内各个程序模块的源码数据库,并且记录有各个历史版本索引表,因此可以生成各个版本编号的程序文件,从而响应用户发起的应用程序的回滚操作。基于上述原因,终端设备会将所需回滚的应用程序的版本编号,即回滚版本号封装于版本回滚请求内,并发送给终端设备,并执行S301的相关操作。
可选地,在本实施例中,终端设备可以识别该版本回滚请求中包含的程序标识,基于该程序标识判断是否记录有该程序标识对应的应用程序的历史版本索引表;若记录有该历史版本索引表,则执行S302的相关操作;反之,若不包含该历史版本索引表,则向上位机发送一个历史版本索引表获取请求,以便向其他发布设备获取该应用程序的历史版本索引表,其中,该历史版本索引表还记录有该应用程序的所有源码数据库的通信地址,以便远程获取该应用程序的源码数据。
在S302中,从所述历史版本索引表中提取所述回滚版本号对应的回滚索引信息,并根据所述回滚索引信息关联的各个上传时间,从各个所述源码数据库中提取回滚源码数据。
在本实施例中,终端设备会检测历史版本索引表中是否存在该回滚版本号对应的回滚索引信息,即该回滚版本号对应的版本索引信息。若不存在,则向发送该版本回滚请求的用户终端返回编号异常信息,以便用户终端重新输入一个合法的已发布的版本编号;反之,若该历史版本索引表中存在回滚索引信息,则解析该回滚索引信息,确定该回滚索引信息中记录有的回滚版本号与各个上传时间之间的关联关系。
在本实施例中,终端设备基于各个关联关系中记录有的上传时间,可以从各个程序模块的源码数据库中提取对应的回滚源码数据,该回滚源码数据即为回滚索引信息对应的上传时间上传的源码数据。
在S303中,根据各个所述回滚源码数据,生成回滚程序文件,并发布所述回滚程序文件。
在本实施例中,终端设备在获取各个程序模块的回滚源码数据后,可以进行集成封装,输出一个回滚程序文件,该回滚程序文件即为版本编号为回滚版本号的程序文件。在生成了回滚程序文件后,可以对该文件进行发布。由于现有版本存在异常,可能需要通过回滚至在先的版本来为用户提供稳定的服务,因此在生成了回滚程序文件后,可以对其进行发布,以便用户终端能够下载该回滚程序文件。
在本发明实施例中,通过回滚版本号以及历史版本索引表,终端设备可以生成用户所需的回滚程序文件,从而能够在当前发布的应用程序出现异常时,快速响应异常状态,提高了应用程序的服务质量以及程序的稳定性。
图4示出了本发明第三实施例提供的一种应用程序的发布方法的具体实现流程图。参见图4所示,相对于图1-图3所述实施例,本实施例提供的一种应用程序的发布方法中在所述接收应用程序内各个程序模块的源码数据之后,还包括:S401~S403,具体详述如下:
进一步地,在所述接收应用程序内各个程序模块的源码数据之后,还包括:
在S401中,提取所述源码数据中的源码关键词,并从语法校验库内提取各个所述源码关键词的语法校验实例。
在本实施例中,终端设备在将源码数据导入到源码数据库之前,可以用户上传的源码数据的正确性进行校验。具体地,终端设备会对源码数据进行解析,确定该源码数据中包含的源码关键词。识别源码关键词的方式可以为:终端设备记录有源码关键词库,但检测到源码数据中包含该源码关键词库中的源码关键词,则进行标识,从而在读取了源码数据整个数据内后,则可以确定该源码数据中所包含的源码关键词。
在本实施例中,源码关键词具有特定的语法结构,因此终端设备可以根据该源码数据中所包含的源码关键词,从语法校验库中提取阈值对应的语法校验实例,以便确定源码关键词在源码数据中是否被正确调用。
在S402中,分别通过各个所述语法校验实例对所述源码数据进行语法校验。
本实施例中,终端设备会通过提取得到语法校验实例对源码数据进行语法校验,从而能够确定该源码数据内的源码关键词是否符合其对应语法规则,即源码数据中是否存在关于该源码关键词的语法错误。例如,对于包含“if…when”关键词的源码数据,关键词“if”之后是否包含对应的判断条件,以及关键词“when”后面是否包含对应的执行操作,或上述两个关键词是否配对出现。
在本实施例中,终端设备在对每个语法校验实例进行语法校验后,会输出一个校验结果,该校验结果包括校验成功以及校验失败。若各个语法校验实例的校验结果均为校验成功,则可以执行S102的相关操作,即将源码数据存储至其模块标识对应的源码数据库内,反之,则执行S403的相关操作。
在S403中,若存在任一所述语法校验实例的校验结果为校验失败,则识别所述源码数据为异常数据,返回语法异常信息。
在本实施例中,终端设备若检测到用户上传的源码数据中,任意一个语法校验实例的校验结果为校验失败,则表示该源码数据存在明显的语法错误,无需与其他程序模块关联则可以识别出异常,因此不予以存储,以减少源码数据库的存储压力。在该情况下,终端设备会生成一个语法异常信息,并返回给源码数据的发送端,以便基于该语法异常信息对源码数据进行重新编写,消除异常情况。
在本发明实施例中,通过在对源码数据进行存储之前对其语法合法性进行校验,从而能够减少大量异常的源码数据的存储次数,提高了源码数据库的存储效率。
图5示出了本发明第四实施例提供的一种应用程序的发布方法S105的具体实现流程图。参见图5所示,相对于图1-图3所述实施例,本实施例提供的一种应用程序的发布方法中S105包括:S1051~S1052,具体详述如下:
在S1051中,获取所述应用程序的定向发布列表;所述定向发布列表存储有目标终端的网络地址。
在本实施例中,应用程序除了能够对所有用户进行同步发布外,还可以实现定向发布,例如某一型号的终端设备可能对应用程序的兼容性存在异常,需要发布一个新的版本的应用程序,该本次发布的应用程序只针对该机型的终端设备,在该情况下,则不适用于对全网的终端设备进行同步的应用程序发布操作。基于此,终端设备可以获取该应用程序的定向发布列表,从而能够实现向该定向发布列内的终端设备进行有限范围内的应用程序的发布操作。
在本实施例中,该定向发布列表内存储有目标终端的网络地址,从而终端设备可以主动共享各个目标终端进行连接,并执行S1052的相关操作。
在S1052中,基于所述网络地址,将所述程序文件推送给各个目标终端。
在本实施例中,终端设备会基于各个目标终端的网络地址,与各个目标终端建立通信链路,并通过该通信链路向目标终端推送该所需发布的程序文件。可选地,终端设备在于目标终端建立通信连接后,可以识别该终端设备所处的网络状态,若该网络状态为预设的程序下载网络状态,例如目标终端在WIFI环境下,则执行S1052的相关操作。
在本发明实施例中,通过获取定向发布列表,从能够向指定目标终端发布应用程序,能够提高应用程序发布的灵活性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种终端设备的结构框图,该终端设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述终端设备包括:
源码数据接收单元61,用于接收应用程序内各个程序模块的源码数据;所述源码数据包含所述程序模块的模块标识以及上传时间;
源码数据导入单元62,用于基于所述模板标识,将所述源码数据导入到所述程序模块对应的源码数据库内;所述源码数据库记录有各个上传时间上传的源码数据;
程序文件生成单元63,用于若满足预设的校验条件,则从各个所述源码数据库中提取上传时间最新的源码数据,并集成所述应用程序的程序文件;
程序文件校验单元64,用于通过所述应用程序的测试实例对所述程序文件进行测试,生成所述程序文件的测试结果;
程序文件发布单元65,用于若所述测试结果为测试通过,则发布所述程序文件。
可选地,所述终端设备还包括:
版本编号配置单元,用于为所述程序文件配置版本编号,并提取集成该程序文件的各个所述源码数据的上传时间;
版本索引信息创建单元,用于建立所述版本编号与各个所述源码数据的上传时间之间的关联关系,并基于所述关联关系生成关于所述版本编号的版本索引信息;
版本索引信息添加单元,用于将所述版本索引信息添加到所述应用程序的历史版本索引表。
可选地,所述终端设备还包括:
版本回滚请求接收单元,用于接收版本回滚请求;所述版本回滚请求携带有回滚版本号;
版本回滚执行单元,用于从所述历史版本索引表中提取所述回滚版本号对应的回滚索引信息,并根据所述回滚索引信息关联的各个上传时间,从各个所述源码数据库中提取回滚源码数据;
回滚文件发布单元,用于根据各个所述回滚源码数据,生成回滚程序文件,并发布所述回滚程序文件。
可选地,所述终端设别还包括:
源码关键词识别单元,用于提取所述源码数据中的源码关键词,并从语法校验库内提取各个所述源码关键词的语法校验实例;
语法校验单元,用于分别通过各个所述语法校验实例对所述源码数据进行语法校验;
语法异常识别单元,用于若存在任一所述语法校验实例的校验结果为校验失败,则识别所述源码数据为异常数据,返回语法异常信息。
可选地,所述应用程序发布单元65包括:
定向发布列表获取单元,用于获取所述应用程序的定向发布列表;所述定向发布列表存储有目标终端的网络地址;
定向发布执行单元,用于基于所述网络地址,将所述程序文件推送给各个目标终端。
因此,本发明实施例提供的终端设备同样可以通过接收各个开发人员上传的程序模板的源码数据,并导入到各自对应的源码数据库内,在满足预设的校验条件时,自动从各个源码数据库中提取各个程序模块的源码数据,组合得到应用程序的程序文件,无需开发人员手动封装整合,并在得到程序文件后通过对应的测试实例对应用程序进行测试,校验成功后则自动发布程序文件。本发明能够对应用程序在发布过程中的各个环节自动流转,无需开发人员手动操作,开发人员只需对程序模块的源码数据进行编写即可,提高了应用程序的发布效率,并降低了发开人员的操作难度。
图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如应用程序的发布程序。所述处理器70执行所述计算机程序72时实现上述各个应用程序的发布方法实施例中的步骤,例如图1所示的S101至S105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至65功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成源码数据接收单元、源码数据导入单元、程序文件生成单元、程序文件校验单元以及程序文件发布单元,各单元具体功能如上所述。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用程序的发布方法,其特征在于,包括:
接收应用程序内各个程序模块的源码数据;所述源码数据包含所述程序模块的模块标识以及上传时间;
基于所述模板标识,将所述源码数据导入到所述程序模块对应的源码数据库内;所述源码数据库记录有各个上传时间上传的源码数据;
若满足预设的校验条件,则从各个所述源码数据库中提取上传时间最新的源码数据,并集成所述应用程序的程序文件;
通过所述应用程序的测试实例对所述程序文件进行测试,生成所述程序文件的测试结果;
若所述测试结果为测试通过,则发布所述程序文件。
2.根据权利要求1所述的发布方法,其特征在于,在所述发布所述程序文件之前,还包括:
为所述程序文件配置版本编号,并提取集成该程序文件的各个所述源码数据的上传时间;
建立所述版本编号与各个所述源码数据的上传时间之间的关联关系,并基于所述关联关系生成关于所述版本编号的版本索引信息;
将所述版本索引信息添加到所述应用程序的历史版本索引表。
3.根据权利要求2所述的发布方法,其特征在于,还包括:
接收版本回滚请求;所述版本回滚请求携带有回滚版本号;
从所述历史版本索引表中提取所述回滚版本号对应的回滚索引信息,并根据所述回滚索引信息关联的各个上传时间,从各个所述源码数据库中提取回滚源码数据;
根据各个所述回滚源码数据,生成回滚程序文件,并发布所述回滚程序文件。
4.根据权利要求1-3任一项所述的发布方法,其特征在于,在所述接收应用程序内各个程序模块的源码数据之后,还包括:
提取所述源码数据中的源码关键词,并从语法校验库内提取各个所述源码关键词的语法校验实例;
分别通过各个所述语法校验实例对所述源码数据进行语法校验;
若存在任一所述语法校验实例的校验结果为校验失败,则识别所述源码数据为异常数据,返回语法异常信息。
5.根据权利要求1-3任一项所述的发布方法,其特征在于,所述发布所述程序文件,包括:
获取所述应用程序的定向发布列表;所述定向发布列表存储有目标终端的网络地址;
基于所述网络地址,将所述程序文件推送给各个目标终端。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
接收应用程序内各个程序模块的源码数据;所述源码数据包含所述程序模块的模块标识以及上传时间;
基于所述模板标识,将所述源码数据导入到所述程序模块对应的源码数据库内;所述源码数据库记录有各个上传时间上传的源码数据;
若满足预设的校验条件,则从各个所述源码数据库中提取上传时间最新的源码数据,并集成所述应用程序的程序文件;
通过所述应用程序的测试实例对所述程序文件进行测试,生成所述程序文件的测试结果;
若所述测试结果为测试通过,则发布所述程序文件。
7.根据权利要求6所述的终端设备,其特征在于,在所述发布所述程序文件之前,所述处理器执行所述计算机程序时实现如下步骤:
为所述程序文件配置版本编号,并提取集成该程序文件的各个所述源码数据的上传时间;
建立所述版本编号与各个所述源码数据的上传时间之间的关联关系,并基于所述关联关系生成关于所述版本编号的版本索引信息;
将所述版本索引信息添加到所述应用程序的历史版本索引表。
8.根据权利要求7所述的终端设备,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
接收版本回滚请求;所述版本回滚请求携带有回滚版本号;
从所述历史版本索引表中提取所述回滚版本号对应的回滚索引信息,并根据所述回滚索引信息关联的各个上传时间,从各个所述源码数据库中提取回滚源码数据;
根据各个所述回滚源码数据,生成回滚程序文件,并发布所述回滚程序文件。
9.根据权利要求6-8任一项所述的终端设备,其特征在于,在所述接收应用程序内各个程序模块的源码数据之后,所述处理器执行所述计算机程序时实现如下步骤:
提取所述源码数据中的源码关键词,并从语法校验库内提取各个所述源码关键词的语法校验实例;
分别通过各个所述语法校验实例对所述源码数据进行语法校验;
若存在任一所述语法校验实例的校验结果为校验失败,则识别所述源码数据为异常数据,返回语法异常信息。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811017865.3A CN109445837B (zh) | 2018-09-03 | 2018-09-03 | 一种应用程序的发布方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811017865.3A CN109445837B (zh) | 2018-09-03 | 2018-09-03 | 一种应用程序的发布方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109445837A true CN109445837A (zh) | 2019-03-08 |
CN109445837B CN109445837B (zh) | 2024-04-30 |
Family
ID=65530820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811017865.3A Active CN109445837B (zh) | 2018-09-03 | 2018-09-03 | 一种应用程序的发布方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445837B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427214A (zh) * | 2019-07-29 | 2019-11-08 | 苏州亿歌网络科技有限公司 | 一种应用程序的发布方法、装置、设备及存储介质 |
CN110750444A (zh) * | 2019-09-10 | 2020-02-04 | 中国平安财产保险股份有限公司 | 应用程序移交方法、装置、计算机设备及存储介质 |
CN111078249A (zh) * | 2019-11-08 | 2020-04-28 | 泰康保险集团股份有限公司 | 软件更新方法、系统、设备及存储介质 |
CN111597069A (zh) * | 2020-05-21 | 2020-08-28 | 中国工商银行股份有限公司 | 程序处理方法、装置、电子设备和存储介质 |
CN111813439A (zh) * | 2020-07-17 | 2020-10-23 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN112035161A (zh) * | 2020-08-31 | 2020-12-04 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN117389615A (zh) * | 2023-12-12 | 2024-01-12 | 山东科技大学 | 一种工业控制板的程序重构方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150106790A1 (en) * | 2013-10-15 | 2015-04-16 | International Business Machines Corporation | Detecting merge conflicts and compilation errors in a collaborative integrated development environment |
CN105868957A (zh) * | 2015-12-18 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种持续集成方法及装置 |
US20170034023A1 (en) * | 2015-07-27 | 2017-02-02 | Datagrid Systems, Inc. | Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data |
CN108388445A (zh) * | 2018-03-09 | 2018-08-10 | 北京四方继保自动化股份有限公司 | 一种基于“平台+应用”模式的持续集成方法 |
-
2018
- 2018-09-03 CN CN201811017865.3A patent/CN109445837B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150106790A1 (en) * | 2013-10-15 | 2015-04-16 | International Business Machines Corporation | Detecting merge conflicts and compilation errors in a collaborative integrated development environment |
US20170034023A1 (en) * | 2015-07-27 | 2017-02-02 | Datagrid Systems, Inc. | Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data |
CN105868957A (zh) * | 2015-12-18 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种持续集成方法及装置 |
CN108388445A (zh) * | 2018-03-09 | 2018-08-10 | 北京四方继保自动化股份有限公司 | 一种基于“平台+应用”模式的持续集成方法 |
Non-Patent Citations (1)
Title |
---|
赵燕芹: "基于Android平台应用软件的测试用例演化研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 04, 15 April 2016 (2016-04-15), pages 138 - 707 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427214A (zh) * | 2019-07-29 | 2019-11-08 | 苏州亿歌网络科技有限公司 | 一种应用程序的发布方法、装置、设备及存储介质 |
CN110750444A (zh) * | 2019-09-10 | 2020-02-04 | 中国平安财产保险股份有限公司 | 应用程序移交方法、装置、计算机设备及存储介质 |
CN110750444B (zh) * | 2019-09-10 | 2024-05-10 | 中国平安财产保险股份有限公司 | 应用程序移交方法、装置、计算机设备及存储介质 |
CN111078249A (zh) * | 2019-11-08 | 2020-04-28 | 泰康保险集团股份有限公司 | 软件更新方法、系统、设备及存储介质 |
CN111597069A (zh) * | 2020-05-21 | 2020-08-28 | 中国工商银行股份有限公司 | 程序处理方法、装置、电子设备和存储介质 |
CN111597069B (zh) * | 2020-05-21 | 2023-06-13 | 中国工商银行股份有限公司 | 程序处理方法、装置、电子设备和存储介质 |
CN111813439A (zh) * | 2020-07-17 | 2020-10-23 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN111813439B (zh) * | 2020-07-17 | 2024-03-29 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN112035161A (zh) * | 2020-08-31 | 2020-12-04 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN112035161B (zh) * | 2020-08-31 | 2023-05-12 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN117389615A (zh) * | 2023-12-12 | 2024-01-12 | 山东科技大学 | 一种工业控制板的程序重构方法 |
CN117389615B (zh) * | 2023-12-12 | 2024-03-01 | 山东科技大学 | 一种工业控制板的程序重构方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109445837B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445837A (zh) | 一种应用程序的发布方法及设备 | |
CN104281520B (zh) | 跟踪和调试的方法、装置及系统 | |
CN109783342A (zh) | 脚本调试方法、设备及计算机存储介质 | |
US10169203B2 (en) | Test simulation for software defined networking environments | |
Nouri et al. | Statistical model checking QoS properties of systems with SBIP | |
US7996818B1 (en) | Method for testing using client specified references | |
CN106572173A (zh) | 一种配置信息更新方法、装置和系统 | |
CN105068929A (zh) | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 | |
CN106559438A (zh) | 一种基于目标网络平台的程序上传方法和装置 | |
CN104246767A (zh) | 用于云同步系统的遥测系统 | |
US20030093252A1 (en) | Message packet logging in a distributed simulation system | |
CN111290958B (zh) | 一种调试智能合约的方法及装置 | |
CN103678124B (zh) | 基于持续集成环境的视频监控平台自动测试方法及装置 | |
CN109614262A (zh) | 业务校验方法、装置及计算机可读存储介质 | |
CN110245077A (zh) | 一种程序异常的响应方法及设备 | |
CN112241370B (zh) | 一种api接口类的校验方法、系统及装置 | |
CN107025167A (zh) | 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备 | |
CN111884876A (zh) | 一种网络协议的协议类型检测方法、装置、设备及介质 | |
CN107807869A (zh) | 一种测试系统和测试方法 | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN112905437B (zh) | 一种测试用例的方法、装置及存储介质 | |
CN101026511A (zh) | 测试方法、系统及其配置方法和系统 | |
CN107679423A (zh) | 分区完整性检查方法及装置 | |
CN106383861A (zh) | 一种用于数据库的数据同步方法及装置 | |
CN104780123B (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 |