CN108959090A - Influence analysis device between debugging behavior of developer and software debugging - Google Patents

Influence analysis device between debugging behavior of developer and software debugging Download PDF

Info

Publication number
CN108959090A
CN108959090A CN201810728853.5A CN201810728853A CN108959090A CN 108959090 A CN108959090 A CN 108959090A CN 201810728853 A CN201810728853 A CN 201810728853A CN 108959090 A CN108959090 A CN 108959090A
Authority
CN
China
Prior art keywords
debugging
developer
software
program
information
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
Application number
CN201810728853.5A
Other languages
Chinese (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.)
North China University of Technology
Original Assignee
North China University of Technology
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 North China University of Technology filed Critical North China University of Technology
Priority to CN201810728853.5A priority Critical patent/CN108959090A/en
Publication of CN108959090A publication Critical patent/CN108959090A/en
Pending legal-status Critical Current

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/362Software debugging

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

The invention discloses a software debugging analysis method based on developer behavior data, which analyzes the influence effect generated by software debugging from three aspects of the experience level of a developer, the program complexity and the auxiliary debugging technology used by the developer, wherein for the same program, the attention of the developer to a variable and a statement is generally high during debugging, in order to explore other factors influencing the software debugging, the method carries out correlation analysis on debugging information and provides key variables, key statements and the like influencing the software debugging efficiency, wherein the auxiliary debugging technology used by the developer is a positioning technology SBF L based on program spectrum, the judgment of the program complexity utilizes the complexity in software testing to classify the programs according to the difficulty level.

Description

