CN109783128A - 代码改动通知方法、设备、存储介质及装置 - Google Patents
代码改动通知方法、设备、存储介质及装置 Download PDFInfo
- Publication number
- CN109783128A CN109783128A CN201811531348.8A CN201811531348A CN109783128A CN 109783128 A CN109783128 A CN 109783128A CN 201811531348 A CN201811531348 A CN 201811531348A CN 109783128 A CN109783128 A CN 109783128A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- user
- modification file
- examines
- 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.)
- Pending
Links
- 230000008859 change Effects 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000012986 modification Methods 0.000 claims abstract description 145
- 230000004048 modification Effects 0.000 claims abstract description 145
- 238000012360 testing method Methods 0.000 claims abstract description 82
- 239000000284 extract Substances 0.000 claims abstract description 16
- 238000011161 development Methods 0.000 claims description 34
- 230000014509 gene expression Effects 0.000 claims description 23
- 238000012795 verification Methods 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 230000008439 repair process Effects 0.000 claims 1
- 238000010408 sweeping Methods 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 abstract description 7
- 230000018109 developmental process Effects 0.000 description 31
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013102 re-test Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种代码改动通知方法、设备、存储介质及装置,该方法包括:扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件;识别所述目标修改文件的目标代码类型;查找与所述目标代码类型对应的目标审查用户;发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。本发明中,通过扫描预设代码分支,可监控开发人员的每一次代码提交,发送所述目标修改文件至所述目标审查用户,以使目标审查用户根据目标修改文件进行测试验证,以避免代码改动而未测试验证产生的生产问题。
Description
技术领域
本发明涉及监控技术领域,尤其涉及一种代码改动通知方法、设备、存储介质及装置。
背景技术
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。在回归阶段开发人员修改代码时,很多时候开发人员都以为是小改动或小优化,不需要通知测试人员验证,经常出现开发人员评估错误,遗漏代码改动的通知,导致测试人员遗漏被改动的代码,测试人员无法针对被改动的代码进行回归验证,而导致生产问题。因此,如何避免代码改动不被遗漏,能够及时通知到相关人员对改动代码进行测试验证是亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种代码改动通知方法、设备、存储介质及装置,旨在解决现有技术中代码改动易被遗漏,遗漏的改动代码未测试验证易导致生产隐患的技术问题。
为实现上述目的,本发明提供一种代码改动通知方法,所述代码改动通知方法包括以下步骤:
扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件;
识别所述目标修改文件的目标代码类型;
查找与所述目标代码类型对应的目标审查用户;
发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。
优选地,所述识别所述目标修改文件的目标代码类型,包括:
获取多个代码类型对应的预设正则表达式,将所述目标修改文件与各预设正则表达式进行匹配;
若匹配成功,则将匹配上的预设正则表达式对应的代码类型识别为所述目标修改文件的目标代码类型。
优选地,所述查找与所述目标代码类型对应的目标审查用户,包括:
从映射关系表中查找与所述目标代码类型对应的目标审查用户,所述映射关系表包括代码类型与审查用户之间的对应关系。
优选地,所述扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件,包括:
每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件。
优选地,所述每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件之前,所述代码改动通知方法还包括:
获取预设历史时间段内的历史提交记录,从所述历史提交记录中提取出历史提交时刻;
计算所述预设历史时间段内的相邻历史提交时刻之间的时间差,并计算所述时间差的平均值,将所述平均值设置为所述预设时间段。
优选地,所述发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试之后,所述代码改动通知方法还包括:
接收所述目标审查用户对所述目标修改文件的测试验证结果;
若所述测试验证结果为存在异常,则从所述测试验证结果中提取出异常信息;
从所述提交记录中提取出开发用户信息,将所述异常信息发送至所述开发用户信息对应的开发用户。
优选地,所述发送所述目标修改文件至所述目标审查用户,包括:
通过预设邮件工具连接邮件中转服务器,并根据所述目标修改文件创建邮件对象;
通过所述中转服务器发送所述邮件对象至所述目标审查用户。
此外,为实现上述目的,本发明还提出一种代码改动通知设备,所述代码改动通知设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码改动通知程序,所述代码改动通知程序配置为实现如上文所述的代码改动通知方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有代码改动通知程序,所述代码改动通知程序被处理器执行时实现如上文所述的代码改动通知方法的步骤。
此外,为实现上述目的,本发明还提出一种代码改动通知装置,所述代码改动通知装置包括:
扫描模块,用于扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件;
识别模块,用于识别所述目标修改文件的目标代码类型;
查找模块,用于查找与所述目标代码类型对应的目标审查用户;
发送模块,用于发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。
本发明中,扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件,通过扫描预设代码分支,可监控开发人员的每一次代码提交,避免遗漏被改动的代码;识别所述目标修改文件的目标代码类型,查找与所述目标代码类型对应的目标审查用户,发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试,验证代码改动是否存在异常,以避免代码改动而未测试验证产生的生产问题。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的代码改动通知设备的结构示意图;
图2为本发明代码改动通知方法第一实施例的流程示意图;
图3为本发明代码改动通知方法第二实施例的流程示意图;
图4为本发明代码改动通知方法第三实施例的流程示意图;
图5为本发明代码改动通知装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的代码改动通知设备结构示意图。
如图1所示,该代码改动通知设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对代码改动通知设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及代码改动通知程序。
在图1所示的代码改动通知设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述代码改动通知设备通过处理器1001调用存储器1005中存储的代码改动通知程序,并执行本发明实施例提供的代码改动通知方法。
基于上述硬件结构,提出本发明代码改动通知方法的实施例。
参照图2,图2为本发明代码改动通知方法第一实施例的流程示意图,提出本发明代码改动通知方法第一实施例。
在第一实施例中,所述代码改动通知方法包括以下步骤:
步骤S10:扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件。
应理解的是,本实施例的执行主体是所述代码改动通知设备,其中,所述代码改动通知设备可为个人电脑或服务器等电子设备。所述预设代码分支包括SVN代码分支,SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,SVN是用于多个人共同开发同一个项目,共用资源的目的,集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,进入自己的分支,然后开发,最后解决冲突,提交。所有的版本的文件信息都放在服务器上。
可理解的是,为了及时发现开发用户修改的文件,以便对修改的文件中的代码进行测试,验证代码的正确性,每隔一段时间扫描各个SVN代码分支,当扫描到任意一个SVN代码分支中存在所述提交记录,所述提交记录为开发用户在自己的SVN代码分支进行开发后,对修改后的文件信息提交至服务器的记录,可从所述提交记录中提取出所述目标修改文件,所述目标修改文件是开发者进行开发修改的代码文件。
步骤S20:识别所述目标修改文件的目标代码类型。
可理解的是,在一个项目进行开发或测试时,涉及到多个类型的代码开发或测试,通常代码修改的代码类型包括:业务代码、数据库脚本、mqcp代码、esg代码以及代码规范。通过对所述目标修改文件进行分析,对所述目标修改文件进行关键词提取,根据提取出的关键词判断所述目标修改文件与上述五个代码类型匹配,则将能够匹配上的代码类型识别为所述目标修改文件的目标代码类型。
步骤S30:查找与所述目标代码类型对应的目标审查用户。
需要说明的是,每个代码类型都会有对应的审查用户,每次涉及到对应类型的代码修改,都需要通过邮件或者其他通知工具通知到对应的审查用户,以使审查用户进行代码审查,并分配至对应的测试用户根据所述目标修改文件进行测试验证,以测试所述被修改文件中的代码是否可行。
在具体实现中,可预先建立映射关系表,保存各种代码类型与审查用户之间的对应关系,当扫描到代码的提交记录,通过查询所述映射关系表,查找出对应的目标审查用户,本实施例中,所述步骤S30,包括:从映射关系表中查找与所述目标代码类型对应的目标审查用户,所述映射关系表包括代码类型与审查用户之间的对应关系。
步骤S40:发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。
应理解的是,可通过预设通知工具发送所述目标修改文件至所述目标审查用户,所述预设通知工具包括:JavaMail和预设沟通应用程序等。JavaMail,提供给开发者处理电子邮件相关的编程接口,用来处理邮件的应用程序编程接口(Application ProgrammingInterface,API),它可以方便地执行一些常用的邮件传输。通过JavaMail开发出回归阶段中所述代码改动通知设备与邮件中转服务器之间邮件发送功能,通过所述邮件中转服务器将所述目标修改文件发送至所述目标审查用户对应的目标邮箱。除了邮件通知,还可以通过预设沟通应用程序,比如,快乐平安等应用程序进行通知,会推送所述目标修改文件到所述目标审查用户的用户设备上,所述用户设备包括个人电脑端或者智能手机等。
可理解的是,所述目标审查用户负责对所述目标修改文件进行回归测试,以确认修改是否引入新的错误或导致其他代码产生错误。所述回归测试可通过再测试全部用例,选择基线测试用例库中的全部测试用例组成回归测试包,对所述目标修改文件进行测试;还可通过基于风险选择测试,可以基于一定的风险标准来从基线测试用例库中选择回归测试包,首先对所述目标修改文件中最重要的、关键的和可疑代码进行测试,而跳过那些非关键的、优先级别低的或者高稳定的测试用例;还可通过基于操作剖面选择测试,可以优先选择所述目标修改文件中最重要或最频繁使用功能通过测试用例进行测试,尽早发现对可靠性有最大影响的故障;还可以通过对测试修改的部分进行局部测试,将回归测试局限于被改变的模块和它的接口上,通常,一个回归错误一定涉及一个新的、修改的或删除的代码段。
本实施例中,所述发送所述目标修改文件至所述目标审查用户,包括:
通过预设邮件工具连接邮件中转服务器,并根据所述目标修改文件创建邮件对象;
通过所述中转服务器发送所述邮件对象至所述目标审查用户。
在具体实现中,所述预设邮件工具为JavaMail,通过JavaMail连接邮件中转服务器,通过JavaMail创建邮件对象,所述邮件对象包括所述目标修改文件、邮件主题、发送者邮箱及接收者邮箱等信息,所述接收者邮箱为所述目标审查用户的目标邮箱,设置发送邮件的端口号,还可设置发送者的邮箱地址和密码,设置安全连接,从而实现将所述邮件对象发送至所述目标审查用户。
本实施例中,扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件,通过扫描预设代码分支,可监控开发人员的每一次代码提交,避免遗漏被改动的代码;识别所述目标修改文件的目标代码类型,查找与所述目标代码类型对应的目标审查用户,发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试,验证代码改动是否存在异常,以避免代码改动而未测试验证产生的生产问题。
参照图3,图3为本发明代码改动通知方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明代码改动通知方法的第二实施例。
在第二实施例中,所述步骤S20,包括:
步骤S201:获取多个代码类型对应的预设正则表达式,将所述目标修改文件与各预设正则表达式进行匹配。
可理解的是,所述代码类型包括业务代码、数据库脚本、mqcp代码、esg代码以及代码规范等,针对每个代码类型的特征设置对应的预设正则表达式,则可通过所述预设正则表达式区分所述目标修改文件属于哪个代码类型。具体地,可将所述目标修改文件将各预设正则表达式进行一一匹配,若匹配成功,则说明所述目标修改文件为匹配上的预设正则表达式对应的代码类型。
步骤S202:若匹配成功,则将匹配上的预设正则表达式对应的代码类型识别为所述目标修改文件的目标代码类型。
可理解的是,若所述目标修改文件与各预设正则表达式中的其中一个匹配成功,所述预设正则表达式为各个代码类型的特征关键词组成,若能匹配上,则说明所述目标修改文件的修改类型为匹配的预设正则表达式对应的代码类型,则将匹配上的预设正则表达式对应的代码类型识别为所述目标修改文件的目标代码类型,每个代码类型设置有对应的负责审查代码的审查用户,从而可将所述目标修改文件发送至与所述目标代码类型对应的目标审查用户,使得所述目标审查用户能够快速对所述目标修改文件进行代码测试。
本实施例中,所述步骤S30,包括:
从映射关系表中查找与所述目标代码类型对应的目标审查用户,所述映射关系表包括代码类型与审查用户之间的对应关系。
在具体实现中,可预先建立映射关系表,保存各种代码类型与审查用户之间的对应关系,当扫描到代码的提交记录,通过查询所述映射关系表,查找到与所述目标代码类型对应的目标审查用户。然后通过JavaMail,经过邮件中转服务器,发送通知邮件至所述目标审查用户的邮箱。
本实施例中,所述步骤S10,包括:
步骤S101:每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件。
应理解的是,所述预设扫描工具包括:SVNKit,SVNKit是一个完全基于Java的Subversion开源工具库,通过它提供的API,用Java代码操作SVN,获取SVN的所述提交记录,所述提交记录中根据所述预设正则表达式区分所述提交记录中的所述目标修改文件属于哪个代码类型。所述代码改动通知设备通常有输入界面,可通过输入界面输入SVN代码分支和回归日期,为了及时发现开发用户修改的文件,以便对修改的文件中的代码进行测试,验证代码的正确性,在所述回归日期每隔一段时间扫描各个SVN代码分支。
可理解的是,所述提交记录是根据开始时间和结束时间去扫描SVN的提交记录,每次定时任务执行的时候都会保存一个系统时间,该系统时间作为本次扫描SVN提交记录的结束时间,以及下次扫描SVN的所述提交记录的开始时间。所述预设时间段是可配置的,根据日常代码提交管理经验为依据可设置为半个小时或者一个小时,根据输入界面输入的回归时间,以输入的所述回归时间开始,每隔半小时或者一个小时扫描一次。
在本实施例中,在所述步骤S101之前,还包括:
获取预设历史时间段内的历史提交记录,从所述历史提交记录中提取出历史提交时刻;
计算所述预设历史时间段内的相邻历史提交时刻之间的时间差,并计算所述时间差的平均值,将所述平均值设置为所述预设时间段。
需要说明的是,所述预设历史时间段为在当前时刻往前的一段时间,比如过去的一天或者一周,为了能够及时扫描出所述SVN代码分支中的提交记录,可获取所述预设历史时间段内所有的历史提交记录,所述历史提交记录中包括历史提交时刻,即提交记录的时刻,可从所述历史提交记录中提取出历史提交时刻,计算所述预设历史时间段内的相邻历史提交时刻之间的时间差,所述时间差能够反映相邻的两次提交记录之间的时间间隔,可将所述时间差中最小值作为所述预设时间段,以确保每次提交记录能够被及时发现,也可计算所述时间差的平均值,将所述平均值设置为所述预设时间段。
本实施例中,获取多个代码类型对应的预设正则表达式,将所述目标修改文件与各预设正则表达式进行匹配,若匹配成功,则将匹配上的预设正则表达式对应的代码类型识别为所述目标修改文件的目标代码类型,从而可将所述目标修改文件发送至与所述目标代码类型对应的目标审查用户,使得所述目标审查用户能够快速对所述目标修改文件进行代码测试,测试出可能存在的异常;每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件,从而能够及时扫描出每一次的提交记录,避免改动代码的遗漏而导致生产问题。
参照图4,图4为本发明代码改动通知方法第三实施例的流程示意图,基于上述图3所示的第二实施例,提出本发明代码改动通知方法的第三实施例。
在第三实施例中,所述步骤S40之后,包括:
步骤S50:接收所述目标审查用户对所述目标修改文件的测试验证结果。
应理解的是,所述目标审查用户负责对所述目标修改文件进行回归测试,以确认修改是否引入新的错误或导致其他代码产生错误。所述回归测试可通过再测试全部用例,选择基线测试用例库中的全部测试用例组成回归测试包,对所述目标修改文件进行测试;还可通过基于风险选择测试,可以基于一定的风险标准来从基线测试用例库中选择回归测试包,首先选择所述目标修改文件中最重要的、关键的和可疑的代码部分进行测试,而跳过那些非关键的、优先级别低的或者高稳定的测试用例,非关键用例即便可能测试到缺陷,这些缺陷的严重性也仅有三级或四级,对所述目标修改文件的测试从主要特征到次要特征;还可通过基于操作剖面选择测试,如果基线测试用例库的测试用例是基于软件操作剖面开发的,测试用例的分布情况反映了系统的实际使用情况,回归测试所使用的测试用例个数可以由测试预算确定,回归测试可以优先选择所述目标修改文件中最重要或最频繁使用功能进行测试,从而释放和缓解最高级别的风险,以尽早发现那些对可靠性有最大影响的故障;还可以通过对修改的部分进行局部测试,当所述目标审核用户评估所述目标修改文件中未修改的部分出错风险较低时,可以通过相依性分析识别代码的修改情况并分析修改的影响,将回归测试局限于被改变的模块和它的接口上,通常,一个回归错误一定涉及一个新的、修改的或删除的代码段。所述目标审查用户对所述目标修改文件进行回归测试之后,将对所述目标修改文件的测试验证结果进行反馈,所述代码改动通知接收反馈的所述测试验证结果。
步骤S60:若所述测试验证结果为存在异常,则从所述测试验证结果中提取出异常信息。
可理解的是,通常所述目标审查用户进行反馈时,会将测试到的异常信息都进行反馈,以使所述代码改动通知设备将测试到的异常信息发送至开发用户,以使所述开发用户再次对代码进行调整,以规避出现的错误。若所述测试验证结果为存在异常,说明所述目标修改文件引入了新的错误或导致其他代码产生错误,则从可所述测试验证结果中提取出异常信息;若所述测试验证结果为正常,说明所述目标修改文件正常,不会产生生产问题。
步骤S70:从所述提交记录中提取出开发用户信息,将所述异常信息发送至所述开发用户信息对应的开发用户。
需要说明的是,所述提交记录中包括提交时刻和开发用户信息等信息,可从所述提交记录中提取出所述开发用户信息,所述开发用户信息包括开发用户的姓名、工号和邮箱地址等信息,则可将所述异常信息发送至所述开发用户信息对应的开发用户,以使所述开发用户对代码进行调整以克服出现的缺陷。具体地,可通过JavaMail或者预设沟通应用程序中的至少一种方式发送所述异常信息至所述开发用户信息对应的开发用户。
本实施例中,接收所述目标审查用户对所述目标修改文件的测试验证结果,若所述测试验证结果为存在异常,则从所述测试验证结果中提取出异常信息,从所述提交记录中提取出开发用户信息,将所述异常信息发送至所述开发用户信息对应的开发用户,以使所述开发用户对代码进行调整以克服出现的缺陷。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有代码改动通知程序,所述代码改动通知程序被处理器执行时实现如上文所述的代码改动通知方法的步骤。
此外,参照图5,本发明实施例还提出一种代码改动通知装置,所述代码改动通知装置包括:
扫描模块10,用于扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件;
识别模块20,用于识别所述目标修改文件的目标代码类型;
查找模块30,用于查找与所述目标代码类型对应的目标审查用户;
发送模块40,用于发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。
应理解的是,所述预设代码分支包括SVN代码分支,SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,SVN是用于多个人共同开发同一个项目,共用资源的目的,集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,进入自己的分支,然后开发,最后解决冲突,提交。所有的版本的文件信息都放在服务器上。
可理解的是,为了及时发现开发用户修改的文件,以便对修改的文件中的代码进行测试,验证代码的正确性,每隔一段时间扫描各个SVN代码分支,当扫描到任意一个SVN代码分支中存在所述提交记录,所述提交记录为开发用户在自己的SVN代码分支进行开发后,对修改后的文件信息提交至服务器的记录,可从所述提交记录中提取出所述目标修改文件,所述目标修改文件是开发者进行开发修改的代码文件。
可理解的是,在一个项目进行开发或测试时,涉及到多个类型的代码开发或测试,通常代码修改的代码类型包括:业务代码、数据库脚本、mqcp代码、esg代码以及代码规范。通过对所述目标修改文件进行分析,对所述目标修改文件进行关键词提取,根据提取出的关键词判断所述目标修改文件与上述五个代码类型匹配,则将能够匹配上的代码类型识别为所述目标修改文件的目标代码类型。
需要说明的是,每个代码类型都会有对应的审查用户,每次涉及到对应类型的代码修改,都需要通过邮件或者其他通知工具通知到对应的审查用户,以使审查用户进行代码审查,并分配至对应的测试用户根据所述目标修改文件进行测试验证,以测试所述被修改文件中的代码是否可行。
在具体实现中,可预先建立映射关系表,保存各种代码类型与审查用户之间的对应关系,当扫描到代码的提交记录,通过查询所述映射关系表,查找出对应的目标审查用户,本实施例中,所述查找与所述目标代码类型对应的目标审查用户,包括:从映射关系表中查找与所述目标代码类型对应的目标审查用户,所述映射关系表包括代码类型与审查用户之间的对应关系。
应理解的是,可通过预设通知工具发送所述目标修改文件至所述目标审查用户,所述预设通知工具包括:JavaMail和预设沟通应用程序等。JavaMail,提供给开发者处理电子邮件相关的编程接口,用来处理邮件的应用程序编程接口(Application ProgrammingInterface,API),它可以方便地执行一些常用的邮件传输。通过JavaMail开发出回归阶段中所述代码改动通知设备与邮件中转服务器之间邮件发送功能,通过所述邮件中转服务器将所述目标修改文件发送至所述目标审查用户对应的目标邮箱。除了邮件通知,还可以通过预设沟通应用程序,比如,快乐平安等应用程序进行通知,会推送所述目标修改文件到所述目标审查用户的用户设备上,所述用户设备包括个人电脑端或者智能手机等。
本实施例中,所述发送所述目标修改文件至所述目标审查用户,包括:
通过预设邮件工具连接邮件中转服务器,并根据所述目标修改文件创建邮件对象;
通过所述中转服务器发送所述邮件对象至所述目标审查用户。
在具体实现中,所述预设邮件工具为JavaMail,通过JavaMail连接邮件中转服务器,通过JavaMail创建邮件对象,所述邮件对象包括所述目标修改文件、邮件主题、发送者邮箱及接收者邮箱等信息,所述接收者邮箱为所述目标审查用户的目标邮箱,设置发送邮件的端口号,还可设置发送者的邮箱地址和密码,设置安全连接,从而实现将所述邮件对象发送至所述目标审查用户。
本实施例中,扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件,通过扫描预设代码分支可监控开发人员的每一次代码提交,避免遗漏被改动的代码;识别所述目标修改文件的目标代码类型,查找与所述目标代码类型对应的目标审查用户,发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试,验证代码改动是否存在异常,以避免代码改动而未测试验证产生的生产问题。
在一实施例中,所述代码改动通知装置还包括:
匹配模块,用于获取多个代码类型对应的预设正则表达式,将所述目标修改文件与各预设正则表达式进行匹配;
所述识别模块20,还用于若匹配成功,则将匹配上的预设正则表达式对应的代码类型识别为所述目标修改文件的目标代码类型。
在一实施例中,所述查找模块30,还用于从映射关系表中查找与所述目标代码类型对应的目标审查用户,所述映射关系表包括代码类型与审查用户之间的对应关系。
在一实施例中,所述扫描模块10,还用于每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件。
在一实施例中,所述代码改动通知装置还包括:
提取模块,用于获取预设历史时间段内的历史提交记录,从所述历史提交记录中提取出历史提交时刻;
计算模块,用于计算所述预设历史时间段内的相邻历史提交时刻之间的时间差,并计算所述时间差的平均值,将所述平均值设置为所述预设时间段。
在一实施例中,所述代码改动通知装置还包括:
接收模块,用于接收所述目标审查用户对所述目标修改文件的测试验证结果;
所述提取模块,还用于若所述测试验证结果为存在异常,则从所述测试验证结果中提取出异常信息;
所述发送模块40,还用于从所述提交记录中提取出开发用户信息,将所述异常信息发送至所述开发用户信息对应的开发用户。
在一实施例中,所述代码改动通知装置还包括:
连接模块,用于通过预设邮件工具连接邮件中转服务器,并根据所述目标修改文件创建邮件对象;
所述发送模块40,还用于通过所述中转服务器发送所述邮件对象至所述目标审查用户。
本发明所述代码改动通知装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为标识。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种代码改动通知方法,其特征在于,所述代码改动通知方法包括以下步骤:
扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件;
识别所述目标修改文件的目标代码类型;
查找与所述目标代码类型对应的目标审查用户;
发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。
2.如权利要求1所述的代码改动通知方法,其特征在于,所述识别所述目标修改文件的目标代码类型,包括:
获取多个代码类型对应的预设正则表达式,将所述目标修改文件与各预设正则表达式进行匹配;
若匹配成功,则将匹配上的预设正则表达式对应的代码类型识别为所述目标修改文件的目标代码类型。
3.如权利要求2所述的代码改动通知方法,其特征在于,所述查找与所述目标代码类型对应的目标审查用户,包括:
从映射关系表中查找与所述目标代码类型对应的目标审查用户,所述映射关系表包括代码类型与审查用户之间的对应关系。
4.如权利要求3所述的代码改动通知方法,其特征在于,所述扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件,包括:
每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件。
5.如权利要求4所述的代码改动通知方法,其特征在于,所述每隔预设时间段通过预设扫描工具扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件之前,所述代码改动通知方法还包括:
获取预设历史时间段内的历史提交记录,从所述历史提交记录中提取出历史提交时刻;
计算所述预设历史时间段内的相邻历史提交时刻之间的时间差,并计算所述时间差的平均值,将所述平均值设置为所述预设时间段。
6.如权利要求1-5中任一项所述的代码改动通知方法,其特征在于,所述发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试之后,所述代码改动通知方法还包括:
接收所述目标审查用户对所述目标修改文件的测试验证结果;
若所述测试验证结果为存在异常,则从所述测试验证结果中提取出异常信息;
从所述提交记录中提取出开发用户信息,将所述异常信息发送至所述开发用户信息对应的开发用户。
7.如权利要求1-5中任一项所述的代码改动通知方法,其特征在于,所述发送所述目标修改文件至所述目标审查用户,包括:
通过预设邮件工具连接邮件中转服务器,并根据所述目标修改文件创建邮件对象;
通过所述中转服务器发送所述邮件对象至所述目标审查用户。
8.一种代码改动通知设备,其特征在于,所述代码改动通知设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码改动通知程序,所述代码改动通知程序被所述处理器执行时实现如权利要求1至7中任一项所述的代码改动通知方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有代码改动通知程序,所述代码改动通知程序被处理器执行时实现如权利要求1至7中任一项所述的代码改动通知方法的步骤。
10.一种代码改动通知装置,其特征在于,所述代码改动通知装置包括:
扫描模块,用于扫描预设代码分支,若扫描到所述预设代码分支中存在提交记录,则从所述提交记录中提取出目标修改文件;
识别模块,用于识别所述目标修改文件的目标代码类型;
查找模块,用于查找与所述目标代码类型对应的目标审查用户;
发送模块,用于发送所述目标修改文件至所述目标审查用户,以使所述目标审查用户根据所述目标修改文件进行回归测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531348.8A CN109783128A (zh) | 2018-12-13 | 2018-12-13 | 代码改动通知方法、设备、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531348.8A CN109783128A (zh) | 2018-12-13 | 2018-12-13 | 代码改动通知方法、设备、存储介质及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783128A true CN109783128A (zh) | 2019-05-21 |
Family
ID=66496942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811531348.8A Pending CN109783128A (zh) | 2018-12-13 | 2018-12-13 | 代码改动通知方法、设备、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783128A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866492A (zh) * | 2019-11-13 | 2020-03-06 | 广州品唯软件有限公司 | 一种基线分支的识别方法、装置及计算机系统 |
CN110865934A (zh) * | 2019-10-08 | 2020-03-06 | 北京百度网讯科技有限公司 | 代码验证方法、装置、电子设备及可读存储介质 |
CN111190824A (zh) * | 2019-12-28 | 2020-05-22 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111240692A (zh) * | 2020-01-17 | 2020-06-05 | 北京简单一点科技有限公司 | 一种代码分支冲突提前预警方法 |
CN111552646A (zh) * | 2020-04-30 | 2020-08-18 | 北京百度网讯科技有限公司 | 用于回归测试的方法和装置 |
CN113553262A (zh) * | 2021-07-22 | 2021-10-26 | 网易(杭州)网络有限公司 | 一种代码审核方法、装置、电子设备及存储介质 |
CN114461270A (zh) * | 2022-02-10 | 2022-05-10 | 上海哔哩哔哩科技有限公司 | 项目处理方法及装置 |
CN116738036A (zh) * | 2023-02-03 | 2023-09-12 | 上海陟明信息技术有限责任公司 | 基于大数据的用户行为分析方法及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271824A1 (en) * | 2005-05-24 | 2006-11-30 | Kwong Man K | Auto-recording tool for developing test harness files |
CN103678110A (zh) * | 2012-09-26 | 2014-03-26 | 国际商业机器公司 | 提供修改相关信息的方法和装置 |
CN103823755A (zh) * | 2014-02-21 | 2014-05-28 | 北京金山网络科技有限公司 | 一种版本管理系统的数据处理方法和装置 |
CN103970667A (zh) * | 2014-05-30 | 2014-08-06 | 深圳市茁壮网络股份有限公司 | 一种基于缺陷管理平台的缺陷分派方法及系统 |
US20170046245A1 (en) * | 2015-08-13 | 2017-02-16 | Ca, Inc. | Method and Apparatus for Recommending Regression Tests |
CN106445815A (zh) * | 2016-09-06 | 2017-02-22 | 合网络技术(北京)有限公司 | 一种自动化测试方法及装置 |
WO2017036335A1 (zh) * | 2015-09-01 | 2017-03-09 | 阿里巴巴集团控股有限公司 | 一种代码提交方法和设备 |
CN106817265A (zh) * | 2015-11-27 | 2017-06-09 | 北京奇虎科技有限公司 | 一种应用性能监控方法和装置 |
CN106844730A (zh) * | 2017-02-10 | 2017-06-13 | 网易(杭州)网络有限公司 | 文件内容的显示方法及装置 |
CN107729031A (zh) * | 2017-08-25 | 2018-02-23 | 上海壹账通金融科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
US9983982B1 (en) * | 2017-01-04 | 2018-05-29 | Visa International Service Association | Testing software code in a production environment |
US20180260312A1 (en) * | 2017-03-10 | 2018-09-13 | Hewlett Packard Enterprise Development Lp | Test selection for application commit |
CN108536577A (zh) * | 2017-03-02 | 2018-09-14 | 北京嘀嘀无限科技发展有限公司 | 程序代码信息处理方法及装置 |
-
2018
- 2018-12-13 CN CN201811531348.8A patent/CN109783128A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271824A1 (en) * | 2005-05-24 | 2006-11-30 | Kwong Man K | Auto-recording tool for developing test harness files |
CN103678110A (zh) * | 2012-09-26 | 2014-03-26 | 国际商业机器公司 | 提供修改相关信息的方法和装置 |
CN103823755A (zh) * | 2014-02-21 | 2014-05-28 | 北京金山网络科技有限公司 | 一种版本管理系统的数据处理方法和装置 |
CN103970667A (zh) * | 2014-05-30 | 2014-08-06 | 深圳市茁壮网络股份有限公司 | 一种基于缺陷管理平台的缺陷分派方法及系统 |
US20170046245A1 (en) * | 2015-08-13 | 2017-02-16 | Ca, Inc. | Method and Apparatus for Recommending Regression Tests |
WO2017036335A1 (zh) * | 2015-09-01 | 2017-03-09 | 阿里巴巴集团控股有限公司 | 一种代码提交方法和设备 |
CN106817265A (zh) * | 2015-11-27 | 2017-06-09 | 北京奇虎科技有限公司 | 一种应用性能监控方法和装置 |
CN106445815A (zh) * | 2016-09-06 | 2017-02-22 | 合网络技术(北京)有限公司 | 一种自动化测试方法及装置 |
US9983982B1 (en) * | 2017-01-04 | 2018-05-29 | Visa International Service Association | Testing software code in a production environment |
CN106844730A (zh) * | 2017-02-10 | 2017-06-13 | 网易(杭州)网络有限公司 | 文件内容的显示方法及装置 |
CN108536577A (zh) * | 2017-03-02 | 2018-09-14 | 北京嘀嘀无限科技发展有限公司 | 程序代码信息处理方法及装置 |
US20180260312A1 (en) * | 2017-03-10 | 2018-09-13 | Hewlett Packard Enterprise Development Lp | Test selection for application commit |
CN107729031A (zh) * | 2017-08-25 | 2018-02-23 | 上海壹账通金融科技有限公司 | 代码管理方法、装置、计算机设备和计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
陈翔;顾卫江;徐慧;顾庆;陈道蓄;: "回归测试用例选择技术研究综述", 计算机科学, no. 10 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865934A (zh) * | 2019-10-08 | 2020-03-06 | 北京百度网讯科技有限公司 | 代码验证方法、装置、电子设备及可读存储介质 |
CN110865934B (zh) * | 2019-10-08 | 2023-10-27 | 北京百度网讯科技有限公司 | 代码验证方法、装置、电子设备及可读存储介质 |
CN110866492B (zh) * | 2019-11-13 | 2022-12-13 | 广州品唯软件有限公司 | 一种基线分支的识别方法、装置及计算机系统 |
CN110866492A (zh) * | 2019-11-13 | 2020-03-06 | 广州品唯软件有限公司 | 一种基线分支的识别方法、装置及计算机系统 |
CN111190824A (zh) * | 2019-12-28 | 2020-05-22 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111190824B (zh) * | 2019-12-28 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111240692A (zh) * | 2020-01-17 | 2020-06-05 | 北京简单一点科技有限公司 | 一种代码分支冲突提前预警方法 |
CN111240692B (zh) * | 2020-01-17 | 2023-05-26 | 北京简单一点科技有限公司 | 一种代码分支冲突提前预警方法 |
CN111552646B (zh) * | 2020-04-30 | 2023-08-29 | 阿波罗智能技术(北京)有限公司 | 用于回归测试的方法和装置 |
CN111552646A (zh) * | 2020-04-30 | 2020-08-18 | 北京百度网讯科技有限公司 | 用于回归测试的方法和装置 |
CN113553262B (zh) * | 2021-07-22 | 2023-08-11 | 网易(杭州)网络有限公司 | 一种代码审核方法、装置、电子设备及存储介质 |
CN113553262A (zh) * | 2021-07-22 | 2021-10-26 | 网易(杭州)网络有限公司 | 一种代码审核方法、装置、电子设备及存储介质 |
CN114461270A (zh) * | 2022-02-10 | 2022-05-10 | 上海哔哩哔哩科技有限公司 | 项目处理方法及装置 |
CN116738036A (zh) * | 2023-02-03 | 2023-09-12 | 上海陟明信息技术有限责任公司 | 基于大数据的用户行为分析方法及系统 |
CN116738036B (zh) * | 2023-02-03 | 2024-03-22 | 上海陟明信息技术有限责任公司 | 基于大数据的用户行为分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783128A (zh) | 代码改动通知方法、设备、存储介质及装置 | |
CN107992409B (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
US10476908B2 (en) | Generating highly realistic decoy email and documents | |
KR101402561B1 (ko) | 아웃바운드 메시지들을 평가하는 시스템 및 방법 | |
US9015592B2 (en) | Method, apparatus, and computer program for providing web service testing | |
US8055945B2 (en) | Systems, methods and computer program products for remote error resolution reporting | |
US20080120601A1 (en) | Information processing apparatus, method and program for deciding priority of test case to be carried out in regression test background of the invention | |
JP2017224053A (ja) | 脆弱性リスク評価システムおよび脆弱性リスク評価方法 | |
US20160378993A1 (en) | Systems for diagnosing and tracking product vulnerabilities | |
US11418534B2 (en) | Threat analysis system and threat analysis method | |
KR101579493B1 (ko) | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 | |
US20080163173A1 (en) | Method and apparatus for assessing sourced elements | |
CN111694612A (zh) | 配置检查方法、装置、计算机系统及存储介质 | |
US8296401B2 (en) | Messaging script for communications server | |
CN112650670A (zh) | 应用测试方法、装置、系统、电子设备和存储介质 | |
CN114116801A (zh) | 数据清单核查方法及装置 | |
WO2021183382A1 (en) | Graph-based method for inductive bug localization | |
JP2006252223A (ja) | コミュニケーション分析装置、およびコミュニケーション分析方法、並びにコンピュータ・プログラム | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN114390016B (zh) | 邮箱规则管理方法、装置、计算机设备和存储介质 | |
CN113672497B (zh) | 无埋点事件的生成方法、装置、设备及存储介质 | |
CA2573742C (en) | Messaging script for communications server | |
CN110362464B (zh) | 软件分析方法及设备 | |
JP2019066928A (ja) | 知識活用促進装置及び知識活用促進方法 | |
CN115129355B (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 |