CN108763095A - 一种代码测试方法和装置 - Google Patents
一种代码测试方法和装置 Download PDFInfo
- Publication number
- CN108763095A CN108763095A CN201810570736.0A CN201810570736A CN108763095A CN 108763095 A CN108763095 A CN 108763095A CN 201810570736 A CN201810570736 A CN 201810570736A CN 108763095 A CN108763095 A CN 108763095A
- Authority
- CN
- China
- Prior art keywords
- code
- source file
- document
- test
- unit testing
- 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
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种代码测试方法和装置。涉及软件开发技术领域,解决了代码测试过程中代码文档生成及单元测试执行工作繁琐的问题。该方法包括:提取代码源文件;读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。本发明提供的技术方案适用于软件开始与测试过程,实现了高效高质的测试管理。
Description
技术领域
本发明涉及软件开发技术,尤指一种代码测试方法和装置。
背景技术
代码文档包括:每个方法或接口的作用,输入、输出参数的说明等等。在系统开发的过程中,代码文档是非常重要的。完善、详尽的代码文档可以方便上下游模块开发人员的交流,也可以为测试人员提供详尽的测试说明,减少不必要的讨论,提升工作效率。然而,在文档维护过程中往往会遇到很多问题:开发人员往往没有足够的时间维护文档,也不喜欢写文档。在开发过程中改动了接口,对应的文档更新往往会有滞后。
单元测试是针对程序的最小单元来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。一个单元指的是应用程序中可测试的最小的一组源代码。一组源代码可测试,一般要求其有明确的输入和输出。因此一般来讲,源代码中包含明确的输入和输出的每一个方法被认为是一个可测试的单元。单元测试是代码开发环节必不可少的一环,对于Bug定位和代码质量而言是非常重要的。然而,在实际软件开发过程中单元测试往往没有被足够重视:开发人员往往没有足够的时间编写单元测试。在开发过程中改动了接口,对应的单元测试更新往往会有滞后。
可以看出代码文档与单元测试有类似的功能:1、代码文档说明每个方法的输入、输出,单元测试检验每个方法的输入输出。2、代码文档与单元测试都是非常重要但是又耗费时间的工作。
发明内容
为了解决上述技术问题,本发明提供了一种代码测试方法和装置,自动生成代码文档及完成单元测试,实现了高效高质的测试管理,解决了代码测试过程中代码文档生成及单元测试执行工作繁琐的问题。
为了达到本发明目的,本发明提供了一种代码测试方法,包括:
提取代码源文件;
读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。
优选的,所述提取代码源文件的步骤包括:
从最新的代码库中读取代码结构和必要注释,记录生成所述代码源文件,所述代码源文件的注释信息至少包括方法名称及输入输出参数说明。
优选的,所述提取代码源文件的步骤之前,还包括:
检查提交至所述代码库的代码的格式,在所述代码的格式不合格时,发出提示信息。
优选的,所述读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成的步骤包括:
根据所述代码源文件中的注释信息及预先配置的所述代码文档的格式信息,生成所述代码文档。
优选的,所述读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成的步骤还包括:
根据所述代码源文件生成单元测试,使用所述单元测试对代码进行测试。
优选的,该方法还包括:
在所述代码通过单元测试的情况下,发布所述代码文档;
在所述代码未通过测试时,发出提示信息。
本发明还提供了一种代码测试装置,包括:
源文件读取模块,用于提取代码源文件;
测试模块,用于读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。
优选的,所述源文件读取模块,具体用于从最新的代码库中读取代码结构和必要注释,记录生成所述代码源文件,所述代码源文件的注释信息至少包括方法名称及输入输出参数说明。
优选的,所述测试模块包括:
代码文档生成单元,用于根据所述代码源文件中的注释信息及预先配置的所述代码文档的格式信息,生成所述代码文档;
单元测试单元,用于根据所述代码源文件生成单元测试,使用所述单元测试对代码进行测试。
优选的,所述测试模块还包括:
文档发布单元,用于在所述代码通过单元测试的情况下发布所述代码文档,在所述代码未通过测试时发出提示信息。
本发明提供了一种代码测试方法和装置,提取代码源文件读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成,实现了自动化的代码文档生成及单元测试执行,解决了代码测试过程中代码文档生成及单元测试执行工作繁琐的问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明的一实施例提供的一种代码测试方法的流程示意图;
图2为本发明的一实施例提供的一种代码测试装置的结构示意图;
图3为本发明的一实施例提供的又一种代码测试装置的结构示意图;
图4为图3中测试模块302的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
现有代码测试流程中,代码文档与单元测试都是非常重要但是又耗费时间的工作。
基于上述问题,本发明的实施例提出提供一种代码文档与单元测试集成管理方法和装置。下面结合附图,对本发明的实施例进行详细说明。
本发明的一实施例提供了一种代码测试方法,通过使用编写代码注释的方式编写代码文档和单元测试,让开发人员通过编写代码注释,一次性完成代码文档和单元测试,既能提升代码质量又能提升开发人员工作效率。具体流程如图1所示,包括:
步骤101、检查提交至所述代码库的代码的格式。
本步骤中,开发人员在编码过程中有时会忘记写文档注释,或者修改了代码却没有修改注释。为了避免文档与代码不同步的情况,在代码提交至代码库后会对代码进行一次文档格式的检查,检查是否有漏写的情况,以及文档注释与代码中的输入输出参数是否对应。
优选的,在所述代码的格式不合格时,可发出提示信息,提醒开发人员检查修改代码。
步骤102、提取代码源文件。
本步骤中,从最新的代码库中读取代码结构和必要注释,记录生成所述代码源文件,所述代码源文件的注释信息至少包括方法名称及输入输出参数说明。
步骤103、读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。
本步骤中,一方面,根据所述代码源文件中的注释信息及预先配置的所述代码文档的格式信息,生成所述代码文档。代码文档的格式信息包括对代码文档的样式、网络等等的定义。
另一方面,根据所述代码源文件生成单元测试,使用所述单元测试对代码进行测试。
步骤104、在所述代码通过单元测试的情况下,发布所述代码文档。
本步骤中,在代码通过单元测试后,将生成的代码文档发布到文档服务器上,以网页和pdf链接的方式呈现,方便查阅。
步骤105、在所述代码未通过测试的情况下,发出提示信息。
本发明实施例提供了一种代码测试方法,提取代码源文件读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成,实现了自动化的代码文档生成及单元测试执行,解决了代码测试过程中代码文档生成及单元测试执行工作繁琐的问题。
通过使用编写代码文档的方式编写单元测试,让开发人员通过编写代码注释,一次性完成代码文档和单元测试,既能提升代码质量又能提升开发人员工作效率。
该系统读取代码内容及注释,生成单元测试与代码文档,运行单元测试检测代码,通过测试后将代码文档发布到文档服务器上。开发人员在代码编写或修改的过程中同时以编写代码注释的方法编写文档和单元测试,不用再另外打开一个专门的编辑工具去编写文档或新建一个文件编写单元测试。既提高了代码的可读性和代码质量,又节约了工作时间,还可以保证文档与单元测试时刻保持最新,不需要花费更多的人力维护。
本发明的一实施例还提供了一种代码测试系统,其结构如图2所示。具体包括以下五个模块:
代码注释检查模块,代码注释读取模块,文档生成模块、单元测试模块、文档发布模块。
代码注释检查模块:开发人员在编码过程中有时会忘记写文档注释,或者修改了代码却没有修改注释。为了避免文档与代码不同步的情况,在代码提交后会进行一次文档格式的检查,检查是否有漏写的情况,以及文档注释与代码中的输入输出参数是否对应。
代码注释读取模块:代码注释读取模块从最新的代码库中读取代码结构和必要的注释,并记录到源文件。
文档生成模块:根据代码读取模块输出的源文件和配置文件,生成代码文档。其中配置文件用户可以编辑,它定义文档的样式、风格等等。
单元测试模块:根据代码读取模块输出的源文件,生成单元测试。并用生成的单元测试对代码进行检测。
文档发布模块:负责文档的发布,将生成的文档发布到文档服务器上,以网页和pdf链接的方式呈现,方便查阅。
利用上述系统,本发明实施例还提供了一种代码测试方法,具体流程如下:
1、开发人员提交代码:开发人员修改代码和注释后,对本次修改进行提交。
2、代码注释检查模块检查代码:开发人员在编码过程中有时会忘记写文档注释,或者修改了代码却没有修改注释。为了避免文档与代码不同步的情况,在代码提交后会进行一次文档格式的检查,检查是否有漏写的情况,以及文档注释与代码中的参数是否对应。
3、代码注释读取模块读取代码:代码注释读取模块从最新的代码库中读取代码结构和必要的注释,并记录到源文件,源文件的内容主要是方法名称以及注释中的输入输出参数说明。
4、文档生成模块生成文档:根据代码读取模块输出的源文件和配置文件定义的样式、风格,生成代码文档。
5、单元测试模块:根据代码读取模块输出的源文件,生成单元测试。并用生成的单元测试对代码进行检测。如果代码通过检测则进入下一步文档发布,如果代码没有通过检测则打回让开发人员修改。
6、文档发布模块进行发布:负责文档的发布,将生成的文档发布到文档服务器上,以网页和pdf链接的方式呈现,方便查阅。
本发明实施例针对现有问题,提出一种代码测试方法和装置,通过使用编写代码文档的方式编写单元测试,让开发人员通过编写代码注释,一次性完成代码文档和单元测试,既能提升代码质量又能提升开发人员工作效率,节约开发人员工作时间,提升文档质量。
本发明的一实施例还提供了一种代码测试装置,其结构如图3所示,包括:
源文件读取模块301,用于提取代码源文件;
测试模块302,用于读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。
优选的,所述源文件读取模块301,具体用于从最新的代码库中读取代码结构和必要注释,记录生成所述代码源文件,所述代码源文件的注释信息至少包括方法名称及输入输出参数说明。
优选的,所述测试模块302的结构如图4所示,包括:
代码文档生成单元3021,用于根据所述代码源文件中的注释信息及预先配置的所述代码文档的格式信息,生成所述代码文档;
单元测试单元3022,用于根据所述代码源文件生成单元测试,使用所述单元测试对代码进行测试。
优选的,所述测试模块302还包括:
文档发布单元3023,用于在所述代码通过单元测试的情况下发布所述代码文档,在所述代码未通过测试时发出提示信息。
本发明实施例提供的一种代码测试装置,能够与本发明的实施例提供的一种代码测试方法相结合,提取代码源文件读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成,实现了自动化的代码文档生成及单元测试执行,解决了代码测试过程中代码文档生成及单元测试执行工作繁琐的问题。
通过使用编写代码文档的方式编写单元测试,让开发人员通过编写代码注释,一次性完成代码文档和单元测试,既能提升代码质量又能提升开发人员工作效率。
该系统读取代码内容及注释,生成单元测试与代码文档,运行单元测试检测代码,通过测试后将代码文档发布到文档服务器上。开发人员在代码编写或修改的过程中同时以编写代码注释的方法编写文档和单元测试,不用再另外打开一个专门的编辑工具去编写文档或新建一个文件编写单元测试。既提高了代码的可读性和代码质量,又节约了工作时间,还可以保证文档与单元测试时刻保持最新,不需要花费更多的人力维护。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种代码测试方法,其特征在于,包括:
提取代码源文件;
读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。
2.根据权利要求1所述的代码测试方法,其特征在于,所述提取代码源文件的步骤包括:
从最新的代码库中读取代码结构和必要注释,记录生成所述代码源文件,所述代码源文件的注释信息至少包括方法名称及输入输出参数说明。
3.根据权利要求2所述的代码测试方法,其特征在于,所述提取代码源文件的步骤之前,还包括:
检查提交至所述代码库的代码的格式,在所述代码的格式不合格时,发出提示信息。
4.根据权利要求2所述的代码测试方法,其特征在于,所述读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成的步骤包括:
根据所述代码源文件中的注释信息及预先配置的所述代码文档的格式信息,生成所述代码文档。
5.根据权利要求2所述的代码测试方法,其特征在于,所述读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成的步骤还包括:
根据所述代码源文件生成单元测试,使用所述单元测试对代码进行测试。
6.根据权利要求5所述的代码测试方法,其特征在于,该方法还包括:
在所述代码通过单元测试的情况下,发布所述代码文档;
在所述代码未通过测试时,发出提示信息。
7.一种代码测试装置,其特征在于,包括:
源文件读取模块,用于提取代码源文件;
测试模块,用于读取所述代码源文件中的注释信息,根据所述注释信息完成单元测试与代码文档的生成。
8.根据权利要求7所述的代码测试装置,其特征在于,
所述源文件读取模块,具体用于从最新的代码库中读取代码结构和必要注释,记录生成所述代码源文件,所述代码源文件的注释信息至少包括方法名称及输入输出参数说明。
9.根据权利要求8所述的代码测试装置,其特征在于,所述测试模块包括:
代码文档生成单元,用于根据所述代码源文件中的注释信息及预先配置的所述代码文档的格式信息,生成所述代码文档;
单元测试单元,用于根据所述代码源文件生成单元测试,使用所述单元测试对代码进行测试。
10.根据权利要求9所述的代码测试装置,其特征在于,所述测试模块还包括:
文档发布单元,用于在所述代码通过单元测试的情况下发布所述代码文档,在所述代码未通过测试时发出提示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810570736.0A CN108763095A (zh) | 2018-06-05 | 2018-06-05 | 一种代码测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810570736.0A CN108763095A (zh) | 2018-06-05 | 2018-06-05 | 一种代码测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763095A true CN108763095A (zh) | 2018-11-06 |
Family
ID=64000184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810570736.0A Pending CN108763095A (zh) | 2018-06-05 | 2018-06-05 | 一种代码测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763095A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307404A (zh) * | 2020-11-12 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 基于源文件的文档网站的设置方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151448A1 (en) * | 2009-10-08 | 2012-06-14 | International Business Machines Corporation | Automated test execution plan generation |
CN105677317A (zh) * | 2015-12-25 | 2016-06-15 | 北京奇虎科技有限公司 | 一种生成代码文档的方法和装置 |
CN107256160A (zh) * | 2017-06-12 | 2017-10-17 | 郑州云海信息技术有限公司 | 一种持续集成中的代码文档生成方法、装置及系统 |
-
2018
- 2018-06-05 CN CN201810570736.0A patent/CN108763095A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151448A1 (en) * | 2009-10-08 | 2012-06-14 | International Business Machines Corporation | Automated test execution plan generation |
CN105677317A (zh) * | 2015-12-25 | 2016-06-15 | 北京奇虎科技有限公司 | 一种生成代码文档的方法和装置 |
CN107256160A (zh) * | 2017-06-12 | 2017-10-17 | 郑州云海信息技术有限公司 | 一种持续集成中的代码文档生成方法、装置及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307404A (zh) * | 2020-11-12 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 基于源文件的文档网站的设置方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885499A (zh) | 一种接口文档生成方法及终端设备 | |
CN111352651A (zh) | 代码分支管理方法及装置 | |
CN104090776A (zh) | 一种软件开发方法及系统 | |
CN111290956B (zh) | 基于脑图的测试方法、装置、电子设备及存储介质 | |
CN111813661B (zh) | 一种全局业务数据驱动自动测试方法、装置、设备和介质 | |
CN112732641A (zh) | 一种电子档案的归档方法及装置、介质 | |
US20130055205A1 (en) | Filtering source code analysis results | |
US10380234B2 (en) | Launching workflow processes based on annotations in a document | |
CN108319711A (zh) | 数据库的事务一致性测试方法、装置、存储介质及设备 | |
CN109426604A (zh) | 代码开发的监控方法及设备 | |
WO2020259516A1 (zh) | 一种单元测试系统及测试方法 | |
CN110134596A (zh) | 测试文档的生成方法及终端设备 | |
CN112561370A (zh) | 软件发版的管理方法、装置、计算机设备及存储介质 | |
US20050268281A1 (en) | Portable annotated merge model and methods of using the same | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN105630661A (zh) | 用于自动化跨系统程序调试的方法和装置 | |
US20120054560A1 (en) | Verifying correctness of processor transactions | |
Jiang et al. | What are the characteristics of reopened pull requests? a case study on open source projects in github | |
CN108763095A (zh) | 一种代码测试方法和装置 | |
CN108984757A (zh) | 一种数据导入方法及设备 | |
Brandt et al. | LogChunks: A data set for build log analysis | |
US20230053698A1 (en) | Method and system for managing life cycle iteration of test case, and medium | |
CN112819621B (zh) | 一种智能合约资损测试方法及系统 | |
CN116594887A (zh) | 一种基于cfd软件的自动化测试方法及系统 | |
JP6058498B2 (ja) | コンパイル方法、プログラム及びコンパイル装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |
|
RJ01 | Rejection of invention patent application after publication |