CN109684190A - 软件测试装置和方法 - Google Patents
软件测试装置和方法 Download PDFInfo
- Publication number
- CN109684190A CN109684190A CN201810835884.0A CN201810835884A CN109684190A CN 109684190 A CN109684190 A CN 109684190A CN 201810835884 A CN201810835884 A CN 201810835884A CN 109684190 A CN109684190 A CN 109684190A
- Authority
- CN
- China
- Prior art keywords
- software
- input data
- model
- output valve
- different information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 130
- 238000013522 software testing Methods 0.000 title claims abstract description 31
- 238000012360 testing method Methods 0.000 claims abstract description 186
- 238000011156 evaluation Methods 0.000 claims abstract description 82
- 238000004458 analytical method Methods 0.000 claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 claims abstract description 18
- 238000012546 transfer Methods 0.000 claims description 40
- 241001269238 Data Species 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 23
- 238000009825 accumulation Methods 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 7
- 210000001161 mammalian embryo Anatomy 0.000 description 7
- 239000012141 concentrate Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 235000013399 edible fruits Nutrition 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000013480 data collection Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000013095 identification testing Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种软件测试装置和方法,用于判断具有不可预测性的软件是否进行符合预期的动作。软件测试装置包括:数据转换部,其通过计算机接收测试输入数据,将测试输入数据转换为给与软件的软件输入数据和模型输入数据;软件执行部,其接收软件输入数据,基于软件输入数据执行测试对象的软件,输出执行结果;模型执行部,其接收关于软件的参考模型,基于模型输入数据和参考模型,生成包括执行软件得到的执行结果的允许输出值范围的模型允许输出值范围;差异分析部,其基于软件执行部输出的执行结果和模型执行部生成的模型允许输出值范围,生成差异信息;和判断部,其接收评价基准,基于差异信息和评价基准,进行软件的动作的判断。
Description
技术领域
本发明涉及软件测试装置和方法,特别涉及对与输入数据值对应的输出数据值存在不可预测性的软件进行测试的软件测试装置和方法。
背景技术
因为信息处理装置的性能提高,而要求计算机系统与现实世界紧密连接地工作。处理对象中例如包括以下3个项目:(1)使用大量传感器从现实世界收集数据,(2)经由大量致动器对现实世界产生作用,(3)以大量数据为对象的数据挖掘。这样的系统中,通过多个子系统协作,处理复杂地相互关联的大量数据。设计与现实世界紧密连接地工作的软件的情况下,难以像以往那样由设计者手动地构建复杂地相互关联并且处理大量数据的算法。为了解决该问题,出现了利用使用机器学习生成的判断算法(人工智能)的软件。一般而言,机器学习中的“监督式学习”中,将决定与输入值对应的输出值的学习数据集分为训练数据集和测试数据集,用后者评价使用前者进行学习的结果的精度。
专利文献1中记载的系统提供一种使用机器学习生成判断算法时的高效率的学习方法、和通过学习构建的算法的测试方法。该系统和方法中,将学习数据集分割为训练数据集和测试数据集,使用训练数据集生成判断(也称为“判定”)算法(例如人工神经网络),并且使用测试数据集评价适应评分。之后,对这些数据集的数据应用遗传算法重组数据集,根据共用的学习数据集生成达到最佳的适应评分的训练数据集和测试数据集。通过采用这样的方式,能够给出将学习数据集最佳地分割的方法,效率良好地进行高精度的学习。
现有技术文献
专利文献
专利文献1:日本特表2006-518062号公报
发明内容
发明要解决的技术问题
如背景技术中所述,对于构建通过多个子系统协作而处理复杂地相互关联的大量数据的系统的软件,不存在掌握其整体动作的设计者,不能明确地预测与输入软件的输入值对应的输出值。这样的软件是具有不可预测性的软件。一般而言,软件的测试是验证对于输入值能够得到设计上设想的输出值的行为,通过测试能够确认软件是否按照设计工作、即软件的可靠性。但是,具有不可预测性的软件不能在设计时决定与输入值对应的输出值,不能进行充分的测试来确认软件是否进行符合预期的动作。
专利文献1的技术,对于通过机器学习生成的判断算法,用从预先给出的数据集中选择的测试数据集进行评价。因此,在使用判断算法的软件的测试中能够使用的输入值和输出值也被限制在给出的数据集的范围内。这样只覆盖了这样的软件中设想的输入值的一部分,作为用于确保软件的可靠性的测试是不充分的。另一方面,因为机器学习的结果依赖于学习,所以难以预测与输入值对应的输出值,在现有技术中不能处理对给出的数据集中不包括的输入值的测试。为了确保以使用通过机器学习生成的判断算法的软件为代表的、在设计时不能决定与输入值对应的输出值的具有不可预测性的软件的可靠性,需要进行基于包括输出值不可预测的输入值的大量的测试数据的测试。
本发明的目的在于提供一种软件测试装置和方法,其判断具有不可预测性的软件是否进行了符合预期的动作。
本发明的优选的一例是一种软件测试装置,其通过计算机对作为测试对象的软件给出软件输入数据,基于来自软件的输出数据判断软件的动作,软件测试装置的特征在于,包括:数据转换部,其接收测试输入数据,将测试输入数据转换为给与软件的软件输入数据和模型输入数据;软件执行部,其接收软件输入数据,基于软件输入数据执行测试对象的软件,输出执行结果;模型执行部,其接收关于软件的参考模型,基于模型输入数据和参考模型,生成包括执行软件得到的执行结果的允许输出值范围的模型允许输出值范围;差异分析部,其基于软件执行部输出的执行结果和模型执行部生成的模型允许输出值范围,生成差异信息;和判断部,其接收评价基准,基于差异信息和评价基准,判断软件的动作。
发明的效果
根据本发明,能够得到一种软件测试装置和方法,其能够判断具有不可预测性的软件是否进行了符合预期的动作。
附图说明
图1是表示实施例的软件测试装置的结构的图。
图2是表示软件测试装置中的软件测试方法的流程图。
图3是表示参考模型的描述方法的一例的图。
图4是表示评价基准的描述方法的一例的图。
图5是表示模型允许输出值范围的结构的一例的图。
图6是表示差异信息的结构的一例的图。
图7是表示数据转换部进行的过程1的流程的流程图。
图8是表示软件执行部进行的过程2的流程的流程图。
图9是模型执行部进行的过程3的流程的流程图。
图10是表示从过程3调用的过程3A的流程的流程图。
图11是表示从过程3A调用的过程3B的流程的流程图。
图12是表示差异分析部进行的过程4的流程的流程图。
图13是表示一致性判断部进行的过程5的流程的流程图。
图14是表示从过程5调用的过程5A的流程的流程图。
图15是表示从过程5调用的过程5B的流程的流程图。
图16是表示实施例1中的输入输出数据的例子的图。
图17是表示实施例1中的第一参考模型和第一评价基准的描述例的图。
图18是表示实施例2中的参考模型的描述例的图。
图19是表示实施例2中的评价基准的描述例的图。
图20是表示实施例3中的输入输出数据的例子的图。
图21是表示实施例3中的第二参考模型和第二评价基准的例子的图。
图22是表示实施例5中的输入输出数据的例子的图。
图23是表示实施例5中的第三参考模型和第三评价基准的例子的图。
图24是表示实施例6中的输入输出数据的例子的图。
附图标记的说明
1:软件测试装置
101:测试对象软件
102:测试输入数据
103:参考模型
104:评价基准
105:数据转换部
106:软件输入数据
107:软件执行部
108:模型输入数据
109:模型执行部
110:软件输出数据
111:模型允许输出值范围
112:差异分析部
113:差异信息蓄积部
114:一致性判断部
115:判断结果
具体实施方式
下面,使用附图详细说明本发明的实施例。
【实施例1】
图1是表示软件测试装置1的结构的图,输入测试对象软件101、参考模型103和评价基准104,对测试输入数据102进行测试,输出判断结果115。一般而言,相对于一个测试对象软件101存在多个测试输入数据102,基于评价基准104评价对这些测试输入数据102测试的结果,生成判断结果115。数据转换部105从测试输入数据102中提取作为测试对象软件101的输入数据的软件输入数据106、和作为参考模型的输入数据的模型输入数据108。
软件执行部107基于软件输入数据106执行测试对象软件101,生成软件输出数据110。模型执行部109也根据模型输入数据108计算预期的软件输出数据的范围,生成模型允许输出值范围111。差异分析部112分析软件输出数据110是满足还是脱离模型允许输出值范围111,将分析结果保存在差异信息蓄积部113中。一致性判断部114按照输入的评价基准104对差异信息蓄积部113的差异信息进行评价,输出判断结果115。软件测试装置1的各功能部通过作为硬件资源的计算机的CPU(处理器)执行软件而实现。
本实施例中,用户在测试对象软件101和测试输入数据102之外还准备参考模型103和评价基准104,用软件测试装置验证测试对象软件101的输出值在评价基准104下处于参考模型允许的范围内。
图1中,在对同一测试对象软件101和测试输入数据102进行多个观点的测试的情况下,也可以准备多个模型执行部109、差异分析部112和一致性判断部114,对同一软件输出数据110使用多个参考模型103和评价基准104同时进行测试。另外,在模型允许输出值范围111依赖于软件输出的履历(即,历史)的情况下,也可以使软件输出数据110返回数据转换部105,用作模型输入数据108。
图2是表示软件测试装置1中的软件测试方法的流程图。软件测试装置1读取(即,读入)测试输入数据102(202),在不存在输入数据(202)的情况下,按照过程5所示的流程进行一致性判断(209),并结束(210)。在存在输入数据的情况下,将测试输入数据102转换为测试对象软件101的输入值(204),按照过程2所示的流程得到测试对象软件101的输出数据(205)。同样,将测试输入数据102转换为参考模型103的输入值(206),按照过程3所示的流程得到参考模型103的模型允许输出值范围111(207)。接着,按照过程4的流程进行软件输出数据110与模型允许输出值范围111之间的差异分析(208),返回步骤202读取下一个测试输入数据102。
图3是参考模型103的描述方法的一例,用户输入基于该描述方法描述的参考模型103。在图17中示出参考模型103的例子。实施例中,通过将计算机的动作抽象化而得到的形式模型即抽象机(也称为抽象机器),表达(表现)参考模型103。本实施例中,使用作为一种抽象机的有限状态机。有限状态机由抽象化的计算机的状态、对计算机的输入、用于状态转移的条件和来自计算机的输出构成。图3的描述方法是为了具体地描述实施例而使用的,并不限定本实施例使用的抽象机的描述方法。图3中用扩展BNF表达描述方法。此处,“{}”表示{}内的元素反复0次以上,“[]”表示[]内的元素可以不存在,“|”表示“或”,““””表示关键字。
参考模型103是一个以上转移的排列301,转移是左侧具有转移前的状态名、右侧具有一个以上转移目的地(也可以称为“转移前方”)的等式302。此处,转移目的地是有条件转移目的地和无条件转移目的地中的一方303。有条件转移目的地是由输入、转移条件、允许输出值范围和状态名构成的304,表示在输入满足转移条件时,输出对软件输出值预期的输出范围,转移至状态名的状态。此处,也可以不存在转移条件和允许输出值范围。无条件转移是仅由状态名构成的305,无条件地转移至状态名的状态。输入是一个以上输入变量的排列306,输入变量被转移条件参考。允许输出值范围是一个以上输出值的排列307,状态名是任意的识别符或开始状态308。此处,开始状态是表示模型的动作的起点的特别的识别符,本实施例中记作“S0”。也可以在参考模型103中描述不允许的输出值范围来代替允许输出值范围。
图4是评价基准104的描述方法的一例,用户输入基于该描述方法描述的评价基准104。在图17中示出评价基准104的例子。图4的描述方法是在本实施例中为了具体地描述实施例而使用的,并不限定本实施例使用的评价基准104的描述方法。与图3同样地,图4也用扩展BNF表达描述方法。评价基准104是一个以上权重指定的排列(401)。权重指定由转移源状态名(也称为“转移原状态名”)、转移目的地状态名和错误权重构成(402),指定在参考模型103中发生从转移源状态名的状态向转移目的地状态名的状态的转移时、对于与对应于此的测试对象软件101的输出之间的差异信息赋予的错误权重。
图5表示模型允许输出值范围111的结构的一例。该信息由模型执行部109生成,由差异分析部112使用。模型允许输出值范围111是识别测试输入数据102中的输入数据的输入编号、转移源状态名、转移目的地状态名、允许输出值范围、下一状态名的组的排列(501)。在对于参考模型103的转移源状态名的状态,存在输入编号的输入数据满足转移条件的有条件转移时,使转移目的地状态名与输出的允许输出范围构成组。下一状态名是转移后等待下一个输入数据的状态的状态名,接着转移目的地状态不存在后续的无条件转移时,与转移目的地状态名一致。存在无条件转移时,反复无条件转移直至到达有条件转移,将最后的无条件转移的状态名作为下一状态名。其中,图5的结构是在本实施例中为了具体地描述处理过程而与参考模型103对应地使用的,并不限定本实施例的模型允许输出值范围111的结构。
图6表示差异信息蓄积部113中保存的差异信息的结构的一例。差异信息由差异分析部112生成,可供一致性判断部114参考。差异信息与模型允许输出值范围111同样,是输入编号、转移源状态名、转移目的地状态名、下一状态名、差异评价值、软件输出数据110的组的排列(601)。差异信息分析部对模型允许输出值范围111的允许输出值范围与测试对象软件101的输出值的差异进行评价,生成差异信息。转移源状态名、转移目的地状态名、下一状态名与该模型允许输出值范围的转移源状态名、转移目的地状态名、下一状态名相同。与图5同样,图6的结构是在本实施例中为了具体地描述处理过程而与模型允许输出值范围111的结构以及评价基准104对应地使用的,并不限定本实施例的差异信息的结构。
图7是数据转换部105进行的处理的流程。数据转换部105读取由用户给出的测试输入数据102(702),如果不存在要处理的测试输入数据102(703),则结束处理(708)。在存在要处理的测试输入数据102的情况下,将其转换为测试对象软件101能够处理的输入值(704),将转换后的输入值作为软件输入数据106发送至软件执行部107(705)。接着,将同一测试输入数据102转换为参考模型103能够处理的输入值(706),将转换后的输入值作为模型输入数据108发送至模型执行部109(707)。之后,返回步骤702读取下一个测试输入数据102。
图8是过程2的处理流程,对测试对象软件101给出输入值,得到输出值。该处理由软件执行部107进行。软件执行部107读取由用户给出的测试对象软件101(802)。接着从数据转换部105接收软件输入数据106(803),如果不存在输入值(804)则结束处理(807)。如果存在输入值,则对输入值执行测试对象软件101得到输出值(805)。将得到的输出值作为软件输出数据110发送至差异分析部112(806),返回步骤803接收下一个软件输入数据106。
图9是过程3的处理流程,对于给出的输入值使参考模型103的状态转移,得到参考模型103中记载的测试对象软件101的输出值的要件即模型允许输出值范围111。该处理由模型执行部109进行。该处理流程中,作为暂时保存处理所需的信息的变量,使用当前状态集和下一状态集。模型执行部109读取由用户给出的参考模型103(902),作为初始值将开始状态加入当前状态集(903),使下一状态集为空(904)。从数据转换部105接收模型输入数据108(905),如果不存在输入值(906)则结束处理(913)。如果存在输入值,则选择当前状态集中的一个状态名并从当前状态集除去(907),以选择的状态名为参数进行过程3A(908)。如果当前状态集不为空(909)则返回步骤907,对于其余状态名反复进行处理。如果当前状态集为空,则将下一状态集中保存的状态名全部加入当前状态集中(910),输出过程3A生成的模型允许输出值范围111(911)。如果当前状态集不为空(912)则返回步骤904,继续进行处理。如果当前状态集为空,则结束处理(913)。
图10是从图9的过程3调用的过程3A的处理流程。过程3A从过程3接收转移源的状态名作为参数,生成模型允许输出值范围111。在该过程中,使用输出值集作为临时变量。首先从参考模型103中选择左侧具有参数的状态名的转移(1002),选择一个右侧的有条件转移目的地(1003)。如果有条件转移目的地不存在于参考模型103中(1004),则返回过程3。否则,将过程3中接收的输入值加入有条件转移目的地中记载的输入变量中,对转移条件进行评价(1005)。不满足转移条件时(1006),返回步骤1003选择下一个有条件转移目的地。满足转移条件时,使有条件转移目的地中记载的允许输出值范围和转移的状态名、转移目的地状态名构成组,生成允许输出值信息(1007)。此处,在参考模型103中描述了不允许的输出值范围的情况下,附加表示是不允许的输出值范围的标记。将允许输出值信息保存在输出值集中(1008),将转移目的地状态名作为下一状态名(1009),以下一状态名为参数进行过程3B(1010)。从过程3B返回后,将输出值集的允许输出值信息加入模型允许输出值范围111中(1011),返回步骤1003对其余的有条件转移目的地进行处理(1003)。
图11是从图10的过程3A调用的过程3B的处理流程。过程3B接收下一状态名作为参数,沿着无条件转移目的地,将下一状态名置换为等待下一个输入数据的状态的状态名。首先从参考模型103中选择左侧具有参数的状态名的转移,选择无条件转移目的地(1102)。如果不存在无条件转移目的地(1103),则将下一状态名加入下一状态集中(1107),在输出值集的允许输出值范围中加入下一状态名(1108),完成模型允许输出值范围111的组,返回调用源。如果选择的转移中存在无条件转移目的地,则对于转移的全部无条件转移目的地进行步骤1105至1106(1104)。将下一状态名置换为无条件转移目的地的转移目的地状态名(1105),将置换后的下一状态作为参数递归(递推)地进行过程3B的处理(1106)。如果处理结束,则返回调用源(1109)。
图12是过程4的处理流程,将从软件执行部107接收的软件输出数据110与从模型执行部109接收的模型允许输出值范围111进行对照,生成差异信息并保存在差异信息蓄积部113中。该处理由差异分析部112进行。首先从软件执行部107接收软件输出数据110(1202),如果不存在软件输出数据110(1203),则结束处理(1211)。如果存在软件输出数据110,则从模型执行部109接收模型允许输出值范围111(1204),对接收的全部模型允许输出值范围111进行步骤1206以后的步骤(1205)。如果软件输出数据110处于模型允许输出值范围111的允许输出值范围的范围内(1206)则令差异评价值为0(1207),如果在模型允许输出值范围111外则令差异评价值为1(1208)。但是,在对允许输出值范围附加了表示是不允许的输出值范围的标记的情况下,令处于范围内时的差异评价值为1,如果在范围外则令差异评价值为0。使模型允许输出值范围111的转移源状态名、转移目的地状态名、下一状态名、差异评价值、软件输出数据110构成组而生成差异信息(1209),保存在差异信息蓄积部113中(1210)。之后返回步骤1202,接收下一个软件输出数据110。另外,本实施例中如果软件输出数据110处于模型允许输出值范围111内则令差异评价值为0、否则为1,但也可以使用基于与模型允许输出值范围111的距离的差异评价值。
图13是过程5的处理流程,从差异信息蓄积部113中保存的差异信息中寻找完全覆盖测试输入数据102的差异信息系列,基于评价基准104进行评价并输出判断结果115。该处理由一致性判断部114进行。在该过程中,使用差异信息集作为临时变量。一致性判断部114读取由用户给出的评价基准104(1302),接着从差异信息蓄积部113接收差异信息(1303)。使差异状态集为空(1304),对于具有最初的输入编号的全部差异信息进行步骤1306以下的步骤(1305)。首先以输入编号和差异信息为参数进行过程5A(1306),对于差异信息集的全部差异信息系列进行过程5B(1307)。此处,在差异信息集中不存在差异信息系列的情况下不进行过程5B以下的过程,前进至步骤1305的下一个差异信息的处理。接收过程5B返回的判断结果115(1308),输出判断结果115(1309)。在步骤1305中不存在具有最初的输入编号的差异信息的情况下,或者关于全部差异信息的处理已结束的情况下,结束处理(1310)。
图14是从图13的过程5调用的过程5A的处理流程。过程5A寻找全部覆盖测试输入数据102的差异信息系列,保存在差异信息集中。过程5A以输入编号和差异信息为参数,如果输入编号是最后的测试输入数据102的输入编号(1402),则构建从最初的输入编号至最后的输入被链接了的差异信息的系列并保存在差异信息集中(1408),返回调用源(1409)。在参数的输入编号不是最后的输入编号时,得到参数的差异信息的下一状态名与转移源名一致的下一个输入编号的差异信息(1403)。当不存在这样的差异信息时(1404),不进行任何处理而返回调用源(1409)。
如果存在差异信息,则对这样的全部差异信息进行步骤1406以下的步骤(1405)。将参数的差异信息作为前差异信息,将步骤1403中得到的差异信息作为后差异信息,用链接将两者连接(1406),以下一个输入编号和后差异信息为参数递归地进行过程5A(1407)。之后,返回调用源(1409)。
图15是从图13的过程5调用的过程5B的处理流程。过程5B对过程5A中生成的差异信息系列应用评价基准104而生成评价值。在过程5B中使用处理输入编号作为临时变量,对处理中的输入编号进行管理。首先,使处理输入编号的初始值为最初的输入编号(1502),令评价的初始值为0(1503)。从作为参数给出的差异信息系列中选择与处理输入编号一致的差异信息(1504)。将选择的差异信息的转移源状态名以及转移目的地状态名与评价基准104对照而得到错误权重(1505),对差异信息的差异评价值乘以错误权重并累加至评价(1506)。如果处理输入编号是最后的输入编号(1507),则输出评价除以输入数据数量得到的值(1509)并返回调用源(1510)。如果处理输入编号不是最后的输入编号,则将下一个输入编号作为处理输入编号(1508)并返回步骤1504,继续处理。
说明将识别输入的图像的软件作为测试对象软件101的实施例,叙述本实施例的概要。实施例的目的是,对于任意给出的测试输入数据102,在评价基准104下评价测试对象软件101的输出数据(是否)满足要件。本实施例的测试是测试对象软件101(是否)满足参考模型103的验证,因此参考模型103提供测试对象软件101的可靠性的依据。
下面,说明达成实施例1的目的的流程。测试对象软件101根据输入的对象物的图像,将对象物的状态判断为以下5个类别中的任一个。
L1:有碰撞危险,L2:无碰撞危险,L3:有靠近可能性,L4:无靠近可能性,L5:不清楚
假定测试对象软件101具有通过机器学习等而生成的判断算法,不能逻辑地分析对于对象物的何种特征怎样评价并判断。即,前提是,测试对象软件101是不能根据输入即对象物的图像预测输出即判断结果的、具有不可预测性的软件。
测试对象软件101的要件是:图像中的对象物较大时判断有无碰撞危险;图像中的对象物较小时包括“不清楚”在内可以是任意的判断;处于两者中间时是“不清楚”以外的判断。测试对象软件101具有不可预测性时,即使其输出值部分地不满足要件,单纯地认为测试不合格也不一定是妥当的。例如在识别图像的情况下,完全消除受不恰当的特征量影响的错误判断,在现实上是困难的。另一方面,与要件对照,在错误判断的影响较大的情况下,认为测试不合格是妥当的。此处,图像中的对象物较大时使错误判断的评价严格,对象物较小时使评价宽松。
本实施例的软件测试装置输入测试对象软件101、参考模型103、评价基准104和测试输入数据102,输出判断结果115。具体而言,要件是,相对于画面的纵向(纵方向)的长度h,画面中的对象物的纵向的长度o:
·小于h/5时,判断值可以是L1、L2、L3、L4、L5中的任意一项;
·在h/5以上且小于h/2时,判断值是L1、L2、L3、L4中的任意一项;
·在h/2以上时,判断值是L1、L2。
图17的1701是使用图3中记载的描述方法描述了该要件的第一参考模型的例子。例如,第一参考模型1701的第一行中,当前状态名是S0。模型输入数据1605包括对象物的纵向的长度o和画面的纵向的长度h。转移条件是o小于h/5。模型输入数据1605满足转移条件时对软件输出数据1604预期的输出范围即允许输出值范围1606是L1、L2、L3、L4、L5。并且,表示模型输入数据1605满足转移条件时转移至下一状态名S1的状态。
关于评价基准104,图像中的对象物较大时如果判断值不满足要件则使错误权重较大,图像中的对象物较小时如果判断值不满足要件则使错误权重较小,综合地判断测试是否合格。使用图4中记载的描述方法表达用于这样的是否合格判断的权重。图17的1702是第一评价基准的例子。在图16中示出测试输入数据102的例子。本例中,将输入编号1601为1至5的5个图像作为测试输入数据1602输入。
数据转换部105按照图7中记载的过程1的流程,将测试输入数据102转换为测试对象软件101的输入值和参考模型103的输入值。本实施例的测试对象软件101接收从测试输入数据102截取的对象物的图像作为输入值。另一方面,参考模型103如上所述接收测试输入数据102的画面的高度h和对象物的高度o作为输入值。1603b表示数据转换部105输出的软件输入数据106,1605表示模型输入数据108。
软件执行部107按照图8中记载的过程2的流程,对于从数据转换部105接收的软件输入数据106执行测试对象软件101,将输出值作为软件输出数据110发送至差异分析部112。本实施例中,测试对象软件101假定在输入了软件输入数据1603的情况下输出软件输出数据1604,对输出值进行测试。在此情况下,软件执行部107输出的软件输出数据1604如下所述:
对于输入编号1的输入值,为L5;
对于输入编号2的输入值,为L1;
对于输入编号3的输入值,为L5;
对于输入编号4的输入值,为L3;
对于输入编号5的输入值,为L2。
模型执行部109按照图9中记载的过程3的流程,对于从数据转换部105接收的模型输入数据108生成模型允许输出值范围111,并将其发送至差异分析部112。在1605中示出模型执行部109接收的输入值,在1606中示出基于图17中记载的参考模型103计算得到的允许输出值范围。模型执行部109输出的模型允许输出值范围111如下所述:
输入编号1(S0,S1,{L1,L2,L3,L4,L5},S0)
输入编号2(S0,S3,{L1,L2},S0)
输入编号3(S0,S2,{L1,L2,L3,L4},S0)
输入编号4(S0,S2,{L1,L2,L3,L4},S0)
输入编号5(S0,S3,{L1,L2},S0)。
差异分析部112按照图12中记载的过程4的流程,将软件执行部107输出的软件输出数据110与模型执行部109输出的模型允许输出值范围111对照而生成差异信息。差异信息蓄积部113中保存的差异信息如下所述:
输入编号1(S0,S1,S0,0,L5)
输入编号2(S0,S3,S0,0,L1)
输入编号3(S0,S2,S0,1,L5)
输入编号4(S0,S2,S0,0,L3)
输入编号5(S0,S3,S0,0,L2)。
本例中,对于输入编号3的输入值,测试对象软件101的输出值不满足参考模型103的允许输出值范围。
一致性判断部114按照图13中记载的过程5的流程,从差异信息蓄积部113中保存的差异信息中找出覆盖全部测试输入数据103的差异信息系列,基于评价基准104进行评价并输出判断结果115。本例中,差异信息蓄积部113中保存的差异信息系列仅有一个,它覆盖了输入编号1至5,因此关于该差异信息系列,基于1702的第一评价基准加权。以下示出差异信息和应用的评价基准104。
对于输入编号1(S0,S1,S0,0,L5)应用S0->S1/0.0;
对于输入编号2(S0,S3,S0,0,L1)应用S0->S3/0.7;
对于输入编号3(S0,S2,S0,1,L5)应用S0->S2/0.3;
对于输入编号4(S0,S2,S0,0,L3)应用S0->S2/0.3;
对于输入编号5(S0,S3,S0,0,L2)应用S0->S3/0.7。
对于输入编号3,因为不满足参考模型103的允许输出值范围,所以通过图15的1506的步骤,对差异评价值1乘以错误权重0.3,评价成为0.3,在1509的步骤中,该评价除以作为输入数据数量的5得到的值0.06成为判断结果115。本例中,当测试对象软件101的输出值全部处于模型允许输出值范围111内时,判断结果115为0。本实施例中,在得到了非0的判断结果115的情况下由软件测试装置的用户判断测试合格还是不合格,软件装置输出上述判断结果115。
另外,此处举例说明了的测试输入数据102和与其对应的测试对象软件101的输出数据,是为了说明本实施例的流程而假设(假定)的。依照上述流程,对于任意的测试输入数据102,在执行测试对象软件101之前输出数据不清楚的情况下,均能够进行测试。
通过以上过程,实施例1对于任意给出的测试输入数据102,能够在评价基准104下评价测试对象软件101的输出数据(是否)满足要件,有助于测试对象软件101的可靠性的验证。参考模型103提供测试对象软件101的可靠性的依据。
【实施例2】
实施例1用独立的图像作为测试输入数据102,但实施例2是对于按时序(时间序列)排序的图像,描述参考模型103进行测试的例子。在图18中示出这样的参考模型103的例子。因为用有限状态机(也称为“有限状态机器”)表述参考模型103,所以本例中使用状态间的转移表达排序。状态S0表示开始状态,S1表示对象物较小地出现的状态,S2表示在S1之后对象物较大地出现的状态,S3表示在S2之后对象物更大地出现的状态。
1801表示在开始状态后对象物最初较小地出现,之后是对象物进一步变大的1802和大小不变的1803中的任一个。1802中对象物变大的情况下,之后是对象物进一步变大的1804、大小不变的1805、和变小的1806中的任一个。对象物进一步变大的情况1804下,之后是对象物的大小不变的1807和变小的1808中的任一个。
图19是对于这样的排序了的输入数据,规定了测试对象软件101的输出值不满足模型允许输出值范围111时的错误权重的评价基准104的例子。基于该参考模型103,认为不符合排序的测试输入数据102是不恰当的,实施例2的软件测试装置拒绝测试。例如,从S1的对象物出现了的状态向S3的对象物在画面的一半以上出现的状态的直接转移不存在于参考模型103中,判断对象物较小地出现的测试输入数据102之后对象物较大地出现的测试输入数据102是不恰当的。即,在给出这样的测试输入数据102的情况下,在一致性判断部114的过程5中不存在全部覆盖测试输入数据102的差异信息系列,不输出判断结果115。根据实施例2,能够获得如下效果:在对测试对象的软件提供按时序排序了的测试用输入数据的情况下能够进行对象软件的测试。
【实施例3】
图20和图21是输入多个参考模型103和评价基准104并行地进行测试对象软件101的测试的实施例3的说明图。图20表示实施例3中的输入输出数据的例子,由测试输入数据2001、软件输出数据2002、第一参考模型用的第一模型输入值2003、第一参考模型用的允许输出值范围a2004、第二参考模型用的第二模型输入值2005、第二参考模型用的允许输出值范围b2006构成。实施例3中,除了实施例1的参考模型103和评价基准(以下称为第一参考模型和第一评价基准)之外,还输入图21所示的第二参考模型2101和第二评价基准2102。
第二参考模型2101,从对象物的前进方向的观点出发,在推定对象物朝向横向(横方向)的情况下要求软件输出值是L2(无碰撞危险)、L4(无靠近可能性)或L5(不清楚)。即,相对于画面中的对象物的横向的长度w,
·纵向的长度o小于w/2时,软件输出数据110是L2、L4、L5中的任一个;
·纵向的长度o在w/2以上时,软件输出数据110是L1、L2、L3、L4、L5中的任一个。
第二参考模型2101中,T0是开始状态。
如图20所示,实施例3中,对于一系列测试输入数据2001得到软件输出数据2002,同时对于第一参考模型和第二参考模型并行地从模型执行部109得到第一参考模型的允许输出值范围2004和第二参考模型的允许输出值范围2006。差异分析和一致性判断对各参考模型103的允许输出值范围进行,对于第一参考模型如实施例1所示得到0.06作为判断结果115。
当对于第二参考模型也应用同样的流程时,对于第四个测试输入数据2001,由于软件输出数据2002不在允许输出值范围内,所以应用第二评价基准的权重0.5,得到0.1作为判断结果115。测试是否合格,基于从两个不同观点出发的判断结果115决定。根据实施例3,由于能够得到基于多个参考模型和评价基准的判断结果,所以能够提高判断结果的可靠性。
【实施例4】
本实施例是通过从测试对象软件101导出参考模型103而省略参考模型103的输入的实施例。用图1的软件测试装置按以下两个阶段对测试对象软件101进行测试。
(1)参考模型导出阶段
准备用于导出参考模型的测试输入数据102和参考模型103的雏型(模板),基于测试对象软件101和评价基准104导出参考模型103。
(2)测试对象软件101的测试阶段
使用导出的参考模型103,对于测试对象软件101进行实施例1中记载的测试。
此处,在参考模型导出阶段中,在表示模型执行部109进行的过程3的流程的流程图(图9)的步骤902中,代替参考模型103,读入参考模型雏型。另外,在表示一致性判断部114进行的过程5的流程的流程图(图13)的步骤1309中,代替输出判断结果115,根据使判断结果115最小的差异信息系列的软件输出数据110计算允许输出值范围307,导出参考模型103。下面,示出根据实施例1所示的测试对象软件101导出参考模型103的过程。
以下示出参考模型雏型的一例。
S0=(o,h)o<h/5(L1,L2,L3,L4,L5)->S1
S1=->S0
S0=(o,h)h/5<=o<h/2(L1,L2,L3,L4,L5)->S2
S2=->S0
S0=(o,h)h/2<=o(L1,L2,L3,L4,L5)->S3
S3=->S0
本例中,使用测试对象软件101的输出值缩小雏型中的允许输出值范围。评价基准104与图17相同。另外,作为用于导出参考模型103的测试输入数据102,使用图16的输入编号1至5的数据。
对于这5个测试输入数据102,参考模型雏型输出的模型允许输出值范围111是:
输入编号1(S0,S1,{L1,L2,L3,L4,L5},S0)
输入编号2(S0,S3,{L1,L2,L3,L4,L5},S0)
输入编号3(S0,S2,{L1,L2,L3,L4,L5},S0)
输入编号4(S0,S2,{L1,L2,L3,L4,L5},S0)
输入编号5(S0,S3,{L1,L2,L3,L4,L5},S0)。
另一方面,软件输出数据110如图16所示从输入编号1至5依次为L5、L1、L5、L3、L2。
从这里起,在差异信息蓄积部113中保存以下差异信息系列:
输入编号1(S0,S1,S0,0,L5)
输入编号2(S0,S3,S0,0,L1)
输入编号3(S0,S2,S0,0,L5)
输入编号4(S0,S2,S0,0,L3)
输入编号5(S0,S3,S0,0,L2)。
因为该差异信息系列使判断结果115成为最小,所以一致性判断部114根据软件输出数据110计算参考模型103的允许输出值范围307,导出参考模型103。这通过将转移源状态名以及转移目的地状态名与参考模型雏型对照,根据软件输出数据110计算参考模型的允许输出值范围307而进行。
这样,能够根据测试对象软件101导出以下参考模型103。
S0=(o,h)o<h/5(L5)->S1
S1=->S0
S0=(o,h)h/5<=o<h/2(L3,L5)->S2
S2=->S0
S0=(o,h)h/2<=o(L1,L2)->S3
S3=->S0
在测试对象软件101的测试阶段中,使用导出的参考模型作为图1的参考模型103,对于新的测试输入数据102对测试对象软件101进行测试。此时,测试对象软件101和评价基准104,与参考模型导出阶段的基本相同。根据实施例4,由于能够基于雏型的参考模型导出测试用的参考模型,所以例如在对将原本的软件升级后的软件进行测试的情况下,能够节省生成参考模型103的劳力和时间。
【实施例5】
用图22、图23说明实施例5,实施例5将测试对象软件101的输出值的一部分经数据转换部105用作参考模型的模型输入数据2205。图22表示由输入编号2201、测试输入数据2202、软件输出数据2204、模型输入数据2205和允许输出值范围2206构成的输入输出数据的例子。
实施例5是识别手写的数字的例子,识别对象是从公历1990年至2009年的4位数字。对于测试输入数据2202的测试对象软件101的输出值是L0:0、L1:1、L2:2、L3:3、L4:4、L5:5、L6:6、L7:7、L8:8、L9:9中的任一个。在图23中示出第三参考模型。开始状态是S0,给出模型输入数据2205即c时,与其值无关地,允许输出值范围2206输出L1、L2,转移至状态S1(2301)。这表示最初的数字必须被识别为1或2。
如果状态S1下的c是L1则允许输出值范围2206仅有L9,转移至状态S2(2302)。如果状态S2下的模型输入数据c是L9,则允许输出值范围2206仅有L9,转移至状态S3(2303)。如果状态S3下的模型输入数据c是L9,则允许输出值范围2206是L0至L9,转移至状态S4(2304)。状态S4无条件地转移至状态S0(2305)。
另一方面,如果状态S1下的模型输入数据2205即c是L2,则允许输出值范围2206仅有L0,转移至状态S5(2306)。如果状态S5下的模型输入数据c是L0,则允许输出值范围2206仅有L0,转移至状态S6(2307)。如果状态S6下的模型输入数据c是L0,则允许输出值范围2206是L0至L9,转移至状态S7(2308)。状态S7无条件地转移至状态S0(2309)。在软件输出值不在第三参考模型的允许输出值范围内的情况下,在下一个测试输入数据2202中参考模型的输入数据值不再满足转移条件,因此结束测试。
此时,在一致性判断部114的过程5中不存在全部覆盖测试输入数据2202的差异信息系列,不输出判断结果115。另外,对于直到测试结束的差异信息系列改变过程5以使得输出判断结果115时,根据图23的第三评价基准,因图15的步骤1509的效果,而输出与测试结束前识别的数字的数量成反比地低(适合性高)的判断值。
图22是对于由4个手写数字构成的测试输入数据2202的、实施例5的测试的概要。首先,对于输入编号1的测试输入数据2202,数据转换部105生成表示测试开始的虚设(ダミ)的输入数据值并发送至模型执行部109,使模型的状态从S0转移至S1,并且得到允许输出值范围L1、L2。另一方面,在软件执行部107中,对于输入编号1的测试输入数据2202得到L1作为软件输出数据2204。此后,数据转换部105将软件输出数据2204用作参考模型103的模型输入数据2205。
即,对于输入编号2的测试输入数据2202,参考模型103的模型输入数据2205是L1,从参考模型103得到允许输出值范围L9。另一方面,对于输入编号2的测试输入数据2202,软件输出数据2204如果是L9,则处于允许输出值范围内。将该软件输出数据2204用作对于输入编号3的测试输入数据2202的、参考模型103的模型输入数据2205。这样,如果4个手写数字全部都在允许输出值范围内,则基于评价基准104得到0作为判断结果115。
本实施例中,将图1的软件输出数据110发送至数据转换部105,制作模型输入数据108。另一方面,测试输入数据102的信息,除了表示测试开始的最初的虚设数据之外,未用于制作模型输入数据108。根据实施例5,在难以根据测试输入数据102直接制作(生成)模型输入数据108的情况下,能够将测试对象软件101用作生成模型输入数据108的手段。
【实施例6】
下面对实施例6进行说明,实施例6分析差异信息蓄积部113中蓄积的差异信息,将其用作测试输入数据。图24表示实施例6中的输入输出数据的例子,由输入编号2401、测试输入数据2402、软件输入数据2403、软件输出数据2404、模型输入数据2405和允许输出值范围2406构成。实施例1中,已知对输入编号1至输入编号5的测试输入数据2402的测试结束后,对于差异信息进行分析,对于输入编号3的测试输入数据2402的软件输出数据2404(与输入编号3的测试输入数据2402对应的软件输出数据2404)不在允许输出值范围2406内。
于是,实施例6中,为了重点地进行与输入编号3类似的测试,在一致性判断部114中生成将输入编号3的输入数据略微变形而得到的测试输入数据310、312、313,作为追加输入数据追加至测试输入数据102中。图24是对于输入编号3的测试输入数据,进行了图像的放大(输入编号310、312)和缩小(输入编号311)的例子。根据实施例6,对于允许输出值范围2406的范围外的测试输入数据,能够追加测试输入数据。因此,对于处于允许输出值范围外的情况下的测试输入数据,能够进行深入下挖的测试。
Claims (13)
1.一种软件测试装置,其通过计算机对作为测试对象的软件提供软件输入数据,基于来自所述软件的输出数据进行所述软件的动作的判断,所述软件测试装置的特征在于,包括:
数据转换部,其接收测试输入数据,将所述测试输入数据转换为提供给所述软件的所述软件输入数据和模型输入数据;
软件执行部,其接收所述软件输入数据,基于所述软件输入数据执行测试对象的软件,输出执行结果;
模型执行部,其接收关于所述软件的参考模型,基于所述模型输入数据和所述参考模型,生成包括执行所述软件得到的执行结果的允许输出值范围的模型允许输出值范围;
差异分析部,其基于所述软件执行部输出的执行结果和所述模型执行部生成的所述模型允许输出值范围,生成差异信息;和
判断部,其接收评价基准,基于所述差异信息和所述评价基准,进行所述软件的动作的判断。
2.如权利要求1所述的软件测试装置,其特征在于:
所述测试输入数据是按时序排序的数据,在所述参考模型中用状态间的转移来描述排序,按照所述测试输入数据的顺序,所述差异分析部基于所述软件执行部输出的执行结果和所述模型允许输出值范围,生成所述差异信息。
3.如权利要求1所述的软件测试装置,其特征在于:
在所述参考模型中描述了当前状态名、所述模型输入数据、转移条件、所述执行结果的输出值范围、和满足了所述转移条件的情况下的下一状态名,
所述输出值范围是执行所述软件得到的所述执行结果的允许输出值范围或非允许输出值范围,
所述模型执行部基于所述模型输入数据和所述参考模型,在满足了所述转移条件的情况下,基于所述当前状态名和所述下一状态名生成所述模型允许输出值范围,
所述差异分析部基于所述模型允许输出值范围和执行所述软件得到的所述执行结果,生成所述差异信息。
4.如权利要求1所述的软件测试装置,其特征在于:
所述参考模型具有第一参考模型和第二参考模型,所述评价基准具有第一评价基准和第二评价基准,
所述判断部输出基于所述第一参考模型和所述第一评价基准的第一判断结果、和基于所述第二参考模型和所述第二评价基准的第二判断结果。
5.如权利要求1所述的软件测试装置,其特征在于:
所述模型执行部基于第一参考模型和所述模型输入数据,生成第一模型允许输出值范围,
所述差异分析部基于所述软件执行部输出的执行结果和所述第一模型允许输出值范围,生成由与多个所述测试输入数据对应的第一差异信息构成的差异信息系列,
所述判断部基于所述差异信息系列和第一判断基准,计算与所述测试输入数据对应的允许输出值范围,导出包括所述允许输出值范围的第二参考模型,
所述模型执行部基于所述第二参考模型和所述模型输入数据,生成第二模型允许输出值范围,
所述差异分析部基于所述软件执行部输出的执行结果和所述第二模型允许输出值范围,生成第二差异信息,
所述判断部基于所述第二差异信息和所述第一判断基准,进行所述软件的动作的判断。
6.如权利要求1所述的软件测试装置,其特征在于:
将所述软件执行部输出的执行结果作为所述模型输入数据。
7.如权利要求1所述的软件测试装置,其特征在于:
在所述软件执行部输出的执行结果处于所述允许输出值范围之外的情况下,所述判断部基于成为了范围外的所述测试输入数据,生成新的所述测试输入数据。
8.如权利要求1所述的软件测试装置,其特征在于:
作为测试对象的所述软件,是与输入数据对应的输出数据存在不可预测性、且在执行软件前不能决定输出数据的软件。
9.一种软件测试方法,其通过计算机对作为测试对象的软件提供软件输入数据,基于来自所述软件的输出数据进行所述软件的动作的判断,所述软件测试方法的特征在于:
接收测试输入数据,根据所述测试输入数据生成提供给所述软件的所述软件输入数据和模型输入数据;
接收所述软件输入数据,基于所述软件输入数据执行测试对象的软件,输出执行结果;
接收关于所述软件的参考模型,基于所述模型输入数据和所述参考模型,生成包括所述执行结果的允许输出值范围的模型允许输出值范围;
基于所述执行结果和所述模型允许输出值范围,生成差异信息;
接收评价基准,基于所述差异信息和所述评价基准,进行所述软件的动作的判断。
10.如权利要求9所述的软件测试方法,其特征在于:
接收第一参考模型,基于第一模型输入数据和所述第一参考模型,生成第一模型允许输出值范围;
基于所述执行结果和所述第一模型允许输出值范围,生成第一差异信息;
接收第一评价基准,基于所述第一差异信息和所述第一评价基准,进行第一判断;
接收第二参考模型,基于所述第一模型输入数据和所述第二参考模型,生成第二模型允许输出值范围;
基于所述执行结果和所述第二模型允许输出值范围,生成第二差异信息;
接收第二评价基准,基于所述第二差异信息和所述第二评价基准,进行第二判断。
11.如权利要求9所述的软件测试方法,其特征在于:
基于第一参考模型和所述模型输入数据,生成第一模型允许输出值范围;
基于所述执行结果和所述第一模型允许输出值范围,生成由与多个所述测试输入数据对应的第一差异信息构成的差异信息系列;
基于所述差异信息系列,计算与所述测试输入数据对应的允许输出值范围,导出包括所述允许输出值范围的第二参考模型;
基于所述第二参考模型和所述模型输入数据生成第二模型允许输出值范围;
基于所述执行结果和所述第二模型允许输出值范围,生成第二差异信息,接收所述评价基准,基于所述第二差异信息和所述评价基准,进行所述软件的动作的判断。
12.如权利要求9所述的软件测试方法,其特征在于:
在所述执行结果处于所述允许输出值范围之外的情况下,生成所述测试输入数据的追加数据。
13.如权利要求9所述的软件测试方法,其特征在于:
作为测试对象的所述软件,是与输入数据对应的输出数据存在不可预测性、且在执行软件前不能决定输出数据的软件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017202563A JP6937659B2 (ja) | 2017-10-19 | 2017-10-19 | ソフトウェアテスト装置および方法 |
JP2017-202563 | 2017-10-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684190A true CN109684190A (zh) | 2019-04-26 |
CN109684190B CN109684190B (zh) | 2022-02-22 |
Family
ID=63921256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810835884.0A Expired - Fee Related CN109684190B (zh) | 2017-10-19 | 2018-07-26 | 软件测试装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11055210B2 (zh) |
JP (1) | JP6937659B2 (zh) |
CN (1) | CN109684190B (zh) |
GB (1) | GB2568366B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377526A (zh) * | 2019-07-31 | 2019-10-25 | 赛汇检测(广州)有限公司 | 一种ai智能软件的测试方法 |
CN111027277A (zh) * | 2019-11-12 | 2020-04-17 | 天津大学 | 一种软硬件协同的验证方法 |
CN115113921A (zh) * | 2022-08-29 | 2022-09-27 | 云账户技术(天津)有限公司 | 代码重构价值的评估方法、装置、电子设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7007529B2 (ja) * | 2019-11-22 | 2022-01-24 | 有人宇宙システム株式会社 | 人工知能システムの安全性検証システム、安全性検証方法、および安全性検証プログラム |
US11010286B1 (en) | 2020-02-18 | 2021-05-18 | International Business Machines Corporation | Software testing with machine learning models |
CN111506514B (zh) * | 2020-07-01 | 2020-10-27 | 深圳云步互娱网络科技有限公司 | 一种应用于消除类游戏的智能测试方法及系统 |
CN112560393B (zh) * | 2020-12-17 | 2023-01-24 | 中科芯云微电子科技有限公司 | Eda软件工具的比对验证方法及装置 |
US11874931B2 (en) * | 2021-02-11 | 2024-01-16 | Bank Of America Corporation | Electronic system for identifying faulty code and vulnerabilities in software programs using linked evaluation tools |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085681A1 (en) * | 2004-10-15 | 2006-04-20 | Jeffrey Feldstein | Automatic model-based testing |
US20090055331A1 (en) * | 2007-08-23 | 2009-02-26 | International Business Machines Corporation | Method and apparatus for model-based testing of a graphical user interface |
US20110145653A1 (en) * | 2008-08-15 | 2011-06-16 | Verum Holding B.V. | Method and system for testing complex machine control software |
CN104063312A (zh) * | 2013-03-22 | 2014-09-24 | 株式会社日立制作所 | 测试用例生成方法及测试用例生成装置 |
US20150301108A1 (en) * | 2014-04-18 | 2015-10-22 | Breker Verification Systems | Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2606085B2 (ja) * | 1993-06-28 | 1997-04-30 | 日本電気株式会社 | プログラム評価方式 |
WO2004063831A2 (en) | 2003-01-15 | 2004-07-29 | Bracco Imaging S.P.A. | System and method for optimization of a database for the training and testing of prediction algorithms |
JP4849303B2 (ja) * | 2005-08-25 | 2012-01-11 | 株式会社国際電気通信基礎技術研究所 | 行動指針決定装置及びコンピュータプログラム |
US7908596B2 (en) * | 2007-01-05 | 2011-03-15 | International Business Machines Corporation | Automatic inspection of compiled code |
US8549476B2 (en) * | 2009-07-30 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Comparison of result of program operation to result of an operation of a different version of the program |
US20130007772A1 (en) * | 2011-06-28 | 2013-01-03 | Unisys Corporation | Method and system for automated system migration |
US8930765B2 (en) * | 2012-07-31 | 2015-01-06 | Oracle International Corporation | Systems and methods for feedback driven regression testing |
US9317410B2 (en) * | 2013-03-15 | 2016-04-19 | International Business Machines Corporation | Testing functional correctness and idempotence of software automation scripts |
JP2015005189A (ja) * | 2013-06-21 | 2015-01-08 | 株式会社オートネットワーク技術研究所 | Ecu評価装置、コンピュータプログラム及びecu評価方法 |
JP2016115175A (ja) * | 2014-12-16 | 2016-06-23 | 株式会社東芝 | ソフトウェアテスト装置およびソフトウェアテストプログラム |
JP6360802B2 (ja) * | 2015-02-20 | 2018-07-18 | 株式会社デンソーアイティーラボラトリ | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両 |
-
2017
- 2017-10-19 JP JP2017202563A patent/JP6937659B2/ja active Active
-
2018
- 2018-07-26 CN CN201810835884.0A patent/CN109684190B/zh not_active Expired - Fee Related
- 2018-09-11 GB GB1814758.7A patent/GB2568366B/en not_active Expired - Fee Related
- 2018-09-12 US US16/129,141 patent/US11055210B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085681A1 (en) * | 2004-10-15 | 2006-04-20 | Jeffrey Feldstein | Automatic model-based testing |
US20090055331A1 (en) * | 2007-08-23 | 2009-02-26 | International Business Machines Corporation | Method and apparatus for model-based testing of a graphical user interface |
US20110145653A1 (en) * | 2008-08-15 | 2011-06-16 | Verum Holding B.V. | Method and system for testing complex machine control software |
CN104063312A (zh) * | 2013-03-22 | 2014-09-24 | 株式会社日立制作所 | 测试用例生成方法及测试用例生成装置 |
US20150301108A1 (en) * | 2014-04-18 | 2015-10-22 | Breker Verification Systems | Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377526A (zh) * | 2019-07-31 | 2019-10-25 | 赛汇检测(广州)有限公司 | 一种ai智能软件的测试方法 |
CN111027277A (zh) * | 2019-11-12 | 2020-04-17 | 天津大学 | 一种软硬件协同的验证方法 |
CN115113921A (zh) * | 2022-08-29 | 2022-09-27 | 云账户技术(天津)有限公司 | 代码重构价值的评估方法、装置、电子设备及存储介质 |
CN115113921B (zh) * | 2022-08-29 | 2022-11-08 | 云账户技术(天津)有限公司 | 代码重构价值的评估方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
GB2568366B (en) | 2020-04-08 |
JP6937659B2 (ja) | 2021-09-22 |
US20190121722A1 (en) | 2019-04-25 |
GB2568366A (en) | 2019-05-15 |
US11055210B2 (en) | 2021-07-06 |
JP2019075035A (ja) | 2019-05-16 |
CN109684190B (zh) | 2022-02-22 |
GB201814758D0 (en) | 2018-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684190A (zh) | 软件测试装置和方法 | |
CN104798043B (zh) | 一种数据处理方法和计算机系统 | |
Carr et al. | Parallel peak pruning for scalable SMP contour tree computation | |
Ward et al. | PADE: a high-performance placer with automatic datapath extraction and evaluation through high dimensional data learning | |
CN106228183A (zh) | 一种半监督学习分类方法与装置 | |
Ghodsi et al. | Generating and characterizing scenarios for safety testing of autonomous vehicles | |
CN105138335A (zh) | 一种基于控制流图的函数调用路径提取方法及装置 | |
CN112132014A (zh) | 基于非督导金字塔相似性学习的目标重识别方法及系统 | |
CN111045670B (zh) | 一种二进制代码与源代码间复用关系的识别方法与装置 | |
CN110110663A (zh) | 一种基于人脸属性的年龄识别方法及系统 | |
CN109344969B (zh) | 神经网络系统及其训练方法以及计算机可读介质 | |
CN105745618A (zh) | 在无超高多项式成本的情况下求解np完全问题 | |
CN111476192A (zh) | 基于智慧交通的截取图像合成方法及大数据云服务器 | |
Nouri et al. | Building faithful high-level models and performance evaluation of manycore embedded systems | |
CN112035345A (zh) | 一种基于代码片段分析的混合深度缺陷预测方法 | |
CN109685805A (zh) | 一种图像分割方法及装置 | |
CN113312874A (zh) | 基于改进深度强化学习的总体布线方法 | |
CN109147868A (zh) | 蛋白质功能预测方法、装置、设备及存储介质 | |
Liao et al. | Track-assignment detailed routing using attention-based policy model with supervision | |
CN110647461A (zh) | 多信息融合的回归测试用例排序方法及系统 | |
CN110097077A (zh) | 点云数据分类方法、装置、计算机设备和存储介质 | |
CN102184136B (zh) | 一种验证aadl模型运行状态与需求一致性的方法 | |
CN116841564B (zh) | 一种数据处理方法、装置、设备以及计算机可读存储介质 | |
CN109743200B (zh) | 基于资源特征的云计算平台计算任务成本预测方法及系统 | |
TW201218008A (en) | Intelligent architecture creator |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220222 |