CN106095663A - Program based on hierarchical model returns location of mistake method - Google Patents

Program based on hierarchical model returns location of mistake method Download PDF

Info

Publication number
CN106095663A
CN106095663A CN201610368555.0A CN201610368555A CN106095663A CN 106095663 A CN106095663 A CN 106095663A CN 201610368555 A CN201610368555 A CN 201610368555A CN 106095663 A CN106095663 A CN 106095663A
Authority
CN
China
Prior art keywords
statement
track
program
jump
correspondence
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
CN201610368555.0A
Other languages
Chinese (zh)
Other versions
CN106095663B (en
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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong 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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201610368555.0A priority Critical patent/CN106095663B/en
Priority to PCT/CN2016/090956 priority patent/WO2017201853A1/en
Publication of CN106095663A publication Critical patent/CN106095663A/en
Application granted granted Critical
Publication of CN106095663B publication Critical patent/CN106095663B/en
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
    • 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

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)
  • Stored Programmes (AREA)

Abstract

The present invention proposes a kind of program based on hierarchical model and returns location of mistake method, at program pretreatment stage, by two version program source codes of contrast, identifies different piece, resets source code according to recognition result;In the track correspondence stage, according to the dependence performed between track, statement and the variable value information of two version programs got, two statements performed on track are carried out correspondence, classification;In the slice analysis stage, performing failed point from redaction program is that starting point proceeds by slice analysis;According to statement entity classification and dependence thereof, backtracking causes program to perform failed statement entity, until dependence statement to be analyzed is empty, and analyzed current statement needs not continue to analyze its dependence;Finally, using all for the stage of slice analysis analyzed statement entities as causing the program behavior section returning mistake to export.This method illustrates the mechanism of production returning mistake, and the reparation to returning mistake has directive function.

Description

Program based on hierarchical model returns location of mistake method
Technical field
The present invention relates to trusted software and software test field, particularly to the location side returning mistake in a kind of program Method.
Background technology
Software test is for ensuring that the basic means of software quality, and is also labor intensive in software development process Process with material resources.Experience have shown that, often introducing returning mistake during software upgrading, therefore carrying out regression test is It is highly desirable to.Even if making regression tested process become automatization now with many technology, but regression test being only The simply first step in software test procedure.And more important and challenging task is to find to cause program to perform failure Modification of program, and provide these what is revised as program can be caused to perform failed context environmental.But, this process is also Remarkable.First, along with program becomes to become increasingly complex, return mistake and always occur among specific environment or configuration.The Two, due to time and the restriction of manpower, it is typically only capable to obtain a test cases.This test cases can in legacy version program Successful execution, and perform failure in redaction program.3rd, it is to be difficult to obtain that program performs accurate context environmental unsuccessfully 's.Only tester can understand program and perform failed context environmental, and they can be accurate according to these information Repair mistake.
In recent years, many technology about recurrence error checking are suggested, such as ADD (Augmented Delta And AFTER (Automated Fault Explanation for Regression testing) Debugging).ADD passes through The isolation debugging automatization in conjunction with covering analyzing and Delta causes program to perform failed amendment.But, ADD does not analyze The semanteme of program, the dislocation therefore positioned may only only avoid program and perform unsuccessfully and and non-real mistake.AFTER Dynamically analysis and semantic analysis based on symbolic analysis of based on Delta debugging is utilized to position recurrence mistake.The master of AFTER Wanting problem is its ductility.It is known that symbolic analysis is the process that an expense is huge, therefore it is difficult to be applied to Extensive program.Even if these technology the location of automatization can cause program to perform failed modification of program, seldom by reality Border is applied, and causes program to perform failed context environmental because they are not provided that.In the middle of existing technology, one universal The hypothesis accepted is why tester can perform failure by prehension program easily.It is true that program is performed the most former The understanding of cause is remarkable, and therefore prior art is little to repairing the help returning mistake.
Therefore, a practical location of mistake technology that returns not only needs to be accurately positioned the amendment causing mistake, also wants energy This amendment is provided to cause program to perform failed context environmental.
Summary of the invention
It is an object of the invention to propose a kind of program based on hierarchical model and return location of mistake method, by two Version program carries out slice analysis, and output causes program to return the program behavior section of mistake, returns mistake in settlement procedure test The problem of location by mistake.
To achieve these goals, the present invention adopts the following technical scheme that
Program based on hierarchical model returns location of mistake method, comprises the steps:
S1), according to two the version programs to be measured inputted, the difference of two version program source codes, root are calculated According to the difference of source code, the source code of two version programs is reset so that identical code has identical line number, different codes Corresponding with null;
S2), revision program can be caused to perform failed test case with two program execution after code reordering Example, and extract two version programs perform track, variate-value that statement comprises and the dependence of statement;
S3), execution trajectory set being made into tree structure, each node of tree is that a function performs sequence;Call track Function body statement corresponding method, to step S2) in the execution track of two version programs that extracts carry out correspondence;
S4) variate-value that difference, track correspondence result and the statement, according to source code comprises, by the statement in track It is divided into four classes: amendment causes different statement, flows different statement, is worth different statements and consistent statement;
S5), with redaction program perform failed point to start the generation returning mistake is carried out slice analysis for starting point, will lose Lose point statement and add slice analysis queue;
S6), judge whether slice analysis queue is empty, the most then jump to step S9), otherwise jump to step S7);
S7), take out slice analysis queue head end statement, and judge head end statement the need of carrying out slice analysis, if not Need to be analyzed, jump to step S6), otherwise jump to step S8);
S8), by present analysis statement add return erroneous slice, and according to step S4) in statement classification needed into Dependence statement and the corresponding statement of row slice analysis add slice analysis queue;
S9), output regression erroneous slice.
Further improvement of the present invention is, described step S1) in the process of code reordering comprise the following steps:
S101), according to the source code of two version programs, the difference of two version program source codes is calculated;
S102), according to the difference of two version program source codes calculated, by two version program source codes Every statement be divided into two classes: identical statement, the statement of amendment;
S103), on the basis of not reprogramming program executing sequence, identical statement is made to have identical row Number, the statement of amendment is corresponding with null;
S104) two version program's source codes to be measured after, output code is reset are as new program to be measured.
Further improvement of the present invention is, step S3) in perform the tree structure of track and be defined as follows: each in tree Individual node is the execution track of a function body, is called in the function body that the child node of a node is stated by this node The execution track of function body;Step S3) in proceed by lopcus function from the root node (main function body track) of tree structure Body statement is corresponding, specifically includes following steps:
S301), judge whether the statement needing to carry out correspondence in current corresponding function body is empty, the most then function body Statement corresponding method performs to terminate to return, and otherwise jumps to step S302);
S302) statement during, iteration takes out function body is as the statement currently carrying out correspondence;
S303), judge whether current corresponding statement is function call statement, if function call statement then jumps to step S304), step S306 is otherwise jumped to);
S304), judge whether this function call has the function call of correspondence in corresponding track, if there being respective function to call Then jump to step S305), otherwise jump to step S301);
S305), call function body statement corresponding method carries out correspondence, after performing to terminate to the statement in this function body track Jump to step S301);
S306), judging whether current statement has the statement of correspondence in corresponding track, if there being corresponding statement, jumping to step Rapid S307), otherwise jump to step S301);
S307), current statement is carried out corresponding with the corresponding statement in corresponding track, after terminating, jump to step S301).
Further improvement of the present invention is: step S4) in the strategy of statement classification be, according to step S102) in source code All statements in track are divided into following four classes by the variable value information that statement classification, track correspondence result and statement comprise:
(1) amendment causes different statements: the statement of amendment.
(2) flow different statements: the statement of non-amendment, and there is no corresponding statement in corresponding track;
(3) statement that value is different: have the statement of correspondence in two tracks, and the variate-value that comprises of statement at least one not With;
(4) consistent statement: have the statement of correspondence in two tracks, and the variate-value that statement comprises is the most identical;
Its classification process comprises the following steps:
S401), the statement all classification the most that judges in track, if all classification, jump to step S407), no Then jump to step S402);
S402), iteration take out non-classified statement in track, it is classified;
S403), according to the classification of source code, it is judged that whether this statement is the statement revised, if the statement of amendment is then marked It is designated as revising and causes different statements and jump to step S401), otherwise jump to step S404);
S404), according to track correspondence result, it is judged that whether this statement has corresponding statement, if there is no corresponding statement, should Statement is labeled as flowing different statements and jumping to step S401), otherwise jump to step S405);
S405), the variable value information comprised according to statement, it is judged that whether this statement and the variate-value comprised in corresponding statement Identical, if differed including at least a variate-value, it is labeled as being worth different statements and jumping to step by this statement S401), step S406 is otherwise jumped to);
S406), this statement it is labeled as consistent statement and jumps to step S401);
S407) statement classification, in track terminates, and returns.
The present invention's and further improvement is that: step S7) in statement the need of the criterion carrying out slice analysis Be: if this statement has been analyzed or has belonged to step S4) in consistent statement, be made without slice analysis, otherwise need Slice analysis to be carried out.
Further improvement of the present invention is: step S8) in need the analysis strategy carrying out the statement of slice analysis to be, right In step S4) statement that intermediate value is different, only the corresponding statement in its data dependence statement and corresponding track is added slice analysis Queue;For flowing different statements, only controlled to rely on statement and added slice analysis queue;Cause not for being categorized as amendment Same statement, then controlled to rely on all to add slice analysis queue with data dependence statement.Step S8 simultaneously) in analyze work as Front statement needs to add and returns in erroneous slice.
Relative to prior art, the present invention has the advantages that the present invention proposes one based on hierarchical model Program return location of mistake method, by two version programs being carried out slice analysis, output cause program return mistake Program behavior is cut into slices, the problem returning location of mistake in settlement procedure test.At program pretreatment stage, the method is by contrast Two version program source codes, identify its different part, reset the source code of two version programs according to recognition result, On the premise of not affecting program code execution sequence so that in two version programs, the most corresponding code has identical row Number;In the track correspondence stage, according to the dependence performed between track, statement and the variate-value of two version programs got Two statements performed on track are carried out correspondence, and classify statement according to track correspondence result by information;In section point The analysis stage, with program control rely on, data dependence and statement be categorized as basis, performing failed point from redaction program is Starting point proceeds by slice analysis;According to statement entity classification and dependence thereof, backtracking causes program to perform failed statement Entity, until dependence statement to be analyzed is empty, and analyzed current statement needs not continue to analyze its dependence;? After, using all for the stage of slice analysis analyzed statement entities as causing the program behavior section returning mistake to export.Phase The existing recurrence location of mistake method of ratio, this method illustrates the mechanism of production returning mistake, and the reparation to returning mistake has Directive function.
Accompanying drawing explanation
Fig. 1 is the inventive method overall flow figure;
Fig. 2 is code reordering method flow diagram;
Fig. 3 is function body statement corresponding method flow chart;
Fig. 4 is the flow chart of statement classification process;
Fig. 5 is example procedure schematic diagram in explanation detailed description of the invention;
Fig. 6 is source code comparative result figure;
Fig. 7 is code reordering result figure;
Fig. 8 is track correspondence result figure;
Fig. 9 is for returning erroneous slice figure;
Figure 10 is slice analysis procedure chart.
Detailed description of the invention
Below in conjunction with example in detail embodiments of the present invention.
Referring to shown in Fig. 5, program v1 to be measured is original version, and program v2 to be measured is amended redaction.
Step S1: according to two version programs to be measured of input, calculate the difference of two version program source codes, The source code of two version programs is reset by the difference according to source code so that identical code has identical line number, different generations Code is corresponding with null, and flow chart is as in figure 2 it is shown, specifically include following steps:
Step S101: according to the source code of two version programs, calculate the difference of two version program source codes;
Step S102: according to the difference of two the version program source codes calculated, the statement in source code is divided into Two classes, identical statement and the statement of amendment, the statement of amendment is marked (c1-c4), as shown in Figure 6;
Step S103: on the basis of not reprogramming program executing sequence, make identical statement have identical Line number, the statement of amendment is corresponding with null, and code reordering result is as shown in Figure 7;
Step S104: two version program's source codes to be measured after output code rearrangement are as new program to be measured.
Step S2: revision program can be caused to perform failed test with two program execution after code reordering Case<x=1, y=1, z=2>, that extracts two version programs performs depending on of variate-value that track, statement comprise and statement The relation of relying;
Table 1 program performs track
Program v1 track main#c 1 2 3 5 6 7 11 12 13mian#r
Program v2 track mian#c 1 2 4 8 9 11 12 13main#r
Step S3: call lopcus function body statement corresponding method, to step S2) in the execution of two version programs extracted Track carries out correspondence, and flow chart is as it is shown on figure 3, function body statement corresponding method:
S301) judge whether the statement needing to carry out correspondence in current corresponding function body is empty, the most then function body Statement corresponding method performs to terminate to return, and otherwise jumps to step S302);
S302) statement during iteration takes out function body is as the statement currently carrying out correspondence;
S303) judge whether current corresponding statement is function call statement, if function call statement then jumps to step S304), step S306 is otherwise jumped to);
S304) judge whether this function call has the function call of correspondence in corresponding track, if there being respective function to call Then jump to step S305), otherwise jump to step S301);
S305) call function body statement corresponding method and the statement in this function body track is carried out correspondence, after performing to terminate Jump to step S301);
S306) judging whether current statement has the statement of correspondence in corresponding track, if there being corresponding statement, jumping to step Rapid S307), otherwise jump to step S301);
S307) current statement is carried out corresponding with the corresponding statement in corresponding track, after terminating, jump to step S301).
As a example by main function body track in two tracks, its idiographic flow includes:
Step S301:main function body need the statement of correspondence not for empty, so turning S302;
Step S302: take out the statement 1 that in program v1, main does not answers, go to step S303;
Step S303: statement 1 non-functional call statement, goes to step S306;
Step S306: in journey v1 track, main function statement 1 has main function statement 1 corresponding in program v2 track, turns Step S307;
Step S307: main function statement 1 in two version program tracks is corresponding, and it is labeled as corresponding statement.
Repeat the above steps, until statement not corresponding in two tracks be sky, obtains track correspondence result such as Fig. 8 institute Show.
Step S4: the variate-value comprised according to difference, track correspondence result and the statement of source code, by the language in track Sentence is divided into four classes: amendment causes different statement, flows different statement, is worth different statements and consistent statement, its classification Strategy is as follows:
(1) amendment causes different statements: the statement of amendment.
(2) flow different statements: the statement of non-amendment, and there is no corresponding statement in corresponding track;
(3) statement that value is different: have the statement of correspondence in two tracks, and the variate-value that comprises of statement at least one not With;
(4) consistent statement: have the statement of correspondence in two tracks, and the variate-value that statement comprises is the most identical;
Its classification process as shown in Figure 4, specifically includes following steps:
S401) judge all classification the most of the statement in track, if all classification, jump to step S407), no Then jump to step S402);
S402) non-classified statement during iteration takes out track, classifies to it;
S403) according to the classification of source code, it is judged that whether this statement is the statement revised, if the statement then labelling of amendment Cause different statements for amendment and jump to step S401), otherwise jump to step S404);
S404) according to track correspondence result, it is judged that whether this statement has corresponding statement, if there is no corresponding statement, by this language Sentence is labeled as flowing different statements and jumping to step S401), otherwise jump to step S405);
S405) variable value information comprised according to statement, it is judged that whether this statement and the variate-value comprised in corresponding statement Identical, if differed including at least a variate-value, it is labeled as being worth different statements and jumping to step by this statement S401), step S406 is otherwise jumped to);
S406) this statement it is labeled as consistent statement and jumps to step S401);
S407) statement classification in track terminates, and returns.
As a example by statement 2, its concrete classification process includes:
Step S401: the non-all classification of statement in track, turns S402;
Step S402: take out non-classified statement 2 in track;
Step S403: the statement of the non-amendment of statement 2, turns S403;
Step S403: statement 2 has the statement of correspondence, turns S404;
Step S404: the variate-value that in two tracks, statement 2 comprises is identical, goes to step S405;
Step S405: the statement 2 in two tracks is labeled as consistent statement.
Repeat the above steps, until all of statement is classified in track, obtains statement classification result as shown in table 2.
Table 2 statement classification result
Step S5: perform failed point with redaction program and start the generation of recurrence mistake is carried out slice analysis for starting point, Failed point statement is added slice analysis queue, in this example redaction program i.e. program v2, and it performs failed point statement i.e. Output point statement 13, so adding slice analysis queue by the statement 13 in program v2 track;
Step S6: judge whether slice analysis queue is empty, the most then jump to step S9), otherwise jump to step S7), current queue is not empty, so jumping to step S7);
Step S7: take out slice analysis queue head end statement, and judge head end statement the need of carrying out slice analysis, if It is not required to be analyzed, jumps to step S6), otherwise jump to step S8), if need to carry out the criterion of slice analysis Be: if this statement has been analyzed or has belonged to step S4) in consistent statement, be made without slice analysis, otherwise need Slice analysis to be carried out.Owing to the statement 13 in program v2 track belongs to the statement that value is different, so needing to carry out slice analysis, Jump to step S8);
Step S8: by present analysis statement add return erroneous slice, and according to step S4) in statement classification needed The dependence statement and the corresponding statement that carry out slice analysis add slice analysis queue.So the statement 13 in program v2 is added back Return erroneous slice, and statement 13 corresponding in program v1 track is added slice analysis queue.Because the language in program v2 Sentence 13 belongs to the statement that value is different, so needing also to add its data dependence statement 12 slice analysis queue.This step terminates After jump to step S6);
Repeat the above steps, until step S6) jump to step S9).This cyclic process is illustrated as shown in Figure 10, carries in figure The solid line of arrow represents the dependence between statement, and slash is filled and represented that this statement is added in recurrence erroneous slice.
Step S9: output regression erroneous slice, the recurrence erroneous slice of example is as shown in Figure 9.From this section it can be seen that Owing to program v2 relative program v1 deletes statement 3, thus result in the difference of output, the recurrence mistake i.e. discussed.Therefore, should Section provides and returns the context environmental that mistake produces, and we can repair recurrence mistake accurately according to this section simultaneously.

