CN103631705A - 一种针对搜索引擎的回归测试方法和装置 - Google Patents
一种针对搜索引擎的回归测试方法和装置 Download PDFInfo
- Publication number
- CN103631705A CN103631705A CN201210306702.3A CN201210306702A CN103631705A CN 103631705 A CN103631705 A CN 103631705A CN 201210306702 A CN201210306702 A CN 201210306702A CN 103631705 A CN103631705 A CN 103631705A
- Authority
- CN
- China
- Prior art keywords
- code
- measurability
- strategy
- version
- module
- 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.)
- Granted
Links
Images
Abstract
本发明提供了一种针对搜索引擎的回归测试方法和装置,其中,方法包括:在被测模块中针对需升级的策略,分别向该模块升级前版本中的该些策略和该模块升级后版本中的该些策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果;在测试过程中,运行所述被测模块的升级前版本和升级后版本,并对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化(diff)分析。本发明能够在对搜索引擎的数据模块进行回归测试时有效降低diff分析的难度,提高整体的测试效率。
Description
【技术领域】
本发明涉及系统测试技术,特别涉及一种针对搜索引擎的回归测试方法和装置。
【背景技术】
在对搜索引擎的数据分析模块进行升级后,需要对升级后的模块进行回归测试,以确认升级的效果并保证升级没有引入新的错误。现有的方法通常是按模块级来进行diff(差异化)分析,即将测试得到的升级后的模块的整体输出结果与原有的升级前的模块的整体输出结果进行diff分析,通过diff分析来判断测试结果。
然而搜索引擎的数据分析模块内容复杂,内部代码量极大,输出内容繁多,对模块的整体输出结果进行diff分析难度较大。而对数据分析模块的升级往往只是对模块内部的若干个策略进行升级,在这种情况下用现有的模块级diff分析法效率低下,制约了整体的测试效率。
【发明内容】
有鉴于此,本发明提供了一种针对搜索引擎的回归测试方法和装置,本发明能够在对搜索引擎的数据模块进行回归测试时有效降低diff分析的难度,提高整体的测试效率。
具体技术方案如下:
一种针对搜索引擎的回归测试方法,其特征在于,在被测模块中针对需升级的策略,分别向该模块升级前版本中的所述策略和该模块升级后版本中的所述策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果;
在测试过程中,运行所述被测模块的升级前版本和升级后版本,并对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化diff分析。
根据本发明一优选实施例,所述植入可测性代码,具体包括:
将可测性代码作为一个文件添加到所述需升级的策略代码文件所在目录下。
根据本发明一优选实施例,所述可测性代码可获得其所在策略的计算结果具体为:
所述可测性代码运行时,根据其所在策略的策略名到对应的公共存储区中获取其所在策略的计算结果。
根据本发明一优选实施例,该方法还包括:
通过编译宏的方式控制在线下测试时可测性代码被编译,在线上运行时可测性代码不被编译。
根据本发明一优选实施例,所述可测性代码按预先设定的格式在将其所在策略的计算结果输出,其中所述计算结果以策略名为索引。
一种针对搜索引擎的回归测试装置,该装置包括:
植入单元,用于在被测模块中针对需升级的策略,分别向该模块升级前版本中的所述策略和该模块升级后版本中的所述策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果;
运行单元,用于在测试过程中,运行所述被测模块的升级前版本和升级后版本,得到升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果;
比对单元,用于对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化diff分析。
根据本发明一优选实施例,所述植入单元在植入可测性代码时,具体执行:
将可测性代码作为一个文件添加到所述需升级的策略代码文件所在目录下。
根据本发明一优选实施例,所述可测性代码可获得其所在策略的计算结果具体为:
所述可测性代码运行时,根据其所在策略的策略名到对应的公共存储区中获取其所在策略的计算结果。
根据本发明一优选实施例,运行单元还用于:
通过编译宏的方式控制在线下测试时可测性代码被编译,在线上运行时可测性代码不被编译。
根据本发明一优选实施例,所述可测性代码按预先设定的格式在将其所在策略的计算结果输出,其中所述计算结果以策略名为索引。
由以上技术方案可以看出,本发明通过植入可测性代码直接获得待测模块中升级所涉及策略的计算结果,将现有技术的模块级diff分析降低至策略级,有效的降低了diff分析的难度,提高了整体的测试效率。
【附图说明】
图1为本发明实施例一提供的针对搜索引擎的回归测试方法流程图;
图2为发发明实施例二提供的针对搜索引擎的回归测试装置示意图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
实施例一
图1为本发明实施例一提供的针对搜索引擎的回归测试方法流程图,如图1所示,该方法包括:
步骤S101、在被测模块中针对需升级的策略,分别向该模块升级前版本中的该些策略和该模块升级后版本中的该些策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果。
搜索引擎的数据分析模块在升级时,往往只是对模块中的若干个策略进行升级,而本发明正是利用直接获取这若干个策略的计算结果来进行diff分析,使得diff分析由现有技术的模块级细化至策略级,降低了diff分析的难度。
针对所要测试模块中的每一个需进行升级的策略,分别向该模块升级后版本中的该些策略和该模块升级前版本中的该些策略植入可测性代码,所添加的可测性代码可以获得其所在策略的计算结果,并将该计算结果输出。
在运行数据分析模块时,模块中的每个策略会将自己的计算结果放入该模块的一个公共存储区中,以供别的策略来调用进行进一步的计算,在放入公共存储区中时,策略的计算结果会和策略名所对应。在向策略植入可测性代码后,运行该模块时,被植入的可测性代码会根据其所在策略名在公共存储区中寻找对应的计算结果,并将获得的计算结果输出。
为了便于维护,本发明提供一种优选实施方式来向策略植入可测性代码:
将可测性代码单独作为一个文件添加至策略代码所在目录下,与策略中原有的代码形成文件上的隔离。例如在C++语言环境中,可将可测性代码单独作为一个“.cpp”文件添加至策略代码所在目录下。
为了便于对输出的结果进行diff分析,可以控制可测性代码在输出计算结果时按照预先设定的格式来输出。输出格式可根据需要灵活设定,表1为本发明提供的一种优选实施方式,如表1所示,可将可测性代码所在的策略名作为索引,将计算结果以一定输出信息格式作为内容来形成表格输出。
表1
步骤S102、在测试过程中,运行所述被测模块的升级前版本和升级后版本,并对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化diff分析。
针对所要测试的模块,分别运行植入了可测性代码的该模块升级后的版本和植入了可测性代码的该模块的升级前的版本。
模块的运行可以通过搜索引擎所在系统的程序管理控制平台来实施:将模块的升级后版本和升级前版本发布至程序管理控制平台上,之后从平台上分别获取上述两个版本并放入线下测试环境进行测试。
需要说明的是,所要测试的模块升级前的版本还需用作线上的正常运行,为了避免其中植入的可测性代码影响该模块的线上正常运行,需要保证在线上运行时所植入的可测性代码不会运行。下面为本发明提供的一种优选实施方式来实现这一效果:
编译宏来实现条件编译,使得该模块的升级前版本在线下测试的时候其中植入的可测性代码会被编译,而该模块的升级前版本在线上运行的时候其中植入的可测性代码不被编译。例如,可针对该模块升级前的版本生成两个版本号,“1.0.0”和“1.0.0dump”,其中,版本号“1.0.0”对应线上运行,选择版本号“1.0.0”时,该模块中植入的可测性代码不会被编译;版本号“1.0.0dump”对应线下测试,选择版本号“1.0.0dump”时,该模块中植入的可测性代码会被编译。值得一提的是,若需将模块升级后的版本上线运行,也可以使用上述方式保证模块升级后的版本中的可测性代码不对线上运行造成影响。
运行结束后,对得到的可测性代码输出的该模块升级后的策略的计算结果与该模块升级前的策略的计算结果进行diff分析。
下述为本发明实施二所提供的针对搜索引擎的回归测试装置,用于完成本发明实施例一所提供的方法。
实施例二
图2为本发明实施例二提供针对搜索引擎的回归测试装置图,如图所示,该装置包括:植入单元10、运行单元20、比对单元30。
植入单元10,用于在被测模块中针对需升级的策略,分别向该模块升级前版本中的该些策略和该模块升级后版本中的该些策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果。
针对所要测试模块中的每一个需进行升级的策略,分别向该模块升级后版本中的该些策略和该模块升级前版本中的该些策略植入可测性代码,所添加的可测性代码可以获得其所在策略的计算结果,并将该计算结果输出。
在运行数据分析模块时,模块中的每个策略会将自己的计算结果放入该模块的一个公共存储区中,以供别的策略来调用进行进一步的计算,在放入公共存储区中时,策略的计算结果会和策略名所对应。在向策略植入可测性代码后,运行该模块时,被植入的可测性代码会根据其所在策略名在公共存储区中寻找对应的计算结果,并将获得的计算结果输出。
为了便于维护,本发明提供一种优选实施方式来向策略植入可测性代码:
将可测性代码单独作为一个文件添加至策略代码所在目录下,与策略中原有的代码形成文件上的隔离。例如在C++语言环境中,可将可测性代码单独作为一个“.cpp”文件添加至策略代码所在目录下。
运行结束后,对得到的可测性代码输出的该模块升级后的策略的计算结果与该模块升级前的策略的计算结果进行diff分析。
为了便于对输出的结果进行diff分析,可以控制可测性代码在输出计算结果时按照预先设定的格式来输出。
运行单元20,用于在测试过程中,运行所述被测模块的升级前版本和升级后版本,得到升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果。
针对所要测试的模块,分别运行植入了可测性代码的该模块升级后的版本和植入了可测性代码的该模块的升级前的版本。
模块的运行可以通过搜索引擎所在系统的程序管理控制平台来实施:将模块的升级后版本和升级前版本发布至程序管理控制平台上,之后从平台上分别获取上述两个版本并放入线下测试环境进行测试。
为了避免模块升级前的升级版本在线上运行时其中的可测性代码对线上正常运行造成影响,运行单元20还可以用于通过编译宏来实现条件编译,使得该模块升级前的版本在线下测试的时候其中植入的可测性代码会被编译,而该模块升级前的版本在线上运行的时候其中植入的可测性代码不被编译。
比对单元30,用于对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化diff分析。
由以上描述可以看出,本发明提供的方法和装置可以具备以下优点:
1)本发明通过植入可测性代码直接获得被测模块中升级所涉及策略的计算结果,将现有技术的模块级diff分析降低至策略级,有效的降低了diff分析的难度,提高了测试的整体效率。以搜索引擎的数据分析模块为例,原来模块级的diff分析需分析数千个字段,而本发明策略级的diff分析只需分析数十个字段。
2)通过将计算结果格式化输出,并以对应的策略名作为索引,能够更加方便的得到相关信息,快速定位引发问题的策略位置。
3)被测模块的策略代码可与可测性代码同目录下维护,文件级隔离,互不影响,可维护性良好,方便修改要监控的内容。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种针对搜索引擎的回归测试方法,其特征在于,在被测模块中针对需升级的策略,分别向该模块升级前版本中的所述策略和该模块升级后版本中的所述策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果;
在测试过程中,运行所述被测模块的升级前版本和升级后版本,并对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化diff分析。
2.根据权利要求1所述的方法,其特征在于,所述植入可测性代码,具体包括:
将可测性代码作为一个文件添加到所述需升级的策略代码文件所在目录下。
3.根据权利要求1所述的方法,其特征在于,所述可测性代码可获得其所在策略的计算结果具体为:
所述可测性代码运行时,根据其所在策略的策略名到对应的公共存储区中获取其所在策略的计算结果。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:
通过编译宏的方式控制在线下测试时可测性代码被编译,在线上运行时可测性代码不被编译。
5.根据权利要求1所述的方法,其特征在于,所述可测性代码按预先设定的格式在将其所在策略的计算结果输出,其中所述计算结果以策略名为索引。
6.一种针对搜索引擎的回归测试装置,其特征在于,该装置包括:
植入单元,用于在被测模块中针对需升级的策略,分别向该模块升级前版本中的所述策略和该模块升级后版本中的所述策略植入可测性代码,所述可测性代码可获得并输出其所在策略的计算结果;
运行单元,用于在测试过程中,运行所述被测模块的升级前版本和升级后版本,得到升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果;
比对单元,用于对运行得到的升级前版本中所述可测性代码的输出结果以及升级后版本中所述可测性代码的输出结果进行差异化diff分析。
7.根据权利要求6所述的装置,其特征在于,所述植入单元在植入可测性代码时,具体执行:
将可测性代码作为一个文件添加到所述需升级的策略代码文件所在目录下。
8.根据权利要求6所述的装置,其特征在于,所述可测性代码运行时,根据其所在策略的策略名到对应的公共存储区中获取其所在策略的计算结果。
9.根据权利要求6所述的装置,其特征在于,运行单元还用于:
通过编译宏的方式控制在线下测试时可测性代码被编译,在线上运行时可测性代码不被编译。
10.根据权利要求6所述的装置,其特征在于,所述可测性代码按预先设定的格式在将其所在策略的计算结果输出,其中所述计算结果以策略名为索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210306702.3A CN103631705B (zh) | 2012-08-24 | 2012-08-24 | 一种针对搜索引擎的回归测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210306702.3A CN103631705B (zh) | 2012-08-24 | 2012-08-24 | 一种针对搜索引擎的回归测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631705A true CN103631705A (zh) | 2014-03-12 |
CN103631705B CN103631705B (zh) | 2018-01-05 |
Family
ID=50212790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210306702.3A Active CN103631705B (zh) | 2012-08-24 | 2012-08-24 | 一种针对搜索引擎的回归测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103631705B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809061A (zh) * | 2015-04-09 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | 回归测试方法及装置 |
CN105302731A (zh) * | 2015-12-10 | 2016-02-03 | 北京京东尚科信息技术有限公司 | 网站架构升级测试系统和方法 |
CN107291607A (zh) * | 2016-03-31 | 2017-10-24 | 高德信息技术有限公司 | 一种针对搜索引擎的评测方法及装置 |
CN107870859A (zh) * | 2017-05-05 | 2018-04-03 | 平安科技(深圳)有限公司 | 大批量对比测试方法及系统 |
CN109344047A (zh) * | 2018-08-14 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 系统回归测试方法、计算机可读存储介质和终端设备 |
CN109857431A (zh) * | 2019-01-11 | 2019-06-07 | 平安科技(深圳)有限公司 | 代码修改方法及装置、计算机可读介质及电子设备 |
CN109960647A (zh) * | 2017-12-26 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及装置、计算设备和存储介质 |
CN110362478A (zh) * | 2019-06-19 | 2019-10-22 | 平安科技(深圳)有限公司 | 应用升级测试方法、装置、计算机设备和存储介质 |
CN110413316A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 面向区块链智能合约的非侵入式测试系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107121A1 (en) * | 2004-10-25 | 2006-05-18 | International Business Machines Corporation | Method of speeding up regression testing using prior known failures to filter current new failures when compared to known good results |
US20090187788A1 (en) * | 2008-01-17 | 2009-07-23 | International Business Machines Corporation | Method of automatic regression testing |
CN101719095A (zh) * | 2009-12-30 | 2010-06-02 | 北京世纪高通科技有限公司 | 一种回归测试的管理方法及装置 |
CN102045191A (zh) * | 2009-10-22 | 2011-05-04 | 华为技术有限公司 | 一种系统升级后兼容性测试方法及设备 |
-
2012
- 2012-08-24 CN CN201210306702.3A patent/CN103631705B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107121A1 (en) * | 2004-10-25 | 2006-05-18 | International Business Machines Corporation | Method of speeding up regression testing using prior known failures to filter current new failures when compared to known good results |
US20090187788A1 (en) * | 2008-01-17 | 2009-07-23 | International Business Machines Corporation | Method of automatic regression testing |
CN102045191A (zh) * | 2009-10-22 | 2011-05-04 | 华为技术有限公司 | 一种系统升级后兼容性测试方法及设备 |
CN101719095A (zh) * | 2009-12-30 | 2010-06-02 | 北京世纪高通科技有限公司 | 一种回归测试的管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
孙赢盈: "基于程序关联性分析的软件测试方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
荣政 等: "《C程序设计(第二版)学习指导》", 30 September 2006 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809061B (zh) * | 2015-04-09 | 2018-08-10 | 百度在线网络技术(北京)有限公司 | 回归测试方法及装置 |
CN104809061A (zh) * | 2015-04-09 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | 回归测试方法及装置 |
CN105302731A (zh) * | 2015-12-10 | 2016-02-03 | 北京京东尚科信息技术有限公司 | 网站架构升级测试系统和方法 |
CN107291607A (zh) * | 2016-03-31 | 2017-10-24 | 高德信息技术有限公司 | 一种针对搜索引擎的评测方法及装置 |
CN107870859A (zh) * | 2017-05-05 | 2018-04-03 | 平安科技(深圳)有限公司 | 大批量对比测试方法及系统 |
CN109960647A (zh) * | 2017-12-26 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及装置、计算设备和存储介质 |
CN109344047B (zh) * | 2018-08-14 | 2024-02-09 | 中国平安人寿保险股份有限公司 | 系统回归测试方法、计算机可读存储介质和终端设备 |
CN109344047A (zh) * | 2018-08-14 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 系统回归测试方法、计算机可读存储介质和终端设备 |
CN109857431A (zh) * | 2019-01-11 | 2019-06-07 | 平安科技(深圳)有限公司 | 代码修改方法及装置、计算机可读介质及电子设备 |
WO2020143313A1 (zh) * | 2019-01-11 | 2020-07-16 | 平安科技(深圳)有限公司 | 代码修改方法及装置、计算机可读介质及电子设备 |
CN109857431B (zh) * | 2019-01-11 | 2022-06-03 | 平安科技(深圳)有限公司 | 代码修改方法及装置、计算机可读介质及电子设备 |
CN110362478A (zh) * | 2019-06-19 | 2019-10-22 | 平安科技(深圳)有限公司 | 应用升级测试方法、装置、计算机设备和存储介质 |
CN110413316A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 面向区块链智能合约的非侵入式测试系统及方法 |
CN110413316B (zh) * | 2019-07-31 | 2023-12-05 | 中国工商银行股份有限公司 | 面向区块链智能合约的非侵入式测试系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103631705B (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631705A (zh) | 一种针对搜索引擎的回归测试方法和装置 | |
CN103823747B (zh) | 自动回归测试的方法 | |
CN103793326B (zh) | 组件测试方法及装置 | |
CN104077140A (zh) | 用于持续集成的自动化编译方法和编译装置 | |
CN106201882A (zh) | 基于Jenkins的操作系统自动化测试方法及系统 | |
WO2006069790A2 (en) | Test case automatic generation method for testing proactive gsm applications on sim cards | |
CN109656597A (zh) | 固件升级方法、装置及计算机可读存储介质 | |
CN101799506B (zh) | 基于脚本控制的芯片测试方法、装置及系统 | |
CN106646315B (zh) | 一种数字测量仪器的自动测试系统及其测试方法 | |
CN100451986C (zh) | 网络芯片的自动化验证方法 | |
CN102231109A (zh) | 无痕可管理的源代码自动插桩方法 | |
CN102234046B (zh) | 电梯控制软件现场调试系统 | |
CN103136002A (zh) | 一种基于UBoot的自动升级的控制方法及系统 | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
CN104375937A (zh) | 一种自动化测试结果持续集成整合方法及系统 | |
CN104778118A (zh) | 自动化测试技术的改进方法 | |
CN104156199B (zh) | 一种软件自动持续集成方法及系统 | |
CN106569854A (zh) | 一种设置设备固件和实现厂测的方法及系统 | |
CN105183657A (zh) | 一种web界面的测试系统及方法 | |
CN101984640B (zh) | 基于凌动处理器的Android手机平台的能耗测量方法 | |
CN102063367B (zh) | 针对当机程序的离线分析方法及装置 | |
CN103645935B (zh) | 一种国产环境下jvm参数调整装置和方法 | |
CN103593228B (zh) | 一种实用的测试仪器程控命令仿真器及其使用方法 | |
CN105224465A (zh) | 网页调试方法及装置 | |
CN106713001A (zh) | 一种网络巡检方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |