CN103970662A - 一种gui软件输入边界值获取方法和系统 - Google Patents

一种gui软件输入边界值获取方法和系统 Download PDF

Info

Publication number
CN103970662A
CN103970662A CN201410218616.6A CN201410218616A CN103970662A CN 103970662 A CN103970662 A CN 103970662A CN 201410218616 A CN201410218616 A CN 201410218616A CN 103970662 A CN103970662 A CN 103970662A
Authority
CN
China
Prior art keywords
code
control
software
input
code file
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
CN201410218616.6A
Other languages
English (en)
Other versions
CN103970662B (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.)
China Software Evaluation Center
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201410218616.6A priority Critical patent/CN103970662B/zh
Publication of CN103970662A publication Critical patent/CN103970662A/zh
Application granted granted Critical
Publication of CN103970662B publication Critical patent/CN103970662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种软件输入边界值获取方法,应用于含有图形用户界面GUI的软件,包括:扫描被测软件源代码;在代码文件中得到与所述软件的窗体输入控件相对应的代码段,所述代码段中包含输入字段的范围信息。本发明还公开了与上述方法相对应的系统。本发明为软件输入字段测试提供了便捷、高效的方法,可以大大提高软件输入字段测试的充分性、有效性和测试效率。

Description

一种GUI软件输入边界值获取方法和系统
技术领域
本发明涉及软件测试领域,尤其涉及一种GUI(图形用户界面)软件输入边界值获取方法和系统。
背景技术
软件输入是驱动软件运行之源,通过对不同的软件输入进行处理,软件完成规定的功能。当软件没有对某些可能出现的输入做相应处理时,软件运行就会出现错误。软件测试的核心任务就是在软件输入域内设计各种不同的软件输入,验证软件处理是否正确。如果能够穷尽软件的输入域,则能够找出软件中存在的所有问题,然而,由于软件输入域是一个巨大的空间,根本无法在有限的时间内运行针对所有输入的测试用例,即通常所说的输入爆炸问题。为了解决输入爆炸问题,业界提出了很多方法,如等价类划分、边界值分析等,这些方法在软件测试实践中得到了广泛应用,受到了良好效果。
在采用等价类划分或边界值分析方法时,一个最基本的前提就是要知道软件输入的边界值。对于GUI软件而言,GUI软件中包含大量可供用户输入的控件,如文本框、下拉菜单,通过这些控件,用户输入相应的信息,完成规定的功能。在这些控件中,只有知道其取值范围,才能够设计出有效的测试用例。例如,对于用户登录界面中的用户名输入字段,只有当知道其字段是长度为[1,20]的字符串时,才能够确定出其合法等价类和非法等价类以及上边界和下边界值(分别为1和20)。
为了获取软件输入边界值,目前普遍采用三种方法,一是人工查阅软件文档,二是人工查阅源程序代码,三是尝试。在第一种方法中,测试人员通过阅读软件文档,如软件需求规格说明、软件概要设计、详细设计,获取软件输入相关信息。这是一种简单易行的方法,但在具体的实践中,特别是在迭代式软件开发过程中,软件需求变化频繁,上述文档难以与最新的软件代码保持一致,测试人员拿到的经常是过时、陈旧的文档,依靠这样的文档得到的是与最终软件相差甚远的软件输入边界值;相对于第一种方法,第二种方法不存在文档与源程序代码脱节以及过时的问题,但这种方法对测试人员的要求很高,要求测试人员具有较高的编程经验、熟悉不同的编程语言,并且,由于源程序代码与界面控件之间并不存在直接的对应关系,即使通过分析源程序代码找到程序中所有的变量,也无法获取界面控件的取值范围,测试人员依然需要花费较长的时间才能够从源程序代码中找到与软件输入相关的信息;在第三种方法中,测试人员尝试输入不同长度和类型的数据,通过不断的尝试性输入,得到软件输入字段的边界。这种方法具有一定的盲目性,并且需要对每一个字段尝试多次,工作量大、效率低。
发明内容
为了解决上述技术问题,本发明公开了一种GUI软件输入边界值获取方法和系统,该发明针对GUI类应用软件,主要解决如何自动获取目前GUI软件输入边界获取存在的问题。
本发明的技术方案为:
一种GUI软件输入边界值获取方法和系统,应用于含有图形用
户界面GUI的软件,包括:
扫描被测软件源代码;
在代码文件中得到与所述软件的窗体输入控件相对应的代码段,所述代码段中包含输入字段的范围信息。
较佳地,
所述在代码文件中找到与所述软件的窗体输入控件相对应的代码段具体包括:
在代码文件中得到所述代码文件的语法树结构;
根据所述语法树结构定位与软件的窗体输入控件相对应的代码段的代码位置;
根据所述代码位置得到所述代码段。
较佳地,所述代码文件为窗体设计代码文件,所述窗体输入控件为选择性控件。
较佳地,所述代码文件为窗体设计代码文件,所述窗体输入控件为键盘输入控件;
所述窗体设计代码文件的代码段中包含键盘输入控件的MaxLength属性赋值语句,该赋值语句定义了键盘输入控件允许输入的字符个数。
较佳地,所述代码文件为窗体实现代码文件,所述窗体输入控件为文本框编辑控件或按钮提交控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在窗体实现代码文件得到所述文本框编辑控件或按钮提交控件相对应的控件事件;
分析所述控件事件,得到控件事件中所包含的窗体控件输入字段的范围信息。
较佳地,所述代码文件为输入验证类代码文件,所述窗体输入控件为按钮提交控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在窗体设计代码文件得到所述按钮提交控件相对应的按钮提交事件;
构造所述按钮提交事件的函数调用关系式;
根据所述函数调用关系式定位键盘输入控件允许输入字段信息的正则表达式。
较佳地,所述代码文件为数据库对象类代码文件,所述窗体输入控件为键盘输入控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在所述窗体设计代码文件中得到所述键盘输入控件对应的数据库字段名称;
扫描所述数据库对象类的设计代码文件,得到对应数据库各表的对象类;
在每个对象类中通过Column关键字标签找到表中的各字段属性代码段,各字段均与窗体中的输入控件相对应。
一种软件输入边界值获取系统,应用于含有图形用户界面GUI的软件,包括:
源代码扫描模块,用于扫描被测软件源代码;
代码段查询模块,用于在代码文件中得到与所述软件的窗体输入控件相对应的代码段,所述代码段中包含输入字段的范围信息。
较佳地,所述在代码文件中找到与所述软件的窗体输入控件相对应的代码段具体包括:
在代码文件中得到所述代码文件的语法树结构;
根据所述语法树结构定位与软件的窗体输入控件相对应的代码段的代码位置;
根据所述代码位置得到所述代码段。
较佳地,所述代码文件为窗体设计代码文件,所述窗体输入控件为选择性控件。
较佳地,所述代码文件为窗体设计代码文件,所述窗体输入控件为键盘输入控件;
所述窗体设计代码文件的代码段中包含键盘输入控件的MaxLength属性赋值语句,该赋值语句定义了键盘输入控件允许输入的字符个数。
较佳地,所述代码文件为窗体实现代码文件,所述窗体输入控件为文本框编辑控件或按钮提交控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在窗体实现代码文件得到所述文本框编辑控件或按钮提交控件相对应的控件事件;
分析所述控件事件,得到控件事件中所包含的窗体控件输入字段的范围信息。
较佳地,所述代码文件为输入验证类代码文件,所述窗体输入控件为按钮提交控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在窗体设计代码文件得到所述按钮提交控件相对应的按钮提交事件;
构造所述按钮提交事件的函数调用关系式;
根据所述函数调用关系式定位键盘输入控件允许输入字段信息的正则表达式。
较佳地,所述代码文件为数据库对象类代码文件,所述窗体输入控件为键盘输入控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在所述窗体设计代码文件中得到所述键盘输入控件对应的数据库字段名称;
扫描所述数据库对象类的设计代码文件,得到对应数据库各表的对象类;
在每个对象类中通过Column关键字标签找到表中的各字段属性代码段,各字段均与窗体中的输入控件相对应。
本发明的有益效果为:
(1)不依赖于软件文档。该发明不需要测试人员阅读相关软件文档就可以得到软件输入边界值,有效避免了因软件文档陈旧、过时、不完整带来的软件输入边界值获取错误;
(2)自动化程度高。该发明既不需要测试人员阅读源程序代码,也不需要测试人员进行很多尝试性输入,而是通过分析源程序代码就可以找出每个输入字段的边界值,能够大大减轻测试人员的工作量,提高工作效率;
(3)直观、便捷。本发明以GUI软件中的界面输入字段为研究对象,通过分析源程序代码,直接获取界面输入字段的边界值。该发明虽然采用的也是常规的源程序代码分析方法,但其解决的问题与通常的源程序代码分析方法有着本质区别。使用常规的源程序代码分析方法,找出的是源程序代码中所有的变量,而这些变量有些与界面输入控件有关,有些则无关,测试人员无法从这些变量中找出与界面控件有关的变量,从而也就无法确定界面输入控件的边界值。为了解决这个问题,本发明中采用了控件-变量映射和字段-控件映射技术,通过构建控件-变量映射表和字段-控件映射表,从众多的变量中找出与界面输入控件有关的变量,针对界面输入控件边界值设定的四种不同方式,给出了具体的解决方案。
软件输入边界值是软件测试的基础数据之一,只有知道了软件输入边界,才能设计出有效的测试用例。本发明为软件输入字段测试提供了便捷、高效的方法,可以大大提高软件输入字段测试的充分性、有效性和测试效率。
附图说明
图1输入字段边界值获取流程;
图2窗体设计代码文件分析流程;
图3窗体实现代码文件分析流程;
图4输入验证类代码文件分析流程;
图5数据库对象类代码文件分析基本流程;
图6学生信息录入示例;
图7窗体设计代码文件中文本框“姓名”属性代码段;
图8窗体实现代码文件中文本框“学号”输入范围判断代码段;
图9窗体实现代码文件中文本框“身份证号”输入范围判断代码段;
图10输入验证类文件中文本框“身份证号”输入范围判断代码段;
图11数据库对象类文件中文本框“姓名”输入范围判断代码段;
图12为一种软件输入边界值获取系统框图。
具体实施方式
本发明主要解决GUI软件输入字段边界值获取问题,其目的是提供一种GUI软件输入字段边界值自动获取方法,从而使测试人员能够直观、准确、快速地掌握输入字段的范围及类型,为测试用例设计提供依据。
本发明主要针对GUI软件输入界面四种不同的边界和范围设定方式,提出了获取软件输入边界的解决方案。针对通过窗体设计代码设定软件输入边界的情况,本方案采用窗体设计代码文件自动扫描及分析方法,找出窗体包含的所有控件,生成键盘输入控件列表,根据每个控件的属性,获取该控件的边界值;
针对通过窗体实现代码设定软件输入边界的情况,在得到键盘输入控件列表的基础上,采用变量过滤和控件-变量映射表;精确定位输入字段的窗体控件和所涉及的实现代码位置,从而分析得出字段的输入范围及类型;
针对通过验证类代码设定软件输入边界的情况,在建立控件-变量映射表的基础上,采用正则表达式分析方法,得到变量的输入边界和范围,从而得出输入控件的范围;
针对通过数据库对象类代码设定软件输入边界的情况,采用控件-字段映射表,得到数据库表字段的输入边界和范围,从而得出输入控件的范围。
GUI类软件包含很多控件,其中与用户进行数据交互最多的控件分别为TextBox、ComboBox、ListBox、CheckBox等。根据这些控件的功能,可以将其分为两大类,一类为选择性控件,如ComboBox、ListBox、CheckBox控件,一类为键盘输入控件,如TextBox文本框控件。对于选择性控件,其输入字段的范围和类型在软件动态运行时在屏幕上有直观的显示,根据这些信息,测试人员很容易获取其类型和输入边界,因此,不需要特殊的方法;而对于键盘输入控件就不是如此简单了,这类控件是广泛使用的用户输入控件,通过该类控件,用户可以用键盘输入相应的数据,软件根据输入的数据实现指定的功能。键盘输入控件的实现方式是多种多样的,这种多样性给确定其输入范围带来了困难。
对于同一个输入字段,如用户名,其边界值设定方式因编程语言、开发人员不同而不同,因此,需要根据不同的实现方式,提出不同的获取方法。通过对软件开发过程中输入界面所涉及的输入字段分析,总结归纳了开发人员采用的四种不同的设定方式,分别是:窗体设计、窗体实现、输入验证、数据库对象。针对这四种不同的实现方式,提出了输入字段边界值获取方案,如图1所示。
本发明的一个实施例中,公开了一种基于窗体设计代码文件来确定输入字段边界值的方法,如图2所示:
本方案通过对键盘输入控件编程方式分析,找出了一种广泛使用的键盘输入控件长度设定方式,即在软件开发阶段,开发人员通过编辑键盘输入控件的属性来设定输入字段的长度,编辑后的属性值保存在窗体设计代码文件中。根据这个事实,提出了一种基于窗体设计代码文件来确定输入字段边界值的方法。本方案主要是通过扫描窗体设计代码文件构造控件列表,控件列表包含该窗体所拥有的键盘输入控件信息,包括控件的名称和MaxLength属性,该属性值定义了键盘输入控件允许输入的字符个数,这个值就是键盘输入控件的长度边界值。
一般情况下,通过分析窗体设计代码,就可以获取键盘输入控件输入字段的长度,但在具体的实现过程中,并不是所有的开发人员都是采用上述方式设置字段长度的。如果开发人员在软件开发阶段没有设置键盘输入控件中的MaxLength属性,那么系统会将其允许输入长度设置为默认值,由于该默认值是系统设置而非开发人员设置的,因此,在窗体设计代码文件中不会出现相应的默认值属性赋值语句,允许输入的字段长度通常默认为16位无符号整型的最大值。
在软件开发过程中,在窗体实现代码中设置键盘输入控件输入字段范围的情况也很多见。针对这种情况,在本发明的一个实施例中,公开了一种基于窗体实现代码文件来确定输入字段范围的方法,如图3所示:
本方案首先扫描分析窗体设计代码文件构造控件列表,包括控件的名称和事件。然后扫描分析窗体实现代码文件,得到实现代码中的全部变量及变量所在事件(函数)名称,生成变量列表。同时,以输入控件列表作为基表,遍历每个输入控件,查找以每个输入控件的文本属性作为右值的赋值语句,对变量列表进行过滤,找到与窗体控件对应的变量,生成控件-变量映射表。通常,键盘输入控件输入字段会出现在两种控件事件中。(1)文本框控件的编辑事件;(2)按钮控件的提交事件。如果控件列表中的文本框控件存在编辑事件,那么,设置该文本框输入字段边界的语句就包含在该事件中,通过控件-变量映射表找到文本框对应的变量,分析变量所在的语句可以得到文本框输入字段的边界;如果控件列表中的文本框控件不存在编辑事件,那么按钮控件的提交事件中会通过一系列条件判断语句对窗体中各文本框的输入字段边界或类型进行限制,因此,可以通过控件-变量映射表找到文本框对应的变量,分析变量所在的条件判断语句,如if(num>1||num<100)等,可以得到变量num的输入范围。需要说明的是,源程序代码中存在很多条件判断语句,并非每一条条件判断语句都与输入字段边界值有关,因此,如果采用常规的源程序代码分析方法,将得到很多与输入字段边界无关的条件判断语句,对于这些条件判断语句,需要测试人员再次进行分析,从中找出与界面输入字段边界有关的语句,从而确定出界面输入字段的边界。显然,这种方法并不能从根本上解决界面控件输入边界问题。为了解决这个问题,本发明采用控件-变量映射技术,通过建立控件-变量映射表,找出与界面控件有关的变量,在进行源代码分析时,只提取与界面控件有关的变量所对应的条件判断语句,通过分析这些条件判断语句,找出界面输入控件的边界值。例如,对于if(num>1||num<100)条件判断语句,根据控件-变量映射表,该语句中的变量num与界面输入控件有关系,在此基础上,通过对该条件判断语句分析,得出与变量num对应的界面输入控件的输入边界为[1,100]。这也是本发明与已有的源程序代码分析方法的不同之处。
在软件开发过程中,对于某些类型的软件,开发人员往往只是对关键字段或数据库主键字段进行判断,窗体上的其它键盘输入控件的输入边界和类型一般不做限制;如果对窗体上的每一个键盘输入控件的输入边界或类型都进行判断,则程序中需要增加很多条件判断语句,这将是一件非常繁琐的过程,逻辑复杂且容易遗漏。为了解决这个问题,很多开发人员将与输入字段边界判断相关的处理单独写到一个类中,采用正则表达式进行字段验证。
针对这种情况,在本发明的另一个实施例中,公开了一种基于输入验证类代码文件来确定输入字段范围的方法,如图4所示:
本方案通过对窗体设计、实现代码的扫描和分析,生成控件-变量映射表。基于窗体的按钮提交事件,过滤得到窗体输入控件与按钮提交事件中包含变量的对应关系,同时从变量表中还能得到以该变量作为传递参数的函数,该函数即为对输入验证类成员函数。在输入验证类成员函数中找到对输入控件输入边界或类型的正则表达式语句,解析该正则表达式,就可以得到键输入控件的输入边界或类型。
在软件开发过程中,大多数开发人员都采用上述三种方式设置键盘输入控件的输入字段边界和类型,对于这三种设置方式,前面分别给出了解决方案。近几年来,随着.NETFramework和C#的快速流行,越来越多的开发人员开始选择这种方便快捷的开发模式。与已有的开发语言相比,C#3.0带来的最大变化就是增加了LanguageIntegratedQuery(LINQ)技术,LINQ是处理对象集合的一种新方式,这些对象来自于各种数据源,其中最重要的数据源就是数据库。
目前,大多数GUI应用程序都有后台数据库作为支撑,GUI界面上的所有输入字段都保存在后台数据库中,LINQ技术的LINQtoSQL类,提供了一种简单的方式把界面上的控件图形化地绑定到数据库上,这样就可以快捷、简单地创建出功能齐全的数据库应用程序。LINQtoSQL在关系数据库的表和C#程序对象之间创建了一个对象相关映射层,开发人员可以从数据库中自动创建匹配数据库的表,而不需要自己创建,从而可以直接使用对应数据库表中的类对数据库进行操作。
根据LINQ技术的特点,对于采用此种方式开发的应用程序,在本发明的另一个实施例中,公开了一种基于数据库对象类代码文件来确定输入字段边界和类型的方法,如图5所示:
该方案通过分析数据库对象类的设计代码文件获取对应窗体控件的输入字段边界。首先,扫描窗体设计代码文件,生成控件列表。然后,扫描数据库对象类的设计代码文件,得到对应数据库各表的对象类,生成字段属性列表。在每个对象类中通过Column关键字标签找到表中的各字段属性代码段,建立各字段与窗体中的控件一一对应关系,生成字段-控件映射表。在字段属性代码段中包含了该字段在数据库中定义的类型和长度,这些类型和长度就是键盘输入控件在数据库中所限制的输入范围和类型。如果想进一步确定输入控件在实际应用程序中的输入边界,可以结合前面三种方法做进一步分析。
下面以用VSC#语言开发的学生信息录入程序为例,具体说明如何通过本发明实施例来获取学生信息输入字段边界。示例程序输入界面如图6所示。
(1)窗体设计代码文件分析
以获取“姓名”输入框字段长度为例,该字段的边界在窗体设计中设置。通过扫描工程中的源代码文件,首先在源代码文件列表中找到“新建学生信息”界面的窗体设计代码文件fmNew.designer.cs,扫描窗体设计代码,找到关键字“Windows窗体设计器生成的代码”代码段,根据该段代码生成控件列表,通过控件名称和类型,定位“姓名”输入框的定义信息,找到MaxLength属性值,即可获取输入框字段范围。图7为与“姓名”输入框属性定义相关的代码,从该代码中可以得到“姓名”字段输入长度为5。
(2)窗体实现代码文件分析
以获取“学号”输入框字段边界为例,该字段的边界在窗体实现代码中设置。
通过扫描工程中的源代码文件,首先在源代码文件列表中找到“新建学生信息”界面的窗体设计代码文件fmNew.designer.cs,扫描窗体设计代码,找到关键字“Windows窗体设计器生成的代码”代码段,根据该段代码生成控件列表,通过控件名称和类型,定位“学号”输入框的定义信息,然后在源代码文件列表中找到“新建学生信息”界面的窗体实现代码文件fmNew.cs,扫描窗体实现代码,生成变量列表。通过控件事件,生成控件-变量映射表,找到保存按钮事件包含的变量,定位该变量的范围判断代码,通过映射表获取变量对应的窗体输入框控件,即可获取输入框“学号”字段范围。图8为“学号”输入框范围判断代码,从中可以得到int型变量strID对应窗体中的txtBoxStuID输入框,对变量strID范围的判断代码,即为对输入框txtBoxStuID输入范围的判断,据此可获取“学号”字段输入边界为1—99。
(3)输入验证类代码文件
以获取“身份证号”输入框字段边界为例,该字段的边界在正则表达式中指定。
通过扫描工程中的源代码文件,首先在源代码文件列表中找到“新建学生信息”界面的窗体设计代码文件fmNew.designer.cs,扫描窗体设计代码,找到关键字“Windows窗体设计器生成的代码”代码段,根据该段代码生成控件列表,通过控件名称和类型,定位“身份证号”输入框的定义信息,然后在源代码文件列表中找到“新建学生信息”界面的窗体实现代码文件fmNew.cs,扫描窗体实现代码,生成变量列表。通过保存按钮事件,得到“身份证号”输入控件与按钮提交事件中包含变量的对应关系,同时从变量表中还能得到以该变量作为传递参数的函数,该函数即为对输入验证类成员函数。扫描输入验证类代码文件,找到被调用的函数,分析函数实现中的正则表达式,即可获取输入框字段边界。图9为在窗体实现代码文件中对“身份证号”输入框范围判断代码,从中可以看到判断语句调用了StringValidation类中的isChinaIDCardNumString(string str)函数,传递给该函数的string型变量IDCardNum对应窗体中txtBoxIDCardNum输入控件,即“身份证号”输入框。图10为输入验证类StringValidation对身份证号范围判断的具体函数实现,通过分析正则表达式"\d{18}|\d{15}",可以得知身份证号为18位或15位的数字。
(4)数据库对象类代码文件
以获取“姓名”输入框字段长度为例,该字段的范围在数据库对象类的设计代码中指定。
通过扫描工程中的源代码文件,首先在源代码文件列表中找到“新建学生信息”界面的窗体设计代码文件fmNew.designer.cs,扫描窗体设计代码,找到关键字“Windows窗体设计器生成的代码”代码段,根据该段代码生成控件列表,定位“姓名”输入框的定义信息。扫描数据库对象类的设计代码文件,生成字段属性列表。建立字段-控件映射表,找到与“姓名”输入框对应的数据库表字段,定位到定义该字段的属性代码,即可获取该字段的输入边界、类型及限制信息。图11为“姓名”输入框边界判断代码,可以得到“姓名”字段输入长度为5,并且不能为空值。
本发明的另一实施例中,公开了一种与上述方法实施例相对应的GUI软件输入边界值获取系统,如图12所示,包括:
预处理模块,用于对源程序代码进行规范化处理;
源代码扫描模块,用于扫描被测软件源代码;
控件表处理模块,用于生成界面输入控件列表;
变量表处理模块,用于生成全部变量列表;
映射表处理模块,用于建立变量表和控件表对应关系列表;
代码段查询模块,用于在代码文件中得到与所述软件的窗体输入控件相对应的代码段,所述代码段中包含输入字段的范围信息。
以上所述的具体实施方式,对本发明的技术方案进行了详细说明。所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

