程序持续集成的方法及系统的制作方法

文档序号:6368741阅读:111来源:国知局
专利名称:程序持续集成的方法及系统的制作方法
技术领域
本发明涉及软件测试,特别是涉及一种程序持续集成的方法及系统。
背景技术
随着计算机技术的发展,软件供应商为了满足用户的各种需求,不断开发出能实现各种功能的软件,而任何一款软件在开发过程中,往往需要花费一个项目组成员诸多心血,例如,先要制定该软件项目的阶段性任务、目标,随后具体实施等,而该软件项目在项目各个阶段之间极少有反馈,而且常常只有在项目生命周期的后期才能看到结果,通常也只有通过强制完成日期和里程碑来跟踪各个项目阶段等,由此容易导致很多问题在软件开发的后期才能被发现,这不但延长了软件开发周期,还增加了软件开发的成本。

发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种程序持续集成的方法及系统,以便及时发现并解决程序在开发过程中所存在的问题。为实现上述目的及其他相关目的,本发明提供一种程序持续集成的方法,其包括步骤1)对获取的程序进行编译,并在编译成功后输出第一启动信息;2)基于所述第一启动信息对所述程序进行测试,以确定所述程序是否能正确运行。优选地,所述步骤2)还包括当确定所述程序能够正常运行时,输出第二启动信息;以及步骤3)基于所述第二启动信息将所述程序并入所述程序所属的程序集中。优选地,所述程序持续集成的方法还包括步骤4)当确定所述程序不能正确运行时,基于对所述程序的修改而启动前述步骤I)。优选地,所述程序持续集成的方法还包括步骤5)将所述程序进行编译的编译结果和/或对所述程序进行测试的测试结果通知相关编程人员。优选地,所述通知采用的是邮件通知方式。基于上述目的,本发明还提供一种所述程序持续集成系统,其包括编译模块,用于对所获取的程序进行编译,并在编译成功后输出第一启动信息;测试模块,用于基于所述第一启动信息对所述程序进行测试,以便确定所述程序是否能正确运行。优选地,所述程序持续集成系统还包括集成模块,用于基于所述测试模块在测试得到所述程序能够正常运行时输出的第二启动信息而将所述程序并入所述程序所属的程序集中。优选地,所述程序持续集成系统还包括启动模块,用于当所述测试模块在测试得到所述程序不能正确运行时,基于对所述程序的修改而启动所述编译模块。优选地,所述程序持续集成系统还包括通知输出模块,用于将由所述编译模块对所述程序进行编译而得到的编译结果和/或由所述测试模块对所述程序进行测试的而得到的测试结果通知相关编程人员。 优选地,所述通知采用的是邮件通知方式。
如上所述,本发明的程序持续集成的方法及系统,具有以下有益效果能够自动对修改后的程序进行编译,并将编译成功的程序进行测试,由此可大大减少编程人员的重复工作,提高编程人员的工作效率;另外,还能够将编译结果和/或测试结果提供给编程人员,以便编程人员能快速发现程序中出现的问题,并予以及时解决,从而缩短程序开发周期。


