一种图形用户界面的测试方法及系统与流程

文档序号:36417838发布日期:2023-12-20 00:12阅读:38来源:国知局
一种图形用户界面的测试方法及系统与流程

【】本发明涉及图形用户界面的设计领域,特别涉及一种图形用户界面的测试方法和系统。

背景技术

0、
背景技术:

1、在计算机软件领域中,图形用户界面(graphical user interface)应用程序越来越多,为了保障软件的可靠性,通常会采用手动测试或手动测试与自动化测试相结合的方式对被测软件进行测试。而对于一些软件,随着其功能变得越发复杂与强大,功能模块越来越多,版本不断更新迭代,如何在少量人力的情况下进行测试,且保证测试代码的稳定性就会是一件庞大的工作量,集成电路图形用户界面软件就是这样一类软件。

2、不同的测试方法应用领域对测试的效率有着不同的要求,例如直接读取数据进行精确验证可以发现很精细的漏洞,属于对单一结果验证的深度足够,但往往需要更加精细化的测试代码准备以及后续维护,而对一系列操作行为的适应性需待考量,因为精细化的测试本身对测试代码就提出了较高要求,从而对测试代码的设计提出了要求。因为对集成电路图形界面的测试验证不仅涉及到软件功能本身,还涉及到大量数据行为、数据展示的验证,以及数据与图形交互行为的验证。

3、现有的图形用户界面测试方法,对图形用户界面的控件元素的管理属于创建随机命名变量。这样在简单的使用中是可以的,考虑到控件对象之间存在一定的依赖关系时,这种对象间的依赖关系信息也会包含在变量属性中,且这种行为也出现在对表中元素的访问时,缺乏对被测图形用户界面控件元素更为精细化的、便捷化的管理。没有完全和后续元素访问操作独立出来。

4、同时,现有的图形用户界面测试方法在设置验证点时,会依据检测对象特性而采用不同的检测方式,比如检查一个数据值时,会采用将该数值读取出来进行数值比对。若处理的任务中有大量的不定行列的表格数据时,图形用户界面测试方法的测试代码逻辑对数据的处理就依据不同表数据而有不同逻辑,测试程序将包含被测软件的一些逻辑而增加耦合度。此外表格的一些行为,比如多行合并,不同数据在表格上不同颜色显示等,就需要在读取表格数据的同时,读取表格的逻辑信息,这样事实上测试代码的逻辑就会变得比较复杂,使得测试程序本身出现漏洞的概率就变高。而且测试代码对被测图形用户界面程序的依赖度较高,在图形用户界面程序更新时,测试程序需要改动,维护成本增加。


技术实现思路

0、
技术实现要素:

1、为提高图形用户界面的测试效率,本发明提供了一种图形用户界面的测试方法及系统。

2、本发明解决技术问题的方案是提供一种图形用户界面的测试方法,包括以下步骤:

3、s1:获取图形用户界面运行过程产生的代码;

4、s2:提取代码中图形用户界面的控件,将具有依赖关系的控件变量化封装成控件对象,控件对象保存在一个控件对象文件中;

5、s3:按照功能模块将图形用户界面运行过程的操作步骤封装为关键字函数;

6、s4:按照操作步骤的执行顺序依次调用对应的关键字函数,组成测试用例;

7、s5:运行测试用例,得到图形用户界面的测试结果。

8、优选地,步骤s2之后,还包括步骤s21:将至少部分具有依赖关系的控件变量化封装成元素函数接口。

9、优选地,步骤s3之后,还包括步骤s31:将控件对象封装为直接调用函数,通过直接调用函数来获取控件对象相对应的控件对象截图。

10、优选地,步骤s4之后,还包括步骤s41:运行测试用例,通过设置函数开关将该次运行调整为生成预期流程,将预期流程的测试结果设置为预期值。

11、优选地,步骤s41之后,还包括步骤s42:将至少部分控件对象设置为验证点,再次运行所述测试用例,验证点的测试结果和验证点相应的预期值进行比对,判断在验证点处测试用例是否通过测试。

12、优选地,步骤s5之后,还包括步骤s6:调用关键字函数执行测试用例,根据关键字函数的返回结果和验证点的比对结果,判断测试用例是否通过测试,并将判断结果写入测试报告。

13、优选地,验证点的测试结果包括测试结果图片和测试结果文件,将测试结果图片在函数中和预期值中的图片进行像素级比对,将测试结果文件和预期值中的文件进行完整字符比对。

14、优选地,步骤s6之后,还包括步骤s7:测试用例维护,当控件发生调整时,重新获取调整后的控件,将调整后的控件变量化封装成控件对象,在控件对象文件中替换相应的控件对象。

15、本发明为解决上述技术问题还提供一种图形用户界面的测试系统,用于实现图形用户界面的测试方法,包括:

16、代码录制模块,用于获取代码;

17、控件管理模块,用于从代码中提取控件,将控件变量化和函数化处理;

18、封装模块,用于封装关键字函数和直接调用函数;

19、测试用例生成模块,用于调用关键字函数,组成测试用例;

