CN109634842B - 基于qt应用程序的测试方法和系统 - Google Patents

基于qt应用程序的测试方法和系统 Download PDF

Info

Publication number
CN109634842B
CN109634842B CN201811269263.7A CN201811269263A CN109634842B CN 109634842 B CN109634842 B CN 109634842B CN 201811269263 A CN201811269263 A CN 201811269263A CN 109634842 B CN109634842 B CN 109634842B
Authority
CN
China
Prior art keywords
test
parameters
case
script
generating
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
CN201811269263.7A
Other languages
English (en)
Other versions
CN109634842A (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.)
Zhonghui Medical Technology Shanghai Co ltd
Original Assignee
Zhonghui Medical Technology Shanghai Co ltd
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 Zhonghui Medical Technology Shanghai Co ltd filed Critical Zhonghui Medical Technology Shanghai Co ltd
Priority to CN201811269263.7A priority Critical patent/CN109634842B/zh
Publication of CN109634842A publication Critical patent/CN109634842A/zh
Application granted granted Critical
Publication of CN109634842B publication Critical patent/CN109634842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3684Test management for test design, e.g. generating new test cases
    • 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
    • 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/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种基于QT应用程序的测试方法和系统,获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间;令测试参数与预期测试用例的参数进行对比,确保测试参数准确;根据测试参数、UML模型,通过测试方法,生成实际测试用例;根据实际测试用例,通过ranorex录制生成测试脚本;在ranorex上运行测试脚本,获得测试结果;将测试结果与预期值进行比较,得出缺陷。通过采用UML模型的方法,解决了测试用例必须要在软件开发完毕后才可以全部编写生成的问题,从而加快了研发进度;通过采用Ranorex工具,解决测试工具对于QT框架无法进行自动化测试和重复性测试的问题,加强了软件的健壮性。

Description