Claims (9)

1.一种软件输入边界值获取方法,应用于含有图形用户界面GUI的软件,包括:
扫描被测软件源代码;
在代码文件中得到与所述软件的窗体输入控件相对应的代码段,所述代码段中包含输入字段的范围信息。
2.如权利要求1所述的方法,其特征在于:
所述在代码文件中找到与所述软件的窗体输入控件相对应的代码段具体包括:
在代码文件中得到所述代码文件的语法树结构;
根据所述语法树结构定位与软件的窗体输入控件相对应的代码段的代码位置;
根据所述代码位置得到所述代码段。
3.如权利要求1或2所述的方法,其特征在于:
所述代码文件为窗体设计代码文件,所述窗体输入控件为选择性控件。
4.如权利要求1或2所述的方法,其特征在于:
所述代码文件为窗体设计代码文件,所述窗体输入控件为键盘输入控件;
所述窗体设计代码文件的代码段中包含键盘输入控件的MaxLength属性赋值语句,该赋值语句定义了键盘输入控件允许输入的字符个数。
5.如权利要求1或2所述的方法,其特征在于:
所述代码文件为窗体实现代码文件,所述窗体输入控件为文本框编辑控件或按钮提交控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在窗体实现代码文件得到所述文本框编辑控件或按钮提交控件相对应的控件事件;
分析所述控件事件,得到控件事件中所包含的窗体控件输入字段的范围信息。
6.如权利要求1或2所述的方法,其特征在于:
所述代码文件为输入验证类代码文件,所述窗体输入控件为按钮提交控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在窗体设计代码文件得到所述按钮提交控件相对应的按钮提交事件;
构造所述按钮提交事件的函数调用关系式;
根据所述函数调用关系式定位键盘输入控件允许输入字段信息的正则表达式。
7.如权利要求1或2所述的方法,其特征在于:
所述代码文件为数据库对象类代码文件,所述窗体输入控件为键盘输入控件;
所述在代码文件中得到与所述软件的窗体输入控件相对应的代码段具体包括:
在所述窗体设计代码文件中得到所述键盘输入控件对应的数据库字段名称;
扫描所述数据库对象类的设计代码文件,得到对应数据库各表的对象类;
在每个对象类中通过Column关键字标签找到表中的各字段属性代码段,各字段均与窗体中的输入控件相对应。
8.一种软件输入边界值获取系统,应用于含有图形用户界面GUI的软件,包括:
源代码扫描模块,用于扫描被测软件源代码;
代码段查询模块,用于在代码文件中得到与所述软件的窗体输入控件相对应的代码段,所述代码段中包含输入字段的范围信息。
9.如权利要求8所述的系统,其特征在于:
所述在代码文件中找到与所述软件的窗体输入控件相对应的代码段具体包括:
在代码文件中得到所述代码文件的语法树结构;
根据所述语法树结构定位与软件的窗体输入控件相对应的代码段的代码位置;
根据所述代码位置得到所述代码段。
CN201410218616.6A 2014-05-22 2014-05-22 一种gui软件输入边界值获取方法和系统 Active CN103970662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410218616.6A CN103970662B (zh) 2014-05-22 2014-05-22 一种gui软件输入边界值获取方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410218616.6A CN103970662B (zh) 2014-05-22 2014-05-22 一种gui软件输入边界值获取方法和系统