20、测试用例运行模块,用于运行测试用例,设置预期值和验证点;

21、测试结果生成模块,用于根据验证点处的测试结果和验证点处的预期值的比对结果,判断测试用例是否通过测试,并将判断结果写入测试报告;

22、测试维护模块,用于重新获取调整后的控件,将所述调整后的控件变量化封装成控件对象,并替换原有的控件对象。

23、本发明为解决上述技术问题还提供一种存储介质,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述计算机程序时,实现图形用户界面的测试方法。

24、与现有技术相比,本发明的一种图形用户界面的测试方法和系统,具有如下的有益效果:

25、1.本发明提供的一种图形用户界面的测试方法,包括以下步骤:s1:获取图形用户界面运行过程产生的代码;s2:提取代码中图形用户界面的控件,将具有依赖关系的控件变量化封装成控件对象,控件对象保存在一个控件对象文件中;s3:按照功能模块将图形用户界面运行过程的操作步骤封装为关键字函数;s4:按照操作步骤的执行顺序依次调用对应的关键字函数,组成测试用例;s5:运行测试用例,得到图形用户界面的测试结果。本发明通过在测试过程将图形用户界面的控件变量化封装成控件对象,并将控件对象保存在一个控件对象文件中,去掉控件之间的关联。使得控件变量对图形用户界面软件的访问更加稳定可靠,也使得后续测试代码编程过程中和验证时对控件对象的访问与待测软件对象隔离开来,测试更加便捷高效。

26、2.本发明的步骤s2之后,还包括步骤s21:将至少部分具有依赖关系的控件变量化封装成元素函数接口。通过将具有依赖关系的控件如表数据及其关联的子表,变量化封装成元素函数接口,保存在控件对象文件中进行管理。后续访问接收传入参数行列等信息就可以访问相应表中的相应元素,将访问端和控件管理端分割开来。这样后续访问具体对象既不需要了解具体对象,又可以准确的与表或表的某个元素访问。

27、3.本发明的步骤s3之后,还包括步骤s31:将控件对象封装为直接调用函数,通过直接调用函数来获取控件对象相对应的控件对象截图。将不同功能不同模块不同格式的控件对象封装到一套通用方式访问的方法函数,即直接调用函数,通过将控件对象传入直接调用函数,可以直接返回控件对象截图。这样可以将对控件对象的验证封装到直接调用函数中,更加细化到每一个想要待测的功能模块,使得验证点的选择灵活度增加。即每个功能模块对象既当作被操作对象,也可以当作被检测对象,增加了测试验证的自由度。

28、4.本发明的步骤s4之后,还包括步骤s41:运行测试用例,通过设置函数开关将该次运行调整为生成预期流程,将预期流程的测试结果设置为预期值。

29、步骤s41之后,还包括步骤s42:将至少部分控件对象设置为验证点,再次运行所述测试用例,验证点的测试结果和验证点相应的预期值进行比对,判断在验证点处测试用例是否通过测试。

30、步骤s5之后,还包括步骤s6:调用关键字函数执行测试用例,根据关键字函数的返回结果和验证点的比对结果,判断测试用例是否通过测试,并将判断结果写入测试报告。验证点的测试结果包括测试结果图片和测试结果文件,将测试结果图片在函数中和预期值中的图片进行像素级比对,将测试结果文件和预期值中的文件进行完整字符比对。

31、本发明通过设置预期值和验证点,可以在需要验证的控件对象处进行自动化验证,通过比对预期值和验证点的测试结果,从而对图形用户界面进行测试判断。同时,采用了精细化元素的控件对象图片截取,即依据情况将验证点的图像信息尽可能细化到检测对象,保证测试验证点的准确性和稳定性,将验证点的测试结果和预期值进行像素级比对,用图片信息替代很多场景下的数值比对,可以满足快速检测要求的同时,提升待测软件变动频繁时的测试软件的稳定性,提高测试效率。例如对于一个表来说,既可以截取图表,又可以截取图表中的一行,一列,又或者一个元素。这样就将无关信息排除在外,只需要考虑控件对象截图的大小准确,即使多次运行截图,图片质量也比较稳定,测试程序也比较稳定。

32、5.本发明的步骤s6之后,还包括步骤s7:测试用例维护,当控件发生调整时,重新获取调整后的控件,将调整后的控件变量化封装成控件对象,在控件对象文件中替换相应的控件对象。如果图形用户界面功能逻辑不发生变动的基础上,控件发生改动,自动化测试维护者只需要改动控件对象变量,其子控件对象可以在不发生修改的基础上依然可以访问,减少了待测图形用户界面软件变动而产生的测试代码的修改量。

33、6.本发明还提供一种图形用户界面的测试系统,具有与上述图形用户界面的测试方法相同的有益效果,在此不做赘述。

34、7.本发明还提供一种存储介质,其上存储有计算机程序,该计算机程序被执行时实现上述图形用户界面的测试方法,具有与上述图形用户界面的测试方法相同的有益效果,在此不做赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1