Evolutionary testing (ET) is an effective test case generation technique which uses some meta-heuristic search algorithm, especially genetic algorithm, to generate test case automatically. However, the population prem...Evolutionary testing (ET) is an effective test case generation technique which uses some meta-heuristic search algorithm, especially genetic algorithm, to generate test case automatically. However, the population prematurity problem may decrease the performance of ET. In this paper, a hybrid optimization strategy is proposed based on extended cataclysm which integrates both static configuration strategies and dynamic optimization strategy. Dynamic optimization strategy included the optimization of initial population and the dynamic population optimization based on extended cataclysm, where the diversity of population was monitored during the evolution process of ET, and once the population prematurity was detected, extended cataclysm operation was used to renew the diversity of the population. Experimental results show that the hybrid optimization strategy can improve the performance of ET.展开更多
Fault localization is an important and challeng- ing task during software testing. Among techniques studied in this field, program spectrum based fault localization is a promising approach. To perform spectrum based f...Fault localization is an important and challeng- ing task during software testing. Among techniques studied in this field, program spectrum based fault localization is a promising approach. To perform spectrum based fault local- ization, a set of test oracles should be provided, and the ef- fectiveness of fault localization depends highly on the quality of test oracles. Moreover, their effectiveness is usually af- fected when multiple simultaneous faults are present. Faced with multiple faults it is difficult for developers to determine when to stop the fault localization process. To address these issues, we propose an iterative fauk localization process, i.e., an iterative process of selecting test cases for effective fault localization (IPSETFUL), to identify as many faults as pos- sible in the program until the stopping criterion is satisfied. It is performed based on a concept lattice of program spec- trum (CLPS) proposed in our previous work. Based on the labeling approach of CLPS, program statements are catego- rized as dangerous statements, safe statements, and sensitive statements. To identify the faults, developers need to check the dangerous statements. Meantime, developers need to se- lect a set of test cases covering the dangerous or sensitive statements from the original test suite, and a new CLPS is generated for the next iteration. The same process is pro- ceeded in the same way. This iterative process ends until there are no failing tests in the test suite and all statements on the CLPS become safe statements. We conduct an empirical study on several subject programs, and the results show that IPSETFUL can help identify most of the faults in the program with the given test suite. Moreover, it can save much effort in inspecting unfaulty program statements compared with the existing spectrum based fault localization techniques and the relevant state of the art technique.展开更多
It is difficult to keep software architecture up to date with code changes during software evolution.Inconsistency is caused by the limitations of standard development specifications and human power resources,which ma...It is difficult to keep software architecture up to date with code changes during software evolution.Inconsistency is caused by the limitations of standard development specifications and human power resources,which may impact software maintenance.To solve this problem,we propose an incremental software architecture recovery(ISAR)technique.Our technique obtains dependency information from changed code blocks and identifies different strength-level dependencies.Then,we use double classifiers to recover the architecture based on the method of mapping code-level changes to architecture-level updates.ISAR is evaluated on 10 open-source projects,and the results show that it performs more effectively and efficiently than the compared techniques.We also find that the impact of low-quality architectural documentation on effectiveness remains stable during software evolution.展开更多
基金National Natural Science Foundation of China under Grant No. 61806068, 61672204by Visiting Scholar at Home and Aboard Funded Project of Universities of Anhui Province under Grant gxfxZD2016209+3 种基金by Key Technologies R&D Program of Anhui Province under Grant 1804a09020058by the Major Program for Scientific and Technological of Anhui Province under Grant 17030901026by Talent Research Foundation Project of Hefei University under Grant 16-17RC23by Humanities and Social Science Research Project of Universities of Anhui Province under Grant SK2018A0605.
文摘Evolutionary testing (ET) is an effective test case generation technique which uses some meta-heuristic search algorithm, especially genetic algorithm, to generate test case automatically. However, the population prematurity problem may decrease the performance of ET. In this paper, a hybrid optimization strategy is proposed based on extended cataclysm which integrates both static configuration strategies and dynamic optimization strategy. Dynamic optimization strategy included the optimization of initial population and the dynamic population optimization based on extended cataclysm, where the diversity of population was monitored during the evolution process of ET, and once the population prematurity was detected, extended cataclysm operation was used to renew the diversity of the population. Experimental results show that the hybrid optimization strategy can improve the performance of ET.
文摘Fault localization is an important and challeng- ing task during software testing. Among techniques studied in this field, program spectrum based fault localization is a promising approach. To perform spectrum based fault local- ization, a set of test oracles should be provided, and the ef- fectiveness of fault localization depends highly on the quality of test oracles. Moreover, their effectiveness is usually af- fected when multiple simultaneous faults are present. Faced with multiple faults it is difficult for developers to determine when to stop the fault localization process. To address these issues, we propose an iterative fauk localization process, i.e., an iterative process of selecting test cases for effective fault localization (IPSETFUL), to identify as many faults as pos- sible in the program until the stopping criterion is satisfied. It is performed based on a concept lattice of program spec- trum (CLPS) proposed in our previous work. Based on the labeling approach of CLPS, program statements are catego- rized as dangerous statements, safe statements, and sensitive statements. To identify the faults, developers need to check the dangerous statements. Meantime, developers need to se- lect a set of test cases covering the dangerous or sensitive statements from the original test suite, and a new CLPS is generated for the next iteration. The same process is pro- ceeded in the same way. This iterative process ends until there are no failing tests in the test suite and all statements on the CLPS become safe statements. We conduct an empirical study on several subject programs, and the results show that IPSETFUL can help identify most of the faults in the program with the given test suite. Moreover, it can save much effort in inspecting unfaulty program statements compared with the existing spectrum based fault localization techniques and the relevant state of the art technique.
基金Project supported by the National Natural Science Foundation of China(No.61872078)。
文摘It is difficult to keep software architecture up to date with code changes during software evolution.Inconsistency is caused by the limitations of standard development specifications and human power resources,which may impact software maintenance.To solve this problem,we propose an incremental software architecture recovery(ISAR)technique.Our technique obtains dependency information from changed code blocks and identifies different strength-level dependencies.Then,we use double classifiers to recover the architecture based on the method of mapping code-level changes to architecture-level updates.ISAR is evaluated on 10 open-source projects,and the results show that it performs more effectively and efficiently than the compared techniques.We also find that the impact of low-quality architectural documentation on effectiveness remains stable during software evolution.