Claims (7)

1. program based on hierarchical model returns location of mistake method, it is characterised in that comprise the following steps:
S1), according to two the version programs to be measured inputted, the difference of two version program source codes is calculated, according to source The source code of two version programs is reset by the difference of code so that identical code has identical line number, and different codes is with empty Row correspondence;
S2) revision program, with two program execution after code reordering can be caused to perform failed test cases, and That extracts two version programs performs track, variate-value that statement comprises and the dependence of statement;
S3), execution trajectory set being made into tree structure, each node of tree is that a function performs sequence;Call lopcus function Body statement corresponding method, to step S2) in the execution track of two version programs that extracts carry out correspondence;
S4) variate-value that difference, track correspondence result and the statement, according to source code comprises, is divided into the statement in track Four classes: amendment causes different statement, flows different statement, is worth different statements and consistent statement;
S5), perform failed point with redaction program to start the generation of recurrence mistake is carried out slice analysis, by failed point for starting point Statement adds slice analysis queue;
S6), judge whether slice analysis queue is empty, the most then jump to step S9), otherwise jump to step S7);
S7), take out slice analysis queue head end statement, and judge head end statement the need of carrying out slice analysis, if be not required to into Row is analyzed and is then jumped to step S6), otherwise jump to step S8);
S8), by present analysis statement add return erroneous slice, and according to step S4) in statement classification needed to cut Dependence statement and corresponding statement that sheet is analyzed add slice analysis queue, jump to step S6 after terminating);
S9), output regression erroneous slice.
Program based on hierarchical model the most according to claim 1 returns location of mistake method, it is characterised in that step S1) in, the process of code reordering comprises the following steps:
S101), according to the source code of two version programs, the difference of two version program source codes is calculated;
S102), according to the difference of two version program source codes calculated, every by two version program source codes Bar statement is divided into two classes: identical statement, the statement of amendment;
S103), on the basis of not reprogramming program executing sequence, the source code of two version programs is reset, has made Exactly the same statement has identical line number, and the statement of amendment is corresponding with null;
S104) two version program's source codes to be measured after, output code is reset are as new program to be measured.
Program based on hierarchical model the most according to claim 1 returns location of mistake method, it is characterised in that step S3) tree structure performing track in is defined as follows: the execution track that each node is a function body in tree, a joint The execution track of the function body called in the function body that the child node of point is stated by this node;Step S3) in from tree-like knot It is corresponding that the root node of structure proceeds by lopcus function body statement, specifically includes following steps:
S301), judge whether the statement needing to carry out correspondence in current corresponding function body is empty, the most then function body statement Corresponding method performs to terminate to return, and otherwise jumps to step S302);
S302) statement during, iteration takes out function body is as the statement currently carrying out correspondence;
S303), judge whether current corresponding statement is function call statement, if function call statement then jumps to step S304), step S306 is otherwise jumped to);
S304), judging whether this function call has the function call of correspondence in corresponding track, if there being respective function to call, jumping Go to step S305), otherwise jump to step S301);
S305), call function body statement corresponding method the statement in this function body track is carried out correspondence, redirect after performing to terminate To step S301);
S306), judging whether current statement has the statement of correspondence in corresponding track, if there being corresponding statement, jumping to step S307), step S301 is otherwise jumped to);
S307), current statement is carried out corresponding with the corresponding statement in corresponding track, after terminating, jump to step S301).
Program based on hierarchical model the most according to claim 1 returns location of mistake method, it is characterised in that step S4) in, the method for statement classification is: according to step S102) in source code statement classification, track correspondence result and statement comprise All statements in track are divided into following four classes by variable value information:
(1) amendment causes different statements: the statement of amendment;
(2) flow different statements: the statement of non-amendment, and there is no corresponding statement in corresponding track;
(3) statement that value is different: have the statement of correspondence, and the variate-value at least difference that statement comprises in two tracks;
(4) consistent statement: have the statement of correspondence in two tracks, and the variate-value that statement comprises is the most identical.
5. return location of mistake method according to the program based on hierarchical model described in claim 1 or 4, it is characterised in that step Rapid S4) in classification process comprise the following steps:
S401), the statement all classification the most that judges in track, if all classification, jump to step S407), otherwise jump Go to step S402);
S402), iteration take out non-classified statement in track, it is classified;
S403), according to the classification of source code, it is judged that whether this statement is the statement revised, if the statement of amendment is then labeled as Amendment causes different statements and jumps to step S401), otherwise jump to step S404);
S404), according to track correspondence result, it is judged that whether this statement has corresponding statement, if there is no corresponding statement, by this statement It is labeled as flowing different statements and jumping to step S401), otherwise jump to step S405);
S405), the variable value information comprised according to statement, it is judged that this statement and the variate-value comprised in corresponding statement whether phase With, if differed including at least a variate-value, it is labeled as being worth different statements and jumping to step S401 by this statement), Otherwise jump to step S406);
S406), this statement it is labeled as consistent statement and jumps to step S401);
S407) statement classification, in track terminates, and returns.
Program based on hierarchical model the most according to claim 1 returns location of mistake method, it is characterised in that step S7) in, statement the need of the criterion carrying out slice analysis is: if this statement has been analyzed or has belonged to step S4) In consistent statement be then made without slice analysis, otherwise need to carry out slice analysis.
Program based on hierarchical model the most according to claim 1 returns location of mistake method, it is characterised in that step S8) analysis strategy carrying out the statement of slice analysis is needed to be in: for step S4) statement that intermediate value is different, only by its data The corresponding statement relied in statement and corresponding track adds slice analysis queue;For flowing different statements, only controlled to depend on Statement is relied to add slice analysis queue;Cause different statements for being categorized as revising, then controlled to rely on and data dependence Statement all adds slice analysis queue.
CN201610368555.0A 2016-05-26 2016-05-26 Program based on hierarchical model returns location of mistake method Active CN106095663B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610368555.0A CN106095663B (en) 2016-05-26 2016-05-26 Program based on hierarchical model returns location of mistake method
PCT/CN2016/090956 WO2017201853A1 (en) 2016-05-26 2016-07-22 Method for locating program regression fault using slicing model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610368555.0A CN106095663B (en) 2016-05-26 2016-05-26 Program based on hierarchical model returns location of mistake method