基于QT应用程序的测试方法和系统
技术领域
本发明涉及计算机软件测试领域,具体地,涉及一种基于QT应用程序的测试方法和系统。
背景技术
随着计算机软件适用范围的不断扩大,图形用户界面(Graphical UserInterface)应用程序也越来越多。为了保障软件的可靠性,通常会采用手动测试或自动化测试。
由于手工测试占用测试人员的大量时间和精力,进行重复繁琐的测试工作,存在测试效率低下,误测以及漏测等问题。所以越来越多的GUI应用程序借助于自动化测试技术进行快速,全面的测试,从而提高软件质量,缩短软件的发布周期,也可以使测试人员拜托枯燥乏味的测试工作。
目前,被广泛采用的自动化方法是录制回放技术,通常需要截获整个测试过程的“用户操作”,并生成脚本,然后以自动化测试的方式回放“用户操作”。这种测试方式有一些缺陷:首先,它需要合适的测试工具可以抓取待测软件控件的对象属性;然后测试人员对脚本进行编码,又因为其只是单纯的录制无法适应测试数据的变化,一旦变化就需要重新录制,脚本可重用性;最后,对于软件的测试数据变化,它需要有应对的方法。
在现有的GUI应用程序开发中,QT作为一个非常流行的GUI开发框架,支持类UnixWindows以及IOS Android WindowsPhone等平台,将每一个用户操作用ranorex解析为一到多个数据驱动的事件,本发明对QT的应用程序提出一种自动化测试方法,可以有效的解决上述自动化测试方法的缺陷。
专利文献CN106326101A公开了一种基于QT的应用程序自动化测试方法,属于软件自动化测试领域。针对QT应用程序,在录制过程中截获QT事件,记录事件的相关信息,同时保存应用程序运行过程中的持测信息。在回放过程中,解析录制过程中记录的事件信息,利用控件的属性信息查找出唯一的控件,模拟QT事件,发送到事件队列中自动运行,并保存应用程序运行过程中的持测信息。最后比较录制和回放过程中持测信息的差异。提供的方法只需要简单地运行应用程序就可以完成录制回放操作,同时其回放过程是坐标不敏感的,界面内控件位置的变化,不会影响测试结果,并且该方法采用了统一有效的控件识别方法,以降低识别不同控件带来的负担和错误机率。上述专利文献采用业界内主流的录制回放技术,截获测试过程的“用户操作”,并生成脚本,然后以自动化的方式回放“用户操作”,但是如果软件功能属性发生改变,测试人员需要重新开始全新的测试工作,往往测试效率存在一定的局限性。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于QT应用程序的测试方法和系统。
根据本发明提供的一种基于QT应用程序的测试方法,包括:
获取测试参数步骤:获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间中的任一种或任多种参数;
核实测试参数步骤:令测试参数与预期测试用例的参数进行对比,确保测试参数准确;
生成测试用例步骤:根据测试参数、UML模型,通过测试方法,生成实际测试用例;
生成测试脚本步骤:根据实际测试用例,通过ranorex录制生成测试脚本;
运行测试脚本步骤:在ranorex上运行测试脚本,获得测试结果;
获取测试结果步骤:将测试结果与预期值进行比较,得出缺陷。
优选地,所述生成测试用例步骤包括:
测试覆盖步骤:依据测试参数,生成第一测试用例,根据UML模型,通过测试方法检查第一测试用例的准确度和覆盖度,得到第二测试用例;
用例生成步骤:令第二测试用例转化为能够被测试脚本读取的实际测试用例。
优选地,所述测试方法主要包括边界值分析、因果法、划分等价类法中的任一种或任多种。
根据本发明提供的一种基于QT应用程序的测试系统,包括:
获取测试参数模块:获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间中的任一种或任多种参数;
核实测试参数模块:令测试参数与预期测试用例的参数进行对比,确保测试参数准确;
生成测试用例模块:根据测试参数、UML模型,通过测试系统,生成实际测试用例;
生成测试脚本模块:根据实际测试用例,通过ranorex录制生成测试脚本;
运行测试脚本模块:在ranorex上运行测试脚本,获得测试结果;
获取测试结果模块:将测试结果与预期值进行比较,得出缺陷。
优选地,所述生成测试用例模块包括:
测试覆盖模块:依据测试参数,生成第一测试用例,根据UML模型,通过测试系统检查第一测试用例的准确度和覆盖度,得到第二测试用例;
用例生成模块:令第二测试用例转化为能够被测试脚本读取的实际测试用例。
优选地,所述测试系统主要包括边界值分析、因果法、划分等价类法中的任一种或任多种。
与现有技术相比,本发明具有如下的有益效果:
1、基于QT的应用程序的自动化测试,利用驱动化测试,可在不影响各个控件识别的前提下,批量修改各个控件的参数,大大加快了软件测试的效率和便捷性;
2、录制过程中不需要测试人员编辑脚本,测试人员只需要执行应用程序,然后自动或手动地进行回放测试并利用录制和回放过程中记录的待测信息自动化比较差异,极大地节约人力成本;
3、在应用程序开发后期,只需要更改驱动参数即可支持不同数据的自动化测试;
4、由于采用的是ranorex工具,所以支持QT编写的GUI上的一切控件,解决了QT程序无法完全使用自动化的问题。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的测试流程图;
图2为本发明的参数处理逻辑图;
图3为本发明的测试场景和实际场景配准示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于QT应用程序的测试方法,包括:
获取测试参数步骤:获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间;
核实测试参数步骤:令测试参数与预期测试用例的参数进行对比,确保测试参数准确;
生成测试用例步骤:根据测试参数、UML模型,通过测试方法,生成实际测试用例;
生成测试脚本步骤:根据实际测试用例,通过ranorex录制生成测试脚本;
运行测试脚本步骤:在ranorex上运行测试脚本,获得测试结果;
获取测试结果步骤:将测试结果与预期值进行比较,得出缺陷。
具体地,所述生成测试用例步骤包括,
测试覆盖步骤:依据测试参数,生成第一测试用例,根据UML模型,通过测试方法检查第一测试用例的准确度和覆盖度,得到第二测试用例;
用例生成步骤:令第二测试用例转化为能够被测试脚本读取的实际测试用例。
根据本发明提供的一种基于QT应用程序的测试系统,包括,
获取测试参数模块:获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间;
核实测试参数模块:令测试参数与预期测试用例的参数进行对比,确保测试参数准确;
生成测试用例模块:根据测试参数、UML模型,通过测试系统,生成实际测试用例;
生成测试脚本模块:根据实际测试用例,通过ranorex录制生成测试脚本;
运行测试脚本模块:在ranorex上运行测试脚本,获得测试结果;
获取测试结果模块:将测试结果与预期值进行比较,得出缺陷。
具体地,所述生成测试用例模块包括,
测试覆盖模块:依据测试参数,生成第一测试用例,根据UML模型,通过测试系统检查第一测试用例的准确度和覆盖度,得到第二测试用例;
用例生成模块:令第二测试用例转化为能够被测试脚本读取的实际测试用例。
具体地,所述测试方法主要包括边界值分析、因果法、划分等价类法中的任一种或任多种。
具体地,将生成的测试用例,根据UML模型,通过边界值分析,因果法,划分等价类法的方法进行排查,确保其准确性和覆盖率。将根据参数创建的测试用例转化为测试脚本可读取的用例。优选地,能够对获取的测试参数根据实际情况进行修正调整,以便于得到实际测试用例。
本发明提供的基于QT应用程序的测试系统,可以通过基于QT应用程序的测试方法的步骤流程实现。本领域技术人员可以将基于QT应用程序的测试方法理解为所述基于QT应用程序的测试系统的优选例。
在具体的实施中,如图1所示,第一步,录制测试用例。以GUI应用程序为例,应用程序中包含的Button1,Button2与参数控件Lab1,Lab2,Lab3,Lab4,Lab5,其中Button1的控件名为“定位”,类名为Button1Class,相对坐标P1,Button2的控件名为“生成计划”,类名为Button2Class,相对坐标P2;Lab1的控件名为“辐照功率”,类名为Lab1Class,相对坐标C1,Lab2的控件名为“持续时间”,类名为Lab2Class,相对坐标C2,Lab3的控件名为“间隔时间”,类名为Lab3Class,相对坐标C3,Lab4的控件名为“脉冲个数”,类名为Lab4Class,相对坐标C4,Lab5的控件名为“冷却时间”,类名为Lab5Class,相对坐标C5,应用程序主界面的控件名为MainFrame,类名为MainFrame。
测试人员的录制操作步骤为:
(1)鼠标左键单击Button1,等待定位;
(2)定位完成后,鼠标移动至Lab1,拉动滑动条;
(3)鼠标移动至Lab2,拉动滑动条;
(4)鼠标移动至Lab3,拉动滑动条;
(5)鼠标移动至Lab4,拉动滑动条;
(6)鼠标移动至Lab4,拉动滑动条;
(7)鼠标移动至Lab4,拉动滑动条;
(8)鼠标左键单击Button2,生成治疗计划;
在操作过程中,需要数据驱动化的动作事件为:
E1:在时间T1,鼠标在Lab1上的拖动事件;
E2:在时间T2,鼠标在Lab2上的拖动事件;
E3:在时间T3,鼠标在Lab3上的拖动事件;
E4:在时间T1,鼠标在Lab4上的拖动事件;
E5:在时间T1,鼠标在Lab5上的拖动事件;
同时,选取的参数加入数据驱动化中,其结构参考图2,GUI应用程序中将驱动化测试后的数据导出数据文件DataFile1中,作为预期的测试用例的测试参数。
第二步,回放测试用例。
(1)解析录制过程的MyFirstProject,获得ValidateEntry中的事件E1,E2,E3,3,E4,E5的各个变量字段;
(2)通过字段查找到出Lab1,Lab2,Lab3,Lab4,Lab5控件,再根据控件的类名Lab1Class,Lab2Class,Lab3Class,Lab4Class,Lab5Class唯一标识出单一控件;
(3)将逐一合成的事件E1,E2,E3,3,E4,E5,进行驱动化,统一属性后发送到ranorex的事件队列中,分派执行,完成应用程序的自动化运行。
同时,在GUI程序回放过程中也会在ranorex中生成数据文件DataFile2.
第三步,根据录制过程与回放过程中记录的待测参数,比较待测参数的数据文件差异。比较录制过程和回放过程生成的数据文件DataFile1与DataFile2中的内容是否完全一致,判别测试用例是否录制成功。
本实施例中,被测系统是一个基于QT框架的桌面应用程序,现业界有多款测试工具如QTP,LR都是以关键字进行驱动,读取元素属性值,生成虚拟用户进行操作。但是其对于QT框架编写的应用程序支持性较差,无法抓取程序中各个控件元素属性值,从而不能快捷准确的生成测试脚本。
在本发明中,由于事件是进行驱动化的,所以即使软件控件位置与参数发生变化,其结果的比较也不会受到影响。通过采用UML模型的方法,解决了测试用例必须要在软件开发完毕后才可以全部编写生成的问题,从而加快了研发进度;通过采用Ranorex工具,解决了业界内的测试工具对于QT框架无法进行自动化测试和重复性测试的问题,从而加强了软件的健壮性。
如图3所示,本发明采用的是数据驱动测试,所有这些输入动作都是在ranorex的“MyFirstProject.rxsts”录制中完成的,测试人员只需要在其中挑选出那些动作是需要的参数化,制定变量名并为其设置一个默认值,该默认值与初始录制时的设定是一样的。如果软件功能属性发生改变,测试人员只需要在对象库中打开变量对话框即可,并不需要直接对控件属性进行操作。又因为其是驱动化的,批量改变参数,所以对用例的覆盖率无法做到100%,但基于量化,快速的测试效率,可大大加快测试进度。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (2)

