CN102012814B - 软件版本的构建方法和系统 - Google Patents

软件版本的构建方法和系统 Download PDF

Info

Publication number
CN102012814B
CN102012814B CN201010559274.6A CN201010559274A CN102012814B CN 102012814 B CN102012814 B CN 102012814B CN 201010559274 A CN201010559274 A CN 201010559274A CN 102012814 B CN102012814 B CN 102012814B
Authority
CN
China
Prior art keywords
code
test
software version
version
routine package
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
Application number
CN201010559274.6A
Other languages
English (en)
Other versions
CN102012814A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201010559274.6A priority Critical patent/CN102012814B/zh
Publication of CN102012814A publication Critical patent/CN102012814A/zh
Priority to PCT/CN2011/074781 priority patent/WO2012068850A1/zh
Application granted granted Critical
Publication of CN102012814B publication Critical patent/CN102012814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration 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/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件版本的构建方法和系统,其中,该方法包括:软件版本构建系统自动对获取的代码进行动态测试,生成动态测试报告;所述软件版本构建系统对所述代码进行编译,生成程序包;所述软件版本构建系统自动对所述程序包进行静态测试,生成静态测试报告;所述软件版本构建系统根据程序包构建软件版本,并将所述动态测试报告和所述静态测试报告发送给用户。本发明大大节省开发人员的开发时间,缩短软件开发周期,提高研发效率,并且保证了测试的正确性和完整性。

Description