图I显示为本发明的程序持续集成的方法流程图。图2显示为本发明的一种优选的程序持续集成的方法流程图。图3显示为本发明的程序持续集成系统结构示意图。图4显示为本发明的一种优选的程序持续集成系统结构示意图。
元件标号说明I程序持续集成系统11编译模块12测试模块13集成模块14启动t旲块15通知输出模块S1_S5、S21 步骤
具体实施例方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式
加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。图I为本发明的程序持续集成的方法的流程图。其中,所述程序持续集成的方法主要由程序持续集成系统来执行,所述程序持续集成系统为安装在计算机设备中的应用模块等。该计算机设备为一种能够按照事先存储的程序,自动、高速地进行大量数值计算和各种信息处理的现代化智能电子设备,其硬件包括但不限于微处理器、FPGA(现场可编程门阵列)、DSP (数字信号处理器)、嵌入式设备等。在步骤SI中,所述程序持续集成系统用于对所获取的程序进行编译,并在编译成功后输出第一启动信息。需要说明的是,本领域技术人员应该理解所述程序持续集成系统对程序进行编译的过程,故在此不再予以详述。其中,所述程序包括任何用计算机语言编写的命令序列的集合,优选地,其包括但不限于能实现单一功能的命令序列集、能实现多功能的命令序列集等。例如,能计算圆面积的程序、包含文字编辑功能及图形编辑功能的程序等。所述程序持续集成系统获取程序的方式包括但不限于1)基于编程人员的操作来获取程序,例如,编程人员在编程界面所显示的程序Xl的第3至10行插入程序代码XII,然后保存修改后的程序XI,则所述程序持续集成系统基于来自编程人员保存的操作来获取程序XI。2)由其他设备提供给所述程序持续集成系统。例如,由保存程序的版本控制系统所属的计算机设备将修改后的程序提供给所述程序持续集成系统等。当所述程序通过编译时,所述程序持续集成系统输出第一启动信息。所述第一启动信息包括任何能够启动将所述程序进行测试的信息,其包括但不限于布尔值等。在步骤S2中,所述程序持续集成系统用于基于所述第一启动信息对所述程序进行测试,以便确定所述程序是否能正确运行。优选地,所述程序持续集成系统包括自动测试机。需要说明的是,本领域技术人员应该理解所述程序持续集成系统对程序进行测试 的过程,故在此不再予以详述。其中,程序能正确运行的含义包括所述程序基于预定测试用例运行后,能输出与所述预定测试用例对应的结果。 优选地,如图2所示,本发明所述步骤S2中还包括步骤S21,本发明所述程序持续集成的方法还包括步骤S3。具体地,在步骤S21中,当所述程序能够正常运行时,输出第二启动信息。其中,所述第二启动信息包括任何能够表示所述程序为能够正确运行的信息,其包括但不限于布尔值等。在步骤S3中,当所述程序能够正常运行时,所述程序持续集成系统基于所述第二启动信息将所述程序并入所述程序所属的程序集中。具体地,所述程序持续集成系统基于所述程序诸如身份类的注释等身份特征信息,将所述程序取代所述程序集中的身份特征信息相同的程序块;或者,所述程序持续集成系统基于所述程序诸如编号类的注释信息,将所述程序添加在所述程序集中与所述编号对应的位置等。其中,所述程序持续集成系统确定所述程序所属的程序集的方式包括但不限于基于预先的设置来确定;基于预定的程序与程序集的对应关系来确定等。作为另一种优选方式,如图2所示,所述程序持续集成的方法还包括步骤S4。在步骤S4中,当所述程序不能正常运行时,基于对所述程序的修改而启动前述步骤I)。其中,所述程序不能正常运行的情况包括任何导致程序无法正常运行的情况,其包括但不限于所述程序未能通过编译、所述程序未能通过测试等。例如,程序A’未能在步骤SI中通过编译或者未能在步骤S2中通过测试,则所述程序持续集成系统确定所述程序A’不能正常运行,则人员对所述程序A’进行修改后,所述程序持续集成系统获取所述修改后的程序A’,以便再次执行编译操作和/或测试操作等。作为又一种优选方式,如图2所示,所述程序持续集成的方法还包括步骤S5。在步骤S5中,所述程序持续集成系统将对修改后的程序进行编译的编译结果和/或对程序进行测试的测试结果通知相关编程人员。其中,所述编译结果包括但不限于编译成功的信息、导致编译失败的某行代码的信息等。所述测试结果包括但不限于测试成功信息、导致测试失败的部分程序的异常信息
坐寸ο其中,所述程序持续集成系统将所述编译结果和/或测试结果通知相关编程人员的方式包括但不限于1)基于相关编程人员的联系方式来将所述编译结果和/或测试结果通知相关编程人员。例如,所述程序持续集成系统将编译失败的某行代码的信息通过预定的邮箱地址通知相关编程人员。2)直接显示编译结果和/或测试结果给相关编程人员,或者将编译结果和/或测试结果予以保存,以便编程人员查看等。例如,所述程序持续集成系统将程序未通过测试的测试结果以日志形式予以保存,以便编程人员查看等。图3为本发明的程序持续集成系统的结构示意图。所述程序持续集成系统I包括编译模块11和测试模块12。所述编译模块11用于对所获取的程序进行编译,并在编译成功后输出第一启动信息。需要说明的是,本领域技术人员应该理解所述测试模块11对程序进行编译的过程,故在此不再予以详述。
其中,所述程序包括任何用计算机语言编写的命令序列的集合,优选地,其包括但不限于能实现单一功能的命令序列集、能实现多功能的命令序列集等等。例如,能计算圆面积的程序、包含文字编辑功能及图形编辑功能的程序等等。所述编译模块11获取程序的方式包括但不限于1)基于编程人员的操作来获取程序,例如,编程人员在编程界面所显示的程序Xl的第3至10行插入程序代码XII,然后保存修改后的程序Xi,则所述编译模块11基于来自编程人员保存的操作来获取所述程序Xi。2)由其他设备提供给所述编译模块11。例如,由保存程序的版本控制系统所属计算机设备将修改后的程序提供给所述编译模块11等。当所述程序通过编译时,所述编译模块输出第一启动信息。所述第一启动信息包括任何能够启动将所述程序进行测试的信息,其包括但不限于布尔值等。所述测试模块12用于基于所述第一启动信息对所述程序进行测试,以便确定所述程序是否能正确运行。优选地,所述测试模块包括自动测试机。需要说明的是,本领域技术人员应该理解所述测试模块12对程序进行测试的过程,故在此不再予以详述。其中,程序能正确运行的含义包括所述程序基于预定测试用例运行后,能输出与所述预定测试用例对应的结果。优选地,如图4所示,所述程序持续集成系统I还包括集成模块13。所述集成模块13用于基于所述测试模块在测试得到所述程序能够正常运行时输出的第二启动信息而将所述程序并入所述程序所属的程序集中。其中,所述第二启动信息包括任何能够表示所述程序为能够正确运行的信息,其包括但不限于布尔值等。具体地,所述集成模块13基于所述程序诸如身份类的注释等身份特征信息,将所述程序取代所述程序集中的身份特征信息相同的程序块;或者,所述集成模块基于所述程序诸如编号类的注释信息,将所述程序添加在所述程序集中与所述编号对应的位置等。其中,所述集成模块确定所述程序所属的程序集的方式包括但不限于基于预先的人工设置来确定;基于预定的程序与程序集的对应关系来确定等。作为一种优选方式,如图4所示,所述程序持续集成系统I还包括启动模块14。所述启动模块14用于当所述测试模块在测试得到所述程序不能正确运行时,基于对所述程序的修改而启动所述编译模块11。其中,所述程序不能正常运行的情况包括任何导致程序无法正常运行的情况,其包括但不限于所述程序未能通过编译、所述程序未能通过测试等。例如,程序A’未能通过编译或者测试,则所述测试模块12确定所述程序A’不能正常运行,则人员对所述程序A’进行修改后,所述启动模块14获取所述修改后的程序A’,以便再次执行编译操作和/或测试操作等。作为又一种优选方式,如图4所示,所述程序持续集成系统I还包括通知输出模块15。所述通知输出模块15用于将对修改后的程序进行编译的编译结果和/或对程序进行测试的测试结果通知相关编程人员。其中,所述编译结果包括但不限于编译成功的信息、导致编译失败的某行代码的信息等。所述测试结果包括但不限于测试成功信息、导致测试失败的部分程序的异常信息 坐寸ο其中,所述通知输出模块15将所述编译结果和/或测试结果通知相关编程人员的方式包括但不限于1)基于相关编程人员的联系方式来将所述编译结果和/或测试结果通知相关编程人员。例如,所述通知输出模块15将编译失败的某行代码的信息通过预定的邮箱地址通知相关编程人员。2)直接显示编译结果和/或测试结果给相关编程人员,或者将编译结果和/或测试结果予以保存,以便编程人员查看等。例如,所述通知输出模块15将程序未通过测试的测试结果以日志形式予以保存,以便编程人员查看等。综上所述,本发明的程序持续集成的方法及系统能够自动的对修改后的程序进行编译,并将编译成功的程序进行测试,由此可大大减少编程人员的重复工作,提高编程人员的工作效率;另外,所述程序持续集成系统能够将编译结果和/或测试结果提供给编程人员,以便编程人员能快速发现程序中出现的问题,进而及时解决程序开发过程中存在的问题,缩短程序开发周期。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
权利要求
1.一种程序持续集成的方法,其特征在于,包括 1)对获取的程序进行编译,并在编译成功后输出第一启动信息; 2)基于所述第一启动信息对所述程序进行测试,以确定所述程序是否能正确运行。
2.根据权利要求I所述的程序持续集成的方法,其特征在于,包括 当确定所述程序能够正常运行时,输出第二启动信息; 基于所述第二启动信息将所述程序并入所述程序所属的程序集中。
3.根据权利要求I所述的程序持续集成的方法,其特征在于,还包括 当确定所述程序不能正确运行时,基于对所述程序的修改而启动前述步骤I)。
4.根据权利要求I所述的程序持续集成的方法,其特征在于,还包括 将所述程序进行编译的编译结果和/或对所述程序进行测试的测试结果通知相关编程人员。
5.根据权利要求4所述的程序持续集成的方法,其特征在于,所述通知采用的是邮件通知方式。
6.一种程序持续集成系统,其特征在于,包括 编译模块,用于对所获取的程序进行编译,并在编译成功后输出第一启动信息; 测试模块,用于基于所述第一启动信息对所述程序进行测试,以便确定所述程序是否能正确运行。
7.根据权利要求6所述的程序持续集成系统,其特征在于,还包括 集成模块,用于基于所述测试模块在测试得到所述程序能够正常运行时输出的第二启动信息而将所述程序并入所述程序所属的程序集中。
8.根据权利要求6所述的程序持续集成系统,其特征在于,所述程序持续集成系统还包括 启动模块,用于当所述测试模块在测试得到所述程序不能正确运行时,基于对所述程序的修改而启动所述编译模块。
9.根据权利要求6所述的程序持续集成系统,其特征在于,还包括 通知输出模块,用于将由所述编译模块对所述程序进行编译而得到的编译结果和/或由所述测试模块对所述程序进行测试的而得到的测试结果通知相关编程人员。
10.根据权利要求9所述的程序持续集成系统,其特征在于,所述通知采用的是邮件通知方式。
全文摘要
本发明提供一种程序持续集成的方法及系统,其中,本发明所述的程序持续集成的方法包括对所获取的修改后的程序进行编译,并在编译成功后输出第一启动信息,接着,基于所述第一启动信息对所述程序进行测试,以便确定所述程序是否能正确运行。本发明能够自动对修改后的程序进行编译,并将编译成功的程序进行测试,由此可大大减少编程人员的重复工作,提高编程人员的工作效率。
文档编号G06F11/36GK102708051SQ20121012702
公开日2012年10月3日 申请日期2012年7月12日 优先权日2012年7月12日
发明者戴纪铭, 毛晴川 申请人:加弘科技咨询(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1