Publications (2)

Publication Number Publication Date
CN103970662A true CN103970662A (zh) 2014-08-06
CN103970662B CN103970662B (zh) 2017-09-29

Family

ID=51240191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410218616.6A Active CN103970662B (zh) 2014-05-22 2014-05-22 一种gui软件输入边界值获取方法和系统

Country Status (1)

Country Link
CN (1) CN103970662B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699608A (zh) * 2015-03-10 2015-06-10 于秀山 图形用户界面软件自动测试方法及装置
CN105373392A (zh) * 2015-12-09 2016-03-02 浪潮电子信息产业股份有限公司 一种基于dos系统的对扫描序字串位数控制的方法
CN105550353A (zh) * 2015-12-28 2016-05-04 歌尔声学股份有限公司 基于正则表达式的表单录入方法及系统
CN106874175A (zh) * 2015-12-11 2017-06-20 阿里巴巴集团控股有限公司 测试用例的自动生成方法和装置
CN109062784A (zh) * 2018-07-06 2018-12-21 北京大学 接口参数约束代码入口定位方法与系统
CN110781186A (zh) * 2019-10-17 2020-02-11 中国人民解放军63686部队 一种软件界面读写数据表的实现方法
CN111124208A (zh) * 2019-12-24 2020-05-08 三一重工股份有限公司 基于发送按钮的文本发送方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102243586B (zh) * 2011-07-22 2015-02-04 于秀山 一种软件功能图自动获取方法
CN102831057B (zh) * 2012-08-13 2015-02-11 于秀山 一种用功能图分析软件功能变更及其影响的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699608A (zh) * 2015-03-10 2015-06-10 于秀山 图形用户界面软件自动测试方法及装置
CN104699608B (zh) * 2015-03-10 2017-10-27 于秀山 图形用户界面软件自动测试方法及装置
CN105373392A (zh) * 2015-12-09 2016-03-02 浪潮电子信息产业股份有限公司 一种基于dos系统的对扫描序字串位数控制的方法
CN106874175A (zh) * 2015-12-11 2017-06-20 阿里巴巴集团控股有限公司 测试用例的自动生成方法和装置
CN105550353A (zh) * 2015-12-28 2016-05-04 歌尔声学股份有限公司 基于正则表达式的表单录入方法及系统
CN109062784A (zh) * 2018-07-06 2018-12-21 北京大学 接口参数约束代码入口定位方法与系统
CN109062784B (zh) * 2018-07-06 2021-04-27 北京大学 接口参数约束代码入口定位方法与系统
CN110781186A (zh) * 2019-10-17 2020-02-11 中国人民解放军63686部队 一种软件界面读写数据表的实现方法
CN111124208A (zh) * 2019-12-24 2020-05-08 三一重工股份有限公司 基于发送按钮的文本发送方法和系统

