CN112559324A - 一种基于应用内视觉挖掘的软件测试用例生成方法 - Google Patents
一种基于应用内视觉挖掘的软件测试用例生成方法 Download PDFInfo
- Publication number
- CN112559324A CN112559324A CN202011371892.8A CN202011371892A CN112559324A CN 112559324 A CN112559324 A CN 112559324A CN 202011371892 A CN202011371892 A CN 202011371892A CN 112559324 A CN112559324 A CN 112559324A
- Authority
- CN
- China
- Prior art keywords
- input
- interface
- text
- prompt
- data
- 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
Images
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Character Input (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于应用内视觉挖掘的软件测试用例生成方法。涉及计算机软件开发领域,步骤为:首先,给定想要生成测试数据的输入项;然后,对应用程序进行界面探索,获得界面迁移模型;对探索所得每一界面图片做基于文字识别和自然语言处理的视觉挖掘,得到候选输入数据类别与内容;最后,匹配输入项提示关键词和候选输入数据的类别,将匹配成功的候选数据内容作为输入项的测试数据。若匹配失败,将输入项分为身份类、数字类、自由类,分别利用字典匹配、按类型生成、随机构造字符串的方法生成测试数据。本发明运用计算机视觉算法和自然语言处理生成测试用例,可在非侵入式环境下使用,并且生成的测试用例数据更真实,更易触发界面状态变换,从而揭示更多错误。
Description
技术领域
本发明涉及计算机软件开发领域,具体涉及一种基于应用内视觉挖掘的软件测试用例生成方法。
背景技术
测试用例在检测程序中存在的缺陷方面有重要作用,一个高质量的测试用例可以检测到程序中不易被发现的缺陷,帮助识别和改进软件质量问题。但是在可视化测试场景下,主要从外部视觉信息出发来开展测试,依靠的只有界面图像信息,此时测试用例的生成存在困难。
当前GUI应用的测试用例生成方法主要有两种。一是白盒测试方法,该方法要求待测系统的源代码可以被访问。例如,McMinn等人以待测系统源代码为基础,对函数名称、变量名称等程序标识符进行分词、去除停用词等操作,得到搜索关键字,并利用搜索引擎通过网络搜索的方式构造测试用例。对于无法访问待测系统源代码的场景,该方法无法实施。另一种是基于运行时界面信息的黑盒测试方法。例如,Darab等人首先获取页面运行时结构信息,从页面结构中提取出关于输入项的描述标识符,最后从在线的正则表达式库检索获取测试用例。尽管Darab没有访问系统源码,但是对于无法得到页面结构信息的场景,该方法也无法正常使用。此外,还可以通过随机方法构造测试用例数据,但是该方法生成的测试用例真实性较差,许多情况下无法驱动应用程序有效执行,错误检测能力较弱。
发明内容
针对上述问题,本发明提出一种基于应用内视觉挖掘的软件测试用例生成方法。该方法能够通过文字识别和自然语言处理从随机获得的界面图片中抽取和挖掘可以作为输入值的候选数据,通过匹配输入项和候选数据得到用以提供给输入项的测试输入值,最终生成测试用例;本发明从界面图片出发来构造具有较好真实性和检错能力的测试数据,无需访问待测系统内部程序代码或运行时信息,可用于非侵入式测试场合,相对已有方法生成测试数据的质量高、适用范围更广。
本发明的技术方案是:一种基于应用内视觉挖掘的软件测试用例生成方法,具体步骤包括如下:
步骤(1.1)、由用户给定需要生成测试数据的输入项,对其解析得到输入项提示关键词;
步骤(1.2)、对应用程序进行随机界面探索,得到待测应用的界面迁移模型,从而反映从一个界面动作到达一个新界面状态的关系;
步骤(1.3)、在所得界面迁移模型上进行视觉挖掘,获取关于每张界面图片中蕴含的候选输入类别与输入内容,从而构造由候选输入类别与内容构成的数据池;
步骤(1.4)、按词义相似度匹配输入项提示关键词和候选输入数据的类别信息,将匹配成功的候选输入内容作为该输入项的测试数据进行匹配。
进一步的,在步骤(1.1)中,由用户给定需要生成测试数据的输入项的具体操作方法如下:
(1.1.1)、由用户给定想要生成测试数据的输入项,每个输入项用多元组,如下式所示:
Input=<外部描述标签,内部提示文字,提示图标>
式中,外部描述标签表示输入框周边的输入提示文字信息,内部提示文字表示输入框里面的提示文字,提示图标表示输入框内部或周边出现的关键图标信息;
(1.1.2)、对输入项多元组信息进行解析得到提示关键词;其具体操作如下:
对输入项内部提示文字和外部描述标签,利用词性标注算法获取其中的名词性内容,将名词性内容作为输入项提示关键词;
对于提示图标,预定义一个提示图标集并标注各图标文字语义,尝试对输入项提示图标和提示图标集中的每个图标进行模板匹配,如找到匹配项,则匹配项文字语义即当前输入项的一个提示关键词;合并从外部标签描述、内部提示文字和提示图标得到的各个提示关键词,得到最终的输入项提示关键词。
进一步的,在步骤(1.3)中;所述构造由候选输入类别与内容构成的数据池的具体操作步骤如下:
(1.3.1)、获取界面迁移模型中每张界面图片所包含的候选输入数据的类别;依次处理界面迁移模型中的各个界面图片,获得到达图片标示状态的各个界面动作,得到动作所对应被操作控件的图片;在被操作控件的图片上,利用OCR文字识别算法提取控件文字标签;组合所有控件文字标签,得到界面图片所承载候选输入数据的类别描述;
(1.3.2)、利用OCR算法识别界面图片中文本,基于文本内容和位置过滤掉其中标题类型文本、数字类型文本及图片内嵌文本的非人为输入数据、不适合作为测试输入的内容;
(1.3.3)、合并界面图片中过滤后相邻但割裂的文本段落;利用文字之间的间隔距离,将左右、上下相邻的文本块合并为一个整体,确定文字内容的整体性,从中提取界面内容关键字;
(1.3.4)、从合并后的长文本中,利用TFIDF算法提取关键词,作为每张界面图片的候选输入内容;
(1.3.5)、合并候选输入数据类别及候选输入数据内容,得到每个界面图片上从输入数据类别到内容的映射,构造由输入类别和内容构成的候选输入数据池。
进一步的,在步骤(1.3.2)中,所述利用OCR算法识别界面图片中文本具体为:对OCR算法识别所得的文本块进行扫描,若文本块位置上下相邻,则确定属于同一行;对同一行的文本块,若其个数为三个及以上且文本块内的字符长度较短,符合一般性标题特征,则所述文本块被确定是标题类型的文本,对其进行剔除;
利用直线检测算法,检测出界面图片中位于上部和下部区域、长度和界面宽度相近的直线;所述直线分隔的上部和下部区域是界面标题信息区域,其中内容为固定标题,非输入数据,对其进行剔除;
计算文字内容中数字所占的比例,若文字内容中数字所占比例大于指定阈值,则确定是数字类型文本,对其剔除;
根据文字所在区域的背景计算色彩丰富度,若区域色彩丰富度大于指定阈值,则确定是图片内嵌文本,对其剔除。
进一步的,在步骤(1.4)中,按词义相似度匹配输入项提示关键词和候选输入数据的类别信息,将匹配成功的候选输入内容作为该输入项的测试数据中进行匹配的具体操作方法如下:
(1.4.1)、基于word2vec的词义相似度匹配算法,尝试匹配输入项提示关键词和从各个界面图片挖掘所得的候选输入数据类别;如匹配成功,则将匹配成功的界面图片所对应的候选输入数据内容作为该输入项的测试输入数据;如匹配失败,则根据输入项的关键词分类别按照不同策略生成测试数据,将输入项分为三种类型:身份类、数字类、自由类,其分别利用包括字典匹配、按类型生成、随机构造字符串的方法生成测试数据;
(1.4.2)、对三种不同的输入项类型分别按照对应的策略生成测试数据:
对于身份类的输入项,首先预构造一个关于个人信息的类别-取值字典,根据输入项提示关键词和字典中的类别进行匹配,匹配成功的类别对应的取值作为身份类的测试数据;
对于数字类的输入项,对有类型的数字类按照指定类型生成数据,对无类型的数字类则随机生成数字;
对于自由类的输入项通过随机生成字符串方法构造测试数据。
本发明的有益效果是:本发明所述的一种基于应用内视觉挖掘的软件测试用例生成方法,主要优势在于其测试输入生成是基于界面图片而不是软件代码或者运行时内部状态数据,适用于非侵入式的测试场景,应用范围更广;另外本发明生成的测试数据更真实,特别是搜索匹配类输入项,所得测试数据能够使得应用程序执行更多不同的场景,增强了测试的错误揭示能力。
附图说明
图1是本发明的结构流程图;
图2是本发明实施例中输入项的结构示意图;
图3是本发明实施例中界面迁移模型示意图;
图4是本发明实施例中过滤掉不适合作为测试数据内容的示意图;
图5是本发明实施例中过滤图片上部标题示意图;
图6是本发明实施例中文本块合并示意图;
图7是本发明的获取候选输入内容的流程图;
图8是本发明实施例中匹配输入项的搜索结果示意图。
具体实施方式
为了更清楚地说明本发明的技术方案,下面结合附图对本发明的技术方案做进一步的详细说明:
如图1所述;一种基于应用内视觉挖掘的软件测试用例生成方法,应用于自动为手机、平板等设备的非侵入式测试提供测试数据,其具体步骤包括如下:
步骤(1.1)、由用户给定需要生成测试数据的输入项,对其解析得到输入项提示关键词;
步骤(1.2)、对应用程序进行随机界面探索,得到待测应用的界面迁移模型,从而反映从一个界面动作到达一个新界面状态的关系;
步骤(1.3)、在所得界面迁移模型上进行视觉挖掘,获取关于每张界面图片中蕴含的候选输入类别与输入内容,从而构造由候选输入类别与内容构成的数据池;
步骤(1.4)、按词义相似度匹配输入项提示关键词和候选输入数据的类别信息,将匹配成功的候选输入内容作为该输入项的测试数据进行匹配;如果匹配失败,则基于输入项提示关键词将输入项分为三种类型:身份类、数字类、自由类,分别利用包括字典匹配、按类型生成、随机构造字符串的方法生成测试数据。
具体的,在步骤(1.1)中,用户给定想要生成测试数据的输入项:
首先利用多元组表达用户想要生成测试数据的输入项,其具体操作方法如下:
(1.1.1)、由用户给定想要生成测试数据的输入项,每个输入项用多元组,如下式所示:
Input=<外部描述标签,内部提示文字,提示图标>
其中,外部描述标签表示输入框周边的输入提示文字信息,内部提示文字表示输入框里面的提示文字,提示图标表示输入框内部或者周边出现的关键图标信息。例如,以图2中的输入手机号输入项为例,其中外部描述标签为空,内部提示文字为“请输入手机号”,提示图标是
(1.1.2)、对输入项多元组信息进行解析得到提示关键词;具体为,对输入项的内部提示文字和外部描述标签,利用词性标注算法获取其中的名词性内容,将这些名词性内容作为输入项提示关键词;设S为由单词w1,w2,w3,…,wn构成的句子文本,Z为S中各单词的词性,即:
S=w1,w2,w3,…,wn
Z=z1,z2,z3,…,zn
对应的zi为“名词”的单词wi就是输入项提示关键词;例如,“请输入密码”文本中的“密码”是名词,“搜你想看的视频”文本中的“视频”是名词,提取到对应的名词作为输入项提示关键词;
对于提示图标,首先预定义一个提示图标集并标注各图标文字语义,图标及其文字语义用映射M:I→S表示(如→“手机”);尝试对输入项提示图标和提示图标集中的每个图标进行模板匹配,如找到匹配项,则匹配项文字语义即当前输入项的一个提示关键词;合并从外部标签描述、内部提示文字和提示图标得到的各个提示关键词,得到最终的输入项提示关键词。
在步骤(1.2)中,获取界面迁移模型:
基于现有GUI ripping技术(如利用droidbot工具)对应用界面进行随机探索,获得界面迁移模型;
界面迁移模型是一个有向图,反映从一个界面动作到达一个新界面状态的关系,可用G(V,E)表示,V表示图中顶点的集合,E表示边的集合;每个顶点代表一个界面状态,相似的界面状态要进行合并用一个顶点表示;界面迁移模型中每条有向边代表从一个界面跳转到另一个界面的关系,并且包含所操作的界面控件图片;
例如在图3的微信界面迁移模型中,从微信应用首页点击通讯录控件图标进入通讯录界面,微信应用首页是一个界面状态,通讯录界面是另一个界面状态,分别用两个顶点表示,用一条包含点击控件图片的边表示两个界面之间的关系;通讯录可能有多种呈现的界面状态,但是这些界面从内容结构上看是相似的,所以进行合并用一个界面状态表示。
在步骤(1.3)中;获取候选输入数据类别与内容:
利用视觉挖掘得到界面迁移模型中每个界面图片的候选输入数据类别与内容,其具体操作步骤如下:
(1.3.1)、获取候选输入数据类别,候选输入数据的类别是候选输入数据内容的整体概括;通常对于应用程序来说,操作一个界面控件会进入下一个新界面状态,而该控件所表达的语义往往可以作为新界面图片中所包含数据的类别;利用此特点,基于界面迁移模型进行视觉挖掘,对每一个界面图片,从界面迁移模型得到到达该界面状态所操作的各个界面控件,由此提取每一个界面图片的候选输入数据类别;
具体而言,由于控件图片中的文字一般代表其动作语义,所以可以用这些文字作为候选输入数据类别信息;但是控件图片中的文字无法直接获取,本发明使用OCR文字识别算法进行识别;如果一个控件中存在多个文字串,取其中平均字体最大的文字作为候选输入数据类别元素;一个界面状态可以从不同的状态通过操作不同界面控件到达,所以某界面所含候选输入的类别描述文字可能不止一个,候选输入的类别用文字集合表达,其中是对一个控件图片进行OCR文字识别后所得的结果文字;例如图3中,点击“通讯录”控件可以到达通讯录界面,那么通讯录界面图片的一个类别描述就是“通讯录”;由于只有一个路径到达该界面,通讯录界面图片的候选输入类别也就只有一个元素,即类别为集合{“通讯录”};
(1.3.2)、过滤掉不适合作为测试输入的内容;过滤原因在于,界面中一些文字,如标题类型文本、数字类型文本、图片内嵌文本等,一般非人为输入的动态数据,不适合作为测试输入的内容;标题类型的文本固定不变,非动态内容,一般不是用户输入;数字类型的文本,例如“9评论”、“22赞同”等,一般由应用根据内容访问统计生成,也不是用户输入的;图片内嵌文本是构成图像的一部分,非文本输入内容;这些文本一般不适合作为测试输入;此外,大多数应用距离界面上下边界15%以内的区域大都包含固定不变的内容,这些区域内的文字一般不是用户输入的数据,也需要过滤剔除;
具体过滤方法为,读取图片并通过OCR文字识别算法获取图片中文字内容与文字位置;设识别到的每个文本块用<loci:contenti>表示,loci代表文本块位置,contenti代表文本块内容,其中文本块位置具体表示为loci=[xi,yi,wi,hi]。对OCR算法识别后的文本块内容和位置进行扫描,根据文本块的位置,若识别后的文本块位置上下相邻较近(|ya-yb|<thresholdgap,其中ya和yb分别是两个文本块的纵坐标),则认为文本块是属于同一行;对处于同一行的文本块,文本块个数为三个及以上且文本块内的字符长度较短(如小于5),符合一般标题特征,这些文本块被认为是标题类型的文本,对其进行剔除;例如图4的(a)图中用矩形框选中的文本是标题类型的文本,该部分标题类型文本需要被剔除;
利用直线检测算法,检测出界面图片中位于上部和下部区域、长度和界面宽度相近的直线;设检测到的一条直线记为(x1,y1,x2,y2),其中(x1,y1)与(x2,y2)为直线两端;设界面图片的高度和宽度分别为h和w,直线位于界面图片上部即要求y1<h*0.15和y2<h*0.15,直线与界面图片宽度相近即要求为w-(x2-x1)<thresholdw,其中thresholdw表示与界面宽度相近的程度;所得直线分隔的上部和下部区域往往是界面标题信息区域,其中内容大都是固定标题,非输入数据,对其进行剔除;获取上部区域内的标题的方法为,逐个检查文本块的纵坐标位置y,若y<y1且y<y2,则文本块文本内容被认为是标题类型文本;例如图5(a)中手机顶部区域处的内容,经过直线检测后被作为标题处理,进行剔除;剔除后的内容如图5(b)所示,已经没有方框选中它,标题栏的内容已被剔除;界面图片的下部区域直线检测获取标题方法与上部区域内的标题获取方法同理;
计算文字内容中数字所占的比例,若文字内容中数字所占比例大于指定阈值,则认为是数字类型文本,对其剔除;设文本S=x1+x2+…+xN,其中xi是数字字符串或者非数字字符串;计算文字内容中数字所占比例的公式如下所示,其中ratio为文字内容中数字所占的比例,count为数字字符串的数量,α代表任一非数字字符串,len()函数计算字符串的字符个数;∑len(α)代表累加所有的非数字字符串的字符个数;如果ratio>thresholdnumber,则认为是数字类型文本;该计算方法把数字字符串作为整体考虑,避免了因为数字本身长度过长而导致数字所占比例过大的问题;
ratio=count/(count+∑len(α))
例如,对于文字“1123评论”,其中数字字符串为“1123”,非数字字符串为“评论”,则数字所占的比例计算过程为,只有一个数字字符串,所以count=1,len(“评论”)=2,所以ratio=1/(1+2)=0.33;实际工作效果表现为,例如图4的(b)图是过滤掉标题类型和数字类型之后的文本内容,图片中的转发数量“1166”等是数字类型的文本,已经被过滤掉;
根据文字所在区域的背景计算色彩丰富度,若文字内容区域的色彩丰富度大于指定阈值,则认为是图片内嵌文本,对其剔除;色彩丰富度采用既有公式计算,如下所示;其中R是文字所在区域图片的红色通道矩阵,G是绿色通道矩阵,B是蓝色通道矩阵,rg为红色通道与绿色通道相减之后的矩阵,yb为红色通道矩阵加上绿色通道矩阵的一半减去蓝色通道矩阵得到的矩阵,表示rg和yb矩阵的标准差,μrg、μyb表示rg和yb矩阵的平均值。M为最后计算得到的色彩丰富度;若M>thresholdm,则认为该文字是图片内嵌文本;
rg=R-G#
例如图4中的(c)图是OCR识别后的全部文本基础上过滤掉标题类型和数字类型,然后接着过滤掉图片内嵌文本之后的内容,其中图片中的用户头像中的“今日说球”为图片内嵌文本则按照规则已经被过滤掉;
过滤规则如下所示,设识别到的每个文本块用<loci:contenti>表示,其中loci和contenti是一一对应的关系,分别为界面图片中对应的文字位置和文字内容信息;过滤形式为,设界面图片中所有属于标题类型文本的集合为A,数字类型文本的集合为B,图片内嵌文本的集合为C,E=A∪B∪C={x|x∈A或x∈B或x∈C}是需要过滤的文字内容,其中x为界面图片识别后的一个文本块内容;
目标是过滤界面图片中所有属于E集合中的内容,设S是OCR文字识别算法得到的所有文字内容,则T=S-E是过滤后所得的结果;
(1.3.3)、合并界面图片中相邻的文本段落:OCR文字识别得到的文本段落常常是割裂的片段,丢失了文字内容的整体性,不易处理;为此,利用文字之间的间隔距离,将左右、上下相邻的文本块合并为一个整体,以便从中提取界面内容关键字;例如图6所示,其中图6(a)为合并之前,处于割裂的文本块,图6(b)中矩形框选中的为合并之后的文本块内容;
文字合并过程为,设同一行文字左边的一段字符串内容为ω1,坐标为(x1,y1,h1,w1),右边的一段字符串内容为ω2,坐标为(x2,y2,h2,w2),设当两段字符串左右之间的距离不超过阈值则认为是属于同一句话的内容,并且需要合并两段文字,记合并后的文字内容为θ,坐标为(x,y,w,h);合并之后的文字内容和坐标公式如下所示;
θ=ω1+ω2#
x=x1#
y=y1#
w=w2+x2-x1#
h=max(h1,h2)#
由于上下相邻很近的两行文字内容是属于一个段落,所以需要对相邻上下两行内容进行合并;这样合并后的文本方便做内容关键字的提取操作;记上边一行的文字内容为δ1,坐标为(x1,y1,h1,w1),下边一行的文字内容为δ2,坐标为(x2,y2,h2,w2),合并后的文本内容为坐标为(x,y,w,h);它们之间的关系用如下公式所示;
x=x1#
y=y1#
h=h2+y2-h1#
w=max(w1,w2)#
(1.3.4)、最后从合并后的长文本中,根据TFIDF算法对处理后的文本获取关键字,作为每张界面图片的候选输入内容,该关键字更能体现文本的核心内容,且更容易与其它文本块区分出来,可作为该界面图片的候选输入内容;具体为,将合并后的各长文本当作一个文档来计算词频(TF),基于语料库获得逆文档频率(IDF),计算两者的乘积作为每个词语的重要程度,选取重要程度最高的前K个词作为关键词;其计算过程如下所示,其中Contenti是界面图片中存在的文本块,每个界面图片中会有多个合并后的文本块,用列表表示;对每个文本块都进行TFIDF算法获取关键字,用datai表示,作为候选输入数据内容;
TFIDF算法计算过程为,每个文本块Contenti作为一个文档来计算词频(TF),使用给定语料库(如jieba中文分词库提供的idf.txt.big文件等)得到逆文档频率(IDF),计算两者的乘积即可得到每个词语的重要程度,选取重要程度前K个词作为关键字;例如对“继续向北航行”利用TFIDF算法进行关键字提取,那么“继续向北航行”也就作为一个文档,对文本进行分词得到三个词语:“继续”、“向北”、“航行”;开始计算词频,例如“继续”出现一次,总的词语数量是3,那么可以得到“继续”的词频为1/3=0.33;根据给定的语料库文件得到“继续”的逆文档频率为4.27,计算词频和逆文档频率的乘积可以得到词语的重要程度;分别计算每个词语的词频和逆文档频率的乘积,根据乘积的值进行倒序排序得到:“航行”、“向北”、“继续”;如果K选取1,也就是选取一个词语作为关键词,此时得到的关键字是“航行”,航行即可作为该文本的核心内容,也就是作为候选输入数据内容;因为存在多个文本块,所以也就会有多组关键字作为该界面图片的候选输入数据内容,得到的结果用列表表示;具体的获取候选输入数据池的流程图如图7所示,其中包括如下步骤:OCR文本识别、过滤非输入数据、文本合并、关键词提取,最后得到最终的候选输入数据池;
(1.3.5)、合并步骤(1.3.1)得到的候选输入数据类别和步骤(1.3.4)得到的候选输入数据内容,得到每张界面图片的候选输入数据类别与内容,形成从输入数据类别到内容的映射;设β为候选输入数据类别,γ为候选输入数据内容,则界面图片的候选数据池可以表示为:
f:β→γ
在步骤(1.4)中,生成输入项的测试数据:
采用词义相似度匹配的方法确定输入项的测试数据,其具体操作方法如下:
(1.4.1)、基于word2vec的词义相似度匹配算法,尝试匹配输入项提示关键词和从各个界面图片挖掘所得的候选输入数据类别;如果匹配成功,将匹配成功的界面图片所对应的候选输入数据内容作为该输入项的测试数据;
匹配规则为,匹配的两端为输入项提示关键词和候选数据池;输入项提示关键词用集合A={ε1,ε2,…,εM}表示,εi为一个提示单词;候选数据池可以用键值对集合datapool表示,其中categoryi为候选数据池的类别,datai为对应的候选输入数据内容;候选数据池总的类别集合可以记为B={category1,category2,…,categoryN}。具体匹配方法为,对集合A和集合B做笛卡尔积运算,得到每个提示单词和候选数据类别的配对集合,记为A×B;对每一个配对<εi,categoryi>中的提示单词和候选数据类别做基于相似度的匹配,把匹配成功的候选数据类别对应的候选输入数据内容作为测试数据;
A×B={<εi,categoryi>|εi∈A^categoryi∈B}
由于一个界面状态可以从不同的界面通过点击不同的界面控件进入,每个界面状态所对应的候选输入数据类别信息有多个单词,所以categoryi用集合表示,为一个类别单词;每个提示单词εi和类别集合 中的类别单词进行相似度度量,得到相似度列表[τ1,τ2,…,τN]。如果相似度最大值max(τ1,τ2,…,τN)>thresholdsimilarity,则界面图片的候选输入数据内容datai作为输入项的测试数据;
每个单词的相似度计算基于word2vec词向量方法;设提取到的输入项提示单词εi和categoryi列表中的单词经word2vec转换后得到的词向量分别为ρ和σ,εi和的相似度可以通过计算ρ和σ的余弦相似度进行度量;
以图8(a)中搜索朋友圈界面的数据输入为例,利用词性标注算法获取输入项提示关键词,其提示关键词为[“朋友”,“圈”],该输入项可以接受“朋友”相关的输入内容;如果用随机字符串生成来构造测试数据,很有可能搜索不出任何内容;例如随机输入字符串“abcd”,没有搜索出任何内容,搜索结果如图8(b)所示;而用本发明的方法,挖掘的候选数据池包含<″朋友圈″:datai>候选数据,经过词义相似度匹配,匹配到“朋友圈”这个类别,将匹配到的候选输入数据内容作为测试数据;将本发明方法生成的测试数据输入到输入项之后可以匹配到相关内容,具体搜索结果如图8(c)所示;表明本方法可以触发更多的界面状态,可以驱动相关测试程序继续执行。
如果输入项提示关键词和所有的候选输入数据类别都不匹配,则将输入项分为身份类、数字类、自由类三种类别,后续按照指定的策略生成测试数据;
(1.4.2)、如果匹配失败,则根据输入项提示关键词,将输入项分为三种类型:身份类、数字类、自由类;身份类输入如手机号、邮箱等,数字类输入如数量、身高、体重等,自由类输入表达基本无格式和内容限制的任意外部输入,例如用户评论、对话发言等;分类方法为预定义身份类和数字类的关键字集合,根据输入项提示关键词所属集合,确定其类别;如果不是身份类和数字类两者之一,则输入项为自由类;
具体分类方法如下公式所示,其中x为输入项提示关键词,KEYWORDidentity为身份类关键字集合,KEYWORDnumber为数字类关键字集合;
(1.4.3)、对三种不同的输入项类型分别按照对应的策略生成测试数据:对于身份类的输入项,首先预构造一个关于个人信息的类别-取值字典,根据输入项提示关键词和字典中的类别进行匹配,匹配成功的类别对应的取值作为身份类的测试数据;个人信息字典可以定义为{Identify1:Value1,Identify2:Value2,…,IdentifyN:ValueN},其中Identifyi代表身份的类别,例如“手机号码”,Valuei代表对应类别的值,例如为“18800000021”手机号码信息;
对于自由类的输入项则通过随机生成字符串方法构造测试用例;例如可以通过正则表达式“[a-z]{2-5}”来生成由字母构成且长度为2到5之间的对应的字符串;
对于数字类的输入项,对有类型的数字类按照指定的类型生成,对无类型的数字类则随机生成数字;类型表达对输入数值的要求,如自然数、正数、任意值等;创建自然数类和正数类的关键字集合,根据提示关键词将输入项划分到其中之一,然后在值域范围内任取数字生成测试数据;如果输入项提示关键词不在两个集合中,则随机生成数字作为测试数据。
例如如果输入的是商品的价格,应该输入的是正数,可以从R+范围内生成测试数据。
在实验过程中,共对微信、支付宝、微博等10种不同应用的包含输入项的界面进行测试,涉及到社交、网购、衣食住行、旅游等多个应用领域。经过实际检验,被测试的90%的输入项都可以有效的生成测试用例,并且生成的测试用例比较真实,符合用户的使用习惯;以上实验结果表明,本发明满足用户对于生成测试用例的一般操作需要,具有良好的使用效果。
最后,应当理解的是,本发明中所述实施例仅用以说明本发明实施例的原则;其他的变形也可能属于本发明的范围;因此,作为示例而非限制,本发明实施例的替代配置可视为与本发明的教导一致;相应地,本发明的实施例不限于本发明明确介绍和描述的实施例。
Claims (5)
1.一种基于应用内视觉挖掘的软件测试用例生成方法,其特征在于,具体步骤包括如下:
步骤(1.1)、由用户给定需要生成测试数据的输入项,对其解析得到输入项提示关键词;
步骤(1.2)、对应用程序进行随机界面探索,得到待测应用的界面迁移模型,从而反映从一个界面动作到达一个新界面状态的关系;
步骤(1.3)、在所得界面迁移模型上进行视觉挖掘,获取关于每张界面图片中蕴含的候选输入类别与输入内容,从而构造由候选输入类别与内容构成的数据池;
步骤(1.4)、按词义相似度匹配输入项提示关键词和候选输入数据的类别信息,将匹配成功的候选输入内容作为该输入项的测试数据进行匹配。
2.根据权利要求1所述的一种基于应用内视觉挖掘的软件测试用例生成方法,其特征在于,在步骤(1.1)中,由用户给定需要生成测试数据的输入项的具体操作方法如下:
(1.1.1)、由用户给定想要生成测试数据的输入项,每个输入项用多元组,如下式所示:
Input=<外部描述标签,内部提示文字,提示图标>
式中,外部描述标签表示输入框周边的输入提示文字信息,内部提示文字表示输入框里面的提示文字,提示图标表示输入框内部或周边出现的关键图标信息;
(1.1.2)、对输入项多元组信息进行解析得到提示关键词;其具体操作如下:
对输入项内部提示文字和外部描述标签,利用词性标注算法获取其中的名词性内容,将名词性内容作为输入项提示关键词;
对于提示图标,预定义一个提示图标集并标注各图标文字语义,尝试对输入项提示图标和提示图标集中的每个图标进行模板匹配,如找到匹配项,则匹配项文字语义即当前输入项的一个提示关键词;合并从外部标签描述、内部提示文字和提示图标得到的各个提示关键词,得到最终的输入项提示关键词。
3.根据权利要求1所述的一种基于应用内视觉挖掘的软件测试用例生成方法,其特征在于,在步骤(1.3)中;所述构造由候选输入类别与内容构成的数据池的具体操作步骤如下:
(1.3.1)、获取界面迁移模型中每张界面图片所包含的候选输入数据的类别;依次处理界面迁移模型中的各个界面图片,获得到达图片标示状态的各个界面动作,得到动作所对应被操作控件的图片;在被操作控件的图片上,利用OCR文字识别算法提取控件文字标签;组合所有控件文字标签,得到界面图片所承载候选输入数据的类别描述;
(1.3.2)、利用OCR算法识别界面图片中文本,基于文本内容和位置过滤掉其中标题类型文本、数字类型文本及图片内嵌文本的非人为输入数据、不适合作为测试输入的内容;
(1.3.3)、合并界面图片中过滤后相邻但割裂的文本段落;利用文字之间的间隔距离,将左右、上下相邻的文本块合并为一个整体,确定文字内容的整体性,从中提取界面内容关键字;
(1.3.4)、从合并后的长文本中,利用TFIDF算法提取关键词,作为每张界面图片的候选输入内容;
(1.3.5)、合并候选输入数据类别及候选输入数据内容,得到每个界面图片上从输入数据类别到内容的映射,构造由输入类别和内容构成的候选输入数据池。
4.根据权利要求3所述的一种基于应用内视觉挖掘的软件测试用例生成方法,其特征在于,在步骤(1.3.2)中,所述利用OCR算法识别界面图片中文本具体为:对OCR算法识别所得的文本块进行扫描,若文本块位置上下相邻,则确定属于同一行;对同一行的文本块,若其个数为三个及以上且文本块内的字符长度较短,符合一般性标题特征,则所述文本块被确定是标题类型的文本,对其进行剔除;
利用直线检测算法,检测出界面图片中位于上部和下部区域、长度和界面宽度相近的直线;所述直线分隔的上部和下部区域是界面标题信息区域,其中内容为固定标题,非输入数据,对其进行剔除;
计算文字内容中数字所占的比例,若文字内容中数字所占比例大于指定阈值,则确定是数字类型文本,对其剔除;
根据文字所在区域的背景计算色彩丰富度,若区域色彩丰富度大于指定阈值,则确定是图片内嵌文本,对其剔除。
5.根据权利要求3所述的一种基于应用内视觉挖掘的软件测试用例生成方法,其特征在于,在步骤(1.4)中,按词义相似度匹配输入项提示关键词和候选输入数据的类别信息,将匹配成功的候选输入内容作为该输入项的测试数据中进行匹配的具体操作方法如下:
(1.4.1)、基于word2vec的词义相似度匹配算法,尝试匹配输入项提示关键词和从各个界面图片挖掘所得的候选输入数据类别;如匹配成功,则将匹配成功的界面图片所对应的候选输入数据内容作为该输入项的测试输入数据;如匹配失败,则根据输入项的关键词分类别按照不同策略生成测试数据,将输入项分为三种类型:身份类、数字类、自由类,其分别利用包括字典匹配、按类型生成、随机构造字符串的方法生成测试数据;
(1.4.2)、对三种不同的输入项类型分别按照对应的策略生成测试数据:
对于身份类的输入项,首先预构造一个关于个人信息的类别-取值字典,根据输入项提示关键词和字典中的类别进行匹配,匹配成功的类别对应的取值作为身份类的测试数据;
对于数字类的输入项,对有类型的数字类按照指定类型生成数据,对无类型的数字类则随机生成数字;
对于自由类的输入项通过随机生成字符串方法构造测试数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011371892.8A CN112559324B (zh) | 2020-11-30 | 2020-11-30 | 一种基于应用内视觉挖掘的软件测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011371892.8A CN112559324B (zh) | 2020-11-30 | 2020-11-30 | 一种基于应用内视觉挖掘的软件测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559324A true CN112559324A (zh) | 2021-03-26 |
CN112559324B CN112559324B (zh) | 2023-07-07 |
Family
ID=75045283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011371892.8A Active CN112559324B (zh) | 2020-11-30 | 2020-11-30 | 一种基于应用内视觉挖掘的软件测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559324B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615667A (zh) * | 2015-01-13 | 2015-05-13 | 联动优势电子商务有限公司 | 一种基础数据生成方法、测试用数据生成方法及其装置 |
US20150339213A1 (en) * | 2014-05-21 | 2015-11-26 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN110377524A (zh) * | 2019-07-25 | 2019-10-25 | 中国工商银行股份有限公司 | 报表系统的测试方法、装置、系统及介质 |
CN110457214A (zh) * | 2019-07-30 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置、电子设备 |
US10509717B1 (en) * | 2016-10-05 | 2019-12-17 | Amdocs Development Limited | System, method, and computer program for automatically testing software applications including dynamic web pages |
-
2020
- 2020-11-30 CN CN202011371892.8A patent/CN112559324B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150339213A1 (en) * | 2014-05-21 | 2015-11-26 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN104615667A (zh) * | 2015-01-13 | 2015-05-13 | 联动优势电子商务有限公司 | 一种基础数据生成方法、测试用数据生成方法及其装置 |
US10509717B1 (en) * | 2016-10-05 | 2019-12-17 | Amdocs Development Limited | System, method, and computer program for automatically testing software applications including dynamic web pages |
CN110377524A (zh) * | 2019-07-25 | 2019-10-25 | 中国工商银行股份有限公司 | 报表系统的测试方法、装置、系统及介质 |
CN110457214A (zh) * | 2019-07-30 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置、电子设备 |
Non-Patent Citations (3)
Title |
---|
YUANCHUN LI; ZIYUE YANG; YAO GUO; XIANGQUN CHEN: "DroidBot: a lightweight UI-Guided test input generator for android", 《39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION》 * |
王岩: "基于视觉挖掘的GUI软件测试数据生成方法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
王珏: "Android应用测试输入自动生成技术", 《中国科学:信息科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559324B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9171013B2 (en) | System and method for providing objectified image renderings using recognition information from images | |
US7809722B2 (en) | System and method for enabling search and retrieval from image files based on recognized information | |
US8897505B2 (en) | System and method for enabling the use of captured images through recognition | |
US8042053B2 (en) | Method for making digital documents browseable | |
US7809192B2 (en) | System and method for recognizing objects from images and identifying relevancy amongst images and information | |
WO2015185019A1 (zh) | 一种基于语义理解的表情输入方法和装置 | |
El et al. | Authorship analysis studies: A survey | |
CN112395506A (zh) | 一种资讯推荐方法、装置、电子设备和存储介质 | |
US8412703B2 (en) | Search engine for scientific literature providing interface with automatic image ranking | |
CN111324771B (zh) | 视频标签的确定方法、装置、电子设备及存储介质 | |
CN102763104A (zh) | 信息处理装置、信息处理方法、记录了信息处理程序的记录介质 | |
WO2020056977A1 (zh) | 知识点推送方法、装置及计算机可读存储介质 | |
CN112818093A (zh) | 基于语义匹配的证据文档检索方法、系统及存储介质 | |
CA3177671A1 (en) | Enquiring method and device based on vertical search, computer equipment and storage medium | |
CN113569050A (zh) | 基于深度学习的政务领域知识图谱自动化构建方法和装置 | |
US20230342400A1 (en) | Document search device, document search program, and document search method | |
CN111984589A (zh) | 文档处理方法、文档处理装置和电子设备 | |
CN110019674A (zh) | 一种文本抄袭检测方法及系统 | |
CN114328798A (zh) | 搜索文本的处理方法、装置、设备、存储介质和程序产品 | |
CN108427769B (zh) | 一种基于社交网络的人物兴趣标签提取方法 | |
CN116628278A (zh) | 多模态搜索方法、装置、存储介质和设备 | |
CN115563515A (zh) | 文本相似性检测方法、装置、设备及存储介质 | |
CN112559324B (zh) | 一种基于应用内视觉挖掘的软件测试用例生成方法 | |
CN115203445A (zh) | 多媒体资源搜索方法、装置、设备及介质 | |
JPH10198683A (ja) | 文書画像分類方法 |
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 |