软件版本的构建方法和系统
技术领域
本发明涉及软件技术领域,更具体的说,是一种软件版本的构建方法和系统。
背景技术
在软件开发中,对软件进行完整的版本构建很重要,而且这一过程也成为软件开发过程中每天都必不可少的一个环节。面对每天不断新增的软件代码,要保证每天新合入的代码不会出错,且运行效率高效,就必须对软件版本进行每日构建,来保证软件代码在快速更新后的可靠性,提高研发效率。
目前较为普遍的软件开发过程是,开发人员在提交代码前必须要进行详细的动态测试和静态测试后才能提交代码到版本机上,然后再进行每日构建版本。这里的动态测试是指开发人员编写测试用例,对代码的基本单元的功能、性能及业务逻辑进行测试;静态测试是指开发人员根据一定的编码规则,对代码的语法、结构、过程、接口进行测试。在这种方式中,每日构建工作做的只是获取源代码、编译源代码,并生成可用的软件版本,同时,必须通过人工来完成动态测试和静态测试,从而降低了开发的效率且增加了测试出错,或者,遗漏或部分遗漏测试的概率。
现有的专利文献包括:专利申请号为200710166024.4的中国专利申请“一种日构建方法、装配及系统”和专利号为200910171458.2的中国专利“每日构建方法和装置”。
第200710166024.4号中国专利申请存在以下不足:该专利提供了一种传统日构建的方法和流程,未涉及对单元测试及代码规则检测的处理。
第200910171458.2号美国专利存在以下不足:在该专利中,每日构建方法和装置没有涉及单元测试及代码规则检测的方法和装置。
发明内容
本发明的主要目的在于提供一种软件版本的构建方法和系统,以至少解决上述问题。
根据本发明的一个方面,提供了一种软件版本的构建方法,其包括:软件版本构建系统自动对获取的代码进行动态测试,生成动态测试报告;所述软件版本构建系统对所述代码进行编译,生成程序包;所述软件版本构建系统自动对所述程序包进行静态测试,生成静态测试报告;所述软件版本构建系统根据程序包构建软件版本,并将所述动态测试报告和所述静态测试报告发送给用户。
进一步地,所述软件版本构建系统自动对获取的代码进行动态测试的步骤包括:所述软件版本构建系统在获取所述代码之后根据预置的测试代码路径和单元测试用例路径对所述代码进行所述动态测试。
进一步地,所述软件版本构建系统自动对所述程序包进行静态测试的步骤包括:所述软件版本构建系统在生成所述程序包之后根据预置的测试程序包路径以及代码规则对所述程序包进行所述静态测试。
进一步地,在软件版本构建系统自动对获取的代码进行动态测试之前,还包括:所述软件版本构建系统设置版本构建时的初始参数,利用批处理文件清除旧的版本安装文件和日志文件。
进一步地,在所根据程序包构建软件版本时,还包括:将所述程序包中的与使用语言环境相关的资源文件合并成一个文件。
进一步地,所述软件版本构建系统对所述代码进行编译时,还包括:根据编译标志位来判断所述编译是否成功;若成功,则执行所述软件版本构建系统自动对所述程序包进行静态测试的步骤。
根据本发明的另一方面,提供了一种软件版本构建系统,其包括:版本获取单元,用于获取待执行版本构建的代码;动态测试单元,用于自动对获取的代码进行动态测试,生成动态测试报告;编译单元,用于对所述代码进行编译,生成程序包;静态测试单元,用于所述代码测试单元还用于自动对所述程序包进行静态测试,生成静态测试报告;版本构建单元,用于根据程序包构建软件版本;传输单元,用于将所述动态测试报告和所述静态测试报告发送给用户。
进一步地,所述动态测试单元包括:动态测试模块,用于在获取所述代码之后根据预置的测试代码路径和单元测试用例路径对所述代码进行所述动态测试。
进一步地,所述静态测试单元包括:静态测试模块,用于在生成所述程序包之后根据预置的测试程序包路径以及代码规则对所述程序包进行所述静态测试。
进一步地,软件版本构建系统还包括:初始化单元,用于在自动对获取的代码进行动态测试之前设置版本构建时的初始参数,利用批处理文件清除旧的版本安装文件和日志文件。
在本发明中,通过计算机系统自动进行代码的动态测试和静态测试从而大大节省开发人员的开发时间,缩短软件开发周期,提高研发效率,并且保证了测试的正确性和完整性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的软件版本的构建方法的一种优选的流程图;
图2是根据本发明实施例的软件版本的构建方法的另一种优选的流程图;
图3是根据本发明实施例的软件版本的构建系统的一种优选的结构示意图;
图4是根据本发明实施例的软件版本的构建系统的另一种优选的结构示意图;
图5是根据本发明实施例的代码获取的一种优选的流程图;
图6是根据本发明实施例的代码编译的一种优选的流程图。
具体实施方式
实施例1
图1是根据本发明实施例的软件版本的构建方法的一种优选的流程图,其包括如下步骤:
S102,软件版本构建系统自动对获取的代码进行动态测试,生成动态测试报告;
S104,所述软件版本构建系统对所述代码进行编译,生成程序包;
S106,所述软件版本构建系统自动对所述程序包进行静态测试,生成静态测试报告;
S108,所述软件版本构建系统根据程序包构建软件版本,并将所述动态测试报告和所述静态测试报告发送给用户。
与现有技术相比较,本优选的实施例在版本构建过程中引入了代码测试,对代码进行动态和静态测试,一方面保证了代码的可测试性,使整个测试过程可视可控,减少了缺陷泄漏的几率,大大提高了程序的可靠性,保证了研发质量;另一方面对所有代码进行集中地自动测试,代替了手工操作,大大缩短了产品的开发周期,提升了研发效率。
优选的,所述软件版本构建系统自动对获取的代码进行动态测试的步骤包括:所述软件版本构建系统在获取所述代码之后根据预置的测试代码路径和单元测试用例路径对所述代码进行所述动态测试。在本优选的实施例中,通过系统自动执行动态测试,缩短了产品的开发周期,提升了研发效率。
优选的,所述软件版本构建系统自动对所述程序包进行静态测试的步骤包括:所述软件版本构建系统在生成所述程序包之后根据预置的测试程序包路径以及代码规则对所述程序包进行所述静态测试。在本优选的实施例中,通过系统自动执行静态测试,缩短了产品的开发周期,提升了研发效率。
优选的,在软件版本构建系统自动对获取的代码进行动态测试之前,还包括:所述软件版本构建系统设置版本构建时的初始参数,利用批处理文件清除旧的版本安装文件和日志文件。在本优选的实施例中,通过清除旧的版本安装文件和日志文件,可以有效地避免系统资源的占用,并保证新建软件版本的正常运行。
优选的,在所根据程序包构建软件版本时,还包括:将所述程序包中的与使用语言环境相关的资源文件合并成一个文件。在本优选的实施例中,通过一个文件的形式来构建软件版本,提高了构建效率。
优选的,所述软件版本构建系统对所述代码进行编译时,还包括:根据编译标志位来判断所述编译是否成功;若成功,则执行所述软件版本构建系统自动对所述程序包进行静态测试的步骤。在本优选的实施例中,通过标志位的设置,有效地控制了静态测试的过程。
实施例2
图2是根据本发明实施例的软件版本的构建方法的另一种优选的流程图,其包括如下步骤:
步骤S201、环境清理及参数设置。优选的,设置版本构建时的一些初始参数,进行计算机环境的清理,利用批处理文件将以前产生的版本安装文件和各种日志文件清除掉。
每日构建工作每天都会进行,在开始正式工作之前,需要将装配计算机上的环境清理干净,将操作系统上安装的不需要的软件进程关闭,删除之前的设置参数以及标志位,删除临时文件等避免构建过程中止,使环境能够连续运行。环境清理完毕,根据参数文件中配置的新参数,创建版本构建时需要使用到的目录。需要设置的参数包括构建版本依赖的资源、目标版本存放目录、文件存放的临时目录、日志目录、编译目录等。
步骤S202、获取源代码及支撑的程序包;优选的,从版本机或服务器上获取最新版本的源代码和相关程序包。
目前的软件开发代码不仅仅是项目内的软件开发人员编写,还会使用到一些公用软件平台提供的版本或程序包或第三方的程序包,所以获取源不仅来源于项目内的版本机,还需要提供所需要的其它程序包。
如图5所示,该步骤会用到两个标志位获取平台版本标志位和代码拷贝标志位,初始值均设为SUCCESS。当构建服务器从软件系统平台服务器获取程序包(S501)时,系统会对拷贝是否成功进行判断(S502),若程序包拷贝不成功,则修改获取平台版本标志位为ERROR(S505),进入步骤S203;否则,从版本机代码库中获取最新代码(S503),下载到本地;判断下载是否成功(S504),若下载成功,则可同时进入步骤S204和步骤S206,否则修改代码拷贝标志位为ERROR(S506),进入步骤S203。
步骤S203、生成代码获取报告。
本步骤中,通过判断获取平台版本标志位和代码拷贝标志位,生成代码获取报告。若获取平台版本标志位和代码拷贝标志位两者均为SUCCESS时,代码获取成功,输出代码获取成功报告;若获取平台版本标志位和代码拷贝标志位两者之一为ERROR时,代码获取失败,输出代码获取失败报告。
步骤S204、对代码进行动态测试。优选的,根据预置的测试代码路径和单元测试用例路径,对代码进行单元测试。
本发明实例中,调用ant程序执行脚本文件中的动态测试内容:
首先调用Junit编译器将源代码编译成Class文件,才能开始测试。下面的内容展示脚本文件中调用JUnit进行编译的示例。
<target name=″jUnitCompile″>
       <javac debug=″on″deprecation=″true″verbose=″false″srcdir=″源代码目录″destdir=″Class文件目录″nowarn=″yes″>
       <classpath>
              <path refid=″测试需要的程序包路径″/>
       </classpath>
       <include name=″需要进行动态测试的java文件″/>
       </javac>