Also Published As

Publication number Publication date
CN103970662B (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
CN103970662A (zh) 一种gui软件输入边界值获取方法和系统
CN104699608B (zh) 图形用户界面软件自动测试方法及装置
US20200019492A1 (en) Generating executable test automation code automatically according to a test case
AU2017258963A1 (en) Simultaneous multi-platform testing
US20110035729A1 (en) Generating and resolving component names in an integrated development environment
US20150347281A1 (en) Automation testing using descriptive maps
Villanes et al. What are software engineers asking about android testing on stack overflow?
CN106776319B (zh) 自动测试方法及装置
CN105095067A (zh) 用户界面元素对象识别及自动化测试的方法和装置
CN108846282A (zh) 基于静态污点分析的安卓应用程序权限泄露漏洞检测方法
CN108710571B (zh) 一种生成自动化测试代码的方法和装置
US10572566B2 (en) Image quality independent searching of screenshots of web content
US20070061641A1 (en) Apparatus and method for generating test driver
US20130042200A1 (en) System and method for annotating graphical user interface
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN112416788B (zh) 一种分层规范的Web应用UI自动化测试方法
Bures et al. SmartDriver: Extension of selenium WebDriver to create more efficient automated tests
CN115562656A (zh) 页面的生成方法、装置、存储介质及计算机设备
CN107066302B (zh) 缺陷检测方法、装置及服务终端
CN112632893B (zh) 图形筛选方法及装置、服务器和存储介质
US10275462B2 (en) Automatic translation of string collections
Aljawabrah et al. Automated recovery and visualization of test-to-code traceability (TCT) links: An evaluation
CN104750604A (zh) 浏览器兼容性测试案例的生成方法和装置
CN113051262B (zh) 一种数据质检方法、装置、设备及存储介质
US9152388B2 (en) Tailored language sets for business level scripting

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230419

Address after: No. 66, Zizhuyuan Road, Haidian District, Beijing 100048

Patentee after: China Software Evaluation Center

Address before: 100036 Courtyard 3-4101, No. 6 Wanshou Road, Haidian District, Beijing

Patentee before: Yu Xiushan

TR01 Transfer of patent right