CN107102942A - 一种基于输入域错误定位的极小故障定位方法 - Google Patents

一种基于输入域错误定位的极小故障定位方法 Download PDF

Info

Publication number
CN107102942A
CN107102942A CN201710213344.4A CN201710213344A CN107102942A CN 107102942 A CN107102942 A CN 107102942A CN 201710213344 A CN201710213344 A CN 201710213344A CN 107102942 A CN107102942 A CN 107102942A
Authority
CN
China
Prior art keywords
minimum
minimum fault
case
fault mode
failure
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
CN201710213344.4A
Other languages
English (en)
Other versions
CN107102942B (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.)
Nanjing Post and Telecommunication University
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing Post and Telecommunication University
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 Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201710213344.4A priority Critical patent/CN107102942B/zh
Publication of CN107102942A publication Critical patent/CN107102942A/zh
Application granted granted Critical
Publication of CN107102942B publication Critical patent/CN107102942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种基于输入域错误定位的极小故障定位方法,具体包含以下步骤:首先生成并分析输入集,对其分类,形成失效的测试用例和通过的测试用例;然后通过迭代交互故障定位方法得到故障定位结果,获得未经过约简的极小故障模式集;最后对得到的未经过约简的极小故障模式进行约简,减少冗余性,得到更为精简的极小故障模式集。本发明在现有的迭代交互故障定位方法下进行进一步的优化,对极小故障模式进行约简,减少了极小故障模式的冗余性,保证极小故障定位达到更优的效果。本发明能够帮助减少需要使用极小故障模式集的程序开发人员的调用时间,有效地提高程序开发人员的工作效率。

Description

