CN112052180A - 一种基于控件排列的稳定性测试的方法及系统 - Google Patents
一种基于控件排列的稳定性测试的方法及系统 Download PDFInfo
- Publication number
- CN112052180A CN112052180A CN202011018945.8A CN202011018945A CN112052180A CN 112052180 A CN112052180 A CN 112052180A CN 202011018945 A CN202011018945 A CN 202011018945A CN 112052180 A CN112052180 A CN 112052180A
- Authority
- CN
- China
- Prior art keywords
- control
- traversal
- controls
- algorithm
- interactive
- 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.)
- Pending
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
-
- 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
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试技术领域,具体涉及一种基于控件排列的稳定性测试的方法及系统。包括:获取初始页面的可交互控件;分析各个获取控件的功能以获得跳转控件;通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构;得出树形结构后对树状图分析合适的遍历算法;对比遍历分析的结果来选用遍历时间短的遍历算法;利用选定的遍历算法来进行遍历测试。该方法及系统具有测试全面、完整性好、遍历工作易于跳转到下一页和工作效率高的优点,遍历算法通过选择性执行,减少了测试工作量和测试时间,提高了测试效率,解决了现有的稳定性测试存有的测试不完全、不易翻页和测试工作量大的技术缺陷,满足了软件测试的需要。
Description
技术领域
本发明涉及软件测试技术领域,具体涉及一种基于控件排列的稳定性测试的方法及系统。
背景技术
软件测试是一种验证软件产品的正确性、完整性、安全性和质量的过程,一般来说,软件测试需要在规定的条件下对程序进行操作,以便发现程序的错误,改进软件的品质,以使软件能逐步满足设计的要求。目前的应用软件往往设置有便于与用户产生交互的用户界面,用户在使用时直接点击、滑动或拖动用户界面上的对应控件,即可完成相应的交互,因此在软件测试的过程中,需要对各个控件都进行测试,以确保控件均为可用状态。
现有的软件测试方法存有测试不完全的缺点,当用户界面存有多个页面时,测试时很容易产生遗漏,且单个页面的控件有时并不会全部显示,而是在特定情况下展开或显示出来,另一方面,单个控件有时还会附带有子控件,现有的测试方法容易将他们当作一个控件处理,这些因素导致简单的遍历操作很容易漏掉一些控件,使得测试不完全,难以保证测试质量;现有的稳定性测试方法通常在首页进行循环的点击以测试稳定性,且难以跳转到下一页,导致稳定性测试不全面,影响稳定性测试结果;且各个软件的布局和结构不尽相同,单个的软件的不同版本也会对页面控件的布局和层级进行调整,因此预设的单个遍历算法难以根据情况作出相应调整,往往不是效率最高的遍历算法,因此需要一种新的稳定性测试的方法及系统来解决上述不足。
发明内容
为了克服上述现有的软件测试存有的测试不完全和局限性较大的技术缺陷,本发明提供一种测试全面和应用范围广的基于控件排列的稳定性测试的方法及系统。
为了解决上述问题,本发明按以下技术方案予以实现的:
本发明所述的一种基于控件排列的稳定性测试的方法,其特征在于,该方法包括:
获取初始页面的可交互控件;
分析各个获取控件的功能以获得跳转控件;
通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构;
得出树形结构后对树状图分析合适的遍历算法;
对比遍历分析的结果来选用遍历时间短的遍历算法;
利用选定的遍历算法来进行遍历测试。
所述的获取初始页面的可交互控件,包括:
获取初始页面的活动控件;
依次查询各个活动控件的关联节点;
获取关联节点上未获取过的可交互控件。
所述的关联节点,包括:根节点、父节点、子节点和终节点。
所述的可交互控件,包括:按钮控件、开关控件、滑动控件、输入控件和下拉菜单控件。
所述的分析各个获取控件的功能以获得跳转控件,具体为:遍历获取到的可交互控件,对可交互控件的功能进行分析,以判断是否为具备页面跳转功能的控件。
所述的通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构,包括:
模拟用户行为与跳转控件产生交互;
跳转控件将页面切换到新的页面;
加载新页面中的各个控件;
将可交互控件排列成树形结构。
所述的得出树形结构后对树状图分析合适的遍历算法,具体为:采用一个以上的遍历算法分别对可交互控件进行遍历,并统计各遍历算法所需的总遍历时间。
所述的遍历算法,包括但不限于深度优先搜索和广度优先搜索。
本发明所述的一种基于控件排列的稳定性测试的系统,其特征在于,该系统包括:
控件获取单元,用于获取初始页面的可交互控件;
控件分析单元,用于根据功能分析控件,分析可得页面跳转控件;
控件排列单元,用于根据上两个单元所得的可交互控件和跳转控件将控件进行树状排列;
遍历算法分析单元,根据得出的树状图分析合适遍历算法,算法包括深度优先算法(DFS)和广度优先算法(BFS),针对树状图计算各个遍历算法的遍历时间;
遍历算法选择单元,选择遍历时间短的算法;
遍历算法执行单元,执行算法,对控件进行遍历。
与现有技术相比,本发明的有益效果是:
本发明所述的一种基于控件排列的稳定性测试的方法及系统具有测试全面、完整性好、遍历工作易于跳转到下一页和工作效率高的优点,通过获取可交互控件来进行测试工作,通过页面跳转来获取所有的可交互控件,确保测试的全面性,利用关联节点查找来获取被隐藏的控件,减少了遗漏的情况,提高了遍历的完整性,且通过获取到的跳转控件实现翻页功能,解决了稳定性测试过程中难以跳转到下一页的问题,遍历算法通过选择性执行,减少了测试工作量和测试时间,提高了测试效率,解决了现有的稳定性测试存有的测试不完全、不易翻页和测试工作量大的技术缺陷,满足了软件测试的需要。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:
图1是本发明的方法流程示意图;
图2是本发明的获取初始页面的可交互控件的方法流程示意图;
图3是本发明的通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构的方法流程示意图;
图4是本发明的系统结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图1~图4所示,本发明所述的一种基于控件排列的稳定性测试的方法,其特征在于,该方法包括:
101、获取初始页面的可交互控件;
所述的获取初始页面的可交互控件,包括:
201、获取初始页面的活动控件;
具体的,所述的活动控件指活动状态的控件,即处于非隐藏状态、可被查找和获取到的控件,活动控件用来作为查询的起点,以便进一步获取到其他的难以直接获取的控件,如隐藏状态的控件。
202、依次查询各个活动控件的关联节点;
具体的,所述的关联节点,包括:根节点、父节点、子节点和终节点,该步骤的优点在于,可通过已有的控件来进一步获得不易获取的控件。
203、获取关联节点上未获取过的可交互控件。
具体的,所述的可交互控件,包括:按钮控件、开关控件、滑动控件、输入控件和下拉菜单控件。
102、分析各个获取控件的功能以获得跳转控件;
所述的分析各个获取控件的功能以获得跳转控件,具体为:遍历获取到的可交互控件,对可交互控件的功能进行分析,以判断是否为具备页面跳转功能的控件。
103、通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构;
所述的通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构,包括:
301、模拟用户行为与跳转控件产生交互;
302、跳转控件将页面切换到新的页面;
303、加载新页面中的各个控件;
具体的,新页面按照初始页面的获取方法进行工作,即,获取新页面的活动控件,依次查询各个活动控件的关联节点,然后获取关联节点上未获取过的可交互控件,直到跳转加载过所有的页面。
304、将可交互控件排列成树形结构。
具体的,根据可交互控件之间的关联,如父节点和子节点等关联关系,将有关联的可交互控件相互连接,直到将所有的可交互控件相互连接形成树形结构。
104、得出树形结构后对树状图分析合适的遍历算法。
所述的得出树形结构后对树状图分析合适的遍历算法,具体为:采用一个以上的遍历算法分别对可交互控件进行遍历,并统计各遍历算法所需的总遍历时间,所述的遍历算法,包括但不限于深度优先搜索和广度优先搜索,在此过程中,仅记录遍历算法可交互控件的遍历时间,而不对可交互控件进行测试。
具体的,所述深度优先搜索首先选取树形结构的可交互控件的一个顶点,然后向下寻找与之相邻的节点,并重复该过程不断地向下搜寻,直到不存在相邻的节点,随后回退到上一个节点,直到所有的可交互控件遍历完成;所述广度优先搜索首先选取树形结构的可交互控件的一个顶点,然后寻找其所有的相邻节点,对于每一个相邻节点则继续遍历与其相邻的节点,直到所有的可交互控件遍历完成。
105、对比遍历分析的结果来选用遍历时间短的遍历算法;
具体的,遍历完成后,比较各个遍历算法所耗费的总遍历时间,选择遍历时间最短的遍历算法来用于后续的测试工作,该设置的优点在于:控件的排布在开发过程中有时会出现变动,导致可交互控件的树形结构也随之出现改变,通过灵活选择遍历时间最短的遍历算法,可有效削减后续实际测试所耗费的时间,确保每次测试都能保持高效。
106、利用选定的遍历算法来进行遍历测试。
具体的,利用选定的遍历算法,对树形结构每个节点上的可交互控件依次进行测试,遍历测试根据可交互控件的类型,模拟用户行为对其进行测试操作。具体的,所述的测试操作包括点击操作、滑动操作或拖动操作,若可交互控件产生了相应的响应,则说明该控件正常工作,若可交互控件没有作出响应,或是可交互控件出现了异常的响应,则说明该控件存有问题,可能会对软件的稳定性造成损害,此时将存有问题的控件记录下来以便进行后续的调试和修改工作。
本发明所述的一种基于控件排列的稳定性测试的系统,其特征在于,该系统包括:
控件获取单元1,用于获取初始页面的可交互控件;
控件分析单元2,用于根据功能分析控件,分析可得页面跳转控件;
控件排列单元3,用于根据上两个单元所得的可交互控件和跳转控件将控件进行树状排列;
遍历算法分析单元4,根据得出的树状图分析合适遍历算法,算法包括深度优先算法(DFS)和广度优先算法(BFS),针对树状图计算各个遍历算法的遍历时间;
遍历算法选择单元5,选择遍历时间短的算法;
遍历算法执行单元6,执行算法,对控件进行遍历。
本发明所述的一种基于控件排列的稳定性测试的方法及系统具有测试全面、完整性好、遍历工作易于跳转到下一页和工作效率高的优点,通过获取可交互控件来进行测试工作,通过页面跳转来获取所有的可交互控件,确保测试的全面性,利用关联节点查找来获取被隐藏的控件,减少了遗漏的情况,提高了遍历的完整性,且通过获取到的跳转控件实现翻页功能,解决了稳定性测试过程中难以跳转到下一页的问题,遍历算法通过选择性执行,减少了测试工作量和测试时间,提高了测试效率,解决了现有的稳定性测试存有的测试不完全、不易翻页和测试工作量大的技术缺陷,满足了软件测试的需要。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,故凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (9)
1.一种基于控件排列的稳定性测试的方法,其特征在于,该方法包括:
获取初始页面的可交互控件;
分析各个获取控件的功能以获得跳转控件;
通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构;
得出树形结构后对树状图分析合适的遍历算法;
对比遍历分析的结果来选用遍历时间短的遍历算法;
利用选定的遍历算法来进行遍历测试。
2.根据权利要求1所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的获取初始页面的可交互控件,包括:
获取初始页面的活动控件;
依次查询各个活动控件的关联节点;
获取关联节点上未获取过的可交互控件。
3.根据权利要求2所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的关联节点,包括:根节点、父节点、子节点和终节点。
4.根据权利要求2所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的可交互控件,包括:按钮控件、开关控件、滑动控件、输入控件和下拉菜单控件。
5.根据权利要求1所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的分析各个获取控件的功能以获得跳转控件,具体为:遍历获取到的可交互控件,对可交互控件的功能进行分析,以判断是否为具备页面跳转功能的控件。
6.根据权利要求1所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的通过跳转控件跳转到其他页面并将获得的所有可交互控件排列成树形结构,包括:
模拟用户行为与跳转控件产生交互;
跳转控件将页面切换到新的页面;
加载新页面中的各个控件;
将可交互控件排列成树形结构。
7.根据权利要求1所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的得出树形结构后对树状图分析合适的遍历算法,具体为:采用一个以上的遍历算法分别对可交互控件进行遍历,并统计各遍历算法所需的总遍历时间。
8.根据权利要求7所述的一种基于控件排列的稳定性测试的方法,其特征在于:所述的遍历算法,包括但不限于深度优先搜索和广度优先搜索。
9.一种基于控件排列的稳定性测试的系统,其特征在于,该系统包括:
控件获取单元,用于获取初始页面的可交互控件;
控件分析单元,用于根据功能分析控件,分析可得页面跳转控件;
控件排列单元,用于根据上两个单元所得的可交互控件和跳转控件将控件进行树状排列;
遍历算法分析单元,根据得出的树状图分析合适遍历算法,算法包括深度优先算法(DFS)和广度优先算法(BFS),针对树状图计算各个遍历算法的遍历时间;
遍历算法选择单元,选择遍历时间短的算法;
遍历算法执行单元,执行算法,对控件进行遍历。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011018945.8A CN112052180A (zh) | 2020-09-24 | 2020-09-24 | 一种基于控件排列的稳定性测试的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011018945.8A CN112052180A (zh) | 2020-09-24 | 2020-09-24 | 一种基于控件排列的稳定性测试的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112052180A true CN112052180A (zh) | 2020-12-08 |
Family
ID=73604121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011018945.8A Pending CN112052180A (zh) | 2020-09-24 | 2020-09-24 | 一种基于控件排列的稳定性测试的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052180A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527689A (zh) * | 2021-02-09 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置及存储介质 |
CN112784194A (zh) * | 2021-01-28 | 2021-05-11 | 济南大学 | 一种Android应用页面自动化遍历方法及系统 |
-
2020
- 2020-09-24 CN CN202011018945.8A patent/CN112052180A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112784194A (zh) * | 2021-01-28 | 2021-05-11 | 济南大学 | 一种Android应用页面自动化遍历方法及系统 |
CN112784194B (zh) * | 2021-01-28 | 2022-06-21 | 济南大学 | 一种Android应用页面自动化遍历方法及系统 |
CN112527689A (zh) * | 2021-02-09 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0259662B1 (en) | Method for generating a candidate list of faulty circuit elements and method for isolating faults in a digital logic circuit using said candidate list. | |
US8276126B2 (en) | Determining causes of software regressions based on regression and delta information | |
US6895577B1 (en) | Risk metric for testing software | |
US5390131A (en) | Apparatus and method for displaying wafer test results in real time | |
US7636871B1 (en) | Method for comparing customer and test load data with comparative functional coverage hole analysis | |
KR101477287B1 (ko) | 시험 모듈 생성 장치, 시험 순서 생성 장치, 생성 방법, 프로그램, 및 시험 장치 | |
KR100339697B1 (ko) | 반도체 시험장치의 프로그램 작성 시스템 | |
CN112052180A (zh) | 一种基于控件排列的稳定性测试的方法及系统 | |
JPH02272645A (ja) | プログラム・デバツグ支援方法 | |
CN115687115B (zh) | 一种移动应用程序自动化测试方法及系统 | |
CN111108481B (zh) | 故障分析方法及相关设备 | |
CN114385877B (zh) | 测试过程的可视化处理方法及系统、计算机可读介质 | |
Sarhan et al. | Charmfl: A fault localization tool for python | |
CN104123397A (zh) | Web页面的自动化测试装置及方法 | |
Dodaro et al. | Debugging non-ground ASP programs: Technique and graphical tools | |
CN111158656A (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN100442243C (zh) | 一种对编译器中的错误进行自动定位的方法 | |
Alsolami et al. | Empirical analysis of object-oriented software test suite evolution | |
Papadakis et al. | Proteum/fl: A tool for localizing faults using mutation analysis | |
CN107562619B (zh) | 一种基于神经元模型的自动遍历控件方法及终端 | |
Wong et al. | An execution slice and inter-block data dependency-based approach for fault localization | |
CN116559624A (zh) | 一种芯片测试方法、系统、设备及存储介质 | |
CN112765041B (zh) | 游戏自动化测试方法、装置及电子设备 | |
Islam et al. | Comparing software bugs in clone and non-clone code: An empirical study | |
CN110377495A (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 |