CN103309807B - 程序测试方法及平台 - Google Patents
程序测试方法及平台 Download PDFInfo
- Publication number
- CN103309807B CN103309807B CN201310215201.9A CN201310215201A CN103309807B CN 103309807 B CN103309807 B CN 103309807B CN 201310215201 A CN201310215201 A CN 201310215201A CN 103309807 B CN103309807 B CN 103309807B
- Authority
- CN
- China
- Prior art keywords
- key function
- program
- measured
- test
- function point
- 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
- 238000012360 testing method Methods 0.000 claims abstract description 91
- 238000011990 functional testing Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 129
- 238000010586 diagram Methods 0.000 description 4
- 230000002950 deficient Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种程序测试方法及平台,该方法包括:对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;对所述待测程序进行功能测试,获取测试到的关键功能点;根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率,根据所述关键功能点覆盖率确定所述待测程序是否合格。本发明为待测程序设定关键功能点,在测试过程中对待测程序的关键功能点进行测试,不再对待测程序进行全局分析,提高了对待测程序的进行测试的效率。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种程序测试方法及平台。
背景技术
软件测试是保证软件质量的重要一环。验收测试主要是验证软件是否达到了用户的要求,在测试过程中,尽可能地发现软件中存在的不足和缺陷,指导测试人员对软件进行修正,以提高软件的质量,保证软件可以被用户接受。
软件的购买方或者第三方测试人员对用于实现软件的程序进行“白盒测试”。在对软件的“白盒测试”过程中,测试人员需要对待测程序进行全局分析,以获取到待测程序的语句、分支或者判决条件等覆盖情况。通过待测程序的语句、分支或者判决条件的覆盖情况,对软件进行验收测试。但是软件的“白盒测试”方式,需要对该软件的程序进行全局分析,测试的工作量较大,存在测试效率较低的问题。
发明内容
本发明提供一种程序测试方法及平台,用以提高程序的测试的效率。
为了实现上述目的,本发明提供了一种程序测试方法,包括:
对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;
对所述待测程序进行功能测试,获取测试到的关键功能点;
根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率,根据所述关键功能点覆盖率确定所述待测程序是否合格。
为了实现上述目的,本发明提供了一种程序测试平台,包括:
扫描模块,用于对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;
测试模块,用于对所述待测程序进行功能测试,获取测试到的关键功能点;
获取模块,用于根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率,根据所述关键功能点覆盖率确定所述待测程序是否合格。
本发明提供的一种程序测试方法及平台,对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;对所述待测程序进行功能测试,获取测试到的关键功能点;根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率,根据所述关键功能点覆盖率确定所述待测程序是否合格。本发明为待测程序设定关键功能点,在测试过程中对待测程序的关键功能点进行测试,不再需要对待测程序进行全局分析,克服了现有技术中存在测试效率低的问题,提高了待测程序的测试效率。
附图说明
图1为本发明实施例提供的一种程序测试方法示意图;
图2为本发明实施例提供的一种程序测试平台结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的一种程序测试方法示意图。该方法的执行主体为程序测试平台。如图1所示,该方法包括以下步骤:
101、对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块。
程序测试平台读入待测程序,然后对待测程序进行扫面,确定该待测程序包括的关键功能点。例如,可以获取到关键功能点的标识和关键功能点的个数。在本实施例中,关键功能点为待测程序中用于实现预设的关键功能的代码块。其中,待测程序的关键功能是由程序开发者或者程序购买者根据产品或者软件需求预先定义的。
在步骤101对待测程序进行扫描,确定所述待测程序包括的关键功能点之前,对测试程序包括的关键功能点进行插装标识。可选地,可以将关键功能点的标识信息插装到该关键功能点相应代码块的头部、尾部或者中间部位。
102、对所述待测程序进行功能测试,获取测试到的关键功能点。
在本实施例中,程序测试平台对插装后的待测程序进行编译,通过编译将实现该待测程序的高级语言,转换成计算机可以识别的语言。然后程序测试平台根据预设的测试用例,对编译后的待测程序进行功能测试,以获取测试到的关键功能点。具体地,可以获取待测程序的测试到的关键功能点的个数以及测试到的关键功能点的标识。其中,测试用例是由测试人员根据待测程序要实现的各种功能来编写的,并存储在程序测试平台中。
103、根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率。
在获取到测试到的关键功能点后,程序测试平台根据待测程序的测试到的关键功能点和待测程序包括的关键功能点,获取到待测程序的关键功能点覆盖率。其中,该关键功能点覆盖率的计算公式为:关键功能点覆盖率=(待测程序的测试到的关键功能点/待测程序包括的关键功能点)×100%。
104、根据所述关键功能点覆盖率判断所述待测程序是否合格。
程序测试平台可以通过该关键功能点覆盖率,来判断待测程序是否合格。实际测试过程中,关键功能点覆盖率越高,说明待测程序的准确性越高。具体地,预先设置覆盖率门限,并存储在程序测试平台中。在获取到待测程序的关键功能点覆盖率后,程序测试平台将关键功能点覆盖率与预设的覆盖率门限进行比较,如果关键功能点覆盖率大于或者等于预设的覆盖率门限,判断出待测程序合格,而如果关键功能点覆盖率小于预设的覆盖率门限,判断出待测程序不合格。
本实施例提供的程序测试方法,对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;对所述待测程序进行功能测试,获取测试到的关键功能点;根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率,根据所述关键功能点覆盖率确定所述待测程序是否合格。本实施例为待测程序设定关键功能点,在测试过程对待测程序的关键功能点进行测试,不再需要对待测程序进行全局分析,克服了现有技术中存在测试效率低的问题,提高了待测程序的测试效率。
可选地,程序测试平台还可以根据测试到的关键功能点和待测程序包括的关键功能点,确定出该待测程序的未测试到的关键功能点。具体地,可以获取到未测试到的关键功能点的个数以及标识。
进一步地,程序测试平台可以生成测试结果,并输出测试结果。其中,测试结果包括关键功能点覆盖率和未测试到的关键功能点。可选地,程序测试平台可以包括一个显示界面,通过该显示界面向测试人员显示测试结果。测试人员根据测试结果中包括的未测试到的关键功能点,修改或者更新测试用例,以提高待测程序的关键功能点覆盖率,进一步地提高待测程序的准确性。程序测试平台还可以将测试结果以表格的格式打印出来。
图2为本发明实施例提供的一种程序测试平台结构示意图。如图2所示,该程序测试平台包括:扫描模块21、测试模块22、获取模块23和判断模块24。
其中,扫描模块21用于对待测程序进行扫描,确定待测程序包括的关键功能点,关键功能点为待测程序中用于实现预设的关键功能的代码块。具体地,扫描模块21读入待测程序,然后对待测程序进行扫面,确定该待测程序包括的关键功能点。例如,可以获取到关键功能点的个数和关键功能点的标识。其中,待测程序的关键功能是由程序开发者或者程序购买者根据产品或者软件需求预先定义的。
程序测试平台中还包括插装模块25。该插装模块25对测试程序包括的关键功能点进行插装标识。可选地,插装模块25可以将关键功能点的标识信息插装到该关键功能点相应代码块的头部、尾部或者中间部位。
在本实施例中,插装模块25对待测程序包括的关键功能点进行插装标识后,测试模块22对插装后的待测程序进行编译,然后根据预设的测试用例,对编译后待测程序进行功能测试,以获取测试到的关键功能点。具体地,可以获取到该待测程序的测试到的关键功能点的个数以及测试到的关键功能点的标识信息。其中,测试用例是由测试人员根据待测程序要实现的各种功能编写的,并例存储在程序测试平台中。
本实施例中,测试模块22的一种可选的实现结构方式包括:编译单元221和测试单元222。
其中,编译单元221与扫描模块21连接,对插装后的待测程序进行编译,通过编译将实现该待测程序的高级语言,转换成计算机可以识别的语言。测试单元222与编译单元221连接,测试单元222根据预设的测试用例,对编译后待测程序进行功能测试,以获取测试到的关键功能点。
获取模块23分别与扫描模块21和测试模块22连接。在测试模块22获取到测试到的关键功能点后,获取模块23根据测试到的关键功能点和待测程序包括的关键功能点,获取待测程序的关键功能点覆盖率,根据关键功能点覆盖率确定所述待测程序是否合格。其中,该关键功能点覆盖率的计算公式为:关键功能点覆盖率=(待测程序的测试到的关键功能点/待测程序包括的关键功能点)×100%。
获取模块23与判断模块24连接。在获取模块23获取到待测程序的关键功能点覆盖率后,判断模块24根据该关键功能点覆盖率,来判断待测程序是否合格。实际测试中,一般关键功能点覆盖率越高,说明待测程序的准确性越高。本实施例中,判断模块24一种可选地结构实现方式包括:比较单元241和判断单元242。具体地,预先设置覆盖率门限,并存储在程序测试平台中。比较单元241与获取模块23连接,比较单元241将关键功能点覆盖率与预设的覆盖率门限进行比较。如果关键功能点覆盖率大于或者等于预设的覆盖率门限,判断单元242判断出该待测程序合格,而如果关键功能点覆盖率小于预设的覆盖率门限,判断单元242判断出待测程序不合格。
本实施例提供的程序测试平台,对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;对所述待测程序进行功能测试,获取测试到的关键功能点;根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率,根据所述关键功能点覆盖率确定所述待测程序是否合格。本实施例为待测程序设定关键功能点,在测试过程中对待测程序的关键功能点进行测试,不再需要对待测程序进行全局分析,克服了现有技术中存在测试效率低的问题,提高了待测程序的测试效率。
可选地,程序测试平台还可以包括一个确定模块26,用于根据测试到的关键功能点和待测程序包括的关键功能点,确定出该待测程序的未测试到的关键功能点。具体地,可以获取到未测试到的关键功能点的个数以及标识。
进一步地,程序测试平台可以生成模块27,用于生成测试结果,并输出测试结果。其中,测试结果包括关键功能点覆盖率和未测试到的关键功能点。
可选地,程序测试平台可以包括一个显示界面,通过该显示界面向测试人员显示测试结果。测试人员根据测试结果中未测试到的关键功能点,修改或者更新测试用例,以提高待测程序的关键功能点覆盖率,进一步地提高待测程序的准确性。程序测试平台还可以将测试结果以表格的格式打印出来。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种程序测试方法,其特征在于,包括:
对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;
对所述待测程序进行功能测试,获取测试到的关键功能点;
根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率;其中,所述关键功能点覆盖率的计算公式为:关键功能点覆盖率=(待测程序的测试到的关键功能点/待测程序包括的关键功能点)×100%;
根据所述关键功能点覆盖率判断所述待测程序是否合格;
所述根据所述关键功能点覆盖率确定所述待测程序是否合格包括:
将所述关键功能点覆盖率与预设的覆盖率门限进行比较;
如果所述关键功能点覆盖率大于或等于所述覆盖率门限,确定所述待测程序合格。
2.根据权利要求1所述的程序测试方法,其特征在于,所述对待测程序进行扫描,确定所述待测程序包括的关键功能点之前包括:
对所述待测程序包括的关键功能点进行插装标识;
所述对所述待测程序进行功能测试,获取测试到的关键功能点包括:
对插装后的所述待测程序进行编译;
根据预设的测试用例,对编译后所述待测程序进行功能测试,以获取所述测试到的关键功能点。
3.根据权利要求1或2所述的程序测试方法,其特征在于,所述对所述待测程序进行功能测试,获取测试到的关键功能点之后还包括:
根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取未测试到的关键功能点。
4.根据权利要求3所述的程序测试方法,其特征在于,所述根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取未测试到的关键功能点之后包括:
生成测试结果,并输出所述测试结果,所述测试结果包括所述关键功能点覆盖率和所述未测试到的关键功能点。
5.一种程序测试平台,其特征在于,包括:
扫描模块,用于对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;
测试模块,用于对所述待测程序进行功能测试,获取测试到的关键功能点;
获取模块,用于根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率;其中,所述关键功能点覆盖率的计算公式为:关键功能点覆盖率=(待测程序的测试到的关键功能点/待测程序包括的关键功能点)×100%;
判断模块,用于根据所述关键功能点覆盖率判断所述待测程序是否合格;
所述判断模块包括:
比较单元,用于将所述关键功能点覆盖率与预设的覆盖率门限进行比较;
判断单元,用于如果所述关键功能点覆盖率大于或等于所述覆盖率门限,确定所述待测程序合格。
6.根据权利要求5所述的程序测试平台,其特征在于,还包括:
插装模块,用于对所述待测程序包括的关键功能点进行插装标识;
所述测试模块包括:
编译单元,用于对插装后的所述待测程序进行编译;
测试单元,用于根据预设的测试用例,对编译后所述待测程序进行功能测试,以获取所述测试到的关键功能点。
7.根据权利要求5或6所述的程序测试平台,其特征在于,还包括:
确定模块,用于所述测试模块获取到所述测试到的关键功能点之后,根据所述测试到的关键功能点和所述待测程序包括的关键功能点,确定未测试到的关键功能点。
8.根据权利要求7所述的程序测试平台,其特征在于,还包括:
生成模块,用于在所述确定模块获取到所述未测试到的关键功能点之后,生成测试结果,并输出所述测试结果,所述测试结果包括所述关键功能点覆盖率和所述未测试到的关键功能点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310215201.9A CN103309807B (zh) | 2013-05-31 | 2013-05-31 | 程序测试方法及平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310215201.9A CN103309807B (zh) | 2013-05-31 | 2013-05-31 | 程序测试方法及平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103309807A CN103309807A (zh) | 2013-09-18 |
CN103309807B true CN103309807B (zh) | 2016-03-02 |
Family
ID=49135054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310215201.9A Active CN103309807B (zh) | 2013-05-31 | 2013-05-31 | 程序测试方法及平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103309807B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750604B (zh) * | 2013-12-30 | 2017-08-25 | 中国银联股份有限公司 | 浏览器兼容性测试案例的生成方法和装置 |
CN104699605B (zh) * | 2015-03-02 | 2017-11-17 | 清华大学 | 一种驱动程序的代码覆盖率测量方法及装置 |
CN106708721B (zh) * | 2015-11-13 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 代码覆盖测试的实现方法和装置 |
CN107193738A (zh) * | 2017-05-19 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于功能点覆盖动态调整随机约束的验证方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885273A (zh) * | 2005-06-21 | 2006-12-27 | 华为技术有限公司 | 一种逻辑测试的功能覆盖率分析方法 |
CN1987821A (zh) * | 2006-11-14 | 2007-06-27 | 无敌科技(西安)有限公司 | 一种实现单元测试的方法及系统 |
CN102419731A (zh) * | 2011-12-08 | 2012-04-18 | 北京控制工程研究所 | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100146340A1 (en) * | 2008-12-09 | 2010-06-10 | International Business Machines Corporation | Analyzing Coverage of Code Changes |
-
2013
- 2013-05-31 CN CN201310215201.9A patent/CN103309807B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885273A (zh) * | 2005-06-21 | 2006-12-27 | 华为技术有限公司 | 一种逻辑测试的功能覆盖率分析方法 |
CN1987821A (zh) * | 2006-11-14 | 2007-06-27 | 无敌科技(西安)有限公司 | 一种实现单元测试的方法及系统 |
CN102419731A (zh) * | 2011-12-08 | 2012-04-18 | 北京控制工程研究所 | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 |
Non-Patent Citations (1)
Title |
---|
软件测试充分性模糊决策方法研究及应用;孙全洲等;《北京化工大学学报》;20071231;34-38 * |
Also Published As
Publication number | Publication date |
---|---|
CN103309807A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102574B (zh) | 应用程序测试方法及装置 | |
CN106294120B (zh) | 测试代码的方法、设备和计算机程序产品 | |
CN105022691B (zh) | 一种基于uml图的高度自动化软件测试方法 | |
CN103309807B (zh) | 程序测试方法及平台 | |
US20150363296A1 (en) | Function test apparatus based on unit test cases reusing and function test method thereof | |
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN105930257A (zh) | 一种确定目标测试用例的方法及装置 | |
CN104897687B (zh) | 探针针痕位置的检测系统及方法 | |
CN110532185A (zh) | 测试方法、装置、电子设备和计算机可读存储介质 | |
CN110058998A (zh) | 软件测试方法及装置 | |
CN104951380B (zh) | 一种用于测试在线产品的测试方法及系统 | |
CN109918292A (zh) | 一种处理器指令集测试方法和装置 | |
CN113342669A (zh) | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 | |
CN104390982A (zh) | 一种用于smt首件检测的测试方法 | |
CN107066302A (zh) | 缺陷检测方法、装置及服务终端 | |
CN110457224A (zh) | 生成测试数据的方法及装置 | |
CN108897652B (zh) | 一种基于rtl级功耗分析的错误定位方法及系统 | |
CN111078526A (zh) | 一种测试用例的生成方法、装置及存储介质 | |
CN105117334A (zh) | 一种基于xml的测试需求描述及其实现方法 | |
CN107491395A (zh) | 一种自定义测试用例框架使用方法 | |
US20140281719A1 (en) | Explaining excluding a test from a test suite | |
CN105067992B (zh) | 通过测试数据实现芯片追溯的方法 | |
CN114661615B (zh) | 一种fpga软件测试方法和设备 | |
CN112526220A (zh) | 测试装置、方法、计算机设备和存储介质 | |
CN103167078A (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 |