A kind of developer debugs the impact analysis device between behavior and software debugging
Technical field
The present invention relates to the analysis method of software debugging, mainly developer debugs the influence between behavior and software debugging Analytical equipment.
Background technique
Research report according to univ cambridge uk's publication in 2013 shows that whole world industry spends in software debugging every year On expense be up to 312,000,000,000 dollars or so.Software debugging includes four core works: fault discovery (fault Detection), fault location (fault localization), failure understand that (fault comprehension) and failure are repaired Multiple (fault fixing).Wherein fault location is the highest work of cost in software debugging process.
Traditional fault location is usually carried out by manual program debugging, but manual program debugging is time-consuming and laborious.Mirror In this, researcher both domestic and external competitively expands research to automated software fault location, these researchs are typical for base In the fault location research of program frequency spectrum (statistical information for referring to program execution characteristics), this kind of research, which specifically includes that, to be based on The Fault Locating Method of sentence or statement block, the Fault Locating Method based on predicate, the fault location side based on method or function Method and the Fault Locating Method that chain is used based on definition-.The fault location report that Fault Locating Method based on program frequency spectrum provides It is usually the collating sequence of the program unit of suspected malfunctions in announcement.
But the fault locating program method based on program frequency spectrum suffers from a problem that: developer is obtaining fault location After report, often it is difficult to immediately find failure and repairs, even if under the program mal only situation caused by single sentence, one As be also difficult to understand the generation of failure by checking the sentence.In addition, positioning reporting and developer that existing method obtains exist Failure understands inconsistent with information needed in repair process.The root for the above problem occur is existing automation fault location side Method is based on perfect failure and understands hypothesis, it may be assumed that developer is lacking the understanding to suspicious sentence context, by observing suspicious sentence Collection is it may determine that haveing the sentence comprising failure and fault restoration can be effectively performed.Parnin and Xiaoyuan Xie et al. Understand perfect failure and assume to propose query: developer just knows that suspicious sentence set, is difficult to understand for failure context and suitable Benefit carries out fault restoration.They even point out that not there is perfect failure understands.
A kind of software debugging analysis method based on developer's behavioral data has been researched and proposed for this, it is intended to by split Originator analyzes it usually in the collection of software debugging data, so that the relevant information in software debugging process is found, The foundation of experimental demonstration is provided to further increase the automatization level of software debugging.
Summary of the invention
The present invention is to be analyzed based on developer's behavior software debugging, and to be solved is to the developer being collected into Behavioural information carries out correlation analysis, and research can be to the factor that software debugging has an impact in the debugging behavior of developer.
Technology of the invention solves the problems, such as: the debugging behavior generated for developer, analyzes Debugging message, research and development The influence that person's behavior generates software debugging.
Technical solution of the invention: correlation analysis is done to the developer's software debugging behavioural information monitored.
It tests Eclipse and monitors plug-in unit, the debugging behavior of developer is monitored, and by information preservation in database In.Behavior of the developer in software debugging process is that developer is familiar with software, failure understands and the tasks such as fault restoration A kind of reaction, therefore by the behavioral data of analysis developer, developer can be analyzed to a certain extent in debugging process Information of interest.Developer's behavior that this method provides is defined as follows:
Define 1. developer's behaviors (Developer Behavior, DB)
Developer's behavior refers to the behavior that developer shows in software debugging, can be as follows with formalization representation:
DB={ D1, D2 ... Di ... Dn } (1≤i≤n)
Wherein Di is relevant information of the developer in a software debugging, can be indicated are as follows:
Di={ Developer, Project, Class, Method, StartTime, EndTime, Breakpoi nt }
Developer refers to developer;
Project refers to the project name where the software of debugging;
Class refers to class name;
Method refers to method name;
At the beginning of StartTime refers to debugging;
EndTime refers to the end time of debugging;
Breakpoint refers to the Debugging message of some breakpoint, can indicate are as follows:
Breakpoint=Breakpoint_line, Breakpoint_expression, Breakpoint _ lastline};
Breakpoint_line refers to the line number where breakpoint;
Breakpoint_expression refers to the expression formula where breakpoint;
Breakpoint_lastline refers to the row where the last one breakpoint in current debugging process.
In the method, with cyclomatic complexity come the complexity of measurement procedures.In the concept of software test, cyclomatic complexity is used It measures the complexity of a module decision structure, independent existing number of passes is shown as in quantity, i.e., reasonable pre- mistake proofing The minimum path debugging tested needed for accidentally.The calculating of cyclomatic complexity is built upon on the basis of controlling stream graph, specific to calculate Process is as follows:
(1) cyclomatic complexity of structured program is defined: V (G)=9 formula of E-N+2P (1);
V (G) watch rim complexity, E indicate the quantity on the side of controlling stream graph, and N indicates the number of nodes of controlling stream graph.P indicates control The part being connected in flow graph processed, because controlling stream graph is all connection, P 1.
(2) cyclomatic complexity of strongly connected graph calculates: V (G)=E-N+P formula (2)
(3) calculating of the cyclomatic complexity of predicate node:
Predicate node is single condition: can directly be calculated by (1) formula
Predicate node is eligible situation:, should be by eligible decomposition when decision condition is eligible in program For single condition, after constituting controlling stream graph, cyclomatic complexity calculating is carried out.It in an experiment will be according to the height of cyclomatic complexity to journey Sequence difficulty is grouped.
In order to probe into the factor of other influences software debugging efficiency, this method is right from existing malfunction test information Software debugging is analyzed, and by relativity measurement, is calculated developer and is checked the similitude between variable, sentence in debugging. Program statement is decomposed into the vector for being directed toward sentence variable by this method first, and debugging behavior message breakpoint row, is looked into breakpoint expression Characteristic value as vector is participated in calculating by variable seen etc., and each vector is then regarded as a point in higher dimensional space, into And the similitude between vector is indicated using certain distance, the vector property being closer is more similar, apart from farther away vector Then differ greatly.This method is divided by variable and variable the place sentence for being directed toward similarity vector, and similitude is high Variable and sentence are defined as key variables, sentence in program.By debugging these key messages, event can be faster positioned Barrier, to improve software debugging efficiency.
Compared with the prior art, the invention has the advantages that:
1) influence for the debugging behavior of developer's generation to software debugging efficiency, proposes based on developer's behavior Software debugging analytical equipment;
3) angle analyzed from the monitoring data being collected into carries out the factor for influencing software debugging efficiency Analysis proposes experience level, program complexity and the influence using external debugging technique to software debugging of developer, And feature is debugged based on three of the above, probe into the influence that other factors generate software debugging.
Detailed description of the invention
Fig. 1 is the software debugging analytical framework based on developer's behavioral data.
Specific embodiment
Below in conjunction with attached drawing, the present invention is described in further detail.
As shown in Figure 1, the present invention provides a kind of software debugging analytical equipments based on developer's behavior.First against every Each program of one developer debugging is monitored debugging line on backstage using Eclipse plug-in unit, and information is protected It deposits in the database.Later, it needs to compare and analyze for different types of programmer.This method is mainly from three developers The effect of software debugging is analyzed in terms of behavior, is the experience level of developer, program complexity and use respectively External debugging technique.The judgement of experience level is the programming experience by developer as foundation, and program complexity is multiple by enclosing For miscellaneous degree to calculate, the debugging ancillary technique of this method research is the fault location technology based on program frequency spectrum.In the course of the research It was found that when debugging the failure of same program there is the phenomenon relatively high to the attention rate of identical variable, this method pair in developer Debugging message carries out correlation analysis.In vector space model, two sentence s1And s2Between content related coefficient Sim (s1, s2) cosine value of angle indicates between common vector, formula are as follows:
Wherein, pk(si)、pk(sj) respectively indicate sentence s1And s2The weight of k-th of characteristic item, 1≤k≤N.Similar system Numerical value more levels off to 1, and it is more similar to represent two sentences;Similarity factor value more levels off to 0, and it is more dissimilar to represent two sentences, this Sample can portray the similitude between program statement, variable using similarity factor value.
After correlation analysis, it is found that variable, sentence that true fault is generated in program are all leaned in relevance rank Preceding position, this method propose that the definition of key variables, key sentence passes through from the malfunction test information of existing program The correlation analysis means of this method obtain facilitating the key message of failure understanding, and utilize these key messages, reach and mention The purpose of high software debugging efficiency.