Publications (2)

Publication Number Publication Date
CN106095663A true CN106095663A (en) 2016-11-09
CN106095663B CN106095663B (en) 2017-06-27

Family

ID=57230282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610368555.0A Active CN106095663B (en) 2016-05-26 2016-05-26 Program based on hierarchical model returns location of mistake method

Country Status (2)

Country Link
CN (1) CN106095663B (en)
WO (1) WO2017201853A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851353A (en) * 2019-10-22 2020-02-28 天津大学 Concurrent program defect positioning method based on Delta debug and constraint solution
CN107643905B (en) * 2017-09-13 2021-01-12 扬州大学 Automatic repair method for software version consistency defects
CN114092288A (en) * 2020-11-24 2022-02-25 北京航空航天大学 Personalized intelligent tutoring method for programming beginners

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080271006A1 (en) * 2007-04-26 2008-10-30 Microsoft Corporation Technologies for Code Failure Proneness Estimation
CN102902619A (en) * 2011-07-29 2013-01-30 阿里巴巴集团控股有限公司 Method and device for regression testing of Web application programs
CN103678097A (en) * 2012-09-05 2014-03-26 百度在线网络技术(北京)有限公司 Method and device for selecting regression test case
CN105446723A (en) * 2014-09-02 2016-03-30 国际商业机器公司 Method and device for identifying semantic difference between source code versions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8584108B2 (en) * 2010-03-29 2013-11-12 GM Global Technology Operations LLC Method and apparatus for analyzing software
CN101859276B (en) * 2010-05-14 2012-02-22 东南大学 Regression testing case selection method based on hierarchical slicing
CN101916222B (en) * 2010-08-09 2012-07-11 哈尔滨工程大学 Software testing method based on combination of control flow graph traversal and slice forward traversal
CN103970845B (en) * 2014-04-28 2017-03-22 南京邮电大学 Webpage filtering method based on program slicing technology

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080271006A1 (en) * 2007-04-26 2008-10-30 Microsoft Corporation Technologies for Code Failure Proneness Estimation
CN102902619A (en) * 2011-07-29 2013-01-30 阿里巴巴集团控股有限公司 Method and device for regression testing of Web application programs
CN103678097A (en) * 2012-09-05 2014-03-26 百度在线网络技术(北京)有限公司 Method and device for selecting regression test case
CN105446723A (en) * 2014-09-02 2016-03-30 国际商业机器公司 Method and device for identifying semantic difference between source code versions

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643905B (en) * 2017-09-13 2021-01-12 扬州大学 Automatic repair method for software version consistency defects
CN110851353A (en) * 2019-10-22 2020-02-28 天津大学 Concurrent program defect positioning method based on Delta debug and constraint solution
CN110851353B (en) * 2019-10-22 2023-03-31 天津大学 Concurrent program defect positioning method based on Delta debug and constraint solution
CN114092288A (en) * 2020-11-24 2022-02-25 北京航空航天大学 Personalized intelligent tutoring method for programming beginners