一种基于输入域错误定位的极小故障定位方法
技术领域
本发明属于软件测试领域,涉及一种组合测试中的故障定位,尤其涉及改进现有方法含有较多隐含假设,且现有方法的错误定位能力有限环境下的定位方法。
背景技术
软件测试是软件工程中必不可少的用来鉴定软件的正确性、完整性、安全性和品质的过程,是保证软件质量的重要环节。软件测试的关键问题是寻找尽可能小的测试用例集,以最小的成本发现待测试软件中潜在的问题。人们根据软件开发的不同阶段、不同的测试对象、基于不同的理论和角度提出了一系列软件测试方法。在软件开发的不同阶段,测试也被分为单元测试、集成测试、系统测试、回归测试等等。按照测试的类型划分,测试又可被分为功能测试、压力测试、性能测试、安全测试、兼容性测试等等
组合测试旨在从待测软件面临的庞大组合空间中,选取少量的测试用例,以高效、科学、系统地检测软件系统中各种因素及其相互作用可能促发的故障。使用组合测试发现错误后,需要进行故障定位工作,以便对软件进行调试和修正。在待测系统中,如果有一个m值模式,包含它的所有测试用例都是失败测试用例,那它就是该系统的一个故障模式,如果它的任意真子模式都不再是故障模式,那么它就是该系统的一个极小故障模式(MinimalFailure-causing Schema,MFS)。极小故障模式是软件系统中众多可能故障模式的内核,是使软件系统发生组合相关的故障的根本原因,它精确地描述了哪些因素间的相互作用会触发故障。极小故障模式中设计的每个因素都是触发软件故障必不可少的条件之一,组合测试以及其后的故障定位过程本质上就是发现和寻找极小故障模式的过程。
由于实际情况下执行完整的测试用例太过庞大,但若执行不完整的测试用例得到的失败测试用例和通过测试用例都不完整,会出现MFS的欠缺,因此人们提出了很多非常有效的方法,如分类树法、故障调试技术、故障定位表等其他故障定位方法,所有这些故障定位方法可分为两类:自适应方法(Adaptive Method)和非自适应方法(Non-adaptiveMethod)。但是这些方法还存在很多问题,例如定位精度不高和定位成本很高等问题,需要进一步的深入研究。
发明内容
本发明要解决的技术问题是通过现有的迭代交互故障定位方法生成的极小故障模式集具有重复性,极小故障模式集有冗余。
为解决上述问题,本发明在迭代交互故障定位方法的基础上对其生成的极小故障模式集进行分析和改进,解决极小故障模式集的冗余性,提出的技术方案为一种基于输入域错误定位的极小故障定位方法,具体包含以下步骤:
步骤1:生成并分析输入集,对其分类,形成失效的测试用例和通过的测试用例;
步骤2:通过迭代交互故障定位方法得到故障定位结果,获得未经过约简的极小故障模式集;
步骤3:对得到的未经过约简的极小故障模式进行约简,减少冗余性,得到更为精简的极小故障模式集。
进一步,上述步骤1具体包含以下步骤:
步骤1-1:通过现有工具生成τ-维组合覆盖表作为待测软件SUT的测试用例集T;
步骤1-2:测试包含T的SUT,判断T中测试用例是否为失效测试用例;
步骤1-2-1:如判断为是,将失效测试用例放入T1中;
步骤1-2-2:如判断为否,将通过测试用例放入T2中;
步骤1-3:生成子模式;
步骤1-3-1:将T1的所有子模式放入ScheSet(T1)中;
步骤1-3-2:将T2的所有子模式放入ScheSet(T2)中;
步骤1-4:生成初始结果SuspSet(0)=ScheSet(T1)-ScheSet(T2)。
步骤2具体包含以下步骤:
步骤2-1:判断上一次循环结果SuspSet(i-1)是否达到合适集合大小或者是否同SuspSet(i-2)的集合大小相同;
步骤2-1-1:如判断为是,退出循环,返回SuspSet(i),跳转到步骤3,继续分析;
步骤2-1-2:如判断为否,进行下一步生成附加测试用例工作;
步骤2-2:生成附加测试用例,为每次循环生成T1中的每个失效测试用例的变异强度为i的附加测试用例集AT(i);
步骤2-3:将AT(i)分为失效测试用例集AT(i)1和通过测试用例集AT(i)2;
步骤2-4:生成循环结果SuspSet(i)=SuspSet(i-1)-ScheSet(AT(i)2),跳转到步骤2-1,继续分析。
上述步骤3具体包含以下步骤:
步骤3-1:将每个极小故障模式依照现有的极小故障模式集进行父子模式关系的排序,判断当前极小故障模式是否拥有子模式;
步骤3-2:如判断为是,删除父模式,保留子模式,跳转到步骤3-1,继续分析;
步骤3-3:如判断为否,保留当前故障模式作为极小故障模式,停止程序。
与现有技术相比,本发明具有如下有益效果:
1,本发明在现有的迭代交互故障定位方法下进行进一步的优化,对极小故障模式进行约简,减少了极小故障模式的冗余性,保证极小故障定位达到更优的效果。
2,本发明能够帮助减少需要使用极小故障模式集的程序开发人员的调用时间,有效地提高程序开发人员的工作效率。
附图说明
图1为分析输入集的方法流程图。
图2为运用迭代交互故障定位方法得到故障定位结果的方法流程图。
图3为对得到的故障模式进行约简的方法流程图。
具体实施方式
下图结合说明图附图对本发明创造作进一步的详细说明。
本发明提供了一种解决现有的迭代交互故障定位方法中生成的故障模式具有重复性使得极小故障模式有冗余的方法,该方法在现有迭代交互故障定位方法的基础对生成的极小故障模式集进行优化,其内容是通过删除其中的父模式留下子模式来达到对极小故障模式集的约简,从而减少了现有极小故障模式集的冗余程度,提高了极小故障定位的效果。
为便于本领域的普通技术人员理解和实施本发明,现提供2个实施例。
实施例1:实现本发明方法的具体包括如下步骤:
步骤1:生成输入集,并通过如图1所示分类其中的失效的测试用例和通过的测试用例,具体的技术方案如下:
步骤1-1:通过现有工具生成τ-维组合覆盖表作为待测软件SUT的测试用例集T;
步骤1-2:测试包含T的SUT,判断T中测试用例是否为失效测试用例;
步骤1-2-1:判断为是,将失效测试用例放入T1中;
步骤1-2-2:判断为否,将通过测试用例放入T2中;
步骤1-3:生成子模式;
步骤1-3-1:将T1的所有子模式放入ScheSet(T1)中;
步骤1-3-2:将T2的所有子模式放入ScheSet(T2)中;
步骤1-4:生成初始结果SuspSet(0)=ScheSet(T1)-ScheSet(T2);
步骤2:通过迭代交互故障定位方法得到故障定位结果,获得未经过约简的极小故障模式集,如图2所示,具体的技术方案如下:
步骤2-1:判断上一次循环结果SuspSet(i-1)是否达到合适集合大小或者是否同SuspSet(i-2)的集合大小相同;
步骤2-1-1:判断为是,退出循环,返回SuspSet(i),跳转到步骤3,继续分析;
步骤2-1-2:判断为否,进行下一步生成附加测试用例工作;
步骤2-2:生成附加测试用例,为每次循环生成T1中的每个失效测试用例的变异强度为i的附加测试用例集AT(i);
步骤2-3:将AT(i)分为失效测试用例集AT(i)1和通过测试用例集AT(i)2;
步骤2-4:生成循环结果SuspSet(i)=SuspSet(i-1)-ScheSet(AT(i)2),跳转到步骤2-1,继续分析;
步骤3:对得到的极小故障模式集进行约简,减少冗余性,得到更为精简的极小故障模式集,如图3所示,具体的技术方案如下:
步骤3-1:将每个极小故障模式依照现有的极小故障模式集进行父子模式关系的排序,判断当前极小故障模式是否拥有子模式;
步骤3-1-1:判断为是,删除父模式,保留子模式,跳转到步骤3-1,继续分析;
步骤3-1-2:判断为否,保留当前故障模式作为极小故障模式,停止程序。
实施例2:
具体应用场景:本发明考虑到在测试用例集中测试用例数量众多时,通过迭代交互故障定位方法得到的故障定位结果会有一定程度的冗余情况,测试用例数量越多,冗余的严重性也就越高,得到的极小故障模式集也就过于庞大,使得极小故障定位的效率不够高。本发明就是在这种情况下,在迭代交互故障定位方法的基础上进行改进优化,提高极小故障定位的效率。首先,生成并分析输入集,对其中的失效测试用例集和通过测试用例集进行分类,然后通过迭代交互故障定位方法得到的故障定位结果为未经过约简的极小故障模式集,接着利用极小故障模式集中各极小故障模式间的父子模式关系对现有的极小故障模式集进行约简。这样,减少了现有方法中极小故障模式集中的冗余性,优化了极小故障模式集的数量,保证了极小故障定位达到更优的效果,减轻了需要使用极小故障模式集的程序开发人员的工作负担,提高了工作效率。

Claims (4)

1.一种基于输入域错误定位的极小故障定位方法,其特征在于包含以下步骤:
步骤1:生成并分析输入集,对其分类,形成失效的测试用例和通过的测试用例;
步骤2:通过迭代交互故障定位方法得到故障定位结果,获得未经过约简的极小故障模式集;
步骤3:对得到的未经过约简的极小故障模式进行约简,减少冗余性,得到更为精简的极小故障模式集。
2.根据权利要求1所述的基于输入域错误定位的极小故障定位方法,其特征在于步骤1具体包含以下步骤:
步骤1-1:通过现有工具生成τ-维组合覆盖表作为待测软件SUT的测试用例集T;
步骤1-2:测试包含T的SUT,判断T中测试用例是否为失效测试用例;
步骤1-2-1:如判断为是,将失效测试用例放入T1中;
步骤1-2-2:如判断为否,将通过测试用例放入T2中;
步骤1-3:生成子模式;
步骤1-3-1:将T1的所有子模式放入ScheSet(T1)中;
步骤1-3-2:将T2的所有子模式放入ScheSet(T2)中;
步骤1-4:生成初始结果SuspSet(0)=ScheSet(T1)-ScheSet(T2)。
3.根据权利要求1所述的基于输入域错误定位的极小故障定位方法,其特征在于步骤2具体包含以下步骤:
步骤2-1:判断上一次循环结果SuspSet(i-1)是否达到合适集合大小或者是否同SuspSet(i-2)的集合大小相同;
步骤2-1-1:如判断为是,退出循环,返回SuspSet(i),跳转到步骤3,继续分析;
步骤2-1-2:如判断为否,进行下一步生成附加测试用例工作;
步骤2-2:生成附加测试用例,为每次循环生成T1中的每个失效测试用例的变异强度为i的附加测试用例集AT(i);
步骤2-3:将AT(i)分为失效测试用例集AT(i)1和通过测试用例集AT(i)2;
步骤2-4:生成循环结果SuspSet(i)=SuspSet(i-1)-ScheSet(AT(i)2),跳转到步骤2-1,继续分析。
4.根据权利要求1所述的基于输入域错误定位的极小故障定位方法,其特征在于步骤3具体包含以下步骤:
步骤3-1:将每个极小故障模式依照现有的极小故障模式集进行父子模式关系的排序,判断当前极小故障模式是否拥有子模式;
步骤3-2:如判断为是,删除父模式,保留子模式,跳转到步骤3-1,继续分析;
步骤3-3:如判断为否,保留当前故障模式作为极小故障模式,停止程序。
CN201710213344.4A 2017-04-01 2017-04-01 一种基于输入域错误定位的极小故障定位方法 Active CN107102942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710213344.4A CN107102942B (zh) 2017-04-01 2017-04-01 一种基于输入域错误定位的极小故障定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710213344.4A CN107102942B (zh) 2017-04-01 2017-04-01 一种基于输入域错误定位的极小故障定位方法

Publications (2)

Publication Number Publication Date
CN107102942A true CN107102942A (zh) 2017-08-29
CN107102942B CN107102942B (zh) 2020-09-25

Family

ID=59675453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710213344.4A Active CN107102942B (zh) 2017-04-01 2017-04-01 一种基于输入域错误定位的极小故障定位方法

Country Status (1)

Country Link
CN (1) CN107102942B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319517A (zh) * 2017-12-21 2018-07-24 北京旋极信息技术股份有限公司 一种故障诊断的方法及装置
CN109490753A (zh) * 2018-11-13 2019-03-19 吉林大学 一种结合极小碰集约简集成电路测试模式集的方法
CN113127334A (zh) * 2020-01-15 2021-07-16 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备和存储设备
CN118170690A (zh) * 2024-05-14 2024-06-11 南京大学 一种基于待定元组的组合测试多故障定位方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070120A1 (en) * 2001-10-05 2003-04-10 International Business Machines Corporation Method and system for managing software testing
CN101866316A (zh) * 2010-06-23 2010-10-20 南京大学 一种基于相对冗余测试集约简的软件缺陷定位方法
CN102063376A (zh) * 2011-02-16 2011-05-18 哈尔滨工程大学 一种测试用例选取方法
CN104050086A (zh) * 2014-07-01 2014-09-17 南京邮电大学 基于组合测试的错误定位方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070120A1 (en) * 2001-10-05 2003-04-10 International Business Machines Corporation Method and system for managing software testing
CN101866316A (zh) * 2010-06-23 2010-10-20 南京大学 一种基于相对冗余测试集约简的软件缺陷定位方法
CN102063376A (zh) * 2011-02-16 2011-05-18 哈尔滨工程大学 一种测试用例选取方法
CN104050086A (zh) * 2014-07-01 2014-09-17 南京邮电大学 基于组合测试的错误定位方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319517A (zh) * 2017-12-21 2018-07-24 北京旋极信息技术股份有限公司 一种故障诊断的方法及装置
CN108319517B (zh) * 2017-12-21 2021-08-27 北京旋极信息技术股份有限公司 一种故障诊断的方法及装置
CN109490753A (zh) * 2018-11-13 2019-03-19 吉林大学 一种结合极小碰集约简集成电路测试模式集的方法
CN109490753B (zh) * 2018-11-13 2020-12-08 吉林大学 一种结合极小碰集约简集成电路测试模式集的方法
CN113127334A (zh) * 2020-01-15 2021-07-16 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备和存储设备
CN118170690A (zh) * 2024-05-14 2024-06-11 南京大学 一种基于待定元组的组合测试多故障定位方法

Also Published As

Publication number Publication date
CN107102942B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
Plazar et al. Uniform sampling of sat solutions for configurable systems: Are we there yet?
Chen et al. Document transformation for multi-label feature selection in text categorization
CN102253889B (zh) 一种回归测试中基于分布的测试用例优先级划分方法
CN107102942A (zh) 一种基于输入域错误定位的极小故障定位方法
CN103995780B (zh) 一种基于语句频度统计的程序错误定位方法
CN105868116A (zh) 基于语义变异算子的测试用例生成和优化方法
Young et al. A replication study: just-in-time defect prediction with ensemble learning
Dinu et al. Opportunities of using artificial intelligence in hardware verification
Pomeranz Improving the accuracy of defect diagnosis by considering fewer tests
Chen et al. New visions on metamorphic testing after a quarter of a century of inception
Saifan Test Case Reduction Using Data Mining Classifier Techniques.
Zakari et al. A community-based fault isolation approach for effective simultaneous localization of faults
US9244125B2 (en) Dynamic design partitioning for scan chain diagnosis
Pomeranz A test selection procedure for improving the accuracy of defect diagnosis
CN104536880A (zh) 基于符号执行的gui程序测试用例扩增方法
Moondanos et al. Sequential redundancy identification using verification techniques
US20140281719A1 (en) Explaining excluding a test from a test suite
Dutta et al. Effective fault localization using an ensemble classifier
Aruna et al. Testing approach for dynamic web applications based on automated test strategies
Poulos et al. Exemplar-based failure triage for regression design debugging
Murphy et al. Parameterizing random test data according to equivalence classes
CN103678117B (zh) 数据转换跟踪设备以及数据转换跟踪方法
Kwon et al. Prioritizing browser environments for web application test execution
Yuan et al. Test case generation based on program invariant and adaptive random algorithm
Pathania et al. Role of test case prioritization based on regression testing using clustering

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