CN113157582B - 测试脚本执行序列确定方法及装置 - Google Patents

测试脚本执行序列确定方法及装置 Download PDF

Info

Publication number
CN113157582B
CN113157582B CN202110464919.6A CN202110464919A CN113157582B CN 113157582 B CN113157582 B CN 113157582B CN 202110464919 A CN202110464919 A CN 202110464919A CN 113157582 B CN113157582 B CN 113157582B
Authority
CN
China
Prior art keywords
test
script
test script
transition probability
input
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
CN202110464919.6A
Other languages
English (en)
Other versions
CN113157582A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110464919.6A priority Critical patent/CN113157582B/zh
Publication of CN113157582A publication Critical patent/CN113157582A/zh
Application granted granted Critical
Publication of CN113157582B publication Critical patent/CN113157582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种测试脚本执行序列确定方法及装置,可用于金融领域或其他领域。所述方法包括:获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合;根据功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列。本发明通过预先建立的变形马尔科夫模型,利用待测试的输入测试场景及转移概率输入值,确定测试脚本的执行序列,由此大大减少了人力成本,避免人工选择的复杂以及可能的遗漏,且增强了测试的针对性,提高了测试的效率及准确性。

Description

测试脚本执行序列确定方法及装置
技术领域
本发明涉及自动化测试技术领域,尤指一种测试脚本执行序列确定方法及装置。
背景技术
在自动化测试执行中,往往存在这么一种情况,开发只修改了部分代码模块,影响到某个功能及上下游。需要多个测试脚本联合执行才能验证到,在选取哪些脚本或者决定执行次序的时候,会存在大量人工选择的情况。这样在修改较为频繁的时候,特别技术性改造和模块解耦的背景下,效率低下。如果全量执行,则存在对于场景的针对性疏通,无执行顺序编排,以及执行不相关脚本等问题。
发明内容
针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种测试脚本执行序列确定方法及装置,实现在测试执行中,自动确定最优的测试脚本执行序列。
为了实现上述目的,本发明实施例提供一种测试脚本执行序列确定方法,所述方法包括:
获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合;
根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列。
可选的,在本发明一实施例中,所述变形马尔科夫模型是通过如下方式预先建立的:
根据获取的多个测试脚本及对应的历史执行序列,确定各测试脚本之间的转移概率实际值;
对所述测试脚本进行主成分提取,得到主成分属性;
根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景;
根据所述测试场景、候选测试脚本集合、转移概率实际值及生成概率,得到所述变形马尔科夫模型。
可选的,在本发明一实施例中,所述根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景包括:
根据所述主成分属性及所述测试脚本,确定各测试脚本对应的脚本树;
利用所述脚本树及所述主成分属性,确定多个测试场景及各测试场景对应的候选测试脚本集合;
根据所述脚本树、所述主成分属性及所述测试场景,构建贝叶斯网络,并根据所述贝叶斯网络确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率。
可选的,在本发明一实施例中,所述根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列包括:
若所述转移概率输入值等于所述转移概率实际值,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最强相关性测试脚本执行序列;
若所述转移概率输入值等于1,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最大覆盖率测试脚本执行序列。
本发明实施例还提供一种测试脚本执行序列确定装置,所述装置包括:
数据获取模块,用于获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合;
执行序列模块,用于根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列。
可选的,在本发明一实施例中,所述装置还包括:
历史数据模块,用于根据获取的多个测试脚本及对应的历史执行序列,确定各测试脚本之间的转移概率实际值;
主成分提取模块,用于对所述测试脚本进行主成分提取,得到主成分属性;
生成概率模块,用于根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景;
模型建立模块,用于根据所述测试场景、候选测试脚本集合、转移概率实际值及生成概率,得到所述变形马尔科夫模型。
可选的,在本发明一实施例中,所述生成概率模块包括:
脚本树单元,用于根据所述主成分属性及所述测试脚本,确定各测试脚本对应的脚本树;
测试场景单元,用于利用所述脚本树及所述主成分属性,确定多个测试场景及各测试场景对应的候选测试脚本集合;
生成概率单元,用于根据所述脚本树、所述主成分属性及所述测试场景,构建贝叶斯网络,并根据所述贝叶斯网络确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率。
可选的,在本发明一实施例中,所述执行序列模块包括:
相关性序列单元,用于若所述转移概率输入值等于所述转移概率实际值,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最强相关性测试脚本执行序列;
覆盖率序列单元,用于若所述转移概率输入值等于1,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最大覆盖率测试脚本执行序列。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明通过预先建立的变形马尔科夫模型,利用待测试的输入测试场景及转移概率输入值,确定测试脚本的执行序列,由此大大减少了人力成本,避免人工选择的复杂以及可能的遗漏,且增强了测试的针对性,提高了测试的效率及准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种测试脚本执行序列确定方法的流程图;
图2为本发明实施例中场景与脚本组的转换查找网格示意图;
图3为本发明实施例中建立变形马尔科夫模型的流程图;
图4为本发明实施例中确定生成概率的流程图;
图5为本发明实施例中贝叶斯网络的示意图;
图6为本发明实施例中确定测试脚本执行序列的流程图;
图7为本发明实施例一种测试脚本执行序列确定装置的结构示意图;
图8为本发明另一实施例中测试脚本执行序列确定装置的结构示意图;
图9为本发明实施例中生成概率模块的结构示意图;
图10为本发明实施例中执行序列模块的结构示意图;
图11为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供一种测试脚本执行序列确定方法及装置,可用于金融领域或其他领域,需要说明的是,本发明的测试脚本执行序列确定方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的测试脚本执行序列确定方法及装置应用领域不做限定。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明实施例一种测试脚本执行序列确定方法的流程图,本发明实施例提供的测试脚本执行序列确定方法的执行主体包括但不限于计算机。图中所示的方法包括:
步骤S1,获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合。
其中,获取使用者输入的输入测试场景及转移概率输入值。输入测试场景为待选取测试脚本序列的测试场景,由多个功能片段描述组成,功能片段描述可以为文字描述。每个功能片段描述对应一个由多个测试脚本组成的候选测试脚本集合。
进一步的,可以将确定实际测试脚本执行序列的过程看成一个查找器,查找器的功能是一个根据输入的测试场景查找较优的脚本序列以顺序执行。每一个输入场景按照规范化的功能片段描述拼装,每一个功能片段描述可以对应某个程序(功能)的多个脚本,把一个场景对应的脚本从左到右连起来,就是实际的测试脚本执行序列,从图2可看出,这是一张有向图,亦被称为网格图或者篱笆图。
具体的,如图2中所示,y1,y2…yN是使用者输入的输入测试场景(由功能片段组成序列);w11,w12,w13是第一个功能片段描述y1的对应程序的候选的测试脚本,可以用变量w1代表这三个候选脚本,即候选测试脚本集合;以此类推。从第一个测试脚本到最后一个测试脚本可以组成很多个测试脚本执行序列,每一个测试脚本执行序列(即实际测试脚本组)和图中每一个路径一一对应。
进一步的,转移概率输入值代表了使用者所需要选取测试脚本序列要满足的条件。具体的,若转移概率输入值等于各测试脚本之间的转移概率实际值,则说明待选取的测试脚本序列需要满足关联性最高、使用频度最高的要求。若转移概率输入值等于1,则说明待选取的测试脚本序列需要满足覆盖率最高的要求。
步骤S2,根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列。
其中,预先建立的变形马尔科夫模型,如公式(1)所示。
其中,公式(1)左边主要为业务含义,即在输入y1,y2…yN时对应的最优的实际测试脚本执行序列w1,w2…wN;公式(1)右边为技术含义,即转移概率(可由转移概率输入值进行赋值)和生成概率的连乘结果中最优结果时,参数w1,w2…wN的取值。w∈W,代表wi的取值在所有的候选脚本集合W中。P(wi|wi-1)代表测试脚本执行序列的各测试脚本之间的转移概率,可以由转移概率输入值进行赋值;P(yi|wi)由经过主成分分析和贝叶斯网络分析之后的wi的测试脚本与功能片段描述yi的生成概率。
进一步的,将功能片段描述及转移概率输入值输入至预先建立的变形马尔科夫模型中进行计算处理,可以在多个候选测试脚本集合中,得到与输入测试场景及转移概率输入值对应的最优的实际测试脚本执行序列w1,w2…wN
作为本发明的一个实施例,如图3所示,变形马尔科夫模型是通过如下方式预先建立的:
步骤S21,根据获取的多个测试脚本及对应的历史执行序列,确定各测试脚本之间的转移概率实际值。
其中,变形马尔科夫模型是利用已有历史的测试脚本及历史执行序列进行建立的,代表了测试场景与测试脚本执行序列的关系。而变形马尔科夫模型在使用过程中,也是在已有历史的测试脚本中,确定输入测试场景对应的测试脚本执行序列。
进一步的,根据公式(2)可以计算候选测试脚本集合中各测试脚本之间的转移概率实际值。
P(wi|wi-1)=P(wi,wi-1)/P(wi-1) (2)
其中,公式(2)右侧分母为边缘概率,分子为联合概率。
进一步的,通过在测试执行终端上对实际脚本执行进行埋点,对所有执行测试脚本以脚本名称作为索引进行统计,得到总的脚本执行次数作为大小#,在各种测试场景前后相邻出现了多少次#(wi-1,w),而本身wi-1出现的次数#(wi-1)。
进一步的,根据大数定理,在测试脚本库不断丰富的情况下,相对频度就等于概率,即:
即推导出:
由此可得到各测试脚本之间的转移概率,即转移概率实际值。
进一步的,在大多数场景下,由于需要通跑所有关联的脚本,即满足覆盖率最大,则无需寻找“最优”结果,则只要有相邻次数,则直接设定转移概率等于1,即转移概率输入值为1。
步骤S22,对所述测试脚本进行主成分提取,得到主成分属性。
其中,生成概率的计算同通常的马尔科夫模型使用的鲍姆韦尔奇算法有所不同,测试场景的描述不同于测试脚本序列,无法预知需要多少功能片段去描述该序列,所以采用类似新闻分类的方法比如贝叶斯网络、余弦定理等,将各测试脚本归类到不同场景下,并给出对应权重值(相关性)。
进一步的,对于程序(接口)级别的测试脚本进行主成分分析,保留脚本中有重要影响的字段作为其主成分属性。在分析之前,需要规范化脚本库中所有具有相同业务含义字段的数据字典的取值,以协方差计算为主的主成分分析为成熟实践,此处略细节。以金融市场个人建立委托的程序的脚本为例,建立主成分属性结果如下表1,其中,“业务产品”字段由于可能对应程序的脚本已默认指定产品,字段并无,这时可以人工添加,以区分于其他脚本。
表1
步骤S23,根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景。
其中,输入测试场景从属于测试场景,因而各测试场景也由多个功能片段描述组成,并且每一功能片段描述对应一个候选测试脚本集合。
进一步的,利用主成分属性及测试脚本,可以建立多个脚本树,并通过对脚本树进行聚类分析等处理,得到多个测试场景。
进一步的,利用测试场景、脚本树及主成分属性,建立它们之间的贝叶斯网络。由贝叶斯网络可以确定各测试脚本与测试场景之间的生成概率。
步骤S24,根据所述测试场景、候选测试脚本集合、转移概率实际值及生成概率,得到所述变形马尔科夫模型。
其中,根据测试场景、候选测试脚本集合、转移概率实际值及生成概率,构建变形马尔科夫模型,即公式(1):
在本实施例中,如图4所示,根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景包括:
步骤S31,根据所述主成分属性及所述测试脚本,确定各测试脚本对应的脚本树。
其中,脚本树的生成是以某脚本为执行起点,后续执行的所有相关联的脚本,均算入该脚本树。基于主成分属性,可以得到主成分数据,具体的,可以预先埋点、索引等等形成链树结构的主成分数据,与主成分属性不同的是,该主成分数据代表该脚本所属的脚本树与某个关键字的紧密程度,可看作该脚本的全量文本。比如基于表1的第一个脚本可以构造对应脚本树J1的主成分数据(即文本关键字)如下表2,其中“12”为脚本树J1中所有脚本的对应主成分取值出现的次数。
表2
外汇 获利委托 买入 先买后买 801 平仓 一级行 网银 ……
12 8 6 6 3 6 4 10 ……
其中,使用脚本树和主成分数据关联矩阵的奇异值分解,或者使用余弦距离的聚类(成熟技术,不再详述),可以将他们分成n类(n可由测试工程师设定,如果想一个场景覆盖更多的关联脚本,则可以调小)。这样对于一个脚本树,可以把它归到一类或者若干类中。同一类的脚本树,共享很多主成分,这样脚本通过与之对应的脚本树,与主成分建立了一种关系,这种关系表明一些脚本属于同一类或者不属于同一类。比如表2,按照中等粒度的分类,该脚本属于“外汇”“获利委托”“平仓”等等分类,相关性的比较根据矩阵的不同而不同,不一定是12:8:6。
步骤S32,利用所述脚本树及所述主成分属性,确定多个测试场景及各测试场景对应的候选测试脚本集合。
其中,将上述脚本树和基于主成分属性得到的主成分数据的关联矩阵转90度,进行奇异值分解,或者对每个主成分数据F以脚本树J作为维度,建立一个向量,再进行向量的聚类(成熟技术,不再详述),那么得到的是对主成分数据F的一个分类而不是对文本的分类。分出来的每一类称之为一个测试场景T。
进一步的,一个测试场景T可以包含多个主成分数据F,一个主成分数据F也可以属于多个测试场景T。一个脚本(树)可以对应多个测试场景T,一个测试场景也可以对应多个脚本(树)。此外,某脚本树为第i个测试脚本序列wi的某个测试脚本wij为执行起点,所有后续脚本组成的链树结构,可以直接映射为wij,由此可以确定各测试场景对应的候选测试脚本集合。
步骤S33,根据所述脚本树、所述主成分属性及所述测试场景,构建贝叶斯网络,并根据所述贝叶斯网络确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率。
其中,如图5所示为场景测试T、主成分数据F及脚本树J三者的贝叶斯网络,各因子之间的连线的取值为互相之间的相关性,即上述分解、聚类的结果,也就是生成概率。
进一步的,由于无法以功能片段序列来描述测试脚本序列,应用场景可以是最大的覆盖率去选取对应的测试脚本,则统一以测试场景T来代表y1,y2…yN。生成概率P(yi|wi)的取值,即wi对应的脚本(树)J与测试场景T的相关性取值。
在本实施例中,如图6所示,根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列包括:
步骤S41,若所述转移概率输入值等于所述转移概率实际值,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最强相关性测试脚本执行序列。
其中,若只需要找到最合适的执行脚本以重点测试,则用步骤S21大数定理的结果,也不考虑合并极为接近的生成概率。求解公式(1),将寻找最大概率的问题变成寻找多条最短路径的问题,这样可以得到多条较合适的测试脚本序列w1,w2…wN
寻找最短路径算法如下:
对公式(1)右边取对数同时取反,并定义d(wi-1,wi)=执行场景i-1到执行场景i的最短路径=-logP(wi|wi-1).P(yi|wi)=转移概率和生成概率的乘积,则右边的连乘关系变成了加法d(w1,wN)=d(w1,w2)+...+d(wN-1,wN),即可用动态规划算法分步求解以得到w1到wN的最短路径,该算法为成熟实践,此处略细节。
步骤S42,若所述转移概率输入值等于1,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最大覆盖率测试脚本执行序列。
其中,多数条件下,设定的P(wi|wi-1)均相同,并且各测试脚本与场景的生成概率(相关性)在很多情况下,会极为接近,可合并接近的生成概率。如图5举例,F2=外汇,F3=平仓,T2=外汇平仓,J3与T2的相关性为0.65,J1与T2的相关性为0.54。假设还有一个Jn与T2的相关性为0.646,则可视为J3和Jn在路径选取中拥有相同优先级。
进一步的,脚本树J与测试脚本序列w1,w2...wN的关系解释如下:某脚本树为第i个测试脚本序列wi的某个候选测试脚本wij为执行起点,所有后续脚本组成的链树结构,可以直接映射为wij
在本实施例中,两个不同的测试脚本执行序列选取场景的区别在于:前者是选取相关性最大、平时跑的最多的一条路径去执行,比较适合由人工去仔细核对相关测试结果;后者是选取多条跟场景相关性较大的多条测试脚本执行序列。
本发明通过预先建立的变形马尔科夫模型,利用待测试的输入测试场景及转移概率输入值,确定测试脚本的执行序列,由此大大减少了人力成本,避免人工选择的复杂以及可能的遗漏,且增强了测试的针对性,提高了测试的效率及准确性。
如图7所示为本发明实施例一种测试脚本执行序列确定装置的结构示意图,图中所示装置包括:
数据获取模块10,用于获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合。
其中,获取使用者输入的输入测试场景及转移概率输入值。输入测试场景为待选取测试脚本序列的测试场景,由多个功能片段描述组成,功能片段描述可以为文字描述。每个功能片段描述对应一个由多个测试脚本组成的候选测试脚本集合。
进一步的,可以将确定实际测试脚本执行序列的过程看成一个查找器,查找器的功能是一个根据输入的测试场景查找较优的脚本序列以顺序执行。每一个输入场景按照规范化的功能片段描述拼装,每一个功能片段描述可以对应某个程序(功能)的多个脚本,把一个场景对应的脚本从左到右连起来,就是实际的测试脚本执行序列,从图2可看出,这是一张有向图,亦被称为网格图或者篱笆图。
具体的,如图2中所示,y1,y2…yN是使用者输入的输入测试场景(由功能片段组成序列);w11,w12,w13是第一个功能片段描述y1的对应程序的候选的测试脚本,可以用变量w1代表这三个候选脚本,即候选测试脚本集合;以此类推。从第一个测试脚本到最后一个测试脚本可以组成很多个测试脚本执行序列,每一个测试脚本执行序列(即实际测试脚本组)和图中每一个路径一一对应。
进一步的,转移概率输入值代表了使用者所需要选取测试脚本序列要满足的条件。具体的,若转移概率输入值等于各测试脚本之间的转移概率实际值,则说明待选取的测试脚本序列需要满足关联性最高、使用频度最高的要求。若转移概率输入值等于1,则说明待选取的测试脚本序列需要满足覆盖率最高的要求。
执行序列模块20,用于根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列。
其中,预先建立的变形马尔科夫模型,如公式(1)所示。
进一步的,将功能片段描述及转移概率输入值输入至预先建立的变形马尔科夫模型中进行计算处理,可以在多个候选测试脚本集合中,得到与输入测试场景及转移概率输入值对应的最优的实际测试脚本执行序列w1,w2...wN
作为本发明的一个实施例,如图8所示,所述装置还包括:
历史数据模块30,用于根据获取的多个测试脚本及对应的历史执行序列,确定各测试脚本之间的转移概率实际值。
其中,变形马尔科夫模型是利用已有历史的测试脚本及历史执行序列进行建立的,代表了测试场景与测试脚本执行序列的关系。而变形马尔科夫模型在使用过程中,也是在已有历史的测试脚本中,确定输入测试场景对应的测试脚本执行序列。
进一步的,根据公式(2)可以计算候选测试脚本集合中各测试脚本之间的转移概率实际值。
进一步的,通过在测试执行终端上对实际脚本执行进行埋点,对所有执行测试脚本以脚本名称作为索引进行统计,得到总的脚本执行次数作为大小#,在各种测试场景前后相邻出现了多少次#(wi-1,w),而本身wi-1出现的次数#(wi-1)。
进一步的,根据大数定理,在测试脚本库不断丰富的情况下,相对频度就等于概率。
进一步的,在大多数场景下,由于需要通跑所有关联的脚本,即满足覆盖率最大,则无需寻找“最优”结果,则只要有相邻次数,则直接设定转移概率等于1,即转移概率输入值为1。
主成分提取模块40,用于对所述测试脚本进行主成分提取,得到主成分属性。
其中,生成概率的计算同通常的马尔科夫模型使用的鲍姆韦尔奇算法有所不同,测试场景的描述不同于测试脚本序列,无法预知需要多少功能片段去描述该序列,所以采用类似新闻分类的方法比如贝叶斯网络、余弦定理等,将各测试脚本归类到不同场景下,并给出对应权重值(相关性)。
进一步的,对于程序(接口)级别的测试脚本进行主成分分析,保留脚本中有重要影响的字段作为其主成分属性。在分析之前,需要规范化脚本库中所有具有相同业务含义字段的数据字典的取值,以协方差计算为主的主成分分析为成熟实践,此处略细节。
生成概率模块50,用于根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景。
其中,输入测试场景从属于测试场景,因而各测试场景也由多个功能片段描述组成,并且每一功能片段描述对应一个候选测试脚本集合。
进一步的,利用主成分属性及测试脚本,可以建立多个脚本树,并通过对脚本树进行聚类分析等处理,得到多个测试场景。
进一步的,利用测试场景、脚本树及主成分属性,建立它们之间的贝叶斯网络。由贝叶斯网络可以确定各测试脚本与测试场景之间的生成概率。
模型建立模块60,用于根据所述测试场景、候选测试脚本集合、转移概率实际值及生成概率,得到所述变形马尔科夫模型。
其中,根据测试场景、候选测试脚本集合、转移概率实际值及生成概率,构建变形马尔科夫模型,即公式(1)。
在本实施例中,如图9所示,所述生成概率模块50包括:
脚本树单元51,用于根据所述主成分属性及所述测试脚本,确定各测试脚本对应的脚本树;
测试场景单元52,用于利用所述脚本树及所述主成分属性,确定多个测试场景及各测试场景对应的候选测试脚本集合;
生成概率单元53,用于根据所述脚本树、所述主成分属性及所述测试场景,构建贝叶斯网络,并根据所述贝叶斯网络确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率。
在本实施例中,如图10所示,所述执行序列模块20包括:
相关性序列单元21,用于若所述转移概率输入值等于所述转移概率实际值,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最强相关性测试脚本执行序列;
覆盖率序列单元22,用于若所述转移概率输入值等于1,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最大覆盖率测试脚本执行序列。
基于与上述一种测试脚本执行序列确定方法相同的申请构思,本发明还提供了上述一种测试脚本执行序列确定装置。由于该一种测试脚本执行序列确定装置解决问题的原理与一种测试脚本执行序列确定方法相似,因此该一种测试脚本执行序列确定装置的实施可以参见一种测试脚本执行序列确定方法的实施,重复之处不再赘述。
本发明通过预先建立的变形马尔科夫模型,利用待测试的输入测试场景及转移概率输入值,确定测试脚本的执行序列,由此大大减少了人力成本,避免人工选择的复杂以及可能的遗漏,且增强了测试的针对性,提高了测试的效率及准确性。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图11所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理器130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图11中所示的所有部件;此外,电子设备600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种测试脚本执行序列确定方法,其特征在于,所述方法包括:
获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合;
根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列;其中,所述测试脚本执行序列是通过将一个场景对应的脚本从左到右连起来得到的;
其中,所述根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列包括:
若所述转移概率输入值等于转移概率实际值,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最强相关性测试脚本执行序列;
若所述转移概率输入值等于1,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最大覆盖率测试脚本执行序列;
其中,所述变形马尔科夫模型如下式所示:
其中,式中左侧为业务含义,表示在输入y1,y2...yN时对应的最优的实际测试脚本执行序列w1,w2...wN;式中右侧为技术含义,表示转移概率和生成概率的连乘结果中最优结果时,参数w1,w2...wN的取值;w∈W,代表wi的取值在所有的候选脚本集合W中;P(wi|wi-1)代表测试脚本执行序列的各测试脚本之间的转移概率,由转移概率输入值进行赋值;P(yi|wi)代表由经过主成分分析和贝叶斯网络分析之后的wi的测试脚本与功能片段描述yi的生成概率。
2.根据权利要求1所述的方法,其特征在于,所述变形马尔科夫模型是通过如下方式预先建立的:
根据获取的多个测试脚本及对应的历史执行序列,确定各测试脚本之间的转移概率实际值;
对所述测试脚本进行主成分提取,得到主成分属性;
根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景;
根据所述测试场景、候选测试脚本集合、转移概率实际值及生成概率,得到所述变形马尔科夫模型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景包括:
根据所述主成分属性及所述测试脚本,确定各测试脚本对应的脚本树;
利用所述脚本树及所述主成分属性,确定多个测试场景及各测试场景对应的候选测试脚本集合;
根据所述脚本树、所述主成分属性及所述测试场景,构建贝叶斯网络,并根据所述贝叶斯网络确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率。
4.一种测试脚本执行序列确定装置,其特征在于,所述装置包括:
数据获取模块,用于获取输入测试场景及转移概率输入值;其中,所述输入测试场景包括多个功能片段描述,每一个功能片段描述对应一个候选测试脚本集合;
执行序列模块,用于根据所述功能片段描述及所述转移概率输入值,利用预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的测试脚本执行序列;其中,所述测试脚本执行序列是通过将一个场景对应的脚本从左到右连起来得到的;
其中,所述执行序列模块包括:
相关性序列单元,用于若所述转移概率输入值等于转移概率实际值,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最强相关性测试脚本执行序列;
覆盖率序列单元,用于若所述转移概率输入值等于1,则根据所述功能片段描述及预先建立的变形马尔科夫模型,在与所述功能片段描述对应的候选测试脚本集合中,确定与所述输入测试场景及所述转移概率输入值对应的最大覆盖率测试脚本执行序列;
其中,所述变形马尔科夫模型如下式所示:
其中,式中左侧为业务含义,表示在输入y1,y2...yN时对应的最优的实际测试脚本执行序列w1,w2...wN;式中右侧为技术含义,表示转移概率和生成概率的连乘结果中最优结果时,参数w1,w2...wN的取值;w∈W,代表wi的取值在所有的候选脚本集合W中;P(wi|wi-1)代表测试脚本执行序列的各测试脚本之间的转移概率,由转移概率输入值进行赋值;P(yi|wi)代表由经过主成分分析和贝叶斯网络分析之后的wi的测试脚本与功能片段描述yi的生成概率。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
历史数据模块,用于根据获取的多个测试脚本及对应的历史执行序列,确定各测试脚本之间的转移概率实际值;
主成分提取模块,用于对所述测试脚本进行主成分提取,得到主成分属性;
生成概率模块,用于根据所述主成分属性及所述测试脚本,确定多个测试场景,以及各测试场景对应的候选测试脚本集合,并确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率;其中,所述测试场景包括所述输入测试场景;
模型建立模块,用于根据所述测试场景、候选测试脚本集合、转移概率实际值及生成概率,得到所述变形马尔科夫模型。
6.根据权利要求5所述的装置,其特征在于,所述生成概率模块包括:
脚本树单元,用于根据所述主成分属性及所述测试脚本,确定各测试脚本对应的脚本树;
测试场景单元,用于利用所述脚本树及所述主成分属性,确定多个测试场景及各测试场景对应的候选测试脚本集合;
生成概率单元,用于根据所述脚本树、所述主成分属性及所述测试场景,构建贝叶斯网络,并根据所述贝叶斯网络确定所述候选测试脚本集合中各测试脚本与测试场景之间的生成概率。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一项所述方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至3任一项所述方法的计算机程序。
CN202110464919.6A 2021-04-28 2021-04-28 测试脚本执行序列确定方法及装置 Active CN113157582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110464919.6A CN113157582B (zh) 2021-04-28 2021-04-28 测试脚本执行序列确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110464919.6A CN113157582B (zh) 2021-04-28 2021-04-28 测试脚本执行序列确定方法及装置