</target>
然后再利用JUnit进行测试,测试完成按照指定的路径生成动态测试日志,日志格式为xml文件格式。下面的内容展示脚本文件中动态测试的编写示例。
<target name=″runJUnit″depends=″jUnitCompile″>
    <junit printsummary=″no″haltonfailure=″no″haltonerror=″no″showoutput=″no″>
    <classpath>
          <path refid=″测试需要的程序包路径″/>
    </classpath>
    <batchtest todir=″动态测试日志生成路径″>
         <formatter type=″xml″/>
         <fileset dir=″需要动态测试的类目录″>
               <include name=″需要测试的Class文件″/>
               <exclude name=″不需要测试的Class文件″/>
         </fileset>
   </batchtest>
  </junit>
</target>
动态测试完毕,进入步骤S205。
步骤S205、生成动态测试报告;
本步骤中,根据动态测试的日志,生成指定格式的测试报告,报告格式可以是html、txt或其他格式。测试报告内容包括测试包名、测试类名、测试运行个数、缺陷数、成功率、测试状态、测试花费时间、具体的缺陷明细等内容。
步骤S206、编译版本;优选的,对最新版本代码进行编译打包,生成程序包。
本步骤中,根据设置好的编译环境及相关参数,编译工具开始编译代码,生成可运行的程序包,其过程如图6所示。调用编译配置文件,加载需要构建版本的功能点信息进行编译(S601)。本步骤中会用一个编译标志位表示编译过程是否成功,初始值设为SUCCESS。然后,判断是否编译成功(S602),若编译成功,则可同时进入步骤S208和S210,否则修改编译标志位为ERROR(S603),进入步骤S207。
步骤S207、生成编译报告。
本步骤中,通过判断编译标志位,生成编译报告。若编译标志位为SUCCESS时,编译成功,输出编译成功报告;若编译标志位为ERROR时,编译失败,输出编译失败报告。
步骤S208、对生成的程序包进行静态测试。优选的,根据预置的测试程序包路径,按照预先设置好的代码规则,对程序包进行静态测试。
本发明实例中,通过调用代码检测工具进行代码静态测试。本实例以findbugs代码静态分析工具为例进行说明。Findbugs是一个静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
本步骤中,findbugs工具根据配置文件config.txt中定制的测试路径或测试文件,开始代码测试,将java的字节码(*.class文件)与事先定制好的规则库中的规则进行对比,查找代码缺陷,对比结果生成静态测试报告,进入步骤S209。
步骤S209、生成静态测试报告。
本步骤中,根据配置文件中制定的输出格式,生成静态测试报告。报告格式可以是html、txt或其他格式。测试报告内容包括测试包路径及名称、测试代码行数、测试包个数、测试类总数、缺陷密度、本次测试的缺陷内容、具体的缺陷明细(缺陷明细可定位到代码行)等内容。
步骤S210、预处理版本。
本发明实例中,由于编译输出的多个国际化资源文件存放在不同的路径下,为了减少在软件系统启动时遍历所有资源文件的时间和系统资源,提高软件系统的加载速度,将系统中所有的国际化资源文件按照一定的格式合并成一个资源文件,以提高软件系统的服务性能。
本步骤中,会用一个预处理标志位表示预处理过程是否成功,初始值设为SUCCESS。通过调用预处理工具检查是否存在KEY值重复的资源文件,如果存在,则将预处理标志位置为ERROR,进入下一步骤S211;否则将所有国际化资源文件合并为一个properties格式的文件,进入下一步骤S212。
步骤S211、生成预处理报告。
本步骤中,通过判断预处理标志位,生成预处理报告。若预处理标志位为SUCCESS时,预处理成功,输出预处理成功报告;若预处理标志位为ERROR时,预处理失败,输出预处理失败报告。
步骤S212、装配版本。
本步骤中,通过预装置的规则拷贝合成装配版本,形成一个可安装的版本软件。需要装配的内容包括安装批处理及jar包、应用程序编译输出程序包及文件、平台相关的jar包及文件等。本步骤中会用一个装配标志位表示装配过程是否成功,初始值设为SUCCESS。如果装配失败,则将装配标志位置为ERROR。进入下一步骤S213。
步骤S213、生成装配报告。
本步骤中,通过判断装配标志位,生成装配报告。若装配标志位为SUCCESS时,装配成功,输出装配成功报告;若装配标志位为ERROR时,装配失败,输出装配失败报告。
步骤S214、发送邮件通知。
本步骤中,通过查询步骤S203、S205、S207、S209、S211、S213中的各标志位,根据不同标志位的标识,获取相应的报告,发送给相关人员。
实施例3
图3是根据本发明实施例的软件版本的构建系统的一种优选的结构示意图,其包括:版本获取单元302,用于获取待执行版本构建的代码;动态测试单元304,用于自动对获取的代码进行动态测试,生成动态测试报告;编译单元306,用于对所述代码进行编译,生成程序包;静态测试单元308,用于所述代码测试单元还用于自动对所述程序包进行静态测试,生成静态测试报告;版本构建单元310,用于根据程序包构建软件版本;传输单元312,用于将所述动态测试报告和所述静态测试报告发送给用户。
与现有技术相比较,本优选的实施例在版本构建过程中引入了代码测试,对代码进行动态和静态测试,一方面保证了代码的可测试性,使整个测试过程可视可控,减少了缺陷泄漏的几率,大大提高了程序的可靠性,保证了研发质量;另一方面对所有代码进行集中地自动测试,代替了手工操作,大大缩短了产品的开发周期,提升了研发效率。
优选的,所述动态测试单元304包括:动态测试模块,用于在获取所述代码之后根据预置的测试代码路径和单元测试用例路径对所述代码进行所述动态测试。在本优选的实施例中,通过系统自动执行动态测试,缩短了产品的开发周期,提升了研发效率。
优选的,所述静态测试单元308包括:静态测试模块,用于在生成所述程序包之后根据预置的测试程序包路径以及代码规则对所述程序包进行所述静态测试。在本优选的实施例中,通过系统自动执行静态测试,缩短了产品的开发周期,提升了研发效率。
优选的,根据本发明实施例的软件版本的构建系统还包括:初始化单元314,用于在自动对获取的代码进行动态测试之前设置版本构建时的初始参数,利用批处理文件清除旧的版本安装文件和日志文件。在本优选的实施例中,通过清除旧的版本安装文件和日志文件,可以有效地避免系统资源的占用,并保证新建软件版本的正常运行。
优选的,在所根据程序包构建软件版本时,版本构建单元310将所述程序包中的与使用语言环境相关的资源文件合并成一个文件。在本优选的实施例中,通过一个文件的形式来构建软件版本,提高了构建效率。
优选的,所述软件版本构建系统对所述代码进行编译时,编译单元306根据编译标志位来判断所述编译是否成功;若成功,则通知静态测试单元308执行所述软件版本构建系统自动对所述程序包进行静态测试的步骤。在本优选的实施例中,通过标志位的设置,有效地控制了静态测试的过程。
实施例4
图4是根据本发明实施例的软件版本的构建系统的另一种优选的结构示意图,其包括:
1)初始化模块401:用于对计算机环境进行清理、编译环境的参数设置以及编译过程中使用目录的建立;
2)版本获取模块402:用于负责从版本机上下载源代码,及相关支撑软件的程序包;
3)代码测试模块403:用于负责对代码的测试,包括动态测试、静态测试;动态测试中将开发人员提供的测试用例集成到构建版本中,可以随时开展对代码的单元测试;静态测试中利用代码检查工具,并设置好特定的代码检查规则,就可以随时开展对代码的检查。
4)编译模块404:用于负责对源代码进行编译打包,生成计算机操作系统上可运行的程序包;
5)预处理模块405:用于负责对多个国际化资源文件进行整合和转换,生成一个资源文件,保证版本运行后有高效的性能;
6)装配模块406:用于负责整个版本的组装,按照指定的规则,将程序包组装成可用的程序版本;
7)日志模块407:用于负责对整个版本构建过程中各步骤的运行情况进行跟踪记录,并生成相应的日志文件。针对各步骤的运行情况,生成不同的报告;
8)邮件发送模块408:用于提取日志模块中产生的构建报告,并发送至相关人员邮箱。
与现有技术相比较,本优选的实施例在版本构建过程中引入了代码测试,对代码进行动态和静态测试,一方面保证了代码的可测试性,使整个测试过程可视可控,减少了缺陷泄漏的几率,大大提高了程序的可靠性,保证了研发质量;另一方面对所有代码进行集中地自动测试,代替了手工操作,大大缩短了产品的开发周期,提升了研发效率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种软件版本的构建方法,其特征在于,包括:
软件版本构建系统自动对获取的代码进行动态测试,生成动态测试报告;
所述软件版本构建系统对所述代码进行编译,生成程序包;
所述软件版本构建系统自动对所述程序包进行静态测试,生成静态测试报告;
所述软件版本构建系统根据程序包构建软件版本,并将所述动态测试报告和所述静态测试报告发送给用户;
在所根据程序包构建软件版本时,还包括:将所述程序包中的与使用语言环境相关的资源文件合并成一个文件。
2.根据权利要求1所述的方法,其特征在于,所述软件版本构建系统自动对获取的代码进行动态测试的步骤包括:
所述软件版本构建系统在获取所述代码之后根据预置的测试代码路径和单元测试用例路径对所述代码进行所述动态测试。
3.根据权利要求1所述的方法,其特征在于,所述软件版本构建系统自动对所述程序包进行静态测试的步骤包括:
所述软件版本构建系统在生成所述程序包之后根据预置的测试程序包路径以及代码规则对所述程序包进行所述静态测试。
4.根据权利要求1所述的方法,其特征在于,在软件版本构建系统自动对获取的代码进行动态测试之前,还包括:
所述软件版本构建系统设置版本构建时的初始参数,利用批处理文件清除旧的版本安装文件和日志文件。
5.根据权利要求1所述的方法,其特征在于,所述软件版本构建系统对所述代码进行编译时,还包括:
根据编译标志位来判断所述编译是否成功;
若成功,则执行所述软件版本构建系统自动对所述程序包进行静态测试的步骤。
6.一种软件版本构建系统,其特征在于,包括:
动态测试单元,用于自动对获取的代码进行动态测试,生成动态测试报告;
编译单元,用于对所述代码进行编译,生成程序包;
静态测试单元,用于自动对所述程序包进行静态测试,生成静态测试报告;
版本构建单元,用于根据程序包构建软件版本,其中,所述版本构建单元还用于将所述程序包中的与使用语言环境相关的资源文件合并成一个文件;
传输单元,用于将所述动态测试报告和所述静态测试报告发送给用户。
7.根据权利要求6所述的系统,其特征在于,所述动态测试单元包括:
动态测试模块,用于在获取所述代码之后根据预置的测试代码路径和单元测试用例路径对所述代码进行所述动态测试。
8.根据权利要求6所述的系统,其特征在于,所述静态测试单元包括:
静态测试模块,用于在生成所述程序包之后根据预置的测试程序包路径以及代码规则对所述程序包进行所述静态测试。
9.根据权利要求6所述的系统,其特征在于,还包括:
初始化单元,用于在自动对获取的代码进行动态测试之前设置版本构建时的初始参数,利用批处理文件清除旧的版本安装文件和日志文件。
10.根据权利要求6所述的系统,其特征在于,所述编译单元对所述代码进行编译时,所述编译单元还用于根据编译标志位来判断所述编译是否成功;若成功,则通知所述静态测试单元执行所述软件版本构建系统自动对所述程序包进行静态测试的步骤。
CN201010559274.6A 2010-11-24 2010-11-24 软件版本的构建方法和系统 Active CN102012814B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010559274.6A CN102012814B (zh) 2010-11-24 2010-11-24 软件版本的构建方法和系统
PCT/CN2011/074781 WO2012068850A1 (zh) 2010-11-24 2011-05-27 软件版本的构建方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010559274.6A CN102012814B (zh) 2010-11-24 2010-11-24 软件版本的构建方法和系统

