CN101996069A - 用于软件测试的测试代码生成系统 - Google Patents
用于软件测试的测试代码生成系统 Download PDFInfo
- Publication number
- CN101996069A CN101996069A CN2009100564094A CN200910056409A CN101996069A CN 101996069 A CN101996069 A CN 101996069A CN 2009100564094 A CN2009100564094 A CN 2009100564094A CN 200910056409 A CN200910056409 A CN 200910056409A CN 101996069 A CN101996069 A CN 101996069A
- Authority
- CN
- China
- Prior art keywords
- test
- code
- software
- test code
- code generating
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明揭示了一种用于软件测试的测试代码生成系统,包括:功能测试代码生成装置,根据待测试软件的设计功能,针对每一功能产生功能测试代码;冗余代码消除装置,耦合到功能测试代码生成装置,比对针对每一功能所产生的功能测试代码,消除其中的冗余部分;特定代码生成装置,针对待测试软件的应用领域生成特性测试代码,测试软件在该应用领域中的特性性能;重点代码生成装置,针对待测试软件的高频率应用生成重点测试代码,测试软件针对高频率应用的性能;测试优先级确定装置,耦合到冗余代码消除装置、特定代码生成装置、重点代码生成装置,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试代码。
Description
技术领域
本发明涉及计算机软件的测试技术,尤其涉及一种用于软件测试的测试代码生成系统。
背景技术
软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。
软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。
软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”,在“探测”中发现软件的毛病。
软件测试贯穿于软件定义与开发的整个周期,软件的需求规格说明书,结构设计及程序编码,都属于软件测试的对象。
软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的测试工作,黑盒测试独立于程序代码,从用户的角度,通过一定的测试步骤与测试案例,验证软件功能、性能等指标能否满足实际应用需求的测试工作。
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试的优点包括:
(1)比较简单,不需要了解程序内部的代码及实现;
(2)与软件的内部实现无关;
(3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
(4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
(5)在做软件自动化测试时较为方便。
黑盒测试的缺点包括:
(1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
(2)自动化测试的复用性较低。
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
白盒测试的优点包括:
(1)迫使测试人员去仔细思考软件的实现;
(2)可以检测代码中的每条分支和路径;
(3)揭示隐藏在代码中的错误;
(4)对代码的测试比较彻底;
(5)最优化。
白盒测试的缺点包括:
(1)昂贵;
(2)无法检测代码中遗漏的路径和数据敏感性错误;
(3)不验证规格的正确性。
发明内容
本发明旨在提出一种供白盒测试或者黑盒测试使用的测试代码生成系统。
根据本发明,提出一种用于软件测试的测试代码生成系统,包括:
功能测试代码生成装置,根据待测试软件的设计功能,针对每一功能产生功能测试代码;
冗余代码消除装置,耦合到功能测试代码生成装置,比对针对每一功能所产生的功能测试代码,消除其中的冗余部分;
特定代码生成装置,针对待测试软件的应用领域生成特性测试代码,测试软件在该应用领域中的特性性能;
重点代码生成装置,针对待测试软件的高频率应用生成重点测试代码,测试软件针对高频率应用的性能;
测试优先级确定装置,耦合到冗余代码消除装置、特定代码生成装置、重点代码生成装置,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试代码。
该用于软件测试的测试代码生成系统还包括测试覆盖率评估装置,获取最终的测试代码,并将该测试代码提供给与待测试软件相关的软件测试系统进行测试,根据测试的结果生成对于测试代码的测试覆盖率评估。
采用本发明的技术方案,能够自动生成适合于对软件进行白盒测试或者黑盒测试的软件测试代码,大大提高了软件测试的效率以及自动化程度。
附图说明
图1揭示了根据本发明的用于软件测试的测试代码生成系统的结构图。
具体实施方式
如果把软件的测试活动比作软件生命周期,测试需求就相当于软件的需求规格,测试策略相当于软件的架构设计,测试用例相当于软件的详细设计,测试执行相当于软件的编码过程。
软件测试需求需要考虑几个层面的因素:
第一层:测试阶段。系统测试阶段,需求分析更注重于技术层面,即软件是否实现了具备的功能。如果某一种流程或者某一角色能够执行一项功能,那么我们相信具备相同特征的业务或角色都能够执行该功能。为了避免测试执行的冗余,可不再重复测试。而在验收测试阶段,更注重于不同角色在同一功能上能否走通要求的业务流程。因此需要根据不同的业务需要而测试相同的功能,以确保系统上线后不会有意外发生。目前,大多数的测试都会在系统测试中完成,验收测试只是对于系统测试的回归。此种情况也是合理的,关键看测试周期与资源是否允许,以及各测试阶段的任务划分。
第二层:待测软件的特性。不同的软件业务背景不同,所要求的特性也不相同,测试的侧重点自然也不相同。除了需要确保要求实现的功能正确,银行、财务软件更强调数据的精确性,网站强调服务器所能承受的压力,ERP强调业务流程,驱动程序强调软硬件的兼容性。在做测试分析时需要根据软件的特性来选取测试类型,并将其列入测试需求当中。
第三层:测试的焦点。测试的焦点是指根据所测的功能点进行分析、分解,从而得出的着重于某一方面的测试,如界面、业务流、模块化、数据、输入域等。
第四层:测试的优先级。优先级的确定,利于测试工作有的放矢的展开,有利于了解核心的功能、特性与流程有哪些,客户最为关注的是什么,由此可确定测试的工作重点在何处,更方便处理测试进度发生问题时,实现不同优先级别的功能、模块、系统等迭代递交或取舍,从而缓和测试风险。
还有一个需要考虑的问题是测试需求的覆盖率与覆盖程度。测试需求的覆盖率通常是由与软件需求所建立的对应关系来确定的。如果一个软件的需求已经跟测试需求存在了一对一或一对多的对应关系,可以说测试需求已经覆盖了该功能点,以此类推,如果确定了所有的软件需求都建立了对应的测试需求,那么测试需求的覆盖率便是测试需求覆盖点/软件需求功能点=100%,但并不意味着测试需求的覆盖程度高。因为测试需求的覆盖率只计算了显性的(即被明确规定的功能与特性)因素,而隐性的(即没有被明确规定但是有可能或不应该拥有的功能与特性)因素并未计算在内。因此根据不断的完善或实际测试中发生的缺陷,可以对测试需求进行补充或优化,并更新进测试用例中,以此来提高测试需求的覆盖程度。
基于上述的原理,本发明提出一种用于软件测试的测试代码生成系统,参考图1所示,该用于软件测试的测试代码生成系统10包括:功能测试代码生成装置11、冗余代码消除装置12、特定代码生成装置13、重点代码生成装置14、测试优先级确定装置15。
功能测试代码生成装置11根据待测试软件的设计功能,针对每一功能产生功能测试代码。
冗余代码消除装置12耦合到功能测试代码生成装置11,比对针对每一功能所产生的功能测试代码,消除其中的冗余部分。功能测试代码生成装置11和冗余代码消除装置12重点关注上述第一层的问题。
特定代码生成装置13针对待测试软件的应用领域生成特性测试代码,测试软件在该应用领域中的特性性能。特定代码生成装置13重点关注上述第二层的问题。
重点代码生成装置14针对待测试软件的高频率应用生成重点测试代码,测试软件针对高频率应用的性能。重点代码生成装置14重点关注上述第三层的问题。
测试优先级确定装置15耦合到冗余代码消除装置12、特定代码生成装置13、重点代码生成装置14,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试代码。测试优先级确定装置15重点关注上述第四层的问题。
参考图1所示,该用于软件测试的测试代码生成系统10还包括测试覆盖率评估装置16,测试覆盖率评估装置16获取最终的测试代码,并将该测试代码提供给与待测试软件相关的软件测试系统进行测试,根据测试的结果生成对于测试代码的测试覆盖率评估。测试覆盖率评估装置16重点关注测试需求的覆盖率与覆盖程度。
采用本发明的技术方案,能够自动生成适合于对软件进行白盒测试或者黑盒测试的软件测试代码,大大提高了软件测试的效率以及自动化程度。
Claims (2)
1.一种用于软件测试的测试代码生成系统,其特征在于,包括:
功能测试代码生成装置,根据待测试软件的设计功能,针对每一功能产生功能测试代码;
冗余代码消除装置,耦合到所述功能测试代码生成装置,比对针对每一功能所产生的功能测试代码,消除其中的冗余部分;
特定代码生成装置,针对待测试软件的应用领域生成特性测试代码,测试软件在该应用领域中的特性性能;
重点代码生成装置,针对待测试软件的高频率应用生成重点测试代码,测试软件针对高频率应用的性能;
测试优先级确定装置,耦合到所述冗余代码消除装置、特定代码生成装置、重点代码生成装置,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试代码。
2.如权利要求1所述的用于软件测试的测试代码生成系统,其特征在于,还包括:
测试覆盖率评估装置,获取所述最终的测试代码,并将该测试代码提供给与待测试软件相关的软件测试系统进行测试,根据测试的结果生成对于测试代码的测试覆盖率评估。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100564094A CN101996069A (zh) | 2009-08-13 | 2009-08-13 | 用于软件测试的测试代码生成系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100564094A CN101996069A (zh) | 2009-08-13 | 2009-08-13 | 用于软件测试的测试代码生成系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101996069A true CN101996069A (zh) | 2011-03-30 |
Family
ID=43786259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100564094A Pending CN101996069A (zh) | 2009-08-13 | 2009-08-13 | 用于软件测试的测试代码生成系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101996069A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591777A (zh) * | 2012-01-10 | 2012-07-18 | 深圳市同洲视讯传媒有限公司 | 一种单元测试代码生成方法及装置 |
CN102591776A (zh) * | 2011-12-30 | 2012-07-18 | 苏州汉清投资管理有限公司 | 一种自动生成代码的系统 |
CN102646226A (zh) * | 2012-02-22 | 2012-08-22 | 浪潮电子信息产业股份有限公司 | 一种缩减软件开发和测试周期的方法 |
CN103344907A (zh) * | 2013-07-02 | 2013-10-09 | 上海大学 | 基于测试码间距离的伪随机低功耗测试方法 |
CN103838667A (zh) * | 2012-11-27 | 2014-06-04 | 腾讯科技(深圳)有限公司 | 一种应用程序使用方式的排序方法及装置 |
CN104067226A (zh) * | 2012-01-31 | 2014-09-24 | 惠普发展公司,有限责任合伙企业 | 代码变化的持续部署 |
CN105468503A (zh) * | 2014-08-06 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及其设备 |
CN106021113A (zh) * | 2016-05-31 | 2016-10-12 | 浪潮电子信息产业股份有限公司 | 一种精准测试的实现方法 |
CN109800176A (zh) * | 2019-02-26 | 2019-05-24 | 盛科网络(苏州)有限公司 | 芯片代码覆盖率交付方法和系统 |
CN109814849A (zh) * | 2017-11-20 | 2019-05-28 | 迈普通信技术股份有限公司 | 信息同步方法及装置 |
-
2009
- 2009-08-13 CN CN2009100564094A patent/CN101996069A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591776A (zh) * | 2011-12-30 | 2012-07-18 | 苏州汉清投资管理有限公司 | 一种自动生成代码的系统 |
CN102591777B (zh) * | 2012-01-10 | 2016-04-13 | 深圳市同洲电子股份有限公司 | 一种单元测试代码生成方法及装置 |
CN102591777A (zh) * | 2012-01-10 | 2012-07-18 | 深圳市同洲视讯传媒有限公司 | 一种单元测试代码生成方法及装置 |
CN104067226A (zh) * | 2012-01-31 | 2014-09-24 | 惠普发展公司,有限责任合伙企业 | 代码变化的持续部署 |
CN102646226A (zh) * | 2012-02-22 | 2012-08-22 | 浪潮电子信息产业股份有限公司 | 一种缩减软件开发和测试周期的方法 |
CN103838667A (zh) * | 2012-11-27 | 2014-06-04 | 腾讯科技(深圳)有限公司 | 一种应用程序使用方式的排序方法及装置 |
CN103344907A (zh) * | 2013-07-02 | 2013-10-09 | 上海大学 | 基于测试码间距离的伪随机低功耗测试方法 |
CN105468503A (zh) * | 2014-08-06 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及其设备 |
CN105468503B (zh) * | 2014-08-06 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及其设备 |
CN106021113A (zh) * | 2016-05-31 | 2016-10-12 | 浪潮电子信息产业股份有限公司 | 一种精准测试的实现方法 |
CN109814849A (zh) * | 2017-11-20 | 2019-05-28 | 迈普通信技术股份有限公司 | 信息同步方法及装置 |
CN109814849B (zh) * | 2017-11-20 | 2022-10-25 | 迈普通信技术股份有限公司 | 信息同步方法及装置 |
CN109800176A (zh) * | 2019-02-26 | 2019-05-24 | 盛科网络(苏州)有限公司 | 芯片代码覆盖率交付方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101996069A (zh) | 用于软件测试的测试代码生成系统 | |
US6862696B1 (en) | System and method for software certification | |
US9710257B2 (en) | System and method to map defect reduction data to organizational maturity profiles for defect projection modeling | |
Rahmandad et al. | Modeling the rework cycle: capturing multiple defects per task | |
US20050043919A1 (en) | Process and system for quality assurance for software | |
US20140033174A1 (en) | Software bug predicting | |
Gonzalez‐Sanchez et al. | Prioritizing tests for software fault diagnosis | |
Jahan et al. | Risk-based test case prioritization by correlating system methods and their associated risks | |
Carrozza et al. | Analysis and prediction of mandelbugs in an industrial software system | |
CN103460196A (zh) | 校验和生效plc系统中冗余软件的系统和方法 | |
CN101996130A (zh) | 软件测试系统 | |
Felderer et al. | Using defect taxonomies for requirements validation in industrial projects | |
CN115292165A (zh) | 测试方法及装置、电子设备及存储介质 | |
Abdeen et al. | An approach for performance requirements verification and test environments generation | |
Menkhaus et al. | Metric suite for directing the failure mode analysis of embedded software systems | |
CN117056218A (zh) | 测试管理方法、平台、介质和设备 | |
CN104572434A (zh) | 用于软件测试的测试代码生成系统 | |
Badri et al. | Predicting the size of test suites from use cases: An empirical exploration | |
Akinsola et al. | Qualitative comparative analysis of software integration testing techniques | |
Carvalho et al. | Embedded software component quality and certification | |
Rollet et al. | A formal approach to test the robustness of embedded systems using behaviour analysis | |
Groenda | Improving performance predictions by accounting for the accuracy of composed performance models | |
Al-Sabbagh et al. | A classification of code changes and test types dependencies for improving machine learning based test selection | |
KR102155750B1 (ko) | 인공지능 학습데이터 생성을 위한 크라우드소싱 기반 프로젝트의 반려된 작업 결과를 이용한 검수 품질 관리 방법 | |
Matsumura et al. | Analyzing factors of defect correction effort in a multi-vendor information system development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110330 |