Publications (2)

Publication Number Publication Date
CN113157582A CN113157582A (zh) 2021-07-23
CN113157582B true CN113157582B (zh) 2024-03-08

Family

ID=76871999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110464919.6A Active CN113157582B (zh) 2021-04-28 2021-04-28 测试脚本执行序列确定方法及装置

Country Status (1)

Country Link
CN (1) CN113157582B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116155788B (zh) * 2023-04-19 2023-06-20 鹏城实验室 网络安全测试方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102097133A (zh) * 2010-12-31 2011-06-15 中国人民解放军装备指挥技术学院 一种海量存储系统的可靠性测试系统及测试方法
CN104679652A (zh) * 2015-02-15 2015-06-03 北京宇航系统工程研究所 一种基于Markov方法的仿真系统测试用例生成方法
CN108170613A (zh) * 2018-03-08 2018-06-15 国家计算机网络与信息安全管理中心 一种软件测试用例自动生成方法
CN110727593A (zh) * 2019-10-12 2020-01-24 四川新网银行股份有限公司 基于历史需求数据挖掘的测试用例智能生成方法及介质
CN111538649A (zh) * 2020-03-19 2020-08-14 南京邮电大学 一种基于selenium测试工具的web应用系统自动化测试的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102097133A (zh) * 2010-12-31 2011-06-15 中国人民解放军装备指挥技术学院 一种海量存储系统的可靠性测试系统及测试方法
CN104679652A (zh) * 2015-02-15 2015-06-03 北京宇航系统工程研究所 一种基于Markov方法的仿真系统测试用例生成方法
CN108170613A (zh) * 2018-03-08 2018-06-15 国家计算机网络与信息安全管理中心 一种软件测试用例自动生成方法
CN110727593A (zh) * 2019-10-12 2020-01-24 四川新网银行股份有限公司 基于历史需求数据挖掘的测试用例智能生成方法及介质
CN111538649A (zh) * 2020-03-19 2020-08-14 南京邮电大学 一种基于selenium测试工具的web应用系统自动化测试的方法

