Font Size: a A A

A Research Of Concurrent Program Regression Testing

Posted on:2020-06-30Degree:MasterType:Thesis
Country:ChinaCandidate:G Z ZhouFull Text:PDF
GTID:2428330623459885Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Given a concurrent program execution trace,the technique of testing concurrent programs based on constraint solving transforms some concurrent fault mode and the feasibility of an execution trace into a set of constraints,and then generates a concurrent execution interleaving which is capable of exposing the corresponding faults by constraint solving.The method has many advantages such as no false positive and less false negative rate.In general,concurrent programs undergo multiple modifications during development,resulting in multiple program versions.In the evolution process,the concurrent program testing based on the constraint solving of each version is directly faced with the program of low testing efficiency because the version change information is no considered.In order to reduce the regression testing cost of concurrent programs,this paper proposes a concurrent regression test method based on constraint solving.The method firstly analyzes the collected two versions execution traces,and calculates the Concurrent Context for each memory access event.Then obtain the memory access events affected by the changed codes by Change Impact Analysis,to form an impact set.Finally,considering the maximum causal model with the control flow,the concurrent faults detection problem is transformed into the constraint solving problem,and the concurrent faults detection is performed on the interleaving space containing at least one event in impact set.This method is based on constraint solving,which can ensure that the concurrency faults obtained must be true and will not cause false positives.At the same time,the method is based on the change impact analysis,which can ensure that the obtained concurrency faults must be generated by the modified code,and the concurrency faults detected by the previous version will not be repeatedly reported.Therefore,the method can effectively reduce the interleaving space of concurrent program error detection and improve the efficiency of regression testing.Based on the above work,this paper designs and implements the concurrency regression testing tool RegDetector based on constraint solving,and compare it with the single version concurrent faults detection tool RV-Predict and PECAN to verify the effectiveness of the proposed method.The experimental results show that RegDetector can effectively improve the detection efficiency of regression testing under the premise of no loss of detection capability.During the experiment,RegDetector can detect the same number of concurrent faults as RV-Predict,while RegDetector repeat detections are reduced by 38% and detection time is reduced by more than 20%.
Keywords/Search Tags:Concurrent Programs, Regression Testing, Constraint Solving, Concurrent Program Testing
PDF Full Text Request
Related items