Publications (2)

Publication Number Publication Date
CN102012814A CN102012814A (zh) 2011-04-13
CN102012814B true CN102012814B (zh) 2015-07-22

Family

ID=43842990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010559274.6A Active CN102012814B (zh) 2010-11-24 2010-11-24 软件版本的构建方法和系统

Country Status (2)

Country Link
CN (1) CN102012814B (zh)
WO (1) WO2012068850A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012814B (zh) * 2010-11-24 2015-07-22 中兴通讯股份有限公司 软件版本的构建方法和系统
CN103368762B (zh) * 2012-04-05 2017-03-15 百度在线网络技术(北京)有限公司 大数据对比测试方法、系统及装置
CN102708051B (zh) * 2012-07-12 2016-04-27 加弘科技咨询(上海)有限公司 程序持续集成的方法及系统
CN102968298A (zh) * 2012-10-31 2013-03-13 山东浪潮齐鲁软件产业股份有限公司 一种软件产品构建方法
CN103218277A (zh) * 2013-03-25 2013-07-24 北京百度网讯科技有限公司 服务器环境的自动检测方法与装置
CN104119324B (zh) * 2014-07-23 2016-03-30 齐鲁天和惠世制药有限公司 一种卡格列净的制备方法
CN106326100A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 一种软件自动化测试方法及装置
CN106484606B (zh) * 2015-09-01 2019-07-26 阿里巴巴集团控股有限公司 一种代码提交方法和设备
CN107305524B (zh) * 2016-04-21 2020-09-29 北京京东尚科信息技术有限公司 压力测试方法及系统
CN106293811A (zh) * 2016-07-28 2017-01-04 北京中电普华信息技术有限公司 一种自动打包发布方法及装置
CN108206848A (zh) * 2016-12-19 2018-06-26 深圳中兴网信科技有限公司 构建soa服务版本的方法及装置
CN107274933A (zh) * 2017-06-14 2017-10-20 湖南国科微电子股份有限公司 一种测试固态硬盘的方法及装置
CN107239292A (zh) * 2017-06-28 2017-10-10 郑州云海信息技术有限公司 一种自动化构建软件版本的方法与装置
CN109426602A (zh) * 2017-07-18 2019-03-05 中国移动通信集团公司 一种应用开发过程中使用的检测方法及设备
CN109101269A (zh) * 2018-08-30 2018-12-28 长沙软工信息科技有限公司 一种软件交付方法及装置、电子设备
CN109783383A (zh) * 2019-01-08 2019-05-21 郑州云海信息技术有限公司 一种代码级软件测试方法、装置、终端及存储介质
CN112711426B (zh) * 2019-10-24 2023-12-26 北京车和家信息技术有限公司 嵌入式系统安装包生成方法、装置及服务器
CN113626327A (zh) * 2021-08-11 2021-11-09 芯河半导体科技(无锡)有限公司 一种自动获取固件更新并测试用例发送报告的系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149682A (zh) * 2007-10-31 2008-03-26 金蝶软件(中国)有限公司 一种日构建方法、装置及系统
CN101334753A (zh) * 2007-06-26 2008-12-31 中兴通讯股份有限公司 一种单元测试方法及其装置
CN101473301A (zh) * 2006-06-13 2009-07-01 微软公司 迭代静态和动态软件分析

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260926A1 (en) * 2006-04-13 2007-11-08 International Business Machines Corporation Static and dynamic learning test generation method
CN102012814B (zh) * 2010-11-24 2015-07-22 中兴通讯股份有限公司 软件版本的构建方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101473301A (zh) * 2006-06-13 2009-07-01 微软公司 迭代静态和动态软件分析
CN101334753A (zh) * 2007-06-26 2008-12-31 中兴通讯股份有限公司 一种单元测试方法及其装置
CN101149682A (zh) * 2007-10-31 2008-03-26 金蝶软件(中国)有限公司 一种日构建方法、装置及系统