Claims (2)

1. a kind of developer debugs the impact analysis device between behavior and software debugging, it is characterised in that: the device includes number According to analysis module and experiment module;
Data analysis module:
The debugging behavioural information being collected into is analyzed first, from the experience level of developer, program complexity and is opened respectively Originator using assistant adjustment technology three for the use of to software debugging generate impact effect analyze;Wherein, developer makes What assistant adjustment technology was chosen is at present in one of most promising technology in software debugging field: based on determining for program frequency spectrum Position technology SBFL.Other than above 3 points of obvious features, by analysis Debugging message discovery, identical program mal is debugged When developer debugging action trail there are certain relevance, this method next probe into variable paid close attention to when debugging etc. other It will affect the factor of software debugging.Wherein, breakpoint information can obtain developer in debugging process after by breakpoint analysis Interrupt number and the number of iterations a little.Debug time information can obtain debugging process and be spent after debug time analysis The time taken, wherein process the time it takes is divided into the debugging successful time and debugs the unsuccessful time.Variable information exists After analyzing by key variables, the variable ranking that developer pays close attention in debugging process is obtained.Execution track information is passing through base After the trace information analysis of program frequency spectrum, the suspicious degree list of sentence based on program frequency spectrum is obtained;
Experiment module:
This research need to carry out 4 groups of experimental verifications altogether, respectively from the experience level of developer, program complexity and use SBFL skill Art angle probes into the influence to software debugging;
First group of experiment probes into the influence to software debugging efficiency from the experience level angle of developer, needs to test in experiment Empirically level is grouped object developer;Wherein, programming experience of the experience level with reference to developer;
Influence of second group of Experimental Research program complexity to software debugging efficiency, utilizes the concept of cyclomatic complexity in software test Carry out the labyrinth of decision procedure, and experimental arrangement is grouped according to the complexity marked off;
In order to study influence of the assistant adjustment technology to debugging efficiency, the experiment of third group is carried out, developer is allowed to use SBFL tune Examination technology debugs experimental arrangement, observes its debugging effect;
On the basis of 4th group of experiment is three groups of experiments before the study, and lacking for the fault location technology based on program frequency spectrum It falls into, probes into whether there is also the factors of other influences software debugging, and reach raising software debugging efficiency by changing the factor Purpose.
2. developer according to claim 1 debugs the impact analysis device between behavior and software debugging, feature exists In: all behavioural informations of current developer's debugging routine are obtained first with Ecipse plug-in unit, and these information storages are arrived In the action_info table and variable table of MySQL database;Wherein, stored in action_info table be and debugging phase All information closed mainly include User ID, user's MAC address, the class name of debugging routine, the breakpoint row of setting, breakpoint row table Up to formula etc..Second table variable has recorded the relevant information that developer checks variable in debugging process, including variable name Title, value of variable last time etc..After obtaining above- mentioned information, so that it may be compared point for different types of developer Analysis ultimately produces developer and debugs behavior analysis report.This report is parsed, is proposed respectively from the experience water of developer Influence of the three aspect researchs of flat, program complexity and assistant adjustment technology to software debugging, and other are analyzed on this basis Influence the factor of software debugging.
CN201810728853.5A 2018-07-05 2018-07-05 Influence analysis device between debugging behavior of developer and software debugging Pending CN108959090A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810728853.5A CN108959090A (en) 2018-07-05 2018-07-05 Influence analysis device between debugging behavior of developer and software debugging

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810728853.5A CN108959090A (en) 2018-07-05 2018-07-05 Influence analysis device between debugging behavior of developer and software debugging