Also Published As

Publication number Publication date
WO2017201853A1 (en) 2017-11-30
CN106095663B (en) 2017-06-27

Similar Documents

Publication Publication Date Title
CN110347603B (en) Automatic software testing system and method for artificial intelligence
CN104503917B (en) Change domain of influence analysis method and system based on data flow function call path
US8020153B2 (en) Source code checker, source code checking method, program for causing execution of the method, and storage medium for storing the program
CN105302719B (en) A kind of mutation testing method and device
CN103198016B (en) Based on combining the software error localization method relying on probabilistic Modeling
CN106095663B (en) Program based on hierarchical model returns location of mistake method
CN102567201A (en) Method for automatically recovering cross-model GUI (graphic user interface) test scripts
CN103914379B (en) Fault is automatically injected the method with fault detect and system thereof
CN102375895B (en) Method for automatically constructing parameter optimal extraction process of device model
CN110442514B (en) Method for realizing defect repair recommendation based on learning algorithm
CN106021101A (en) Method and device for testing mobile terminal
CN105224455B (en) A kind of method for automatically generating character string type test case
Laurent Using formal methods and testability concepts in the avionics systems validation and verification (v&v) process
CN105808438A (en) Test case reuse method based on function call path
CN109871322A (en) A kind of program topic automatic scoring method based on machine learning
CN110515826A (en) A kind of software defect positioning method based on number frequency spectrum and neural network algorithm
CN104317707A (en) Program structure influence sensing based software error positioning method
CN106844221B (en) Method for realizing coverage rate analysis of virtual verification system
CN103885341B (en) Performance analysis system based on automotive performance simulator and method
Spichkova et al. Towards a human-centred approach in modelling and testing of cyber-physical systems
CN103309805A (en) Automatic selection method for test target in object-oriented software under xUnit framework
CN108228232B (en) Automatic repairing method for circulation problem in program
US20180217922A1 (en) Application testing
CN105354035A (en) Method for compiling test case of web engineering
CN104536880A (en) GUI program testing case augmentation method based on symbolic execution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant