CN103309807A - 程序测试方法及平台 - Google Patents
程序测试方法及平台 Download PDFInfo
- Publication number
- CN103309807A CN103309807A CN2013102152019A CN201310215201A CN103309807A CN 103309807 A CN103309807 A CN 103309807A CN 2013102152019 A CN2013102152019 A CN 2013102152019A CN 201310215201 A CN201310215201 A CN 201310215201A CN 103309807 A CN103309807 A CN 103309807A
- Authority
- CN
- China
- Prior art keywords
- key function
- program
- test
- function point
- treatment
- 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
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 (10)
1.一种程序测试方法,其特征在于,包括:
对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;
对所述待测程序进行功能测试,获取测试到的关键功能点;
根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率;
根据所述关键功能点覆盖率判断所述待测程序是否合格。
2.根据权利要求1所述的程序测试方法,其特征在于,所述对待测程序进行扫描,确定所述待测程序包括的关键功能点之前包括:
对所述待测程序包括的关键功能点进行插装标识;
所述对所述待测程序进行功能测试,获取测试到的关键功能点包括:
对插装后的所述待测程序进行编译;
根据预设的测试用例,对编译后所述待测程序进行功能测试,以获取所述测试到的关键功能点。
3.根据权利要求1或2所述的程序测试方法,其特征在于,所述根据所述关键功能点覆盖率确定所述待测程序是否合格包括:
将所述关键功能点覆盖率与预设的覆盖率门限进行比较;
如果所述关键功能点覆盖率大于或等于所述覆盖率门限,确定所述待测程序合格。
4.根据权利要求1或2所述的程序测试方法,其特征在于,所述对所述待测程序进行功能测试,获取测试到的关键功能点之后还包括:
根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取未测试到的关键功能点。
5.根据权利要求4所述的程序测试方法,其特征在于,所述根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取未测试到的关键功能点之后包括:
生成测试结果,并输出所述测试结果,所述测试结果包括所述关键功能点覆盖率和所述未测试到的关键功能点。
6.一种程序测试平台,其特征在于,包括:
扫描模块,用于对待测程序进行扫描,确定所述待测程序包括的关键功能点,所述关键功能点为所述待测程序中用于实现预设的关键功能的代码块;
测试模块,用于对所述待测程序进行功能测试,获取测试到的关键功能点;
获取模块,用于根据所述测试到的关键功能点和所述待测程序包括的关键功能点,获取所述待测程序的关键功能点覆盖率;
判断模块,用于根据所述关键功能点覆盖率判断所述待测程序是否合格。
7.根据权利要求6所述的程序测试平台,其特征在于,还包括:
插装模块,用于对所述待测程序包括的关键功能点进行插装标识;
所述测试模块包括:
编译单元,用于对插装后的所述待测程序进行编译;
测试单元,用于根据预设的测试用例,对编译后所述待测程序进行功能测试,以获取所述测试到的关键功能点。
8.根据权利要求6或7所述的程序测试平台,其特征在于,所述判断模块包括:
比较单元,用于将所述关键功能点覆盖率与预设的覆盖率门限进行比较;
判断单元,用于如果所述关键功能点覆盖率大于或等于所述覆盖率门限,确定所述待测程序合格。
9.根据权利要求6或7所述的程序测试平台,其特征在于,还包括:
确定模块,用于所述测试模块获取到所述测试到的关键功能点之后,根据所述测试到的关键功能点和所述待测程序包括的关键功能点,确定未测试到的关键功能点。
10.根据权利要求9所述的程序测试平台,其特征在于,还包括:
生成模块,用于在所述确定模块获取到所述未测试到的关键功能点之后,生成测试结果,并输出所述测试结果,所述测试结果包括所述关键功能点覆盖率和所述未测试到的关键功能点。
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 true CN103309807A (zh) | 2013-09-18 |
CN103309807B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699605A (zh) * | 2015-03-02 | 2015-06-10 | 清华大学 | 一种驱动程序的代码覆盖率测量方法及装置 |
CN104750604A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 浏览器兼容性测试案例的生成方法和装置 |
CN106708721A (zh) * | 2015-11-13 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 代码覆盖测试的实现方法和装置 |
CN107193738A (zh) * | 2017-05-19 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于功能点覆盖动态调整随机约束的验证方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885273A (zh) * | 2005-06-21 | 2006-12-27 | 华为技术有限公司 | 一种逻辑测试的功能覆盖率分析方法 |
CN1987821A (zh) * | 2006-11-14 | 2007-06-27 | 无敌科技(西安)有限公司 | 一种实现单元测试的方法及系统 |
US20100146340A1 (en) * | 2008-12-09 | 2010-06-10 | International Business Machines Corporation | Analyzing Coverage of Code Changes |
CN102419731A (zh) * | 2011-12-08 | 2012-04-18 | 北京控制工程研究所 | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 |
-
2013
- 2013-05-31 CN CN201310215201.9A patent/CN103309807B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885273A (zh) * | 2005-06-21 | 2006-12-27 | 华为技术有限公司 | 一种逻辑测试的功能覆盖率分析方法 |
CN1987821A (zh) * | 2006-11-14 | 2007-06-27 | 无敌科技(西安)有限公司 | 一种实现单元测试的方法及系统 |
US20100146340A1 (en) * | 2008-12-09 | 2010-06-10 | International Business Machines Corporation | Analyzing Coverage of Code Changes |
CN102419731A (zh) * | 2011-12-08 | 2012-04-18 | 北京控制工程研究所 | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 |
Non-Patent Citations (1)
Title |
---|
孙全洲等: "软件测试充分性模糊决策方法研究及应用", 《北京化工大学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750604A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 浏览器兼容性测试案例的生成方法和装置 |
CN104750604B (zh) * | 2013-12-30 | 2017-08-25 | 中国银联股份有限公司 | 浏览器兼容性测试案例的生成方法和装置 |
CN104699605A (zh) * | 2015-03-02 | 2015-06-10 | 清华大学 | 一种驱动程序的代码覆盖率测量方法及装置 |
CN104699605B (zh) * | 2015-03-02 | 2017-11-17 | 清华大学 | 一种驱动程序的代码覆盖率测量方法及装置 |
CN106708721A (zh) * | 2015-11-13 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 代码覆盖测试的实现方法和装置 |
CN107193738A (zh) * | 2017-05-19 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于功能点覆盖动态调整随机约束的验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103309807B (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rothermel et al. | Empirical studies of test‐suite reduction | |
CN103309807A (zh) | 程序测试方法及平台 | |
CN105930274A (zh) | 一种自动化测试方法及系统 | |
CN103699476A (zh) | 覆盖率测试方法及系统 | |
CN108804304B (zh) | 测试用例生成方法及装置、存储介质、电子设备 | |
CN108415830A (zh) | 一种软件测试用例的生成方法及装置 | |
CN205992232U (zh) | 仪表自动检定系统 | |
CN110058998A (zh) | 软件测试方法及装置 | |
CN110287104A (zh) | 测试用例生成方法、装置、终端及计算机可读存储介质 | |
CN103823665B (zh) | 一种sdk活跃度分析方法、网络服务器及系统 | |
CN113341296B (zh) | 一种基于ate的soc芯片测试方法 | |
CN107239375A (zh) | 一种实现USB2.0 High Speed控制发包的测试方法 | |
CN107066302A (zh) | 缺陷检测方法、装置及服务终端 | |
CN108959078A (zh) | 一种Windows端软件自动化测试方法及系统 | |
CN110619215B (zh) | 一种代码安全扫描方法及系统 | |
CN111078526A (zh) | 一种测试用例的生成方法、装置及存储介质 | |
CN114937043B (zh) | 基于人工智能的设备缺陷检测方法、装置、设备及介质 | |
CN104657267A (zh) | 弹性的源代码语法树解析系统及方法 | |
CN114661615B (zh) | 一种fpga软件测试方法和设备 | |
CN114444550B (zh) | 结构化数据解析方法、装置、电子设备及存储介质 | |
CN113611348B (zh) | 打点方法、装置、电子设备及存储介质 | |
CN102521124B (zh) | 一种失败原因的输出方法和系统 | |
CN110633204B (zh) | 一种程序缺陷检测方法及装置 | |
CN112560393B (zh) | Eda软件工具的比对验证方法及装置 | |
CN108763011B (zh) | SoC芯片核数检测方法、装置、系统及存储介质 |
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 |