1.一种基于QT应用程序的测试方法,其特征在于,包括:
获取测试参数步骤:获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间中的任一种或任多种参数;
核实测试参数步骤:令测试参数与预期测试用例的参数进行对比,确保测试参数准确;
生成测试用例步骤:根据测试参数、UML模型,通过测试方法,生成实际测试用例;
生成测试脚本步骤:根据实际测试用例,通过ranorex录制生成测试脚本;
运行测试脚本步骤:在ranorex上运行测试脚本,获得测试结果;
获取测试结果步骤:将测试结果与预期值进行比较,得出缺陷;
所述生成测试用例步骤包括:
测试覆盖步骤:依据测试参数,生成第一测试用例,根据UML模型,通过测试方法检查第一测试用例的准确度和覆盖度,得到第二测试用例;
用例生成步骤:令第二测试用例转化为能够被测试脚本读取的实际测试用例;
所述测试方法主要包括边界值分析、因果法、划分等价类法中的任一种或任多种。
2.一种基于QT应用程序的测试系统,其特征在于,包括:
获取测试参数模块:获取测试参数,所述测试参数主要包括电压、持续时间、间隔时间、辐照个数、冷却时间中的任一种或任多种参数;
核实测试参数模块:令测试参数与预期测试用例的参数进行对比,确保测试参数准确;
生成测试用例模块:根据测试参数、UML模型,通过测试系统,生成实际测试用例;
生成测试脚本模块:根据实际测试用例,通过ranorex录制生成测试脚本;
运行测试脚本模块:在ranorex上运行测试脚本,获得测试结果;
获取测试结果模块:将测试结果与预期值进行比较,得出缺陷;
所述生成测试用例模块包括:
测试覆盖模块:依据测试参数,生成第一测试用例,根据UML模型,通过测试系统检查第一测试用例的准确度和覆盖度,得到第二测试用例;
用例生成模块:令第二测试用例转化为能够被测试脚本读取的实际测试用例;
所述测试系统主要包括边界值分析、因果法、划分等价类法中的任一种或任多种。
CN201811269263.7A 2018-10-29 2018-10-29 基于qt应用程序的测试方法和系统 Active CN109634842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811269263.7A CN109634842B (zh) 2018-10-29 2018-10-29 基于qt应用程序的测试方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811269263.7A CN109634842B (zh) 2018-10-29 2018-10-29 基于qt应用程序的测试方法和系统

