CN106294171A - 产品自动部署的测试系统、方法和装置 - Google Patents

产品自动部署的测试系统、方法和装置 Download PDF

Info

Publication number
CN106294171A
CN106294171A CN201610682271.9A CN201610682271A CN106294171A CN 106294171 A CN106294171 A CN 106294171A CN 201610682271 A CN201610682271 A CN 201610682271A CN 106294171 A CN106294171 A CN 106294171A
Authority
CN
China
Prior art keywords
code information
change code
product
change
focus
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
Application number
CN201610682271.9A
Other languages
English (en)
Other versions
CN106294171B (zh
Inventor
白敏�
王欣洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610682271.9A priority Critical patent/CN106294171B/zh
Publication of CN106294171A publication Critical patent/CN106294171A/zh
Application granted granted Critical
Publication of CN106294171B publication Critical patent/CN106294171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Abstract

本发明提供了一种产品自动部署的测试系统、方法和装置,该系统包括:编译服务器,提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器;集成发布服务器,基于接收到的通过校验的变更代码信息生成待发布产品版本文件,并将待发布产品版本文件发布至文件存储服务器;文件存储服务器,存储成功发布的产品版本文件,并根据预定的分发规则将成功发布的产品版本文件部署至被测设备,以用于对该成功发布的产品版本文件对应的产品进行测试。本技术方案加强了分支代码信息的可控性,使得产品的质量大大提高。

Description

产品自动部署的测试系统、方法和装置
技术领域
本发明涉及软件工程领域,具体而言,本发明涉及一种产品自动部署的测试系统、方法和装置。
背景技术
随着计算机的发展,软件也从普通的计算机软件,发展到银行或超市的终端系统软件,甚至到手机的嵌入式系统软件。但软件系统的质量和稳定性却不尽如人意,采用有效的软件测试发现软件中的程序漏洞是保证软件质量、提高软件可靠性的重要手段。
然而,软件中的程序漏洞往往是由于软件需求的不确定性、软件设计的缺陷或编程失误所造成的;即使通过人工或自动化手段对软件进行测试,由于软件测试存在一定的局限性,也无法通过软件测试发现软件系统中的所有的程序漏洞,所以如何保证软件的可靠性是当前软件开发的重点。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种产品自动部署的测试系统,包括:
编译服务器,用于提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器;
集成发布服务器,用于基于接收到的通过校验的变更代码信息生成待发布产品版本文件,并将待发布产品版本文件发布至文件存储服务器;
文件存储服务器,用于存储成功发布的产品版本文件,并根据预定的分发规则将成功发布的产品版本文件部署至各个被测设备,以用于对该成功发布的产品版本文件对应的产品进行测试。
优选地,编译服务器,用于基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取多个变更代码信息中的热点变更代码信息。
优选地,编译服务器,用于对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;
通过自动适配的校验例,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;
将通过校验的变更代码信息发送到集成发布服务器。
优选地,集成发布服务器,用于通过合并方式将通过校验的变更代码信息与未变更代码信息进行集成并对集成的文件进行编译,以生成待发布产品版本文件。
优选地,编译服务器,用于将待校验的变更代码信息进行校验后得到的校验结果生成通知消息并通过邮件发送至产品开发人员。
优选地,各个被测设备自动更新接收到的成功发布的产品版本文件,通过自动测试设备对被测设备上的该成功发布的产品版本文件对应的产品进行相应的测试;
当该成功发布的产品版本文件对应的产品测试成功,则该成功发布的产品版本文件更新成功;
当该成功发布的产品版本文件对应的产品测试失败,文件存储服务器,用于重新根据预定的分发规则将成功发布的产品版本文件的历史产品版本文件部署至各个被测设备上。
其中,预定分发规则包括以下至少一项:
按照时间分发发布成功的产品版本文件、按照版本迭代方式分发成功发布的产品版本文件、按照不同被测设备的不同被测功能方式分发成功发布的产品版本文件。
本发明的另一实施例提出了一种产品自动部署的方法,包括:
提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;
基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器。
优选地,提取变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点,包括:
基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取多个变更代码信息中的热点变更代码信息,用以调整代码变更校验点适配每一版本。
优选地,基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,将通过校验的变更代码信息发送到集成发布服务器,包括:
通过自动适配的校验例,对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;
对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;
将通过校验的变更代码信息发送到集成发布服务器。
优选地,该方法还包括:
将待校验的变更代码信息进行校验后得到的校验结果生成通知消息并通过邮件发送至产品开发人员。
本发明的又一实施例提出了一种产品自动部署的装置,包括:
提取模块,用于提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;
校验模块,用于基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,将通过校验的变更代码信息发送到集成发布服务器。
优选地,提取模块,用于基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取多个变更代码信息中的热点变更代码信息。
优选地,校验模块包括:
编译单元,用于对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;
检验单元,用于通过自动适配的校验例,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;
集成单元,用于将通过校验的变更代码信息发送到集成发布服务器。
优选地,该装置还包括:
通知模块,用于将待校验的变更代码信息进行校验后得到的校验结果生成通知消息并通过邮件发送至产品开发人员。
本发明的技术方案中,基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器等待发布,从而实现了对产品的分支代码信息的校验,加强了分支代码信息的可控性,使得产品的质量大大提高;在提高了分支代码信息的鲁棒性和产品质量的同时,通过自动化方式大大提升了产品版本文件的部署的效率和准确率,从而实现了高效地完成产品版本文件的测试。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明的一个实施例的产品自动部署的测试系统的结构框架示意图;
图2为本发明的另一个实施例的产品自动部署的方法的流程示意图;
图3为本发明的具体实施例的将通过校验的变更代码信息发送到集成发布服务器的流程示意图;
图4为本发明的又一个实施例的产品自动部署的装置的结构框架示意图;
图5为本发明的具体实施例的校验模块的结构框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
图1为本发明的一个实施例的产品自动部署的测试系统的结构框架示意图。
编译服务器101,提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器;集成发布服务器102,基于接收到的通过校验的变更代码信息生成待发布产品版本文件,并将待发布产品版本文件发布至文件存储服务器;文件存储服务器103,存储成功发布的产品版本文件,并根据预定的分发规则将成功发布的产品版本文件部署至各个被测设备104,并通过自动测试设备105对该成功发布的产品版本文件对应的产品进行测试。
本发明的技术方案中,基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器等待发布,从而实现了对产品的分支代码信息的校验,加强了分支代码信息的可控性,使得产品的质量大大提高;在提高了分支代码信息的鲁棒性和产品质量的同时,通过自动化方式大大提升了产品版本文件的部署效率和准确率,从而实现了高效地完成产品版本文件的测试。
以下针对各个服务器的具体实现做进一步的说明:
编译服务器101,提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器。
具体地,编译服务器101,基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取多个变更代码信息中的热点变更代码信息。
编译服务器101,对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;通过自动适配的校验例,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;将通过校验的变更代码信息发送到集成发布服务器。
其中,变更代码信息包括但不限于:产品软件的分支模块中接口变更代码数据、产品软件的分支模块中的函数变更代码数据。
具体地,获取变更代码信息的方式包括:通过查看编译服务器生成的预定历史时间内的代码提交日志,确定并查找在预定历史时间内的由编译客户端提交到编译服务器的代码数据库中的变更代码信息,以获取变更代码信息。例如,通过查看由代码控制系统,如,Subversion,简称svn,搭建的编译服务器生成一天内的代码提交日志,确定并查找该一天内提交到编译服务器的代码数据库中进行编译的变更代码信息。
具体地,设置热点变更代码信息校验点的方式包括:基于热点变更代码信息的测试目标,创建热点变更代码信息的测试用例testcase,从而设置热点变更代码信息校验点并通过该自动适配的testcase的执行脚本对热点变更代码信息进行自动化分支模块级的校验;不但提高了产品代码的健壮性且能快速完成在编译服务器中的分支模块级的校验,同时节省了人力。
具体地,变更代码信息的变更频率的确定方式包括:通过查看编译服务器生成的预定历史时间内的代码提交日志,统计在预定历史时间内的由编译客户端提交到编译服务器的代码数据库中的变更代码信息,来确定每个变更代码信息在该预定历史时间内的变更次数,从而确定每个变更代码信息的变更频率。将变更频率大于预定的变更频率的变更代码信息确定为热点变更代码信息。例如,通过查看由代码控制系统,如,Subversion,简称svn,搭建的编译服务器生成的一天内的代码提交日志,将该代码提交日志中记录的内容生成json格式文件进行记录,并对记录在json格式文件的内容或直接对代码提交日志的内容进行标记;根据标记结果,将具有相同标记的变更代码信息的记录数据进行合并,以统计该一天内的代码变更情况,根据统计结果确定热点变更代码信息。
具体地,变更代码信息与程序漏洞的关联度的确定方式包括:将变更代码信息与程序漏洞bug管理系统,如bugzilla,进行关联;通过程序漏洞bug管理系统的bug报告和bug处理意见,来确定变更代码信息会产生的bug与该变更代码信息的关联度,其中,该变更代码信息是由编译客户端提交到编译服务器的代码数据库中,即该变更代码信息产生的bug是否会严重影响该变更代码信息的执行,是否需要处理。将变更代码信息与程序漏洞的关联度大于预定的关联度的该变更代码信息确定为热点变更代码信息。
其中,获取待编译的变更代码信息方式包括:通过监视编译客户端提交到编译服务器的代码数据库中的变更代码信息,以获取待编译的变更代码信息。
通过对热点变更代码信息的提取,加强产品软件的分支代码的可控制性,且提高了产品软件代码的鲁棒性,使得产品软件的测试质量大大提高。
具体地,编译服务器101,将待校验的变更代码信息进行校验后得到的校验结果,生成通知消息并通过邮件发送至产品开发人员。其中,校验结果包括校验成功和校验失败。
集成发布服务器102,基于接收到的通过校验的变更代码信息生成待发布产品版本文件,并将待发布产品版本文件发布至文件存储服务器。
具体地,集成发布服务器102,通过合并方式,将通过校验的变更代码信息与未变更代码信息进行集成并对集成的文件进行编译,以生成待发布产品版本文件。例如,集成发布服务器102,接收到的通过校验的变更代码信息,将通过校验的变更代码信息通过合并指令合并到产品软件的主干的所属的分支模块上,完成集成并对集成的文件进行编译,以生成待发布产品版本文件,将该待发布产品版本文件打包发送至文件存储服务器;每接收到通过校验的变更代码信息,就将集成到软件产品主干上,可以快速发现错误,定位错误也比较容易。
具体地,集成发布服务器102,将待发布产品版本文件的发布结果,生成通知消息并通过邮件发送至产品开发人员。其中,发布结果包括发布成功和发布失败。
文件存储服务器103,存储成功发布的产品版本文件,并根据预定的分发规则将成功发布的产品版本文件部署至各个被测设备104,并通过自动测试设备105对该成功发布的产品版本文件对应的产品进行测试。
其中,预定分发规则包括以下至少一项:
按照时间分发成功发布的产品版本文件、按照版本迭代方式分发成功发布的产品版本文件、按照不同被测设备的不同被测功能方式分发成功发布的产品版本文件。
具体地,文件存储服务器103,接受到的成功发布的产品版本文件的打包文件,将该打包文件解包成本地的一个目录,再将运行路径的符号链接(symlink)指向这个目录,通过定时触发去执行自动部署脚本,将成功发布的产品版本文件部署到各个被测设备104上;各个被测设备104,如被测试服务器,根据自动部署脚本自动更新接收到的成功发布的产品版本文件,如版本1.1的网关产品文件,通过自动测试设备104,如自动测试服务器,根据测试脚本对被测设备104上的该成功发布的产品版本文件对应的产品进行相应的测试;
当该成功发布的产品版本文件对应的产品测试成功,则该成功发布的产品版本文件更新成功;
当该成功发布的产品版本文件对应的产品测试失败,文件存储服务器103,重新根据预定的分发规则将成功发布的产品版本文件的历史产品版本文件,如版本1.0的网关产品,部署至各个被测设备104上。例如,文件存储服务器103,回滚到上一个成功发布的产品版本文件的打包文件;通过修改符号链接,指向上一个成功发布的产品版本文件的打包文件的目录,再通过定时触发去执行自动部署脚本,将上一个成功发布的产品版本文件重新部署到各个被测设备104上。通过自动化方式大大提升了产品版本文件的部署的效率和准确率,并高效的完成产品版本文件的测试,当当前产品软件的版本测试失败,为了不影响产品其他功能的测试,回滚到上一个产品软件的版本,并部署到各个被测设备104。
具体地,文件存储服务器103,将成功发布的产品版本文件对应的产品的测试结果,生成通知消息并通过邮件发送至产品开发人员。其中,发布结果包括测试成功和测试失败。
图2为本发明的另一个实施例的产品自动部署的方法的流程示意图。
步骤S201:提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;步骤S202:基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器。
需要说明的是,本实施例的技术方案的执行主体为编译服务器。
以下针对各个步骤的具体实现做进一步的说明:
步骤S201:提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点。
具体地,基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取多个变更代码信息中的热点变更代码信息。
其中,变更代码信息包括但不限于:产品软件的分支模块中接口变更代码数据、产品软件的分支模块中的函数变更代码数据。
具体地,获取变更代码信息的方式包括:通过查看编译服务器生成的预定历史时间内的代码提交日志,确定并查找在预定历史时间内的由编译客户端提交到编译服务器的代码数据库中的变更代码信息,以获取变更代码信息。例如,通过查看由代码控制系统,如,Subversion,简称svn,搭建的编译服务器生成一天内的代码提交日志,确定并查找该一天内提交到编译服务器的代码数据库中进行编译的变更代码信息。
具体地,设置热点变更代码信息校验点的方式包括:基于热点变更代码信息的测试目标,创建热点变更代码信息的测试用例testcase,从而设置热点变更代码信息校验点并通过该自动适配的testcase的执行脚本对热点变更代码信息进行自动化分支模块级的校验;不但提高了产品代码的健壮性且能快速完成在编译服务器中的分支模块级的校验,同时节省了人力。
具体地,变更代码信息的变更频率的确定方式包括:通过查看编译服务器生成的预定历史时间内的代码提交日志,统计在预定历史时间内的由编译客户端提交到编译服务器的代码数据库中的变更代码信息,来确定每个变更代码信息在该预定历史时间内的变更次数,从而确定每个变更代码信息的变更频率。将变更频率大于预定的变更频率的变更代码信息确定为热点变更代码信息。例如,通过查看由代码控制系统,如,Subversion,简称svn,搭建的编译服务器生成的一天内的代码提交日志,将该代码提交日志中记录的内容生成json格式文件进行记录,并对记录在json格式文件的内容或直接对代码提交日志的内容进行标记;根据标记结果,将具有相同标记的变更代码信息的记录数据进行合并,以统计该一天内的代码变更情况,根据统计结果确定热点变更代码信息。
具体地,变更代码信息与程序漏洞的关联度的确定方式包括:将变更代码信息与程序漏洞bug管理系统,如bugzilla,进行关联;通过程序漏洞bug管理系统的bug报告和bug处理意见,来确定变更代码信息会产生的bug与该变更代码信息的关联度,其中,该变更代码信息是由编译客户端提交到编译服务器的代码数据库中,即该变更代码信息产生的bug是否会严重影响该变更代码信息的执行,是否需要处理。将变更代码信息与程序漏洞的关联度大于预定的关联度的该变更代码信息确定为热点变更代码信息。
通过对热点变更代码信息的提取,加强产品软件的分支代码的可控制性,且提高了产品软件代码的鲁棒性,使得产品软件的测试质量大大提高。
步骤S202:基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器。
具体地,步骤S202如图3所示,包括:步骤S301:对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;步骤S302通过自动适配的校验例,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;步骤S303:将通过校验的变更代码信息发送到集成发布服务器。
其中,获取待编译的变更代码信息方式包括:通过监视编译客户端提交到编译服务器的代码数据库中的变更代码信息,以获取待编译的变更代码信息。
其中,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验的方式包括:通过待校验的变更代码信息对应的热点变更代码信息的自动适配的测试用例testcase的执行脚本对待校验的变更代码信息进行自动化分支模块级的校验。
具体地,该方法还包括:将待校验的变更代码信息进行校验后得到的校验结果生成通知消息并通过邮件发送至产品开发人员。其中,校验结果包括校验成功和校验失败。
图4为本发明的又一个实施例的产品自动部署的装置的结构框架示意图。
提取模块401,提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;校验模块402,基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,将通过校验的变更代码信息发送到集成发布服务器。
以下针对各个模块的具体实现做进一步的说明:
提取模块401,基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取多个变更代码信息中的热点变更代码信息。
其中,变更代码信息包括但不限于:产品软件的分支模块中接口变更代码数据、产品软件的分支模块中的函数变更代码数据。
获取变更代码信息的方式包括:通过查看编译服务器生成的预定历史时间内的代码提交日志,确定并查找在预定历史时间内的由编译客户端提交到编译服务器的代码数据库中的变更代码信息,以获取变更代码信息。例如,通过查看由代码控制系统,如,Subversion,简称svn,搭建的编译服务器生成一天内的代码提交日志,确定并查找该一天内提交到编译服务器的代码数据库中进行编译的变更代码信息。
设置热点变更代码信息校验点的方式包括:基于热点变更代码信息的测试目标,创建热点变更代码信息的测试用例testcase,从而设置热点变更代码信息校验点并通过该自动适配的testcase的执行脚本对热点变更代码信息进行自动化分支模块级的校验;不但提高了产品代码的健壮性且能快速完成在编译服务器中的分支模块级的校验,同时节省了人力。
变更代码信息的变更频率的确定方式包括:通过查看编译服务器生成的预定历史时间内的代码提交日志,统计在预定历史时间内的由编译客户端提交到编译服务器的代码数据库中的变更代码信息,来确定每个变更代码信息在该预定历史时间内的变更次数,从而确定每个变更代码信息的变更频率。提取模块401将变更频率大于预定的变更频率的变更代码信息确定为热点变更代码信息。例如,通过查看由代码控制系统,如,Subversion,简称svn,搭建的编译服务器生成的一天内的代码提交日志,将该代码提交日志中记录的内容生成json格式文件进行记录,并对记录在json格式文件的内容或直接对代码提交日志的内容进行标记;根据标记结果,将具有相同标记的变更代码信息的记录数据进行合并,以统计该一天内的代码变更情况,根据统计结果确定热点变更代码信息。
变更代码信息与程序漏洞的关联度的确定方式包括:将变更代码信息与程序漏洞bug管理系统,如bugzilla,进行关联;通过程序漏洞bug管理系统的bug报告和bug处理意见,来确定变更代码信息会产生的bug与该变更代码信息的关联度,其中,该变更代码信息是由编译客户端提交到编译服务器的代码数据库中,即该变更代码信息产生的bug是否会严重影响该变更代码信息的执行,是否需要处理。提取模块401将变更代码信息与程序漏洞的关联度大于预定的关联度的该变更代码信息确定为热点变更代码信息。
提取模块401通过对热点变更代码信息的提取,加强产品软件的分支代码的可控制性,且提高了产品软件代码的鲁棒性,使得产品软件的测试质量大大提高。
校验模块402,基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,将通过校验的变更代码信息发送到集成发布服务器。
具体地,校验模块402如图5所示,包括:编译单元501,对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;检验单元502,通过自动适配的校验例,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;集成单元503,将通过校验的变更代码信息发送到集成发布服务器。
其中,获取待编译的变更代码信息方式包括:通过监视编译客户端提交到编译服务器的代码数据库中的变更代码信息,以获取待编译的变更代码信息。
对待校验的变更代码信息的相应热点变更代码信息校验点进行校验的方式包括:检验单元502通过待校验的变更代码信息对应的热点变更代码信息的自动适配的测试用例testcase的执行脚本对待校验的变更代码信息进行自动化分支模块级的校验。
具体地,该装置还包括:通知模块,将待校验的变更代码信息进行校验后得到的校验结果生成通知消息并通过邮件发送至产品开发人员。其中,校验结果包括校验成功和校验失败。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种产品自动部署的测试系统,其特征在于,包括:
编译服务器,用于提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器;
集成发布服务器,用于基于接收到的通过校验的变更代码信息生成待发布产品版本文件,并将待发布产品版本文件发布至文件存储服务器;
文件存储服务器,用于存储成功发布的产品版本文件,并根据预定的分发规则将成功发布的产品版本文件部署至各个被测设备,以用于对该成功发布的产品版本文件对应的产品进行测试。
2.根据权利要求1所述的系统,其特征在于,所述编译服务器,用于基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取所述多个变更代码信息中的热点变更代码信息。
3.根据权利要求1或2所述的系统,其特征在于,所述编译服务器,用于对获取到的待编译的变更代码信息进行编译,以生成待校验的变更代码信息;
通过自动适配的校验例,对待校验的变更代码信息的相应热点变更代码信息校验点进行校验;
将通过校验的变更代码信息发送到集成发布服务器。
4.根据权利要求1所述的系统,其特征在于,所述集成发布服务器,用于通过合并方式将通过校验的变更代码信息与未变更代码信息进行集成并对集成的文件进行编译,以生成待发布产品版本文件。
5.根据权利要求1或2所述的系统,其特征在于,所述编译服务器,用于将待校验的变更代码信息进行校验后得到的校验结果生成通知消息并通过邮件发送至产品开发人员。
6.根据权利要求1所述的系统,其特征在于,所述各个被测设备自动更新接收到的成功发布的产品版本文件,通过自动测试设备对被测设备上的该成功发布的产品版本文件对应的产品进行相应的测试;
当该发布成功的产品版本文件对应的产品测试成功,则该成功发布的产品版本文件更新成功;
当该成功发布的产品版本文件对应的产品测试失败,所述文件存储服务器,用于重新根据预定的分发规则将成功发布的产品版本文件的历史产品版本文件部署至各个被测设备上。
7.根据权利要求1或6所述的系统,其特征在于,所述预定分发规则包括以下至少一项:
按照时间分发成功发布的产品版本文件、按照版本迭代方式分发成功发布的产品版本文件、按照不同被测设备的不同被测功能方式分发成功发布的产品版本文件。
8.一种产品自动部署的方法,其特征在于,包括:
提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;
基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,并将通过校验的变更代码信息发送到集成发布服务器。
9.根据权利要求8所述的方法,其特征在于,提取所述变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点,包括:
基于变更代码信息的预定的变更频率和/或变更代码信息与程序漏洞的预定的关联度,提取所述多个变更代码信息中的热点变更代码信息。
10.一种产品自动部署的装置,其特征在于,包括:
提取模块,用于提取多个变更代码信息中的热点变更代码信息,以设置热点变更代码信息校验点;
校验模块,用于基于热点变更代码信息校验点,对相应的待校验的变更代码信息进行校验,将通过校验的变更代码信息发送到集成发布服务器。
CN201610682271.9A 2016-08-17 2016-08-17 产品自动部署的测试系统、方法和装置 Active CN106294171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610682271.9A CN106294171B (zh) 2016-08-17 2016-08-17 产品自动部署的测试系统、方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610682271.9A CN106294171B (zh) 2016-08-17 2016-08-17 产品自动部署的测试系统、方法和装置

Publications (2)

Publication Number Publication Date
CN106294171A true CN106294171A (zh) 2017-01-04
CN106294171B CN106294171B (zh) 2019-02-26

Family

ID=57678283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610682271.9A Active CN106294171B (zh) 2016-08-17 2016-08-17 产品自动部署的测试系统、方法和装置

Country Status (1)

Country Link
CN (1) CN106294171B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107704264A (zh) * 2017-10-09 2018-02-16 郑州云海信息技术有限公司 实现代码重构的方法、装置、设备及计算机可读存储介质
CN107844300A (zh) * 2017-11-03 2018-03-27 中国银行股份有限公司 脚本处理方法及系统
CN109388567A (zh) * 2018-09-28 2019-02-26 努比亚技术有限公司 代码处理方法、装置及介质
CN109739529A (zh) * 2018-12-04 2019-05-10 贵阳朗玛信息技术股份有限公司 一种程序自动发布的方法及装置
CN109814872A (zh) * 2019-01-25 2019-05-28 北京每日优鲜电子商务有限公司 max持续部署交付平台和交付方法
CN109814873A (zh) * 2019-02-14 2019-05-28 北京顺丰同城科技有限公司 一种代码发布方法及装置
CN110187914A (zh) * 2019-05-23 2019-08-30 杭州火小二科技有限公司 应用开发方法、系统及装置
CN111078277A (zh) * 2019-12-20 2020-04-28 上海米哈游天命科技有限公司 一种装包系统、装包方法及存储介质
WO2021115177A1 (zh) * 2019-12-13 2021-06-17 Oppo广东移动通信有限公司 应用安装方法、装置、终端设备、服务器及存储介质
US11120037B2 (en) 2019-06-21 2021-09-14 Wistron Corporation Test data integration system and method thereof
WO2024066743A1 (zh) * 2022-09-30 2024-04-04 中兴通讯股份有限公司 版本发布方法、电子设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176895A (zh) * 2011-12-22 2013-06-26 阿里巴巴集团控股有限公司 一种回归测试方法和系统
CN103336688A (zh) * 2013-06-20 2013-10-02 中标软件有限公司 面向云计算软件研发过程中的软件集成方法及系统
US20150381742A1 (en) * 2014-06-30 2015-12-31 Verizon Patent And Licensing Inc. Automated web services validation
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176895A (zh) * 2011-12-22 2013-06-26 阿里巴巴集团控股有限公司 一种回归测试方法和系统
CN103336688A (zh) * 2013-06-20 2013-10-02 中标软件有限公司 面向云计算软件研发过程中的软件集成方法及系统
US20150381742A1 (en) * 2014-06-30 2015-12-31 Verizon Patent And Licensing Inc. Automated web services validation
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈婧欣: "基于Hudson的持续集成方案的研究与实践", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919398A (zh) * 2017-03-06 2017-07-04 山东浪潮云服务信息科技有限公司 一种软件发布方法及装置
CN107704264A (zh) * 2017-10-09 2018-02-16 郑州云海信息技术有限公司 实现代码重构的方法、装置、设备及计算机可读存储介质
CN107844300A (zh) * 2017-11-03 2018-03-27 中国银行股份有限公司 脚本处理方法及系统
CN109388567A (zh) * 2018-09-28 2019-02-26 努比亚技术有限公司 代码处理方法、装置及介质
CN109388567B (zh) * 2018-09-28 2023-09-08 深圳市昊云智慧技术有限公司 代码处理方法、装置及介质
CN109739529A (zh) * 2018-12-04 2019-05-10 贵阳朗玛信息技术股份有限公司 一种程序自动发布的方法及装置
CN109814872A (zh) * 2019-01-25 2019-05-28 北京每日优鲜电子商务有限公司 max持续部署交付平台和交付方法
CN109814872B (zh) * 2019-01-25 2022-06-21 北京每日优鲜电子商务有限公司 max持续部署交付平台和交付方法
CN109814873B (zh) * 2019-02-14 2022-03-25 北京顺丰同城科技有限公司 一种代码发布方法及装置
CN109814873A (zh) * 2019-02-14 2019-05-28 北京顺丰同城科技有限公司 一种代码发布方法及装置
CN110187914A (zh) * 2019-05-23 2019-08-30 杭州火小二科技有限公司 应用开发方法、系统及装置
US11120037B2 (en) 2019-06-21 2021-09-14 Wistron Corporation Test data integration system and method thereof
TWI743508B (zh) * 2019-06-21 2021-10-21 緯創資通股份有限公司 測試資料彙總系統與其方法
WO2021115177A1 (zh) * 2019-12-13 2021-06-17 Oppo广东移动通信有限公司 应用安装方法、装置、终端设备、服务器及存储介质
CN111078277A (zh) * 2019-12-20 2020-04-28 上海米哈游天命科技有限公司 一种装包系统、装包方法及存储介质
WO2024066743A1 (zh) * 2022-09-30 2024-04-04 中兴通讯股份有限公司 版本发布方法、电子设备和计算机可读存储介质

Also Published As

Publication number Publication date
CN106294171B (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
CN106294171A (zh) 产品自动部署的测试系统、方法和装置
CN106326116B (zh) 产品测试的方法和装置
CN104077217B (zh) 代码文件的编译发布方法及系统
CN100507870C (zh) 关于自动测试用例执行的松散耦合的自动测试用例验证
US9189377B1 (en) Automation testing using descriptive maps
US8849612B2 (en) System and method of substituting parameter sets in self-contained mini-applications
CN110287098A (zh) 自动创建测试脚本方法、服务器及计算机可读存储介质
CN107679051A (zh) 交易系统错误检测方法和装置
CN109993651A (zh) 数据核算业务指令集校验方法、装置、计算机设备和介质
CN103714002A (zh) 基于配置系统的项目测试方法及装置
CN111522741A (zh) 接口测试代码生成方法、装置、电子设备及可读存储介质
CN111104155A (zh) 数据库脚本管理平台、方法及电子设备和存储介质
CN109582524A (zh) 一种测试方法、系统及电子设备和存储介质
CN106325902A (zh) 数据库软件升级检测方法及装置
CN106201864A (zh) 一种应用程序编程接口api测试方法、装置及移动设备
CN110399304A (zh) 一种脚本的测试方法及系统
CN106055326A (zh) 一种程序处理方法及调度服务器
CN109242561A (zh) 抽奖模型构建方法、抽奖活动管理方法、装置和计算设备
CN108334446A (zh) 一种网页模板的校验方法、装置及计算机可读存储介质
CN112559369A (zh) 一种自动化测试方法、设备和存储介质
CN105843602A (zh) 一种用于软件开发的方法和系统
CN105426183A (zh) 一种表单验证方法
CN109726883A (zh) 一种保险业务的风险管控方法、装置、设备及存储介质
CN111144429A (zh) 对象分类方法及其系统、计算机系统及计算机可读介质
CN110427313B (zh) 一种自动售票机交易功能的测试系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220708

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd