CN110032505B - 软件质量确定装置和方法以及非暂态计算机可读介质 - Google Patents

软件质量确定装置和方法以及非暂态计算机可读介质 Download PDF

Info

Publication number
CN110032505B
CN110032505B CN201811399385.8A CN201811399385A CN110032505B CN 110032505 B CN110032505 B CN 110032505B CN 201811399385 A CN201811399385 A CN 201811399385A CN 110032505 B CN110032505 B CN 110032505B
Authority
CN
China
Prior art keywords
component
test
viewpoint
testing
convergence
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
Application number
CN201811399385.8A
Other languages
English (en)
Other versions
CN110032505A (zh
Inventor
青木英祐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Publication of CN110032505A publication Critical patent/CN110032505A/zh
Application granted granted Critical
Publication of CN110032505B publication Critical patent/CN110032505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了软件质量确定装置、软件质量确定方法和存储软件质量确定程序的非暂态计算机可读介质。软件质量确定装置包括漏洞收敛确定单元和显示单元。漏洞收敛确定单元针对每个组件并且针对每个测试视点、在组件和测试视点的测试执行量已达到用作组件和测试视点的执行量的参考的执行参考量之后确定在组件和测试视点的测试中产生的漏洞的收敛。显示单元针对每个组件和每个测试视点显示在组件和测试视点的测试中产生的漏洞的收敛的确定结果。针对每个组件和每个测试视点的执行量和执行参考量根据指示组件的规模的指标值来被加权。

Description

软件质量确定装置和方法以及非暂态计算机可读介质
技术领域
本发明涉及软件质量确定装置、软件质量确定方法和存储软件质量确定程序的非暂态计算机可读介质。
背景技术
近年来,已提出了用于确定系统中产生的漏洞的收敛的技术。
例如,日本未审查专利申请公布第2014-174895号公开了基于先前漏洞发生结果数据来预测系统中未来将产生的漏洞的数目,并且基于已预测的漏洞的数目和指示系统所要求的质量的质量指标来预测漏洞将收敛的收敛定时的技术。
发明内容
顺便提及,构成系统的组件具有彼此不同的规模。因此,如果针对每个组件确定漏洞收敛并且并排显示确定结果,则存在这样的问题:看到确定结果的用户难以比较确定结果,因为每个组件的规模不同。
鉴于上面提及的情况作出了本公开内容,并且提供了一种能够以这样的方式显示每个组件的漏洞收敛确定结果的软件质量确定装置、软件质量确定方法及软件质量确定程序:可以容易地将这些结果相互比较。
根据本公开内容的一方面的软件质量确定装置是被配置成确定系统中产生的漏洞的收敛的软件质量确定装置,该软件质量确定装置包括:
漏洞收敛确定单元,漏洞收敛确定单元被配置成针对构成系统的每个组件并且针对每个测试视点确定在组件和测试视点的测试中产生的漏洞的收敛,测试视点是当系统被测试时的视点;
显示单元,显示单元被配置成针对每个组件和每个测试视点显示在组件和测试视点的测试中产生的漏洞的收敛的确定结果,其中,
漏洞收敛确定单元针对每个组件和每个测试视点、在组件和测试视点的测试执行量已达到用作组件和测试视点的执行量的参考的执行参考量之后确定在组件和测试视点的测试中产生的漏洞的收敛,以及
针对每个组件和每个测试视点的执行量和执行参考量根据指示组件的规模的指标值来被加权。
根据本公开内容的一方面的软件质量确定方法是由被配置成确定系统中产生的漏洞的收敛的软件质量确定装置进行的软件质量确定方法,该软件质量确定方法包括:
确定步骤,确定步骤用于针对构成系统的每个组件并且针对每个测试视点确定在组件和测试视点的测试中产生的漏洞的收敛,测试视点是当系统被测试时的视点;以及
显示步骤,显示步骤用于针对每个组件和每个测试视点显示在组件和测试视点的测试中产生的漏洞的收敛的确定结果,其中,
在确定步骤中,针对每个组件和每个测试视点、在组件和测试视点的测试执行量已达到用作组件和测试视点的执行量的参考的执行参考量之后确定在组件和测试视点的测试中产生的漏洞的收敛,以及
针对每个组件和每个测试视点的执行量和执行参考量根据指示组件的规模的指标值来被加权。
根据本公开内容的一方面的软件质量确定程序是用于使确定系统中产生的漏洞的收敛的计算机执行以下过程的软件质量确定程序:
确定过程,确定过程用于针对构成系统的每个组件并且针对每个测试视点确定在组件和测试视点的测试中产生的漏洞的收敛,测试视点是系统被测试的视点;以及
显示过程,显示过程用于针对每个组件和每个测试视点显示在组件和测试视点的测试中产生的漏洞的收敛的确定结果,其中,
在确定过程中,针对每个组件和每个测试视点、在组件和测试视点的测试执行量已达到用作组件和测试视点的执行量的参考的执行参考量之后确定在组件和测试视点的测试中产生的漏洞的收敛,以及
针对每个组件和每个测试视点的执行量和执行参考量根据指示组件的规模的指标值来被加权。
根据上面描述的本公开内容的各方面,可以提供能够以这样的方式显示每个组件的漏洞收敛确定结果的软件质量确定装置、软件质量确定方法及软件质量确定程序:可以容易地将这些结果相互比较。
根据下文中给出的详细描述和附图将更充分地理解本公开内容的以上和其他目的、特征和优点,附图仅以说明的方式给出,并且因此不应被视为限制本公开内容。
附图说明
图1是示出根据实施方式的软件质量确定装置的块配置的一个示例的框图;
图2是示出根据实施方式的组件的一个示例的图;
图3是示出根据实施方式的组件的一个示例的图;
图4是示出根据实施方式的测试视点的一个示例的图;
图5是示出根据实施方式的测试视点的一个示例的图;
图6是示出根据实施方式的测试视点的一个示例的图;
图7是示出通过根据实施方式的软件质量确定装置更新数据库的方法的一个示例的流程图;
图8是示出根据实施方式的显示漏洞收敛确定结果的方法的一个示例的流程图;
图9是示出图8中的步骤S21中的漏洞收敛确定处理的一个示例的流程图;
图10是示出根据实施方式的组件的一个示例的图;
图11是示出根据本实施方式的针对数据库中保持的每个组件应当执行的测试视点的一个示例的图;
图12是示出根据实施方式的组件的测试视点的测试结果的一个示例的图;
图13是示出根据实施方式的组件的测试视点的测试结果的一个示例的图;
图14是示出根据实施方式的针对每个组件并且针对每个测试视点的漏洞收敛确定结果的显示示例的图;
图15是示出组件的测试视点的漏洞曲线的一个示例的图;
图16是示出组件的测试视点的漏洞曲线的一个示例的图;
图17是示出组件的测试视点的漏洞曲线的一个示例的图;
图18是示出组件的测试视点的漏洞曲线的一个示例的图;
图19是示出组件的测试视点的漏洞曲线的一个示例的图;
图20是示出组件的测试视点的漏洞曲线的一个示例的图;
图21是示出针对每个组件应当执行的测试视点的一个示例的图;
图22是示出组件的测试视点的漏洞曲线的一个示例的图;
图23是示出组件的测试视点的漏洞曲线的一个示例的图;以及
图24是示出组件的测试视点的漏洞曲线的一个示例的图。
具体实施方式
在下文中,将参照附图来说明本公开内容的实施方式。贯穿下面的描述中的附图,相同或相应的元件由相同的附图标记来表示,并且为了描述的清楚起见,将适当地省略重复的描述。此外,下面的实施方式中指出的具体数值等仅是用于帮助理解本公开内容的示例,并且不限于此。
<根据实施方式的软件质量确定装置的配置>
首先,将说明根据该实施方式的软件质量确定装置1的配置。
图1是示出根据该实施方式的软件质量确定装置1的块配置的一个示例的框图。根据该实施方式的软件质量确定装置1确定系统(待测试的目标)中产生的漏洞的收敛。
如图1所示,根据该实施方式的软件质量确定装置1包括输入单元11、数据库12、更改规模计算器13、数据库更新单元14、漏洞检测率计算器15、漏洞收敛确定单元16以及显示单元17。
输入单元11例如是由用户用于将任意数据(已检测到的漏洞的数目、稍后描述的测试执行量等)输入到软件质量确定装置1中以及在软件质量确定装置1中设置该数据的输入装置。输入单元11是所期望的输入设备例如键盘、鼠标、触摸屏或者无线电便携式终端(智能电话、平板电脑等)。
数据库12保持用户已输入到输入单元11中并且在输入单元11中设置的数据等。
数据库12例如针对构成系统的每个组件并且针对每个测试视点保持在组件和测试视点的测试中产生的组件的每单位规模(在下文中,其将称为单位规模)已检测到的漏洞的数目,测试视点是当系统被测试时的视点。组件是由软件或者由软件架构划分的软件项持有的功能元素。测试视点例如是执行测试例如测试项、观点以及想法生成方法以检查程序是否正常运行时的“角度”,并且是当测试被执行时的操作和过程的观点。已知可以通过改变这些观点来检测漏洞。规模是源代码的规模、指示源代码的复杂度的指标、功能点等中的一个。在初始状态下,规模是组件的原始规模。更改源代码之后,规模是组件的更改规模。更改规模是将组件更改之前的规模与组件的更改(增加、删除或校正)部分的规模相加获得的规模。例如,当组件更改之前的规模为100行,并且更改部分的规模为30行时(10个增加行、5个校正行和15个校正行),则组件的更改规模为130行。每当更改规模计算器13计算每个组件的更改规模时,数据库更新单元14更新数据库中保持的针对每个组件并且针对每个测试视点每单位规模已检测到的漏洞的数目。
此外,针对每个组件和每个测试视点,数据库12保持组件和测试视点的每单位规模的测试的执行量(下文中称为测试执行量)。测试执行量例如是针对程序执行的测试的工时数(下文中称为测试工时数)或者测试的数目。每当通过更改规模计算器13计算每个组件的更改规模时,数据库更新单元14更新数据库12中保持的针对每个组件和每个测试视点的每单位规模的测试执行量。
此外,针对每个组件和每个测试视点,数据库12保持执行参考量,执行参考量用作组件和测试视点的每单元规模的测试执行量的参考(下文中称为测试执行参考量)。测试执行参考量成为误差收敛确定单元16执行误差收敛确定的触发。即,在组件和测试视点的每单位规模的测试执行量已达到组件和测试视点的每单位规模的测试执行参考量之后,误差收敛确定单元16针对每个组件和每个测试视点执行漏洞收敛确定。
如上面所描述的,数据库12中保持的针对每个组件并且针对每个测试视点的已检测到的漏洞的数目、测试执行量以及测试执行参考量是每单位规模组件的值并且根据指示组件的规模的指标值被加权(标准化)。
此外,针对每个组件和测试视点,数据库12保持用作在组件和测试视点的测试中已产生的漏洞的检测率(下文中称为漏洞检测率)的参考的参考值。漏洞检测率是通过将每单位规模的已检测到的漏洞的数目除以每单位规模的测试执行量获得的比率。
此外,数据库12保持每个组件的更改规模。在初始状态下,数据库12不保持每个组件的更改规模。当更改规模计算器13计算每个组件的更改规模时,数据库12保持更改规模。在下面的处理中,每当由更改规模计算器13计算每个组件的更改规模时,数据库更新单元14更新数据库12中保持的每个组件的更改规模。
此外,针对每个组件,数据库12保持已预先设置的测试视点作为组件应当执行的测试视点。
当根据系统的漏洞修复等存在源代码的更改时,更改规模计算器13计算每个组件的更改规模。
当更改规模计算器13计算每个组件的更改规模时,数据库更新单元14针对每个组件和每个测试视点计算已检测到的漏洞的数目以及组件和测试视点的每单位规模的测试执行量。然后,数据库更新单元14更新数据库12中保持的已检测到的漏洞的数目并且针对每个组件和针对每个测试视点的每单位规模的测试执行量。
漏洞检测率计算器15针对每个组件和每个测试视点计算组件和测试视点的漏洞检测率。具体地,漏洞检测率计算器15将数据库12中保持的已检测到的漏洞的数目除以数据库12中保持的测试执行量,从而计算漏洞检测率。
在组件和测试视点的每单位规模的测试执行量已达到组件和测试视点的每单位规模的测试执行参考量之后,漏洞收敛确定单元16针对每个组件和每个测试视点执行在组件和测试视点的每单位规模的测试中产生的漏洞的收敛确定。具体地,漏洞收敛确定单元16针对每个组件和每个测试视点执行以下操作。即,漏洞收敛确定单元16确定数据库12中保持的每单位规模的测试执行量是否已达到数据库12中保持的每单位规模的测试执行参考量。当测试执行量达到测试执行参考量时,漏洞收敛确定单元16基于漏洞检测率计算器15中计算的漏洞检测率和数据库12中保持的漏洞检测率的参考值来执行漏洞收敛确定。漏洞收敛确定单元16例如在测试执行量已达到测试执行参考量之后预定定时时漏洞检测率等于或大于参考值的情况下确定漏洞未收敛。此外,当漏洞收敛确定单元16已确定漏洞尚未收敛时,漏洞收敛确定单元16可以在漏洞检测率与参考值之间的差等于或大于阈值的情况下确定存在将检测到漏洞的高风险。
显示单元17是被配置成针对每个组件和每个测试视点显示在漏洞收敛确定单元16中关于组件和测试视点作出的确定结果,并且向用户呈现确定结果的显示装置。显示单元17例如是液晶显示器、有机电致发光(EL)显示器等。
<根据该实施方式的组件>
接下来,将说明根据该实施方式的组件的具体示例。
如图2所示,组件可以是由软件持有的功能元素。例如,在一些软件中,存在以下功能元素,即“图像处理”、“外部接口(IF)控制”、“内部IF控制”、“图形用户界面(GUI)控制”、“输入/输出”、“文件管理”、“GUI管理”、“数据转换”以及“其他”。在图2所示的示例中,软件的功能元素是组件。
此外,如图3所示,组件可以是由软件架构划分的软件项。在图3所示的示例中,整个软件的系统被划分为软件项X和软件项Y,并且软件项Y被进一步划分为软件项Y-1和软件项Y-2。在这种情况下,存在三个组件,即,“软件项X”、“软件项Y-1”以及“软件项Y-2”。
<根据该实施方式的测试视点>
接下来,将详细说明根据该实施方式的测试视点和测试执行参考量的具体示例。
如图4所示,测试视点可以是国际标准化组织(ISO)9126的质量特性。在图4所示的示例中,测试视点是“功能”、“效率”、“可靠性”、“可用性”、“可维护性”以及“可移植性”。此外,每个测试视点的每单位规模的测试执行参考量可以是测试工时数/KLOC。在图4所示的示例中,当“功能”的每单位规模的测试执行参考量被设置为A时,“效率”、“可靠性”、“可用性”、“可维护性”以及“可移植性”的每单位规模的测试执行参考量分别为0.1A、0.4A、0.6A、1.1A以及0.2A。
在图5所示的示例中,在组合测试的情况下,当“功能”的每单位开发规模的测试执行参考量被设置为A时,“效率”、“可靠性”、“可用性”、“可维护性”以及“可移植性”的每单位规模的测试执行参考量分别为0.7A、0.5A、0.5A、0.5A以及0.1A。此外,在系统测试的情况下,当“功能”的每单位开发规模的测试执行参考量被设置为a时,“效率”、“可靠性”、“可用性”、“可维护性”以及“可移植性”的每单位规模的测试执行参考量分别为0.8a、0.3a、0.3a、0.1a以及0.1a。作为整个软件的测试的系统测试也称为集成测试或者一般测试。组合测试指示在不存在一些组件的状态下的所有测试。
此外,在下面的非专利文献1中公开的每单位规模的测试数目的统计数据可以用于每个测试视点的每单位规模的测试执行参考量。
非专利文献1:软件可靠性增强中心(Software Reliability EnhancementCenter),技术总部,信息技术促进机构,独立行政机构,“White Papers on SoftwareDevelopment Data 2016-2017”,2016年10月1日,第214页。
此外,如图6所示,测试视点可以是用作通过正交缺陷分类(ODC)分析(关于ODC分析,例如,参见下面的非专利文献2)发现漏洞的触发器的发现触发器。在图6所示的示例中,在组合测试的情况下,测试视点为“基础”、“组合”、“顺序·重复”和“互作用”。在系统测试的情况下,测试视点是“负荷·应力”、“恢复·异常”、“启动·重新启动”,“配置”和“场景”。
非专利文献2:Takashi Yamazaki,奥林巴斯软件技术公司(Olympus SoftwareTechnology Corp.),“Defect removal by ODC analysis and visualization ofquality maturity”,嵌入式技术2014年IPA研讨会,2014年7月29日,第30页。
<根据该实施方式的软件质量确定方法>
接下来,将说明通过根据该实施方式的软件质量确定装置1进行的软件质量确定方法。
首先,将说明根据该实施方式的软件质量确定装置1更新数据库12的方法。
图7是示出通过根据该实施方式的软件质量确定装置1更新数据库12的方法的一个示例的流程图。
如图7所示,数据库12获取并保持由用户输入到输入单元11和在输入单元11中设置的以下数据(步骤S11):
·针对每个组件并且针对每个测试视点的每单位规模已检测到的漏洞的数目
·针对每个组件并且针对每个测试视点的每单位规模的测试执行量
·针对每个组件并且针对每个测试视点的每单位规模的测试执行参考量
·针对每个组件并且针对每个测试视点的漏洞检测率的参考值
·针对每个组件应当执行的测试视点
当根据系统的漏洞修复等更改源代码时(步骤S12中为是),更改规模计算器13计算针对每个组件的更改规模(步骤S13)。当源代码没有更改时(步骤S12中为否),处理返回至步骤S12。
当在更改规模计算器13中计算每个组件的更改规模时,数据库更新单元14针对每个组件和每个测试视点计算组件和测试视点的每单位规模的已检测到的漏洞的数目和测试执行量(步骤S14)。然后,数据库更新单元14更新数据库12中保持的每个组件的更改规模,并且还更新数据库12中保持的针对每个组件并且针对每个测试视点的每单位规模的已检测到的漏洞的数目和测试执行量(步骤S15)。在初始状态下,数据库12中不保持每个组件的更改规模。因此,每个组件的更改规模被新登记在数据库12中。之后,处理返回至步骤S12。
在下面的处理中,每当源代码被更改时,执行步骤S13至步骤S15的处理。
接下来,将说明根据本实施方式的软件质量确定装置1显示漏洞收敛确定结果的方法。
图8是示出根据该实施方式的显示漏洞收敛确定结果的方法的一个示例的流程图。假定使用数据库12中保持的最新数据来执行下面描述的处理。
首先,针对每个组件并且针对数据库12中保持的作为该组件应当执行的测试视点的每个测试视点,通过漏洞检测率计算器15和漏洞收敛确定单元16执行用于确定漏洞收敛的漏洞收敛确定处理(步骤S21)。
之后,显示单元17针对每个组件并且针对数据库12中保持的作为该组件应当执行的测试视点的每个测试视点显示在上面的步骤S21中通过漏洞收敛确定处理作出的漏洞收敛确定结果(步骤S22)。
接下来,将说明图8中的步骤S21中的漏洞收敛确定处理。
图9是示出图8中的步骤S21中的漏洞收敛确定处理的一个示例的流程图。图9示出了组件A应当执行的测试视点a的漏洞收敛确定处理的流程的示例。
如图9所示,漏洞收敛确定单元16确定数据库12中保持的测试视点a的每单位规模的测试执行量是否已达到数据库12中保持的测试视点a的每单位规模的测试执行参考量(步骤S31)。
当测试执行量已达到测试执行参考量时(步骤S31中为是),漏洞收敛确定单元16基于在漏洞检测率计算器15中计算的测试视点a的漏洞检测率和数据库12中保持的测试点a的漏洞检测率的参考值来确定在测试视点中漏洞是否已收敛(步骤S32)。
例如,当在测试执行量已达到测试执行参考量之后预定定时时测试视点a的漏洞检测率等于或大于测试视点a的参考值的情况下,漏洞收敛确定单元16确定在测试视点a中漏洞未收敛。此外,在确定在测试视点a中漏洞未收敛的情况下,如果测试视点a的漏洞检测率与测试视点a的参考值之间的差等于或大于阈值,则漏洞收敛确定单元16可以确定在测试视点a中仍然存在将检测到漏洞的高风险。
在测试执行量尚未达到测试执行参考量的情况下(步骤S31中为否),处理返回至步骤S31。
上面提到的描述是测试视点a的漏洞收敛确定处理的流程。当存在除了应在组件中执行的测试视点a以外的测试视点时,对于其他测试视点也执行类似于图9中的处理的漏洞收敛确定处理的流程。
此外,针对除了组件A以外的组件,也针对每个组件应当执行的每个测试视点执行类似于图9中的处理的漏洞收敛确定处理的流程。
现在,将利用一些具体示例来说明根据本实施方式的软件质量确定装置1显示漏洞收敛确定结果的方法。在该示例中,假定如图10所示,组件为“组件A至组件C”。此外,如图6所示,基于ODC分析的发现触发器,组合测试的测试视点是“基础”、“组合”、“顺序·重复”和“互作用”,以及系统测试的测试视点是“负荷·应力”、“恢复·异常”,“启动·重新启动”、“配置”和“场景”。
首先,将说明针对“组件A至组件C”中的每一个应当执行的测试时点的示例。
图11是示出数据库12中保持的“组件A至组件C”中的每一个应当执行的测试视点的一个示例的图。在图11中,“○”指示应当执行的测试视点。
如图11所示,例如,存在“组件A”应当执行的三个测试视点,即,“基础”、“组合”和“负荷·应力”。此外,存在“组件B”应当执行的三个测试视点,即,“基础”、“顺序·重复”和“互作用”。此外,存在“组件C”应当执行的两个测试视点,即“基础”和“互作用”。
接下来,将说明“组件A至组件C”中“组件C”的每个测试视点的测试结果的示例。
图12和图13是各自示出“组件C”的每个测试视点的测试结果的一个示例的图。图12示出了“基础”的测试结果,图13示出了“互作用”的测试结果。
漏洞收敛确定单元16在测试视点的每单位规模的测试执行量已达到测试视点的每单位规模的测试执行参考量之后基于测试视点的漏洞检测率和参考值开始“组件C”的每个测试视点的漏洞收敛确定。此时,当漏洞检测率等于或大于参考值时,漏洞收敛确定单元16确定漏洞尚未收敛。此外,当漏洞收敛确定单元16确定漏洞尚未收敛时,如果漏洞检测率与参考值之间的差等于或大于阈值,则漏洞收敛确定单元16确定仍然存在将检测到漏洞的高风险。在该示例中,当漏洞检测率等于或大于参考值时,漏洞收敛确定单元16确定漏洞尚未收敛并且风险高(即,阈值为零)。否则,漏洞收敛确定单元16确定风险低。
如图12所示,关于“基础”,每单位规模的测试执行量尚未达到每单位规模的测试执行参考量。因此,漏洞收敛确定单元16无法开始漏洞收敛确定,因此确定风险等级为“未知”。
如图13所示,关于“互作用”,每单位规模的测试执行量已达到每单位规模的测试执行参考量。因此,漏洞收敛确定单元16开始漏洞收敛确定。然而,在测试执行量已达到测试执行参考量之后的漏洞检测率等于或大于参考值。因此,关于“互作用”,漏洞收敛确定单元16确定漏洞尚未收敛,并且因此确定风险等级为“高风险”。
漏洞收敛确定单元16针对“组件A”的“基础”、“组合”和“负荷·应力”以及“组件B”的“基础”、“顺序·重复”和“互作用”也执行与上面描述的处理类似的漏洞收敛确定。
接下来,将说明针对“组件A”、“组件B”、“组件C”和测试视点中的每一个的漏洞收敛确定的结果的显示示例。
图14是示出针对“组件A”、“组件B”、“组件C”和测试视点中的每一个的漏洞收敛确定结果的显示示例的图。
如图14所示,显示单元17显示由漏洞收敛确定单元16针对“组件A”、“组件B”和“组件C”中的每一个并且针对图11中所示的组件应当执行的每个测试视点作出的漏洞收敛确定的结果。
在图14中,显示单元17将测试执行量未达到测试执行参考量的测试视点显示为“未知”,将具有高风险的测试视点显示为“高”,以及将具有低风险的测试视点显示为“低”。然而,显示漏洞收敛确定的结果的方法不限于此。
例如,针对漏洞收敛确定的结果显示“高”风险的测试视点,代替“高”或者除了“高”以外,显示单元17可以显示漏洞检测率,或者可以显示漏洞检测率与参考量之间的差。
此外,针对漏洞收敛确定的结果为“未知”的测试视点,代替“未知”或者除了“未知”以外,显示单元17可以显示当测试执行量达到测试执行参考量的定时时每单位规模应进一步执行的测试执行量的测试次数。
此外,针对漏洞收敛确定的结果显示“低”风险的测试视点,代替“低”或者除了“低”以外,显示单元17显示当漏洞检测率变得低于参考值的定时时每单位规模应进一步执行的测试执行量的测试次数。这是因为,由于漏洞检测率是通过将每单位规模检测到的漏洞的数目除以每单位规模的测试执行量来获得的,因此当分母(每单位规模的测试执行量)增加时,漏洞检测率降低。
<漏洞曲线的应用>
用户能够通过将根据本实施方式的软件质量确定方法应用于常规漏洞曲线(该曲线也称为可靠性增长曲线)来检查是否存在尚未执行测试的测试视点,即,是否存在测试视点未被测试(也称为测试遗漏)的可能性。
接下来,将利用一些具体示例来说明通过将根据该实施方式的软件质量确定方法应用于常规漏洞曲线来检查是否存在未进行测试的可能性的方法。在这些示例中,基于ODC分析的发现触发器,存在六个测试视点,即“基础”、“互作用”、“操作序列”、“负荷·应力”、“恢复·异常”和“GUI”。
图15至图20是各自示出一个组件的每个测试视点的漏洞曲线的一个示例的图。图15示出了“基础”的漏洞曲线,图16示出了“互作用”的漏洞曲线,图17示出了“操作序列”的漏洞曲线,图18示出了“负荷·应力”的漏洞曲线,图19示出了“恢复·异常”的漏洞曲线,图20示出了“GUI”的漏洞曲线。
当测试执行量未达到测试执行参考量时或者当测试执行量已达到测试执行参考量之后的漏洞检测率等于或大于参考值时,用户确定漏洞未收敛并且仍然存在将检测到漏洞的高可能性(质量不合格)。另一方面,当测试执行量已达到测试执行参考量之后的漏洞检测率低于参考值时,用户确定漏洞已收敛并且将检测到漏洞的可能性低(质量合格)。
如图15至图20所示,关于“基础”、“互作用”和“GUI”,测试执行量已达到测试执行参考量之后的漏洞检测率低于参考值。因此,用户确定质量合格。另一方面,关于“操作序列”、“负荷·应力”和“恢复·异常”,测试执行量已达到测试执行参考量之后的漏洞检测率等于或大于参考值。因此,用户确定质量不合格。
接下来,利用其他示例来说明通过将根据该实施方式的软件质量确定方法应用于常规漏洞曲线来检查是否存在未进行的测试的可能性的方法。在该示例中,假定存在六个组件,即,“组件P至组件U”。进一步假定基于ODC分析的发现触发器,存在八个测试视点,即“基础”、“组合”、“顺序·重复”、“互作用”、“负荷·应力”、“恢复·异常”、“配置”和“场景”。
图21是示出针对“组件P至组件U”中的每一个应当执行的测试视点的一个示例的图。在图21中,“○”指示要执行的测试视点。
如图21所示,例如,存在三个应当执行“负荷·应力”的组件,即,“组件P”、“组件R”和“组件U”。因此,用户可以确定关于“负荷·应力”的“组件P”、“组件R”和“组件U”中的每一个的漏洞收敛,并且检查问题所在的组件。
图22至图24分别示出了“组件P”、“组件R”和“组件U”的“负荷·应力”的漏洞曲线的一个示例。图22示出了“组件P”的“负荷·应力”的漏洞曲线,图23示出了“组件R”的“负荷·应力”的漏洞曲线,图24示出了“组件U”的“负荷·应力”的漏洞曲线。
如图22至图24所示,关于“组件U”,测试执行量已达到测试执行参考量之后的漏洞检测率低于参考值。因此,用户确定质量合格。另一方面,关于“组件P”,测试执行量已达到测试执行参考量之后的漏洞检测率等于或大于参考值。因此,用户确定质量不合格。此外,关于“组件R”,测试执行量尚未达到测试执行参考量。因此,用户确定质量不合格。
因此,关于“负荷·应力”,用户可以判断“组件P”和“组件R”是有问题的。
<实施方式的效果>
如上所述,根据本实施方式,针对每个组件并且针对每个测试视点的测试执行量、测试执行参考量等是组件的每单位规模的值,并且根据指示组件的规模的指标值来被加权。在由组件的规模加权的测试执行量已达到由组件的规模加权的测试执行参考量之后,漏洞收敛确定单元16确定每个组件和每个测试视点的漏洞收敛,并且显示单元17显示确定的结果。
因此,已看到在显示单元17上显示的漏洞收敛确定的结果的用户可以容易地将针对具有不同规模的组件的确定结果相互比较。此外,由于针对每个组件和每个测试视点显示漏洞收敛确定的结果,因此用户能够优先考虑应改进的测试视点。
此外,根据该实施方式,组件的规模是源代码的规模、指示源代码的复杂度的指标和功能点中的一个,并且被定义为与源代码一致的量。因此,可以以高自由度对各种组件和测试视点进行加权。
此外,根据该实施方式,针对每个组件,预先设置组件应当执行的测试视点,并且漏洞收敛确定单元16确定每个组件和组件应当执行的每个测试视点的漏洞收敛。因此,可以防止对特定组件进行无效测试。
虽然已参考实施方式描述了本公开内容,但是本公开内容不限于前述实施方式,并且可以在不脱离本公开内容的精神的情况下适当地改变。
例如,根据前面提到的实施方式的软件质量确定装置1可以应用于设计和实现审查过程。在这种情况下,测试执行量可以由审查工时来代替,规模可以由文献的体积(行数、页数、字符数等)来代替,测试视点可以由审查视点来代替。例如,可以使用组织具有的视点表或者ODC分析的审查处理的发现触发器用于审查视点。
此外,根据上面提到的实施方式的软件质量确定装置1通过例如具有由以下组件形成的硬件配置的计算机实现:诸如执行操作处理等的中央处理单元(CPU)的处理器;由存储由处理器执行的程序或各种数据的只读存储器(ROM)、随机存取存储器(RAM)等形成的存储器;以及向/从外部设备输入/输出信号的接口单元(I/F)。处理器、存储器和接口单元经由数据总线等彼此互连。
存储器用作数据库12。此外,存储器存储实现更改规模计算器13、数据库更新单元14、漏洞检测率计算器15、漏洞收敛确定单元16以及显示单元17的功能的程序,处理器执行这些程序,从而实现更改规模计算器13、数据库更新单元14、漏洞检测率计算器15、漏洞收敛确定单元16以及显示单元17的功能。
可以使用任何类型的非暂态计算机可读介质来存储程序和将程序提供至计算机。非暂态计算机可读介质包括任何类型的有形存储介质。非暂态计算机可读介质的示例包括磁存储介质(例如软盘、磁带、硬盘驱动器等)、光磁存储介质(例如,磁光盘)、光盘只读存储器(CD-ROM)、CD可记录(CD-R)、CD可重写(CD-R/W)以及半导体存储器(例如掩模ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、闪存ROM、随机存取存储器(RAM)等)。可以使用任何类型的暂态计算机可读介质将程序提供至计算机。暂态计算机可读介质的示例包括电信号、光信号和电磁波。暂态计算机可读介质可以经由有线通信线路(例如,电线和光纤)或无线通信线路将程序提供至计算机。
根据如此描述的本公开内容,将明显的是,本公开内容的实施方式可以以多种方式变化。这样的变化不应被视为脱离本公开内容的精神和范围,并且如将对于本领域技术人员而言明显的是,所有这些修改旨在包括在所附权利要求书的范围内。

Claims (4)

1.一种被配置成确定系统中产生的漏洞的收敛的软件质量确定装置,所述软件质量确定装置被配置成:
针对构成所述系统的每个组件并且针对每个测试视点确定在所述组件和所述测试视点的测试中产生的漏洞的收敛,所述测试视点是当所述系统被测试时的测试操作和过程的视点;
针对所述每个组件和所述每个测试视点显示在所述组件和所述测试视点的测试中产生的漏洞的收敛的确定结果;以及
针对所述每个组件和所述每个测试视点、基于通过将已检测到的漏洞的数目除以测试执行量而计算出的所述测试视点的漏洞检测率以及在数据库中保持的所述漏洞检测率的参考值、在所述组件和所述测试视点的所述测试执行量已达到用作所述组件和所述测试视点的所述测试执行量的参考的在所述数据库中保持的执行参考量之后确定在所述组件和所述测试视点的测试中产生的漏洞的收敛,其中,
在所述数据库中保持的针对所述每个组件和所述每个测试视点的所述执行参考量和所述测试执行量根据指示所述组件的规模的指标值来被加权,
所述组件应当执行的所述测试视点针对所述每个组件被预先设置,并且
所述软件质量确定装置还被配置成:
针对所述每个组件和所述组件应当执行的所述每个测试视点确定在所述组件和所述测试视点的测试中产生的漏洞的收敛;
通过基于在所述组件和所述测试视点的测试中产生的漏洞的收敛的确定结果更新所述规模、所述测试执行量以及已检测到的漏洞的数目来更新所述数据库;以及
针对所述每个组件和所述组件应当执行的所述每个测试视点显示所述确定结果。
2.根据权利要求1所述的软件质量确定装置,其中,所述组件的规模是源代码的规模、指示所述源代码的复杂度的指标和功能点中的一个。
3.一种由被配置成确定系统中产生的漏洞的收敛的软件质量确定装置进行的软件质量确定方法,所述软件质量确定方法包括:
针对构成所述系统的每个组件并且针对每个测试视点确定在所述组件和所述测试视点的测试中产生的漏洞的收敛,所述测试视点是当所述系统被测试时的测试操作和过程的视点;以及
针对所述每个组件和所述每个测试视点显示在所述组件和所述测试视点的测试中产生的漏洞的收敛的确定结果,其中,
在所述确定中,针对所述每个组件和所述每个测试视点、基于通过将已检测到的漏洞的数目除以测试执行量而计算出的所述测试视点的漏洞检测率以及在数据库中保持的所述漏洞检测率的参考值、在所述组件和所述测试视点的所述测试执行量已达到用作所述组件和所述测试视点的所述测试执行量的参考的在所述数据库中保持的执行参考量之后确定在所述组件和所述测试视点的测试中产生的漏洞的收敛,
在所述数据库中保持的针对所述每个组件和所述每个测试视点的所述执行参考量和所述测试执行量根据指示所述组件的规模的指标值来被加权,
所述组件应当执行的所述测试视点针对所述每个组件被预先设置,
在所述确定中,针对所述每个组件和所述组件应当执行的所述每个测试视点,在所述组件和所述测试视点的测试中产生的漏洞的收敛被确定,
通过基于在所述组件和所述测试视点的测试中产生的漏洞的收敛的确定结果更新所述规模、所述测试执行量以及已检测到的漏洞的数目,所述数据库被更新,并且
在所述显示中,针对所述每个组件和所述组件应当执行的所述每个测试视点,所述确定结果被显示。
4.一种存储用于使确定系统中产生的漏洞的收敛的计算机执行包括以下步骤的方法的软件质量确定程序的非暂态计算机可读介质:
针对构成所述系统的每个组件并且针对每个测试视点确定在所述组件和所述测试视点的测试中产生的漏洞的收敛,所述测试视点是当所述系统被测试时的测试操作和过程的视点;以及
针对所述每个组件和所述每个测试视点显示在所述组件和所述测试视点的测试中产生的漏洞的收敛的确定结果,其中,
在所述确定中,针对所述每个组件和所述每个测试视点、基于通过将已检测到的漏洞的数目除以测试执行量而计算出的所述测试视点的漏洞检测率以及在数据库中保持的所述漏洞检测率的参考值、在所述组件和所述测试视点的所述测试执行量已达到用作所述组件和所述测试视点的所述测试执行量的参考的在所述数据库中保持的执行参考量之后确定在所述组件和所述测试视点的测试中产生的漏洞的收敛,
在所述数据库中保持的针对所述每个组件和所述每个测试视点的所述执行参考量和所述测试执行量根据指示所述组件的规模的指标值来被加权,
所述组件应当执行的所述测试视点针对所述每个组件被预先设置,
在所述确定中,针对所述每个组件和所述组件应当执行的所述每个测试视点,在所述组件和所述测试视点的测试中产生的漏洞的收敛被确定,
通过基于在所述组件和所述测试视点的测试中产生的漏洞的收敛的确定结果更新所述规模、所述测试执行量以及已检测到的漏洞的数目,所述数据库被更新,并且
在所述显示中,针对所述每个组件和所述组件应当执行的所述每个测试视点,所述确定结果被显示。
CN201811399385.8A 2017-11-29 2018-11-22 软件质量确定装置和方法以及非暂态计算机可读介质 Active CN110032505B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-229604 2017-11-29
JP2017229604A JP6891780B2 (ja) 2017-11-29 2017-11-29 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム

Publications (2)

Publication Number Publication Date
CN110032505A CN110032505A (zh) 2019-07-19
CN110032505B true CN110032505B (zh) 2022-09-13

Family

ID=66632397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811399385.8A Active CN110032505B (zh) 2017-11-29 2018-11-22 软件质量确定装置和方法以及非暂态计算机可读介质

Country Status (3)

Country Link
US (1) US10783067B2 (zh)
JP (1) JP6891780B2 (zh)
CN (1) CN110032505B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110865939B (zh) * 2019-11-11 2023-11-03 南方电网财务有限公司 应用程序质量监测方法、装置、计算机设备和存储介质
EP4109277A1 (en) * 2021-06-24 2022-12-28 L & T Technology Services Limited A system and method for stability testing of infotaintment unit
JP7296501B1 (ja) 2022-03-28 2023-06-22 楽天グループ株式会社 バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム
JP7296502B1 (ja) 2022-03-28 2023-06-22 楽天グループ株式会社 バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033662A (ja) * 2006-07-28 2008-02-14 Nec Corp ソフトウェアテスト終了判定方法、情報処理装置、プログラム、記録媒体
JP2014203095A (ja) * 2013-04-01 2014-10-27 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
CN105095086A (zh) * 2015-08-27 2015-11-25 浪潮电子信息产业股份有限公司 一种改进的软件测试模型及测试方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4502535B2 (ja) * 2000-03-23 2010-07-14 三菱電機株式会社 ソフトウエア品質検査支援システム及び方法
US20050114829A1 (en) * 2003-10-30 2005-05-26 Microsoft Corporation Facilitating the process of designing and developing a project
US8032863B2 (en) * 2004-11-18 2011-10-04 Parasoft Corporation System and method for global group reporting
JP4646248B2 (ja) 2007-03-26 2011-03-09 株式会社日立情報システムズ プログラム検査項目生成システムと方法およびプログラムテストシステムと方法ならびにプログラム
US8266592B2 (en) 2008-04-21 2012-09-11 Microsoft Corporation Ranking and optimizing automated test scripts
US20100030626A1 (en) * 2008-05-08 2010-02-04 Hughes John M Distributed software fault identification and repair
JP2010113527A (ja) * 2008-11-06 2010-05-20 Hitachi Systems & Services Ltd バグ摘出予測システム
US9268665B2 (en) * 2011-07-26 2016-02-23 Trimble Navigation Limited System and method for identifying fault prone computer code files
US20140033174A1 (en) 2012-07-29 2014-01-30 International Business Machines Corporation Software bug predicting
US9632771B2 (en) * 2012-12-13 2017-04-25 Microsoft Technology Licensing, Llc Association of metadata with source code and applications and services premised thereon
JP2014174895A (ja) * 2013-03-12 2014-09-22 Mitsubishi Electric Corp バグ収束予測装置及びバグ収束予測プログラム
US9244810B2 (en) * 2013-05-23 2016-01-26 Nvidia Corporation Debugger graphical user interface system, method, and computer program product
JP5946068B2 (ja) * 2013-12-17 2016-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム
US9916227B2 (en) 2014-05-05 2018-03-13 Citrix Systems, Inc. Systems and methods for analyzing software compatibility
US20160321586A1 (en) 2015-04-29 2016-11-03 Microsoft Technology Licensing, Llc Selecting tests for execution on a software product
US20160364318A1 (en) * 2015-06-10 2016-12-15 International Business Machines Corporation Enhanced bug resolution
US10114732B2 (en) * 2016-01-29 2018-10-30 Ca, Inc. Debugging in-cloud distributed code in live load environment
JP6747161B2 (ja) 2016-08-12 2020-08-26 トヨタ自動車株式会社 ソフトウェア品質判定方法
CN106528433B (zh) * 2016-12-12 2018-10-02 西安邮电大学 一种用于白盒测试的测试用例优先级排序方法
US10585780B2 (en) * 2017-03-24 2020-03-10 Microsoft Technology Licensing, Llc Enhancing software development using bug data
US20190079854A1 (en) 2017-09-12 2019-03-14 Facebook, Inc. Systems and methods for executing tests
US11270228B2 (en) * 2017-11-17 2022-03-08 Panasonic Intellectual Property Management Co., Ltd. Information processing method and information processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033662A (ja) * 2006-07-28 2008-02-14 Nec Corp ソフトウェアテスト終了判定方法、情報処理装置、プログラム、記録媒体
JP2014203095A (ja) * 2013-04-01 2014-10-27 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
CN105095086A (zh) * 2015-08-27 2015-11-25 浪潮电子信息产业股份有限公司 一种改进的软件测试模型及测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向收敛的并发程序执行轨迹静态简化方法;常曦 等;《软件学报》;20170120;第1107-1117页 *

Also Published As

Publication number Publication date
US10783067B2 (en) 2020-09-22
US20190163617A1 (en) 2019-05-30
CN110032505A (zh) 2019-07-19
JP2019101582A (ja) 2019-06-24
JP6891780B2 (ja) 2021-06-18

Similar Documents

Publication Publication Date Title
CN110032505B (zh) 软件质量确定装置和方法以及非暂态计算机可读介质
US10324830B2 (en) Conditional upgrade and installation of software based on risk-based validation
CN109542761B (zh) 软件质量评估方法、装置及存储介质
US11068379B2 (en) Software quality determination apparatus, software quality determination method, and software quality determination program
CN107329894B (zh) 应用程序系统测试方法、装置及电子设备
CN111078459B (zh) 半导体芯片的测试方法、装置及系统
US20210365555A1 (en) A method and system for detecting and preventing issues in smart contracts based on historical behavior analysis
CN113127347A (zh) 一种接口测试方法、装置、设备及可读存储介质
CN110908702A (zh) 一种版本切换方法、版本切换装置、计算机设备及存储介质
CN109543409B (zh) 用于检测恶意应用及训练检测模型的方法、装置及设备
US20120310849A1 (en) System and method for validating design of an electronic product
JP6747161B2 (ja) ソフトウェア品質判定方法
CN111625835B (zh) 程序漏洞路径追踪方法、装置、计算机设备及存储介质
CN114443721A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113568834A (zh) Sdk代码的兼容性检测方法、装置、计算机设备和介质
CN111538651A (zh) 接口测试方法、装置、服务器及存储介质
CN110795338A (zh) 一种基于前后端交互的自动化测试方法、装置及电子设备
US11397662B2 (en) Method for debugging computer program, device employing method, and storage medium
CN113760765B (zh) 代码测试方法、装置、电子设备和存储介质
US9792202B2 (en) Identifying a configuration element value as a potential cause of a testing operation failure
CN112783759B (zh) 白盒测试任务执行方法、装置、存储介质和计算机设备
CN116521557A (zh) 测试用例的校验方法、装置、电子设备及存储介质
CN113986320A (zh) 程序集的热更新方法、装置、电子设备及存储介质
CN117331812A (zh) 业务代码验证方法、装置、计算机设备、存储介质和产品
CN115269421A (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