Also Published As

Publication number Publication date
CN113157582A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
KR102315732B1 (ko) 음성 인식 방법, 디바이스, 장치, 및 저장 매체
CN107797984B (zh) 智能交互方法、设备及存储介质
CN103280216B (zh) 改进依赖上下文的语音识别器对环境变化的鲁棒性
CN103699530A (zh) 根据语音输入信息在目标应用中输入文本的方法与设备
CN110415679A (zh) 语音纠错方法、装置、设备和存储介质
US8019593B2 (en) Method and apparatus for generating features through logical and functional operations
CN111611390B (zh) 一种数据处理方法及装置
CN103488782A (zh) 一种利用歌词识别音乐情感的方法
CN115757745A (zh) 基于人工智能的业务场景控制方法、系统及云平台
CN113157582B (zh) 测试脚本执行序列确定方法及装置
CN110909040B (zh) 一种业务投放辅助方法、装置及电子设备
CN111126084B (zh) 数据处理方法、装置、电子设备和存储介质
CN115982323A (zh) 应用于云端在线服务的大数据分析方法及人工智能系统
CN111354354B (zh) 一种基于语义识别的训练方法、训练装置及终端设备
CN111126422A (zh) 行业模型的建立及行业的确定方法、装置、设备及介质
CN110708619B (zh) 一种智能设备的词向量训练方法及装置
CN112783799B (zh) 软件守护测试方法及装置
CN112948251B (zh) 软件自动测试方法及装置
CN111027667B (zh) 意图类别的识别方法和装置
CN112395402A (zh) 基于深度模型的推荐话术生成方法、装置和计算机设备
CN112541548A (zh) 关系网络的生成方法、装置、计算机设备及存储介质
CN111753999A (zh) 模型使用方法及装置
CN111340082B (zh) 数据处理方法及装置、处理器、电子设备、存储介质
US11727042B2 (en) Method and server for classifying queries
CN115617943B (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