CN103365772A - 软件测试自动评价装置以及方法 - Google Patents

软件测试自动评价装置以及方法 Download PDF

Info

Publication number
CN103365772A
CN103365772A CN2013100682006A CN201310068200A CN103365772A CN 103365772 A CN103365772 A CN 103365772A CN 2013100682006 A CN2013100682006 A CN 2013100682006A CN 201310068200 A CN201310068200 A CN 201310068200A CN 103365772 A CN103365772 A CN 103365772A
Authority
CN
China
Prior art keywords
software
tested object
information
test
defective
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
Application number
CN2013100682006A
Other languages
English (en)
Other versions
CN103365772B (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN103365772A publication Critical patent/CN103365772A/zh
Application granted granted Critical
Publication of CN103365772B publication Critical patent/CN103365772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

提供一种软件测试自动评价装置以及方法,基于将软件的动作或结构上的特征、性质与对于该软件妥当的测试技术、测试手段相对应的信息即“测试观点”,评价软件测试。在基于将软件的动作或结构上的特征、性质与对于该软件妥当的测试技术、测试手段相对应的信息即“测试观点”,判定软件测试对于该测试对象是否妥当时,将预先设定的规则以及测试对象软件的特征、性质作为输入,选择与所述特征、性质对应的缺陷模板,并且根据测试对象软件的特征信息进行补充,由此判定是否按照测试观点设计了所述软件测试。

Description

软件测试自动评价装置以及方法
技术领域
本发明涉及软件测试自动评价装置以及自动评价方法。
背景技术
作为本技术领域的背景技术,具有特开2006-146669号公报(专利文献1)。该公报中记载了如下内容:“提供一种即使在不公开组件的源代码的情况下,或者仅使用组件中的限定函数的情况下,也能够高精度进行所利用的代码的覆盖率(coverage)的测定的覆盖率测定系统以及覆盖率测定方法及其程序”。
专利文献1中,记载了用于通过测定源代码的覆盖率,验证是否充分地进行了软件测试的机制。
但是,仅通过源代码的覆盖率,无法保证充分地进行了软件测试。例如,在源代码中存在有分支处理的情况下,虽然能够通过覆盖率明确对分支双方的情况进行了测试,但是通过覆盖率无法确认对分支处理的分支条件是否正确(通过边界值测试等)进行了测试。
另外,在判定为软件测试不充分时,仅通过源代码的覆盖率的数值,无法了解缺少什么样的测试。在软件开发中,根据开发阶段、测试对象软件的特性,此外根据缺陷的风险等条件,有可能省略一部分测试。为了评价软件测试,必须能够了解缺少什么样的测试,与打算进行的测试内容进行比较。
此外,专利文献1中,在进行基于组件的软件的组合开发时,不仅对于开发对象组件,对于开发对象组件所利用的组件,也通过测定源代码的覆盖率来测定测试的可靠性。但是,在基于组件的开发中,不应该进行深入到利用组件的细节的分析,而应该仅仅进行与外部规格的分歧的确认。否则,以组件为单位的开发的分工边界被打破,无法享受到组件化的优势。
特开2006-146669号公报
发明内容
因此,本发明的目的在于,基于将软件的动作或结构上的特征、性质与对于该软件妥当的测试技术、测试手段相对应的信息即“测试观点”,判定软件测试是否不足并通知给利用者,此外在不足的情况下还对利用者通知需要追加什么样的测试的信息。
为实现上述目的,采用如下结构。
一种软件测试自动评价装置,其特征为,基于将软件的动作或结构上的特征、性质与对于该软件妥当的测试技术、测试手段相对应的信息即“测试观点”,判定针对某个测试对象生成的软件测试对于该测试对象是否妥当,该装置包括缺陷生成单元,该缺陷生成单元将预先设定的规则以及测试对象软件的特征、性质作为输入,选择与所述特征、性质对应于的缺陷模板,并且使用测试对象软件的特征信息进行补充,由此判定是否按照某个测试观点设计了所述软件测试,并生成“软件缺陷”。
发明效果
根据本发明,通过与测试观点对应地评价用于验证某个软件的质量的软件测试的妥当性,能够对本发明的利用者提供什么样的测试不足的信息,因此能够支持本发明的利用者修正测试的作业。此外,根据本发明,能够在不直接变更软件测试和测试对象软件的情况下进行验证,因此不给利用者带来增加作业的负担。
附图说明
图1是软件测试自动评价装置的结构图的例子。
图2是说明软件测试自动评价装置的处理的流程图的例子。
图3是测试对象代码的例子。
图4是测试代码的例子。
图5是测试对象代码特征信息的例子。
图6是处理特性确定规则的例子。
图7是说明从测试对象代码提取特征信息的处理的前半部分的概念图的例子。
图8是说明从测试对象代码提取特征信息的处理的后半部分的概念图的例子。
图9是软件缺陷的例子。
图10是缺陷基础信息的例子。
图11是说明根据测试对象代码特征信息生成软件缺陷的处理的前半部分的概念图的例子。
图12是说明根据测试对象代码特征信息生成软件缺陷的处理的后半部分的概念图的例子。
图13是说明在测试对象代码中混入软件缺陷的处理的概念图的例子。
图14是说明利用混入了缺陷的测试对象代码执行测试的处理的概念图的例子。
图15是说明判定测试执行结果的处理的概念图的例子。
图16是说明判定测试执行结果的处理的概念图的例子。
图17是测试评价结果的例子。
图18是说明根据软件缺陷生成测试评价结果的处理的概念图的例子。
图19是软件测试自动评价装置的结构图的例子。
图20是说明软件测试自动评价装置的处理的流程图的例子。
图21是测试对象设计信息的例子。
图22是处理特性确定规则的例子。
图23是说明保管测试对象设计信息的处理的概念图的例子。
图24是软件测试自动评价装置的结构图的例子。
图25是说明软件测试自动评价装置的处理的流程图的例子。
图26是测试对象规格信息的例子。
图27是缺陷基础信息的例子。
图28是说明根据测试对象规格信息生成软件缺陷的处理的前半部分的概念图的例子。
图29是说明根据测试对象规格信息生成软件缺陷的处理的后半部分的概念图的例子。
具体实施方式
下面使用附图说明实施例。
(实施例1)
本实施例中,说明软件测试自动评价装置的例子。
图1是本实施例的软件测试自动评价装置的结构图的例子。
软件测试自动评价装置100是包括CPU101、存储器102、输入装置103、输出装置104、以及外部存储装置105的处理装置。外部存储装置105保存测试对象代码存储部106、测试对象代码特征信息存储部107、缺陷信息存储部108、缺陷已混入代码存储部109、测试代码存储部110、测试评价结果存储部111、以及缺陷生成规则存储部118,还保存处理程序112。缺陷规则存储部118保存处理特性确定规则存储部119和缺陷基础信息存储部120。处理程序112保存特征信息提取部113、缺陷生成部114、缺陷混入部115、测试执行部116、以及测试执行结果评价部117。
处理程序112在执行时被读入到存储器102中,由CPU101执行。
在处理特性确定规则存储部119、缺陷基础信息存储部120中分别输入了处理特性确定规则、缺陷基础信息。处理特性确定规则、缺陷基础信息的详细情况在后面进行描述。
把经由输入装置103从外部输入的测试对象代码和测试代码分别写入到测试对象代码存储部106和测试代码存储部110中。特征信息提取部113参照从处理特性确定规则存储部119读出的处理特性确定规则,提取与从测试对象代码存储部106读出的测试对象代码对应的测试对象代码特征信息,并写入到测试对象代码特征信息存储部107中。缺陷生成部114参照从缺陷基础信息存储部120读出的缺陷基础信息,同时从测试对象代码特征信息存储部读出测试对象代码特征信息,生成对应的缺陷信息并写入到缺陷信息存储部108中。缺陷混入部115从测试对象代码存储部106读出测试对象代码,根据从缺陷信息存储部108读出的缺陷信息加入变更后,写入缺陷已混入代码存储部109中。测试执行部116一起执行从缺陷已混入代码存储部109读入的缺陷已混入测试对象程序代码与从测试代码存储部110读入的测试程序代码,按照执行结果补充缺陷信息存储部108保存的缺陷信息。测试执行结果评价部117从缺陷信息存储部108读出缺陷信息,累计后写入到测试评价结果存储部111中。
图2是说明本实施例的软件测试自动评价装置的处理的流程图的例子。下面基于图2的流程图说明图1的各部件的动作。此外,关于测试对象程序和测试程序的例子,作为Java(注册商标)程序进行记述。
(步骤200:测试代码和测试对象代码的输入)
步骤200是分别输入测试程序和测试对象程序,来作为针对软件测试自动评价装置的输入信息的步骤。输入操作由装置的利用者实施。在步骤200中,把从输入装置103输入的测试程序写入到测试代码存储部110中。另外,把从输入装置103输入的测试对象程序写入到测试对象代码存储部106中。
在此,测试程序和测试对象程序被记述为可执行软件。测试对象程序即为开发对象软件,测试程序是用于验证测试对象程序的质量的程序。为了简单,假设在应用本发明之前的阶段,在通过测试程序验证了测试对象程序时,未能发现规则违反的状态。并且,假设未检测出缺陷,或者在消除了发现规则违反的测试案例后应用本发明。分别在图3和图4中表示测试对象程序和测试程序的具体例。
图3是在测试对象代码存储部106中存储的本实施例的测试对象代码的例子。如Java文件300或JSP文件302等那样以文件为单位保存测试对象代码。文件内记载了程序代码,其中包含程序片段301那样的测试对象方法的定义。
图4是在测试代码存储部110中存储的本实施例的测试代码400的例子。在测试代码中,与测试对象代码300相同地以文件形式保存了可执行程序。
下面的步骤201至205是基于输入信息的机器处理,是不介入人工,能够仅由软件测试自动评价装置实施的处理。
(步骤201:测试对象的特征信息的提取)
在步骤201中,特征信息提取部113参照从处理特性确定规则存储部119读出的处理特性确定规则,提取与从测试对象代码存储部106读出的测试对象代码对应的测试对象代码特征信息。将提取出的测试对象代码特征信息写入测试对象代码特征信息存储部107中。
在此,所谓测试对象代码特征信息,是包含用于确定某个测试对象的模块的信息和该模块所起作用的特征的信息的、表示测试对象程序的特征的信息。另外,所谓处理特性确定规则,是将程序分析的结果和对测试对象程序进行测试时的观点所关联的特征相对应的信息。在图5中表示测试对象代码特征信息的具体例,在图6中表示处理特性确定规则的具体例。
图5是在测试对象代码特征信息存储部107中存储的、本实施例的测试对象代码特征信息的例子。测试对象代码特征信息500保存用于确定测试对象方法的信息即对象模块参照信息501、以及处理特性信息506。对象模块参照信息501由类名502、方法名503、输入参数504、以及输出参数505构成。另外,一个测试对象代码特征信息500内能够保存多个处理特性信息506。
图6是在处理特性确定规则存储部119中存储的本实施例的处理特性确定规则的例子。处理特性确定规则由与某个测试观点相关联的处理特性600和表示程序上的特征的信息即程序分析结果601的组的对应关系602构成。一个对应关系602中包含的程序分析结果601的组表示某种逻辑关系。在此,作为程序分析结果601,保存成为某个程序具有处理特性600的根据的信息。在程序分析结果601中放入的值是通过程序的静态分析得到的特征。具体来说,包含数据类型、方法的调用关系、数据依赖关系等。
图7是说明本实施例的从测试对象代码提取特征信息的处理201的前半部分的句法分析的概念图的例子。首先,选择在测试对象代码存储部106中包含的一个测试对象程序300,实施句法分析。对于通过句法分析得到的每个方法,生成一个测试对象代码特征信息500,追加到测试对象代码特征信息存储部107中。在追加时,记述通过句法分析得到的类名502、方法名503、输入参数504、以及输出参数505的信息。对于测试对象代码存储部106中包含的所有测试对象程序300实施上述处理,由此完成步骤201的前半部分。在完成了步骤201的前半部分的时刻,处理特性信息506仍为空栏。
图8是说明本实施例的从测试对象代码提取特征信息的处理201的后半部分的特征信息追加的概念图的例子。首先,选择测试对象代码特征信息存储部107保存的一个测试对象代码特征信息800。以对象模块参照信息501为线索找出与所选择的测试对象代码特征信息800相应的程序片段801,通过静态分析取得方法的接口、处理内容、以及与其他模块的利用关系。从处理特性确定规则存储部119中找出在取得的内容中程序分析结果501对应的测试对象代码特征信息802,将发现的所有信息追加写入选中的测试对象代码特征信息800的处理特性信息506。对于测试对象代码特征信息存储部107保存的所有测试对象代码特征信息实施上述处理,据此完成步骤201的后半部分。
(步骤202:缺陷代码的生成)
在步骤202中,缺陷生成部114参照从缺陷基础信息存储部120读出的缺陷基础信息,同时从测试对象代码特征信息存储部读出测试对象代码特征信息。并且,根据读出的测试对象代码特征信息生成对应的缺陷信息,将其写入到缺陷信息存储部108中。
在此,所谓缺陷信息,是包含基于某个测试观点的程序的缺陷以及应该反映该缺陷的测试对象模块的信息的信息。另外,缺陷基础信息是将测试对象模块的处理特性与该测试对象模块应该反映的程序缺陷的基础信息相对应的信息。在图9中表示缺陷信息的具体例,在图10中表示缺陷基础信息的具体例。
图9是在缺陷信息存储部108中存储的本实施例的缺陷信息的例子。缺陷信息900中,作为用于确定该缺陷信息对应的测试对象模块的信息,具有类名901、方法名902、以及输入参数的类型903的信息。另外,具有表示该缺陷信息对应的测试观点的信息即缺陷类别904、以及用于区别具有相同测试对象模块和缺陷类别的缺陷信息的信息即缺陷编号905。此外,保存将该缺陷表现为程序代码的程序片段906、以及用于记录应用该缺陷进行测试的结果的判定信息909。程序片段906由表示插入缺陷的目的地模块的信息即缺陷插入目的地信息907、以及表示实际插入的动作的信息即插入代码908构成。插入代码908表现为执行程序时在特定条件成立的情况下产生错误的动作。
图10是本实施例的缺陷基础信息的例子。缺陷基础信息1000由表示对应的测试观点的信息即缺陷类别1001、成为与缺陷类别对应的条件的处理特性信息的组1002、以及缺陷样板集1003构成。缺陷样板集1003由缺陷样板信息1004的集合构成。缺陷样板集1003中存储缺陷样板信息1004的各自的指针(存储区域的地址)。缺陷样板信息1004由单一的缺陷样板集中的该缺陷样板信息的识别信息即缺陷编号1005、以及将缺陷表现为程序片段时成为样板的程序片段样板1006构成。程序片段样板1006中的一部分记述代替文字串1007,因此不是作为程序的体裁。
图11是说明本实施例的根据测试对象代码特征信息生成软件缺陷的处理202的前半部分的软件缺陷选择的概念图的例子。缺陷生成部114从测试对象代码特征信息存储部107选择一个测试对象代码特征信息1100。并且,选择缺陷基础信息存储部120保存的一个缺陷基础信息1101。判定所选择的测试对象代码特征信息1100的处理特性506是否满足所选择的缺陷基础信息1101保存的处理特性1002的条件。在满足条件的情况下,对于所选择的缺陷基础信息1101的缺陷样板集1003保存的所有缺陷样板信息1004,分别生成一个缺陷信息900。此时,类名901、方法名902、以及自变量的类型信息903分别通过参照选中的测试对象代码特征信息保存的类名502、方法名503、以及输入参数504来取得。另外,缺陷类别904通过参照选中的缺陷基础信息1101保存的缺陷类别1001来取得。此外,缺陷编号905和程序片段906通过复制对应的缺陷基础信息的各个缺陷编号1005和程序片段样板1006来取得。在该阶段,程序片段906包含代替文字串。另外,判定信息909为空栏。
图12是说明本实施例的根据测试对象代码特征信息生成软件缺陷的处理202的后半部分的缺陷信息置换的概念图的例子。在此,通过置换生成的缺陷信息900的缺陷程序片段906中包含的代替文字串907,完成程序片段906。与代替文字串的意义相符,从测试对象代码特征信息提取相应的信息,置换文字串。把完成了程序片段906的置换的缺陷信息900写入到缺陷信息存储部108中。
对于所选择的测试对象代码特征信息1100,对于满足处理特性506的条件的所有缺陷基础信息1101,进行图11和图12所示的操作。对测试对象代码特征信息存储部107保存的所有测试对象代码特征信息1100完成上述操作,据此完成步骤202。
(步骤203:缺陷代码向测试对象的混入)
在步骤203中,缺陷混入部115从测试对象代码存储部106读出测试对象代码,根据从缺陷信息存储部108读出的缺陷信息加入变更后,写入到缺陷已混入代码存储部109中。
图13是说明本实施例的在测试对象代码中混入软件缺陷的处理203的概念图的例子。利用缺陷插入目的地907的信息确定应该插入缺陷的测试对象模块。并且,对于所确定的测试对象模块,利用缺陷插入目的地907的信息来决定插入方法,添加插入代码908,据此生成缺陷已混入代码1301,将其写入缺陷已混入代码存储部109。对于缺陷插入目的地907不对应的测试对象模块106,将复制后的测试对象模块直接写入缺陷已混入代码存储部109。另外,在所利用的缺陷信息1300的判定信息909中记入“正在判定”,以表示当前正在利用。
(步骤204:测试执行)
在步骤204中,测试执行部117一起执行从缺陷已混入代码存储部109读取的测试对象程序代码和从测试代码存储部110读入的测试程序代码,按照执行结果补充缺陷信息存储部108保存的缺陷信息。
图14是说明本实施例的利用混入了缺陷的测试对象代码执行测试的处理204的概念图的例子。取得测试代码存储部110保存的所有测试代码和缺陷已混入代码存储部109保存的所有测试对象代码,在程序的处理系统上执行,取得其日志。按照JUnit记述测试代码,作为日志信息,能够输出违反了作为测试程序记载的规格的件数。JVM(Java Virtual Machine,Java虚拟机)是Java的执行环境。
图15和图16是说明本实施例的判定测试执行结果的处理的概念图的例子。从缺陷信息存储部108中搜索判定信息909为“正在判定”的缺陷信息,从而取得作为当前正在处理的缺陷的缺陷信息900。并且,基于上述测试执行结果改写搜索出的缺陷信息900的判定信息909。作为上述测试执行的结果,在检测出一件以上违反作为测试程序记载的规格的情况下,可知进行了针对所生成的缺陷的测试。由此,如图15所示,此时,将判定信息909改写为“OK”,并且将检测出的违反的件数例如设为“失败3件”存储在内部变量中。另一方面,在未检测出针对表明的违反的情况下,不存在对所生成的缺陷的测试。由此,此时,如图16所示,将判定信息909改写为“NG”,并且将检测出的违反的件数例如作为“失败0件”存储到内部变量中。
对缺陷信息存储部108保存的所有缺陷信息执行步骤203和步骤204的处理。在缺陷信息存储部108保存的缺陷信息900中,仍然留有判定信息909为空栏的缺陷信息900的情况下,对其执行步骤203和步骤204的处理。在缺陷信息存储部108保存的所有缺陷信息900的判定信息909中记载了“OK”或“NG”中的任一者的情况下,对所有缺陷信息完成了步骤203和步骤204的处理。据此,完成测试评价结果存储部112保存的测试评价结果。
(步骤205:测试执行结果的分析)
在步骤205中,测试执行结果评价部118从缺陷信息存储部108读出缺陷信息,进行累计后写入到测试评价结果存储部112中。
图17是在测试评价结果存储部111中存储的本实施例的测试评价结果的例子。与一个模块有关的测试评价结果1700保存用于确定模块的信息即对象模块参照信息1701以及与关于该模块判定为测试不充分的测试观点相关联的信息即未检测缺陷信息1705。对象模块参照信息由类名1702、方法名1703、以及输入参数1704构成。
图18是说明本实施例的根据软件缺陷生成测试评价结果的处理的概念图的例子。从缺陷信息存储部108选择一个缺陷信息900,确认判定信息909。在判定信息909为“OK”的情况下,缺陷信息900直接丢弃,从缺陷信息存储部108中去除。在判定信息909为“NG”的情况下,将缺陷信息900反映到测试评价结果存储部112后丢弃,从缺陷信息存储部108中去除。
在将缺陷信息900反映到测试评价结果存储部111时,首先,从测试评价结果存储部111找出对应的测试评价结果1700。具体来说,通过将缺陷信息900的类名901、方法名902、自变量的类型903与测试评价结果1700的类名1702、方法名1703、自变量的类型1704分别进行比较,使缺陷信息900与测试评价结果1700相对应。在未能发现对应的测试评价结果1700的情况下,生成测试评价结果1700,并追加到测试评价结果存储部。在追加的测试评价结果1700的类名1702中记入类名901的信息,在方法名1703中记入方法名902的信息,在自变量的类型1704中记入自变量的类型903的信息。
接着,反映未检测缺陷信息。确认上述测试评价结果1700的未检测缺陷信息1705,搜索与缺陷信息900的缺陷类别904对应的未检测缺陷信息。在找到了对应的未检测缺陷信息的情况下直接结束。在未找到的情况下,在测试评价结果1700的未检测缺陷信息1705中追加缺陷类别904并结束。对于缺陷信息存储部108保存的所有缺陷信息900,完成向测试评价结果存储部111的反映处理,由此完成步骤205。
(步骤206:测试评价结果的输出)
步骤206是开发者通过输出装置104取得由软件测试自动评价装置100得出的测试评价结果的步骤。软件测试自动评价装置100按照开发者的指示,从测试评价结果存储部112读出测试评价结果,如图18下部的表所示输出到输出装置104。此外,关于输出,可以作为文本数据或者二进制数据输出以便能够由计算机处理,也可以在监视器上显示文字或图像以便开发者能够浏览。
(实施例2)
在本实施例中,说明一种软件测试自动评价装置的例子,其在通过程序生成装置生成测试对象软件的情况下,使用在生成测试对象程序时输入的设计信息,来代替从测试对象的程序代码中提取特征信息。
图19是本实施例的软件测试自动评价装置的结构图的例子。
在图19所示的结构中,代替图1的测试对象代码特征信息存储部107,外部存储装置105保存测试对象设计信息存储部1900,处理程序112保存将图1的特征信息提取部113的内容进行变更后的特征信息提取部1901,缺陷生成规则存储部118保存将图1的处理特性确定规则存储部119的内容进行了变更后的处理特性确定规则存储部1902,除此之外与图1的结构相同。
在处理特性确定规则存储部1902、缺陷基础信息存储部120中分别输入了处理特性确定规则、缺陷基础信息。处理特性确定规则、缺陷基础信息的详细情况在后面进行描述。
把经由输入装置103从外部输入的测试对象程序、测试对象设计信息、以及测试代码分别写入到测试对象代码存储部106、测试对象设计信息存储部1900、以及测试代码存储部110中。特征信息提取部1901参照从处理特性确定规则存储部1902读出的处理特性确定规则,同时对从测试对象设计信息存储部1900读出的测试对象设计信息进行补充,然后写入到测试对象设计信息存储部1900。其他处理部的功能与关于图1说明的相同。
图20是说明本实施例的软件测试自动评价装置的处理的流程图的例子。下面基于图20的流程图说明图19的各部件的动作。代替图2的步骤200、201和202,在图20中执行步骤2000、2001和2002。步骤203至206与图2的处理相同。
(步骤2000:测试代码和测试对象设计信息的输入)
步骤2000进行与图2的步骤200相同的处理,并且将从输入装置103输入的测试对象设计信息写入到测试对象设计信息存储部1900中。
在此,所谓测试对象设计信息,是在通过程序生成装置生成测试对象程序的情况下,作为定义测试对象程序的动作的信息输入到程序生成装置中的信息。在图21中表示测试对象设计信息的例子。
图21是在测试对象设计信息存储部1900中存储的本实施例的测试对象设计信息的例子。测试对象设计信息2100保存对象模块参照信息501、处理特性信息506、以及动作定义信息2101。对象模块参照信息501是用于确定测试对象的方法的信息,由类名502、方法名503、输入参数504、以及输出参数505构成。另外,在一个测试对象设计信息2100内,能够分别保存多个动作定义信息2101和处理特性信息506。动作定义信息2101是作为定义测试对象程序的动作的信息输入到程序生成装置的信息,包含所利用的模块或API、发出的例外等与程序的动作方法有关的信息。
在步骤2000完成的时刻,假设对于所有测试对象模块的设计信息2100,至少输入了对象模块参照信息501和动作定义信息2101。对于处理特性506,可以处于未输入状态。
此外,测试程序和测试对象程序可以利用与实施例1相同的程序。
(步骤2001:测试对象的特征信息的提取)
在步骤2001中,特征信息提取部1901参照从处理特性确定规则存储部1902读出的处理特性确定规则,同时对从测试对象设计信息存储部1900读出的测试对象设计信息进行补充,然后写入到测试对象设计信息存储部1900中。
在此,所谓处理特性确定规则存储部1902保存的处理特性确定规则,是将设计信息中记载的动作定义信息2101以及与测试测试对象程序时的观点相关联的特征相互对应的信息。在图22中表示处理特性确定规则的具体例。
图22是在处理特性确定规则存储部1902中存储的本实施例的处理特性确定规则的例子。处理特性确定规则由与某个测试观点相关联的处理特性600与表示测试对象程序的动作特征的信息即动作设定信息2201的组的对应关系2200的集合构成。一个对应关系2200中包含的动作设定信息2201的组构成某种逻辑关系。在此,作为动作设定信息2201,保存了成为某个程序具有处理特性600的根据的信息。在动作设定信息2201中放入的值是作为测试对象设计信息输入得到的值。具体来说,包含数据类型、方法的调用关系、数据依赖关系等。
图23是说明本实施例的对测试对象设计信息进行补充的处理的概念图的例子。首先,选择测试对象设计信息存储部1900中包含的一个测试对象设计信息2301。从处理特性确定规则存储部1902中找出该选择的测试对象设计信息2300对应的处理特性确定规则2300,将发现的所有信息追加写入到选中的测试对象设计信息2301的处理特性信息506中。对于测试对象设计信息存储部2301保存的所有的测试对象设计信息实施上述处理,由此完成步骤2001的处理。
(步骤2002:缺陷代码的生成)
步骤2002进行与实施例1的步骤201相同的动作,但缺陷生成部114分别利用测试对象设计信息存储部1900保存的测试对象设计信息2100的对象模块参照信息501和处理特性506,来代替测试对象代码特征信息存储部107保存的测试对象代码特征信息500的对象模块参照信息501和处理特性信息506。
步骤203至206可以是与实施例1相同的动作。
(实施例3)
在本实施例中,说明使用表示测试对象软件的开发者对测试对象软件要求的性质、特征的信息即规格信息的软件测试自动评价装置的例子。
图24是本实施例的软件自动评价装置的结构图的例子。
在图24所示的结构中,代替图1的测试对象代码特征信息存储部107,外部存储装置105保存测试对象规格信息存储部2400,处理程序112不保存图1的特征信息提取部113,缺陷生成规则存储部118不保存图1的处理特性确定规则存储部119,保存将图1的缺陷基础信息存储部120的内容进行变更后的缺陷基础信息存储部2401,除此之外与图1的结构相同。
缺陷基础信息存储部2401中输入了缺陷基础信息。关于缺陷基础信息的详细情况在后面进行描述。
把经由输入装置103从外部输入的测试对象程序、测试对象规格信息、以及测试代码分别写入到测试对象代码存储部106、测试对象规格信息存储部2400以及测试代码存储部110中。缺陷生成部114参照从缺陷基础信息存储部2401读出的缺陷基础信息,同时从测试对象代码特征信息存储部读出测试对象代码特征信息,生成对应的缺陷信息然后写入到缺陷信息存储部108中。其他处理部的功能与关联于图1说明的相同。
图25是说明本实施例的软件测试自动评价装置的处理的流程图的例子。下面基于图25的流程图说明图24的各部件的动作。代替图2的步骤200至202,在图25中执行步骤2500和2501。步骤203至206与图2的处理相同。
(步骤2500:测试代码和测试对象规格信息的输入)
步骤2500进行与图2的步骤200相同的处理,并且将从输入装置103输入的测试对象规格信息写入到测试对象规格信息存储部2400中。
在此,所谓测试对象规格信息,是表示测试对象软件的开发者对于测试对象软件要求的性质、特征的信息。在图26中表示测试对象设计信息的例子。
图26是在测试对象规格信息存储部2400中存储的本实施例的测试对象规格信息的例子。测试对象规格信息2600保存对象模块参照信息501和规格特性信息2601。对象模块参照信息501是用于确定测试对象的方法的信息,由类名502、方法名503、输入参数504、以及输出参数505构成。
另外,在一个测试对象规格信息2600内,能够保存多个规格特性信息2601。规格特性信息2601是构成测试对象软件的开发者对某个测试对象模块要求的性质、特征的信息,包含调用该模块的模块、API或从该模块调用的模块·API的限制、对包含程序中的变量的资源的访问权限等,对该模块的限制或动作的信息。
此外,测试程序和测试对象程序可以利用与实施例1相同的程序。
(步骤2501:缺陷代码的生成)
在步骤2501中,缺陷生成部114参照从缺陷基础信息存储部2401读出的缺陷基础信息,同时从测试对象规格信息存储部2400中读出测试对象规格信息。并且,根据读出的测试对象规格信息生成对应的缺陷信息,写入到缺陷信息存储部108中。
在此,缺陷基础信息是将测试对象模块的处理特性与该测试对象模块应该反映的程序缺陷的基础信息相对应的信息。在图27中表示缺陷基础信息的具体例。
图27是在缺陷基础信息存储部2401中存储的本实施例的缺陷基础信息的例子。图27所示的信息与图10的信息基本相同,但代替图10的“处理特性”1002,图27保存“特性”2701。此外,缺陷信息可以利用与实施例1相同的缺陷信息。
图28是说明本实施例的根据测试对象规格信息生成软件缺陷的处理2501的前半部分的软件选择的概念图的例子。缺陷生成部114从测试对象规格信息存储部2400选择一个测试对象规格信息2800。此外,选择缺陷基础信息存储部2401保存的一个缺陷基础信息2801。判定所选择的测试对象代码特征信息2800的规格特性2601是否满足所选择的缺陷基础信息2801保存的规格特性2701的条件。在满足条件的情况下,对于所选择的缺陷基础信息2801的缺陷样板集1003保存的所有缺陷样板信息1004,分别生成一个缺陷信息900。
此时,类名901、方法名902、以及自变量的类型信息903分别通过参照选中的测试对象代码特征信息保存的类名502、方法名503、以及输入参数504来取得。另外,缺陷类别904通过参照选中的缺陷基础信息2801保存的缺陷类别1001来取得。此外,缺陷编号905和程序片段906通过分别复制对应的缺陷基础信息的缺陷编号1005和程序片段样板1006来取得。在该阶段中,程序片段906包含代替文字串。另外,判定信息909为空栏。
图29是说明本实施例的根据测试对象规格信息生成软件缺陷的处理250的后半部分的缺陷信息置换的概念图的例子。在此,通过对生成的缺陷信息900的缺陷程序片段906中包含的代替文字串907进行置换,完成程序片段906。与代替文字串的意义相符,从测试对象代码特征信息提取相应的信息,置换文字串。把完成了程序片段906的置换的缺陷信息900写入缺陷信息存储部108中。
对于所选择的测试对象规格信息2800,对于满足规格特性2601的条件的所有的缺陷基础信息2801,进行图27和图29所示的操作。对于测试对象代码特征信息存储部107保存的所有的测试对象代码特征信息1100完成上述操作,由此完成步骤2501。
步骤203至206可以进行与实施例1相同的动作。
此外,本发明并不限定于上述实施例,包含各种变形例。例如,上述实施例为了容易理解地说明本发明而详细地进行了说明,不必限定于包括所说明的全部结构的装置。
另外,能够将某个实施例的部分结构置换为其他实施例的结构,另外还能够在某个实施例的结构中追加其他实施例的结构。另外,对于各实施例的结构的一部分,能够进行其他结构的追加、删除、置换。
另外,上述各结构、功能、处理部件、处理手段等的部分或全部可以通过例如以集成电路进行设计等,从而用硬件来实现。
符号说明
100:程序自动生成装置
101:CPU
102:存储器
103:输入装置
104:输出装置
105:外部存储装置
106:测试对象代码存储部
107:测试对象代码特征信息存储部
108:缺陷信息存储部
109:缺陷已混入代码存储部
110:测试代码存储部
111:测试评价结果存储部
112:处理程序
113:特征信息提取部
114:缺陷生成部
115:缺陷混入部
116:测试执行部
117:测试执行结果评价部
118:缺陷生成规则存储部
119:处理特性确定规则存储部
120:缺陷基础信息存储部

Claims (13)

1.一种软件测试自动评价装置,其判定针对测试对象生成的软件测试对于所述测试对象是否妥当,其特征在于,包括:
存储测试观点的单元,所述测试观点是将软件的动作或结构上的特征、性质与对于所述软件妥当的测试技术、测试手段相对应的信息;以及
缺陷生成单元,将预先设定的规则以及包含测试对象软件的特征、性质的特征信息作为输入,选择与所述特征、性质对应的缺陷模板,并且通过测试对象软件的所述特征信息进行补充,由此生成用于判定是否按照所述测试观点设计了所述软件测试的软件缺陷。
2.根据权利要求1所述的软件测试自动评价装置,其特征在于,
包括:
缺陷混入单元,基于所述软件缺陷改变所述测试对象软件,由此在测试对象软件中混入软件缺陷;以及
测试执行单元,与软件测试一并执行混入了所述软件缺陷的测试对象软件,检测并记录软件缺陷。
3.根据权利要求1或2所述的软件测试自动评价装置,其特征在于,包括:
测试执行结果评价单元,在通过将所述软件缺陷与在测试对象软件中混入了该软件缺陷时的软件测试的执行结果进行对照,能够评价为该软件测试不妥当时,确定该软件测试本来应满足且没有满足的测试观点。
4.根据权利要求1至3的任意一项所述的软件缺陷自动评价装置,其特征在于,包括:
特征信息提取单元,对测试对象软件进行程序分析,并将预先设定的规则与所述程序分析的结果进行对照,由此提取测试对象软件的特征、性质。
5.根据权利要求1至4的任意一项所述的软件测试自动评价装置,其特征在于,包括:
设计信息存储单元,在使用程序生成装置生成了所述测试对象软件的情况下,保存在生成测试对象程序时向所述程序生成装置输入的信息即设计信息,
所述缺陷生成单元使用所述设计信息存储单元保存的设计信息,来作为测试对象软件的特征、性质的信息的至少一部分。
6.根据权利要求1至5的任意一项所述的软件测试自动评价装置,其特征在于,包括:
规格信息存储单元,保存规格信息,该规格信息表示对所述测试对象软件要求的性质、特征,
所述缺陷生成单元使用所述规格信息存储单元保存的规格信息,作为测试对象软件的特征、性质的信息的至少一部分。
7.一种软件测试自动评价方法,使用处理装置判定针对测试对象生成的软件测试对于所述测试对象是否妥当,其特征在于,
将测试观点存储到存储装置,所述测试观点是将包含软件的动作或结构上的特征、性质的特征信息与对于所述软件妥当的测试技术、测试手段相对应的信息,
将预先设定的规则以及测试对象软件的特征、性质作为输入,选择与所述特征、性质对应的缺陷模板,
通过所述测试对象软件的所述特征信息进行补充,由此生成用于判定是否按照所述测试观点设计所述软件测试的软件缺陷。
8.根据权利要求7所述的软件测试自动评价方法,其特征在于,
基于所述软件缺陷改变所述测试对象软件,由此在测试对象软件中混入软件缺陷,
与软件测试一并执行混入了所述软件缺陷的测试对象软件,检测并记录软件缺陷。
9.根据权利要求7或8所述的软件测试自动评价方法,其特征在于,
在通过将所述软件缺陷与在测试对象软件中混入了该软件缺陷时的软件测试的执行结果进行对照,能够评价为该软件测试不妥当时,确定该软件测试本来应满足且没有满足的测试观点。
10.根据权利要求7至9的任意一项所述的软件缺陷自动评价方法,其特征在于,
对测试对象软件进行程序分析,并将预先设定的规则与所述程序分析的结果进行对照,由此提取测试对象软件的特征、性质。
11.根据权利要求7至10的任意一项所述的软件测试自动评价方法,其特征在于,
在使用程序生成装置生成了所述测试对象软件的情况下,在所述存储装置中保存在生成测试对象程序时向所述程序生成装置输入的信息即设计信息,
在生成所述缺陷时,使用预先保存的设计信息,来作为测试对象软件的特征、性质的信息的至少一部分。
12.根据权利要求1至5的任意一项所述的软件测试自动评价方法,其特征在于,
在所述存储装置中保存规格信息,该规格信息表示对所述测试对象软件要求的性质、特征,
所述缺陷生成单元使用所述存储装置保存的规格信息,作为测试对象软件的特征、性质的信息的至少一部分。
13.一种计算机可读取的存储介质,其特征在于,存储有用于执行权利要求7所述的软件测试自动评价方法的程序。
CN201310068200.6A 2012-04-06 2013-03-04 软件测试自动评价装置以及方法 Active CN103365772B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012087812A JP2013218492A (ja) 2012-04-06 2012-04-06 ソフトウェアテスト自動評価装置および方法
JP2012-087812 2012-04-06

Publications (2)

Publication Number Publication Date
CN103365772A true CN103365772A (zh) 2013-10-23
CN103365772B CN103365772B (zh) 2016-08-03

Family

ID=49367178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310068200.6A Active CN103365772B (zh) 2012-04-06 2013-03-04 软件测试自动评价装置以及方法

Country Status (2)

Country Link
JP (1) JP2013218492A (zh)
CN (1) CN103365772B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360946A (zh) * 2014-11-18 2015-02-18 电信科学技术第十研究所 一种测试缺陷的计算机实现的方法及计算机
CN104461878A (zh) * 2014-11-28 2015-03-25 中国航空无线电电子研究所 一种基于自定义模型的软件质量评价方法
WO2016015220A1 (en) * 2014-07-29 2016-02-04 Hewlett-Packard Development Company, L.P. Executable code abnormality detection

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666563B (zh) 2020-06-05 2023-07-18 北京百度网讯科技有限公司 用于验证应用运行状态的方法及装置
CN112732587B (zh) * 2021-01-21 2024-04-12 腾讯科技(深圳)有限公司 一种自动化测试日志的获取方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1752945A (zh) * 2005-11-02 2006-03-29 中国科学院软件研究所 安全数据库管理系统测试用例生成方法
US20080301813A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Testing Software Applications with Schema-based Fuzzing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1752945A (zh) * 2005-11-02 2006-03-29 中国科学院软件研究所 安全数据库管理系统测试用例生成方法
US20080301813A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Testing Software Applications with Schema-based Fuzzing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SI HUANG 等: "Repairing GUI Test Suties Using a Genetic Algorithm", 《SOFTWARE TESTING,VERIGICATION AND VALIDATION,2010 THIRD INTERNATIONAL CONFERENCE ON》, 10 April 2010 (2010-04-10), pages 245 - 254, XP 031684021 *
赵斌飞: "脚本自动生成在面向对象软件测试自动化中的应用", 《中国优秀硕士学位论全文数据库》, 31 December 2008 (2008-12-31) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016015220A1 (en) * 2014-07-29 2016-02-04 Hewlett-Packard Development Company, L.P. Executable code abnormality detection
US10459830B2 (en) 2014-07-29 2019-10-29 Micro Focus Llc Executable code abnormality detection
CN104360946A (zh) * 2014-11-18 2015-02-18 电信科学技术第十研究所 一种测试缺陷的计算机实现的方法及计算机
CN104360946B (zh) * 2014-11-18 2017-11-17 电信科学技术第十研究所 一种测试缺陷的计算机实现的方法及计算机
CN104461878A (zh) * 2014-11-28 2015-03-25 中国航空无线电电子研究所 一种基于自定义模型的软件质量评价方法

Also Published As

Publication number Publication date
JP2013218492A (ja) 2013-10-24
CN103365772B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
US8397104B2 (en) Creation of test plans
US11599453B2 (en) Vehicle function test apparatus and method of controlling the same
CN103365772A (zh) 软件测试自动评价装置以及方法
CN103257919B (zh) 脚本程序检查方法和装置
US10209984B2 (en) Identifying a defect density
US20140208297A1 (en) Validation of revised computer programs
US20120185669A1 (en) Program inspection method and non-transitory, computer readable storage medium storing inspection program
CN103488460B (zh) 自动标记源代码的系统和方法
CN113835643B (zh) 数据存储方法、装置、电子设备及可读存储介质
CN111209206A (zh) 一种软件产品的自动测试方法及系统
CN110018954A (zh) 代码质量检测、代码检测质量的评估方法、装置及设备
CN112925524A (zh) 一种检测驱动程序中不安全直接存储器访问的方法及装置
CN109977020B (zh) 一种自动化测试方法
CN114116505A (zh) 代码测试方法及装置
CN113094252B (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN113805861B (zh) 基于机器学习的代码生成方法、代码编辑系统及存储介质
CN110765008A (zh) 一种数据处理方法及装置
CN115563008A (zh) 代码覆盖率检测系统、方法、装置和存储介质
CN109117179A (zh) 一种软件的实现方法及平台
CN111950231B (zh) 一种bmc传感器信息检查比对方法及系统
US20110144958A1 (en) Detection of design redundancy
CN112015658A (zh) 一种用于软件集成测试用例的生成方法及装置
CN112035367B (zh) 一种大数据平台工作流正确性的校验方法及系统
CN116541305B (zh) 一种异常检测的方法、装置、电子设备及存储介质
EP4170502A1 (en) Method and device for automatically detecting potential failures in mobile applications

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