Also Published As

Publication number Publication date
WO2012068850A1 (zh) 2012-05-31
CN102012814A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN102012814B (zh) 软件版本的构建方法和系统
Karampatsis et al. How often do single-statement bugs occur? the manysstubs4j dataset
CN103577324B (zh) 移动应用中隐私信息泄露的静态检测方法
Louridas Static code analysis
Plate et al. Impact assessment for vulnerabilities in open-source software libraries
US8499280B2 (en) Identifying source code elements for refactoring
CN108073400A (zh) 软件自动化构建方法、服务器及存储介质
Xu et al. Go with the flow: Profiling copies to find runtime bloat
Hassan et al. Automatic building of java projects in software repositories: A study on feasibility and challenges
CN109542769A (zh) 一种持续集成的自动化测试方法
CN106126417A (zh) 交互式应用程序安全测试方法及其系统
Hassan et al. Rudsea: recommending updates of dockerfiles via software environment analysis
EP2115592A2 (en) Integrating program construction
CN102567164A (zh) 用于处理器的指令集批量测试装置与方法
Chen et al. Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems
US11327720B2 (en) Automated generation of software bindings
CN106681783A (zh) 一种svn代码检测方法及其系统
CN103823665B (zh) 一种sdk活跃度分析方法、网络服务器及系统
Hassan et al. As code testing: Characterizing test quality in open source ansible development
Arteca et al. Nessie: Automatically testing javascript apis with asynchronous callbacks
CN108519951A (zh) 一种三节点bios持续集成平台及方法
Risberg Alaküla et al. Property Probes: Source Code Based Exploration of Program Analysis Results
Riganelli et al. From source code to test cases: A comprehensive benchmark for resource leak detection in Android apps
Kim Mobile applications software testing methodology
CN114116471A (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
C14 Grant of patent or utility model
GR01 Patent grant