CN108920152B - 一种在bugzilla中增加自定义属性的方法 - Google Patents
一种在bugzilla中增加自定义属性的方法 Download PDFInfo
- Publication number
- CN108920152B CN108920152B CN201810516508.5A CN201810516508A CN108920152B CN 108920152 B CN108920152 B CN 108920152B CN 201810516508 A CN201810516508 A CN 201810516508A CN 108920152 B CN108920152 B CN 108920152B
- Authority
- CN
- China
- Prior art keywords
- new
- database
- bugzilla
- variable
- param
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012986 modification Methods 0.000 abstract description 9
- 230000004048 modification Effects 0.000 abstract description 9
- 238000012423 maintenance Methods 0.000 abstract description 8
- 238000013461 design Methods 0.000 abstract description 2
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种在bugzilla中增加自定义属性的方法,所述的方法为:新建一个数据库用于新增和编辑变量new_param,并将变量new_param添加到bugzilla默认的数据库表中。本发明提出了修改源代码的简化思路和方法,可以在不改变和不影响原有代码和设计的基础上,可以在bugzilla增加新变量并采用新数据库表作为引入的据点,为后续的维护的修改提供了接口,大大提高了代码修改和维护的后期成本。
Description
技术领域
本发明涉及软件开发管理领域,具体的说是一种在bugzilla中增加自定义属性的方法。
背景技术
现有技术中,将开源的Bugzilla代码应用到自己的产品或者bug 管理中时,在增加需要填写的新变量时,只能选择Bugzilla代码中 Custom Fields里面已经设计好的变量类型和输入方式,包括 Date/Time、Integer、Bug ID、Multiple-Selection Box、Date、Large Text Box、Free Text、Drop Down这九种类型,即已经锁定了相应的输入方式。
Bugzilla中固定不变的变量类型和输入方式给一些特殊变量(比如说需要在页面进行即时计算等)的引入带来了难度。用户无法对于新变量进行自定义,无法为后续的维护修改提供接口,大大提高了代码修改和维护的后期成本。
发明内容
为了解决上述问题,本发明提供了一种在bugzilla中增加自定义属性的方法,避开修改大量原有优质代码,采用一个新的数据库表作为后台数据增加和传递的仓库。
本发明的技术任务是按以下方式实现的:本发明提供一种在bugzilla中增加自定义属性的方法,所述的方法为:新建一个数据库用于新增和编辑变量new_param,并将变量new_param添加到bugzilla默认的数据库表中。
进一步的,所述的方法包括以下步骤:
S1,添加一个新的数据库field_new,向新生成的数据库中加入变量new_param;
S2,在bugzilla默认的数据库表中加入变量new_param;
S3,在前端代码中自定义变量new_param的输入方式、显示方式和计算方式,并将变量传输至后台perl代码中;
S4,后台代码中接收到的new_param的值,更新数据库内容;
S5,使用update语句,将更新后的数据库内容导入bugzilla数据库中。
进一步的,步骤S1中,新添加的数据库表field_new主键名称与bugzilla数据库默认表中主键名称完全一致。
进一步的,步骤S2中,在bugzilla默认的数据库表中加入一列,所述列用于加入变量new_param。
进一步的,步骤S2中加入的new_param变量类型与数据库field_new中变量类型相同且变量属性允许空值。
进一步的,步骤S4中的具体实现过程如下:bugzilla的默认数据库内填写默认的其他数据,而新引入的变量new_param还为空,使用SQL中的update更新语句,将数据库field_new中的更新后的内容添加到bugzilla数据库新加入的一列中,便于进行新变量的增加及自定义。
进一步的,更新数据库内容时,在后台代码中,将接收到的new_param的值连同当前的bug_id一起写入到自定义的数据库field_new中,即在数据库field_new中增加了新变量。
进一步的,若自定义的数据库field_new中已经存在新的new_param值,则增加判断语句,改为更新bugzilla数据库内容。
本发明的有益效果是:
1、本发明避开修改大量原有优质代码,采用一个新的数据库表作为后台数据增加和传递的仓库,从而简化了代码修改和维护的难度,节省了编程人员开发和代码维护的时间和精力。
2、本发明提出了修改源代码的简化思路和方法,可以在不改变和不影响原有代码和设计的基础上,可以在bugzilla增加新变量。
3、本发明中新的数据都可以采用新数据库表作为引入的据点,为后续的维护的修改提供了接口,大大提高了代码修改和维护的后期成本。
附图说明
图1是本发明方法步骤图。
具体实施方式
以下结合附图详细说明本发明的具体实施方式,下文的公开提供了具体实施方式用来实现本发明的装置及方法,使本领域的技术人员更清楚地理解如何实现本发明。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。应当理解,尽管本发明描述了其优选的具体实施方案,然而这些只是对实施方案的阐述,而不是限制本发明的范围。
Bugzilla是一个开源的缺陷跟踪***(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭 (close)等整个生命周期。
我们知道,将开源的Bugzilla代码应用到自己的产品或者bug 管理中时,是可以利用bugzilla强大的现有功能自定义设置很多不同的变量和属性的。但是,增加的新变量的类型,只能选择Bugzilla代码中Custom Fields里面已经设计好的变量类型和输入方式。
修改前端代码以实现在Web端可以看的新变量是较容易实现的。但是技术难点其实是在错综复杂的perl代码中申明新变量并将他加入原数据库中。这听起来好像并不复杂,但是查看bugzilla的源代码,会发现一个变量(如bug_severity)在代码中出现的次数多达 86次,并分布在26个不同的代码文件中。相互之间的调用关系错综复杂。
其实关键的难点就在于bugzilla数据库在新建立的时候就已经确定了表内的每个变量,而在代码中存在多个判断函数,如 post_bug.cgi中的field、Object.pm中的sub_check_field和DB.pm 中的bz_column_info,这几个之间涉及到的变量和定义要一致,才能够实现变量的引入。而依次修改以上代码中的部分,又涉及到更多的文件代码,这无疑是时间成本过高的工作。于是如何简化这个引入的过程才是问题解决的关键。
如图1所示,本发明提出了一种在bugzilla中增加自定义属性的方法。所述的方法包括以下步骤:
S1,添加一个新的数据库field_new,向新生成的数据库中加入变量new_param。具体的可以选用MySQL Workbench建立数据库,建立新的表,为表添加数据。
S2,在bugzilla默认的数据库表中加入一列,所述列用于加入变量new_param。例如在bugzilla默认的数据库表bug中加入一列,即需要加入的变量new_param,注意变量类型要与表field_new中相同,且变量属性中一定要选择允许空值。
S3,在前端代码中自定义变量new_param的输入方式、显示方式和计算方式,并将变量传输至后台perl代码中。Perl提供脚本语言 (如sed和awk)的所有功能,它还支持sed到Perl及awd到Perl 的翻译器。与脚本语言一样,Perl不需要编译器和链接器来运行代码。
S4,后台代码中接收到的new_param的值,更新数据库内容。其中在后台代码中,将接收到的new_param的值连同当前的bug_id一起写入到自定义的数据库field_new中,即在数据库field_new中增加了新变量。若自定义的数据库field_new中已经存在新的new_param值,则增加判断语句,改为更新bugzilla数据库内容。
S5,使用update语句,将更新后的数据库内容导入bugzilla数据库中。bugzilla的默认数据库内已经填写了默认的其他数据,而新引入的变量new_param还为空;使用update语句,将数据库表field_new中的内容更新到表bug中,即实现了新变量的增加。
在代码的修改过程中发现,简化代码修改难度和数量进程中的多次判断和验证,都是为了解决一个问题,那就是防止数据库信息的更新和读取过程出错。可以使用SQL中的update更新语句,使用另一个表对数据库中原有的表的内容进行更新,而不影响原有数据。即本发明可以根据产品的需要自定义变量的类型、输入方式、显示方式等多种属性。
此外,本发明的应用范围不局限于说明书中描述的特定实施例的工艺、机构、制造、物质组成、手段、方法及步骤。从本发明的公开内容,作为本领域的普通技术人员将容易地理解,对于目前已存在或者以后即将开发出的工艺、机构、制造、物质组成、手段、方法或步骤,其中它们执行与本发明描述的对应实施方式大体相同的功能或者获得大体相同的结果,依照本发明可以对它们进行应用。因此,本发明所附权利要求旨在将这些工艺、机构、制造、物质组成、手段、方法或步骤包含在其保护范围内。
Claims (7)
1.一种在bugzilla中增加自定义属性的方法,其特征是,所述的方法包括以下步骤:
S1,添加一个新的数据库field_new,向新生成的数据库中加入变量new_param;
S2,在bugzilla默认的数据库表中加入一列,所述列用于加入变量new_param;
S3,在前端代码中自定义变量new_param的输入方式、显示方式和计算方式,并将变量传输至后台perl代码中;
S4,后台代码中接收new_param的值,更新数据库内容;
S5,使用update语句,将更新后的数据库内容导入bugzilla数据库中。
2.根据权利要求1所述的在bugzilla中增加自定义属性的方法,其特征是,步骤S1中,新添加的数据库表field_new主键名称与bugzilla数据库默认表中主键名称的完全一致。
3.根据权利要求1所述的在bugzilla中增加自定义属性的方法,其特征是,步骤S2中,在bugzilla默认的数据库表中加入一列用于增添新的变量new_param。
4.根据权利要求1所述的在bugzilla中增加自定义属性的方法,其特征是,步骤S2中加入的new_param变量类型与数据库field_new中变量类型相同且变量属性可设置空值。
5.根据权利要求1所述的在bugzilla中增加自定义属性的方法,其特征是,步骤S4中更新数据库内容的具体过程如下:在后台代码中,将接收到的new_param的值连同当前的bug_id一起写入到自定义的数据库field_new中,在数据库field_new中增加了新变量。
6.根据权利要求4所述的在bugzilla中增加自定义属性的方法,其特征是,若自定义的数据库field_new中已经存在新的new_param值,则增加判断语句,改为更新bugzilla数据库内容。
7.根据权利要求1所述的在bugzilla中增加自定义属性的方法,其特征是,步骤S4中的具体实现过程如下:bugzilla的默认数据库内填写默认的其他数据,新引入的变量new_param还为空,使用SQL中的update更新语句,将数据库field_new中的更新后的内容添加到bugzilla数据库新加入的一列中,进行新变量的增加。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810516508.5A CN108920152B (zh) | 2018-05-25 | 2018-05-25 | 一种在bugzilla中增加自定义属性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810516508.5A CN108920152B (zh) | 2018-05-25 | 2018-05-25 | 一种在bugzilla中增加自定义属性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920152A CN108920152A (zh) | 2018-11-30 |
CN108920152B true CN108920152B (zh) | 2021-07-23 |
Family
ID=64410615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810516508.5A Active CN108920152B (zh) | 2018-05-25 | 2018-05-25 | 一种在bugzilla中增加自定义属性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920152B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8205191B1 (en) * | 2006-06-02 | 2012-06-19 | Parasoft Corporation | System and method for change-based testing |
CN102760152A (zh) * | 2012-04-05 | 2012-10-31 | 中国人民解放军国防科学技术大学 | 一种自动化的开源软件质量证据提取方法 |
CN104899225A (zh) * | 2014-03-07 | 2015-09-09 | 北京四达时代软件技术股份有限公司 | 对象关系映射方法、装置及处理器 |
CN106537332A (zh) * | 2014-06-13 | 2017-03-22 | 查尔斯斯塔克德拉珀实验室公司 | 软件分析***和方法 |
-
2018
- 2018-05-25 CN CN201810516508.5A patent/CN108920152B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8205191B1 (en) * | 2006-06-02 | 2012-06-19 | Parasoft Corporation | System and method for change-based testing |
CN102760152A (zh) * | 2012-04-05 | 2012-10-31 | 中国人民解放军国防科学技术大学 | 一种自动化的开源软件质量证据提取方法 |
CN104899225A (zh) * | 2014-03-07 | 2015-09-09 | 北京四达时代软件技术股份有限公司 | 对象关系映射方法、装置及处理器 |
CN106537332A (zh) * | 2014-06-13 | 2017-03-22 | 查尔斯斯塔克德拉珀实验室公司 | 软件分析***和方法 |
Non-Patent Citations (2)
Title |
---|
Bugzilla, ITracker, and other bug trackers;N.Serrano等;《IEEE Software》;20050321;第22卷(第2期);第11-13页 * |
自动化软件质量保证在CADS中的实现;尤永康;《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》;20051115(第07期);第I138-231页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108920152A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105487864B (zh) | 代码自动生成的方法和装置 | |
CN104461484B (zh) | 前端模板的实现方法和装置 | |
EP2530583A1 (en) | Computer-implemented method, system and computer program product for displaying a user interface component | |
US20140289700A1 (en) | Methods and Systems for Visual Code Refactoring | |
CN107273122A (zh) | 基于解耦机制的可迭代组建业务***的方法及其终端 | |
CN105068813A (zh) | 一种提供安卓包apk修改服务的方法和装置 | |
CN105389184A (zh) | 产品界面信息的配置方法及装置 | |
CN105095497A (zh) | 基于网页模板生成网页的方法及装置 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN105843638A (zh) | 一种Spring旧版本框架的升级改造方法 | |
CN104331288B (zh) | 一种配置化展现动态页面的方法及*** | |
CN112130830A (zh) | 接口生成方法、装置及电子设备 | |
US11029934B2 (en) | Method and system for updating legacy software | |
CN114386853A (zh) | 基于通用审核模型的数据审核处理方法、装置及设备 | |
CN106528115A (zh) | 界面的可视化开发方法及装置 | |
CN108920152B (zh) | 一种在bugzilla中增加自定义属性的方法 | |
US20210294987A1 (en) | Model localization for data analytics and business intelligence | |
US11922142B1 (en) | Bi-directional design-to-code | |
CN111427568A (zh) | 接口配置方法及装置 | |
CN108255503A (zh) | 测量仪器的固件升级方法及装置 | |
CN115686515A (zh) | 参数可视化配置界面生成方法、装置、介质和电子设备 | |
CN107665124A (zh) | 模块化JavaScript文件处理方法、设备和服务器 | |
CN114356379A (zh) | 基于备份的服务升级方法、装置、设备及存储介质 | |
CN111858595B (zh) | 一种电力工程验评记录表动态配置方法与*** | |
CN114518881A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |