CN107391381A - 一种基于锁对象拆分策略的并发程序测试方法及其测试系统 - Google Patents
一种基于锁对象拆分策略的并发程序测试方法及其测试系统 Download PDFInfo
- Publication number
- CN107391381A CN107391381A CN201710636177.4A CN201710636177A CN107391381A CN 107391381 A CN107391381 A CN 107391381A CN 201710636177 A CN201710636177 A CN 201710636177A CN 107391381 A CN107391381 A CN 107391381A
- Authority
- CN
- China
- Prior art keywords
- shared variable
- split
- concurrent program
- lock object
- program
- 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
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
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种基于锁对象拆分策略的并发程序测试方法及其测试系统,首先通过静态程序分析技术分析相关代码,确定未使用相同锁对象保护的共享变量,然后对这些共享变量异常访问的代码进行拆分,并选取相同锁对象保护拆分后的代码,生成细粒度的同步方法,再进行可达性测试(运行所有可行的同步序列),通过生成并执行原待测并发程序中不同管程对象上细粒度的同步事件之间的交织序列,暴露出因使用错误的锁对象保护共享变量而导致的数据竞争、原子违背、死锁等并发程序错误。本方法可有效地提高探测此类并发程序错误的能力。
Description
技术领域
本发明涉属于软件工程中软件分析和测试技术,具体涉及一种基于锁对象拆分策略的并发程序测试方法及其测试系统。
背景技术
多核技术的普及和高级编程语言对并发设施的支持,使得并发软件的开发和使用日益广泛。并发软件测试是保障并发软件质量的重要手段。由于并发与竞争的存在,在相同输入下,不同的并发程序运行可能因选择不同的同步序列而产生不同的运行结果。并发程序运行的不确定性使得并发程序错误的测试、调试以及修复十分困难。并发程序错误主要包括数据竞争、原子违背、死锁等,共享变量保护不当、对共享变量的异常访问是导致这些并发错误产生的重要原因。
现有的并发程序错误探测技术大致分为三类:静态探测技术、运行时监测技术和运行时预测技术。静态探测技术通过程序源代码静态分析,探测潜在的并发程序错误,由于静态分析的保守性,其误报率高。运行时监测技术监测并发程序的某次执行,探测在程序某次实际执行中暴露出的并发程序错误,其误报率低,但因仅探测某个并发程序执行,其漏报率高。运行时预测技术通过对并发程序某次执行序列的分析和处理,预测出并发程序在其他潜在交织下可能发生的并发程序错误,但现有运行时预测技术大多采用了保守的并发程序模型,其探测结果具有较高的误报率,或者由于搜索交织空间有限,具有较高的漏报率。
可达性测试是一种综合了静态分析和动态执行的并发程序测试方法。在给定输入下,可达性测试可穷尽搜索并发程序的交织空间,生成并运行所有可行的并发程序同步序列,具有较强的并发程序错误探测能力。初始时,可达性测试通过程序的一次不确定运行收集一个可行的同步序列,然后生成与该同步序列中同步事件存在竞争的竞争变体集(竞争变体是一个完整同步序列的前缀),再确定性运行各竞争变体,然后执行非确定性运行,收集完整的同步序列用于下一步新竞争变体的生成,如此反复直至不再有新竞争变体产生。
目前,可达性测试已针对不同的同步机制,开发了相应的同步类库,用于支持各种并发程序的可达性测试、重演、确定性测试等。
尽管存在可动态捕捉程序行为、生成较完备的并发程序同步序列集且无需记录任何同步序列历史记录等诸多优势,可达性测试仍面临所生成的测试用例集不够充分、不能有效探测因共享变量保护不当而引发的并发程序错误等问题。例如,在可达性测试过程中,一般仅对采用相同锁对象保护的同步方法或同步块之间生成竞争变体,运行相应的同步序列,对未使用相同锁对象保护的共享变量访问方法或代码块并不能生成和运行交织序列,因此不能有效地探测因采用错误锁对象保护共享变量而导致的数据竞争、原子违背、死锁等并发程序错误。
[1]Y.Lei,R.H.Carver.Reachability testing of concurrent programs.IEEETransactions on Software and Engineering,2006,32(6):382-403.
[2]R.H.Carver,Y.Lei.A class library for implementing.testing,anddebugging concurrent programs.International Journal on Software Tools forTechnology Transfer,2010,12(1):69-88.
[3]Venkatesh Prasad Ranganath,John Hatcliff.Slicing concurrent Javaprograms using Indus and Kaveri.In:International Journal on Software Toolsfor Technology Transfer,2007,9:489-504.
[4]Soot工具主页.http://www.sable.mcgill.ca/soot/notes.
[5]Jeff Huang,Charles Zhang.Persuasive Prediction of ConcurrencyAccess Anomalies.International Symposium on Software Testing and Analysis(ISSTA),2011.
发明内容
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于锁对象拆分策略的并发程序测试方法及其测试系统。
技术方案:本发明所述的一种基于锁对象拆分策略的并发程序测试方法,依次包括以下步骤:
(1)给定待测并发程序CP,首先采用程序静态分析技术生成程序控制流图,然后进行逃逸分析和指针分析,在此基础上分析共享变量以及保护每个共享变量访问所需的锁对象,获取未使用相同锁对象保护的共享变量集合及其相关异常访问代码;
(2)选取某拆分点对相关异常访问代码进行拆分,并使用相同锁对象即共享变量所在对象保护拆分后的两段代码,生成两个同步方法,待测并发程序由此变化为CP′;
(3)对CP’执行可达性测试,探测并发程序共享变量异常访问导致的并发程序错误。
进一步的,所述步骤(3)的具体方法为:
(3.1)对CP’执行可达性测试,生成并运行CP’的所有可行的同步序列,若其中某同步序列暴露出此共享变量异常访问错误,则测试过程结束,否则执行步骤(3.2);
(3.2)使用下一个拆分点执行步骤(2),若所有拆分点都已试探,仍未探测到相应错误,则执行步骤(3.3);
(3.3)若存在未拆分的相关方法,则对相关方法执行步骤(2),否则执行步骤(3.4);
(3.4)待测程序CP不存在此类并发错误,测试结束。
进一步的,所述步骤(2)中,采用以下方法对拆分点进行选取和排序:
(A)在共享变量异常访问相关代码m中,优先选取拆分点p,使得m在p处拆分后的两个代码片段中未使用相同锁保护的共享变量的交集最大;
(B)在共享变量异常访问相关代码m中,优先选取while-wait结构或者if-notify结构中使条件同步失效的程序点作为拆分点。
进一步的,共享变量异常访问相关方法:采用程序切片技术分析和选取,以共享变量以及访问异常处作为切片标准,使用并发程序切片工具Indus进行前向和后向切片,进行合并生成切片(影响切片标准的语句集合),切片所在的方法即为相关方法。
本发明还公开了一种基于锁对象拆分策略的并发程序测试方法的测试系统,包括可达性测试模块、共享变量分析模块、相关方法分析模块、拆分点分析模块和控制器模块五个功能模块;给定待测并发程序CP,首先通过共享变量分析模块分析出未使用相同锁对象保护的共享变量以及异常访问代码,在此基础上调用相关分析模块获取共享变量异常访问的相关方法;然后对并发程序CP进行可达性测试,并收集同步序列集合,在控制器模块中判断是否存在某同步序列探测到相应的并发程序错误,若探测到,则将该同步序列添加到测试用例文件中,否则调用拆分点模块分析拆分点,并进行排序;选择排序分值高的拆分点对CP进行拆分,使用相同锁对象保护拆分后的代码,再进行可达性测试。
有益效果:本发明可有效地探测因使用错误锁对象保护共享变量而导致的数据竞争、原子违背、死锁等并发程序错误。本发明动态运行了原待测并发程序中不同锁对象上细粒度的同步事件之间的交织序列,提高了探测此类并发程序错误的能力。
附图说明
图1为本发明中的整体流程图。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
如图1所示,本发明中的开发的工具包括可达性测试模块、共享变量分析模块、相关方法分析模块、拆分点分析模块和控制器模块五个功能模块。具体方法为:
给定待测并发程序CP,首先通过共享变量分析模块分析出未使用相同锁对象保护的共享变量以及异常访问代码,在此基础上调用相关分析模块(通过程序切片技术)获取共享变量异常访问的相关方法;然后对并发程序CP进行可达性测试,并收集同步序列集合,在控制器模块中判断是否存在某同步序列探测到相应的并发程序错误,若探测到,则将该同步序列添加到测试用例文件中,否则调用拆分点模块分析拆分点,并进行排序;选择排序分值高的拆分点对CP进行拆分,使用相同锁对象(共享变量所在对象)保护拆分后的代码,再进行可达性测试。若当前拆分未能探测到相应并发程序错误,则选择下一个拆分点,拆分后进行可达性测试。若当前方法的搜索拆分点都已试探仍未探测出相应错误,则对相关方法进行拆分,如此反复直至生成探测出相应并发程序错误的同步序列。
实施例1:
本发明通过拆分共享变量异常访问代码、执行原待测并发程序中不同锁对象上细粒度的同步事件之间的交织序列,探测因使用错误锁对象保护共享变量而导致的并发程序错误,下面以某Java并发程序CP为例进行说明其具体实施步骤:
1.共享变量异常访问分析
(1)构造程序控制流程图(CFG)
采用Java程序静态分析框架(如Soot)[4],通过UnitGraph类获取并发程序CP的基本控制流和数据流信息,构造各线程中run()方法及其直接或间接调用子程序的程序控制流图(CFG)。
(2)共享变量分析
通过Soot框架中ThreadLocalObjectsAnalysis类提供的静态线程逃逸分析技术,基于各线程中CFG图进行流敏感指针分析,获取并发程序CP中的共享变量集合。
(3)锁对象分析
基于CFG图采用不动点数据流分析算法计算保护每个共享变量访问处的锁对象集合。在计算过程中,若CFG图中当前节点申请某锁对象l,则将l保存加入当前线程所持有的锁对象集合中;若释放某锁对象l,则将l从当前线程所持有锁对象集合中去除;若当前语句存在对共享变量访问,则将当前线程所持有的锁对象集合保存到此共享变量访问的锁对象集合中。
(4)共享变量异常访问分析
比较不同线程中对相同共享变量访问的锁对象集合,若这些锁对象集合不存在交集,则表明未使用相同的锁对象保护该共享变量,此共享变量未得到有效的保护,相应的共享变量访问标记为异常访问;若锁对象集合存在交集,则该共享变量得到有效的保护。
2.针对每个共享变量异常访问,在可达性测试框架RichTest上[2],对CP进行可达性测试,若探测出该共享变量异常访问导致的错误,则测试结束,否则执行步骤3;
3.从当前共享变量访问异常所在的方法中按以下方法选取拆分点,并进行排序:
(A)在共享变量异常访问相关方法中,优先选取拆分点p,使得m在p处拆分后的两个代码片段中未使用相同锁保护的共享变量的交集最大;
(B)在共享变量异常访问相关方法中,优先选取while-wait结构或者if-notify结构中使条件同步失效的程序点作为拆分点。
设pi和pj为方法m的两个拆分点,满足下列条件之一时,pi优先于pj:
1)pi.condSyn>pj.condSyn;
2)若pi.condSyn=pj.condSyn,则pi.shareVars>pj.shareVars;
其中condSyn属值表示该拆分点是否包含在while-wait或if-notify结构中,若包含,则condSyn=1,否则为0;shareVars属性表示拆分点前后两部分代码片段中包含共享变量集合的交集大小。
4.选取分值高的拆分点对相关异常访问代码进行拆分,并使用相同锁对象(共享变量所在对象)保护拆分后的两个代码片段,生成两个同步方法,待测并发程序由此变化为CP′。
5.对CP’执行可达性测试[1-2],探测并发程序共享变量异常访问错误,若探测出该共享变量异常访问导致的错误,则测试结束,否则选取下一个拆分点,执行步骤4。若当前方法中的拆分点都已试探进行拆分,仍未探测到相应并发程序错误,则执行步骤6。
6.采用程序切片技术分析共享变量异常访问相关方法,以共享变量以及访问异常处作为切片标准,使用并发程序切片工具Indus进行前向和后向切片,进行合并生成切片(影响切片标准的语句集合),切片所在的方法即为相关方法[4]。选取上述相关方法,按步骤3中方法选取拆分点并排序,然后执行步骤4和步骤5,反复执行,直至探测出相应并发程序错误。
实验程序包括表1所示的7个并发程序。表1给出了采用本发明方法的实验结果,通过修改原并发程序中同步块中的锁对象参数,植入未使用相同锁对象保护共享变量的并发程序错误,这种错误的程序版本称作变体(程序),每个变体中植入一个此类错误,表1中变体数表示了植入的此类错误数目。在本实验中,本发明方法的探测率为92.3%,实验结果表明,本发明方法具有较高的探测此类并发程序错误的能力。
表1实验结果
程序 | 代码行数 | 共享变量数 | 变体数 | 本发明方法探测数 |
ReaderWriter | 105 | 3 | 4 | 4 |
Account | 130 | 4 | 4 | 4 |
Stack | 255 | 6 | 4 | 4 |
StringBuffer | 1,282 | 10 | 2 | 2 |
HashTable | 1,754 | 22 | 2 | 2 |
Vector | 4,060 | 18 | 2 | 2 |
Cache4j | 3,897 | 5 | 8 | 6 |
综上所述,本发明通过程序静态分析技术获取未使用相同锁对象保护的共享变量;然后对这些共享变量的异常访问代码进行拆分,选取相同锁对象保护拆分后的代码,生成细粒度的同步方法;在此基础上进行可达性测试(运行所有可行的同步序列),通过执行原待测并发程序中不同锁对象上细粒度的同步事件之间的交织序列,可有效地暴露出因使用错误锁对象保护共享变量而导致的数据竞争、原子违背、死锁等并发程序错误。
Claims (5)
1.一种基于锁对象拆分策略的并发程序测试方法,其特征在于:依次包括以下步骤:
(1)给定待测并发程序CP,首先采用程序静态分析技术生成程序控制流图,然后进行逃逸分析和指针分析,在此基础上分析共享变量以及保护每个共享变量访问所需的锁对象,获取未使用相同锁对象保护的共享变量集合及其相关异常访问代码;
(2)选取某拆分点对相关异常访问代码进行拆分,并使用相同锁对象即共享变量所在对象保护拆分后的两段代码,生成两个同步方法,待测并发程序由此变化为CP′;
(3)对CP’执行可达性测试,探测并发程序共享变量异常访问导致的并发程序错误。
2.根据权利要求1所述的基于锁对象拆分策略的并发程序测试方法,其特征在于:所述步骤(3)的具体方法为:
(3.1)对CP’执行可达性测试,生成并运行CP’的所有可行的同步序列,若其中某同步序列暴露出此共享变量异常访问错误,则测试过程结束,否则执行步骤(3.2);
(3.2)使用下一个拆分点执行步骤(2),若所有拆分点都已试探,仍未探测到相应错误,则执行步骤(3.3);
(3.3)若存在未拆分的相关方法,则对相关方法执行步骤(2),否则执行步骤(3.4);
(3.4)待测程序CP不存在此类并发错误,测试结束。
3.根据权利要求1所述的基于锁对象拆分策略的并发程序测试方法,其特征在于:所述步骤(2)中,采用以下方法对拆分点进行选取和排序:
(A)在共享变量异常访问相关代码m中,优先选取拆分点p,使得m在p处拆分后的两个代码片段中未使用相同锁保护的共享变量的交集最大;
(B)在共享变量异常访问相关代码m中,优先选取while-wait结构或者if-notify结构中使条件同步失效的程序点作为拆分点。
4.根据权利要求1所述的基于锁对象拆分策略的并发程序测试方法,其特征在于:共享变量异常访问相关方法采用程序切片技术分析和选取,以共享变量以及访问异常处作为切片标准,使用并发程序切片工具Indus进行前向和后向切片,进行合并生成切片,切片所在的方法即为相关方法。
5.一种基于权利要求1至4任意一项所述的基于锁对象拆分策略的并发程序测试方法的测试系统,其特征在于:包括可达性测试模块、共享变量分析模块、相关方法分析模块、拆分点分析模块和控制器模块五个功能模块;
给定待测并发程序CP,首先通过共享变量分析模块分析出未使用相同锁对象保护的共享变量以及异常访问代码,在此基础上调用相关分析模块获取共享变量异常访问的相关方法;然后对并发程序CP进行可达性测试,并收集同步序列集合,在控制器模块中判断是否存在某同步序列探测到相应的并发程序错误,若探测到,则将该同步序列添加到测试用例文件中,否则调用拆分点模块分析拆分点,并进行排序;选择排序分值高的拆分点对CP进行拆分,使用相同锁对象保护拆分后的代码,再进行可达性测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710636177.4A CN107391381A (zh) | 2017-07-31 | 2017-07-31 | 一种基于锁对象拆分策略的并发程序测试方法及其测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710636177.4A CN107391381A (zh) | 2017-07-31 | 2017-07-31 | 一种基于锁对象拆分策略的并发程序测试方法及其测试系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391381A true CN107391381A (zh) | 2017-11-24 |
Family
ID=60342257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710636177.4A Pending CN107391381A (zh) | 2017-07-31 | 2017-07-31 | 一种基于锁对象拆分策略的并发程序测试方法及其测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391381A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635568A (zh) * | 2018-11-26 | 2019-04-16 | 华中科技大学 | 一种基于静态分析和模糊测试相结合的并发漏洞检测方法 |
CN109885489A (zh) * | 2019-01-31 | 2019-06-14 | 清华大学 | 驱动程序中数据竞争检测方法及装置 |
CN110083538A (zh) * | 2019-04-28 | 2019-08-02 | 西安邮电大学 | 一种并发程序噪声注入方法 |
CN111563043A (zh) * | 2020-05-11 | 2020-08-21 | 西安邮电大学 | 一种并发程序测试噪声注入优化方法 |
CN112988137A (zh) * | 2021-03-19 | 2021-06-18 | 武汉虹信技术服务有限责任公司 | 一种类文件导入代码管理系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791860A (zh) * | 2003-05-20 | 2006-06-21 | 英特尔公司 | 用于在受控运行时环境中恢复同步到面向对象的软件应用的装置和方法 |
CN102073588A (zh) * | 2010-12-28 | 2011-05-25 | 北京邮电大学 | 一种基于代码静态分析的多线程死锁检测方法及系统 |
US20130047163A1 (en) * | 2011-08-19 | 2013-02-21 | Virendra J. Marathe | Systems and Methods for Detecting and Tolerating Atomicity Violations Between Concurrent Code Blocks |
CN105095092A (zh) * | 2015-09-25 | 2015-11-25 | 南京大学 | 基于静态分析和动态运行的Web应用JavaScript代码原子性违反检测 |
CN106844215A (zh) * | 2017-01-24 | 2017-06-13 | 东南大学 | 一种基于约束求解的原子违背探测方法 |
-
2017
- 2017-07-31 CN CN201710636177.4A patent/CN107391381A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791860A (zh) * | 2003-05-20 | 2006-06-21 | 英特尔公司 | 用于在受控运行时环境中恢复同步到面向对象的软件应用的装置和方法 |
CN102073588A (zh) * | 2010-12-28 | 2011-05-25 | 北京邮电大学 | 一种基于代码静态分析的多线程死锁检测方法及系统 |
US20130047163A1 (en) * | 2011-08-19 | 2013-02-21 | Virendra J. Marathe | Systems and Methods for Detecting and Tolerating Atomicity Violations Between Concurrent Code Blocks |
CN105095092A (zh) * | 2015-09-25 | 2015-11-25 | 南京大学 | 基于静态分析和动态运行的Web应用JavaScript代码原子性违反检测 |
CN106844215A (zh) * | 2017-01-24 | 2017-06-13 | 东南大学 | 一种基于约束求解的原子违背探测方法 |
Non-Patent Citations (1)
Title |
---|
周华杨: "基于变体的并发程序测试技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635568A (zh) * | 2018-11-26 | 2019-04-16 | 华中科技大学 | 一种基于静态分析和模糊测试相结合的并发漏洞检测方法 |
CN109635568B (zh) * | 2018-11-26 | 2023-05-26 | 华中科技大学 | 一种基于静态分析和模糊测试相结合的并发漏洞检测方法 |
CN109885489A (zh) * | 2019-01-31 | 2019-06-14 | 清华大学 | 驱动程序中数据竞争检测方法及装置 |
CN109885489B (zh) * | 2019-01-31 | 2020-07-21 | 清华大学 | 驱动程序中数据竞争检测方法及装置 |
CN110083538A (zh) * | 2019-04-28 | 2019-08-02 | 西安邮电大学 | 一种并发程序噪声注入方法 |
CN110083538B (zh) * | 2019-04-28 | 2022-09-30 | 西安邮电大学 | 一种并发程序噪声注入方法 |
CN111563043A (zh) * | 2020-05-11 | 2020-08-21 | 西安邮电大学 | 一种并发程序测试噪声注入优化方法 |
CN111563043B (zh) * | 2020-05-11 | 2022-11-01 | 西安邮电大学 | 一种并发程序测试噪声注入优化方法 |
CN112988137A (zh) * | 2021-03-19 | 2021-06-18 | 武汉虹信技术服务有限责任公司 | 一种类文件导入代码管理系统及方法 |
CN112988137B (zh) * | 2021-03-19 | 2024-05-17 | 武汉虹信技术服务有限责任公司 | 一种类文件导入代码管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391381A (zh) | 一种基于锁对象拆分策略的并发程序测试方法及其测试系统 | |
Baah et al. | On-line anomaly detection of deployed software: a statistical machine learning approach | |
Wong et al. | A crosstab-based statistical method for effective fault localization | |
Nessa et al. | Software fault localization using n-gram analysis | |
CN103294596B (zh) | 一种基于程序不变量的合约式软件故障预警方法 | |
CN104899147B (zh) | 一种面向安全检查的代码静态分析方法 | |
Bronevetsky et al. | AutomaDeD: Automata-based debugging for dissimilar parallel tasks | |
KR20190041912A (ko) | 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램 | |
Perez et al. | A dynamic code coverage approach to maximize fault localization efficiency | |
CN111061293B (zh) | 多参数耦合的飞行器故障定位方法、飞行器及存储介质 | |
Bandyopadhyay | Mitigating the effect of coincidental correctness in spectrum based fault localization | |
CN103914374B (zh) | 基于程序切片和频繁模式提取的代码缺陷检测方法及装置 | |
CN101706749A (zh) | 基于软件安全缺陷检测的综合处理方法及其功能模块构架 | |
Wang et al. | Fault localization using disparities of dynamic invariants | |
Yang et al. | Efsm-based test case generation: Sequence, data, and oracle | |
DeOrio et al. | Bridging pre-and post-silicon debugging with BiPeD | |
Dutta et al. | Effective fault localization using an ensemble classifier | |
US11163674B1 (en) | System and method for identifying a faulty component in a spectrum ambiguity group | |
CN114036040A (zh) | 基于细粒度信息同步的软件混合模糊测试方法及设备 | |
Parsa et al. | Software fault localization via mining execution graphs | |
Pastore et al. | ZoomIn: Discovering failures by detecting wrong assertions | |
Iman et al. | Immizer: An innovative cost-effective method for minimizing assertion sets | |
Dutta et al. | Fault localization using a weighted function dependency graph | |
Remersaro et al. | A scalable method for the generation of small test sets | |
Wang et al. | Automated fault localization via hierarchical multiple predicate switching |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171124 |