Publications (2)

Publication Number Publication Date
CN109634842A CN109634842A (zh) 2019-04-16
CN109634842B true CN109634842B (zh) 2022-02-18

Family

ID=66066763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811269263.7A Active CN109634842B (zh) 2018-10-29 2018-10-29 基于qt应用程序的测试方法和系统

Country Status (1)

Country Link
CN (1) CN109634842B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297756B (zh) * 2019-04-24 2020-11-24 珠海格力电器股份有限公司 基于逻辑仿真模型的智能测试系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1328689C (zh) * 2002-11-22 2007-07-25 中兴通讯股份有限公司 一种系统产品的自动化测试方法
US20060253839A1 (en) * 2005-03-30 2006-11-09 Alberto Avritzer Generating performance tests from UML specifications using markov chains
CN102053912A (zh) * 2011-01-06 2011-05-11 中国工商银行股份有限公司 一种基于uml图形对软件进行自动化测试的装置及方法
CN103530228B (zh) * 2013-09-27 2016-09-28 西安电子科技大学 一种基于模型的软件测试方法
CN107832231A (zh) * 2017-12-05 2018-03-23 郑州云海信息技术有限公司 一种系统测试方法、装置及介质

Also Published As

Publication number Publication date
CN109634842A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
US6961873B2 (en) Environment based data driven automated test engine for GUI applications
US6948152B2 (en) Data structures for use with environment based data driven automated test engine for GUI applications
WO2020140820A1 (zh) 软件测试方法、系统、装置、设备、介质及计算机程序产品
US10176079B2 (en) Identification of elements of currently-executing component script
US8356282B1 (en) Integrated development environment for the development of electronic signal testing strategies
WO2018010552A1 (zh) 测试方法和装置
US7526498B2 (en) Method for generating data structures for automatically testing GUI applications
US7644398B2 (en) System and method for automatic test-case generation for software
US8788239B2 (en) Methods, apparatus and articles of manufacture to test batch configurations
US7895575B2 (en) Apparatus and method for generating test driver
CN111143188B (zh) 一种对应用进行自动化测试的方法及设备
US20180196742A1 (en) System and method for end to end performance response time measurement based on graphic recognition
CN104750601A (zh) 一种测试方法及装置
CN111737154A (zh) 基于uft的车联网自动化测试方法及装置
CN111462811A (zh) 自动化测试方法、装置、存储介质和电子设备
CN106528429A (zh) 一种ui界面测试方法及装置
CN109634842B (zh) 基于qt应用程序的测试方法和系统
CN107480050B (zh) 一种自动测试更新包的测试方法
US20050203717A1 (en) Automated testing system, method and program product using testing map
CN111966575B (zh) 一种航空机载显示软件的图形自动化测试方法
JP2023534200A (ja) 自動支援型回路検証
CN112783769A (zh) 一种自定义的自动化软件测试方法
KR20200145269A (ko) 테스트 자동화 시스템
CN111177014B (zh) 软件自动测试方法、系统及存储介质
Patidar et al. Survey on manual and automation testing strategies and tools for software application

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Testing Methods and Systems Based on QT Applications

Effective date of registration: 20230830

Granted publication date: 20220218

Pledgee: Bank of Beijing Limited by Share Ltd. Shanghai branch

Pledgor: ZHONGHUI MEDICAL TECHNOLOGY (SHANGHAI) Co.,Ltd.

Registration number: Y2023980054625

PE01 Entry into force of the registration of the contract for pledge of patent right