Publications (1)

Publication Number Publication Date
CN108959090A true CN108959090A (en) 2018-12-07

Family

ID=64485765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810728853.5A Pending CN108959090A (en) 2018-07-05 2018-07-05 Influence analysis device between debugging behavior of developer and software debugging

Country Status (1)

Country Link
CN (1) CN108959090A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231614A (en) * 2008-02-02 2008-07-30 南京大学 Method for locating software unsoundness base on execution track block semblance
CN105159822A (en) * 2015-08-12 2015-12-16 南京航空航天大学 Software defect positioning method based on text part of speech and program call relation
CN106708729A (en) * 2016-11-15 2017-05-24 东软集团股份有限公司 Code defect predicting method and device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101231614A (en) * 2008-02-02 2008-07-30 南京大学 Method for locating software unsoundness base on execution track block semblance
CN105159822A (en) * 2015-08-12 2015-12-16 南京航空航天大学 Software defect positioning method based on text part of speech and program call relation
CN106708729A (en) * 2016-11-15 2017-05-24 东软集团股份有限公司 Code defect predicting method and device

Similar Documents

Publication Publication Date Title
Gurbuz et al. Model-based testing for software safety: a systematic mapping study
Wardat et al. Deeplocalize: Fault localization for deep neural networks
Mao et al. Slice-based statistical fault localization
Abreu et al. Simultaneous debugging of software faults
Küçük et al. Improving fault localization by integrating value and predicate based causal inference techniques
Xie et al. Checking inside the black box: Regression testing by comparing value spectra
Bartocci et al. Localizing faults in Simulink/Stateflow models with STL
Ang et al. Revisiting the practical use of automated software fault localization techniques
Najafi et al. Bisecting commits and modeling commit risk during testing
CN110515826A (en) A kind of software defect positioning method based on number frequency spectrum and neural network algorithm
Scanniello An investigation of object-oriented and code-size metrics as dead code predictors
Ajibode et al. Evolving suspiciousness metrics from hybrid data set for boosting a spectrum based fault localization
Saadatjoo et al. Test-data generation directed by program path coverage through imperialist competitive algorithm
Alipour Automated fault localization techniques: a survey
Wong et al. Software fault localization: An overview of research, techniques, and tools
Abreu et al. Exploiting count spectra for bayesian fault localization
Bartocci et al. Search-based testing for accurate fault localization in CPS
JP2019194818A (en) Software trouble prediction device
Chen et al. UnitFL: A fault localization tool integrated with unit test
Perez et al. A theoretical and empirical analysis of program spectra diagnosability
Lahtinen Automatic test set generation for function block based systems using model checking
Abuasad et al. Evaluating the correlation between software defect and design coupling metrics
Saxena et al. Software Fault Localization: Techniques, Issues and Remedies.
Vierhauser et al. Evolving systems of systems: Industrial challenges and research perspectives
CN108959090A (en) Influence analysis device between debugging behavior of developer and software debugging

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181207

WD01 Invention patent application deemed withdrawn after publication