Retrofitting automatic testing through library tests reusing

Lei Ma, Cheng Zhang, Bing Yu, Jianjun Zhao

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)

Abstract

Test cases are useful for program comprehension. Developers often understand dynamic behavior of systems by running their test cases. As manual testing is expensive, automatic testing has been extensively studied to reduce the cost. However, without sufficient knowledge of the software under test, it is difficult for automated testing techniques to create effective test cases, especially for software that requires complex inputs. In this paper, we propose to reuse existing test cases from the libraries of software under test, to generate better test cases. We have the observation that, when developers start to test the target software, the test cases of its dependent libraries are often available. Therefore, we propose to perform program analysis on these artifacts to extract relevant code fragments to create test sequences. We further seed these sequences to a random test generator GRT to generate test cases for target software. The preliminary experiments show that the technique significantly improves the effectiveness of GRT. Our in-depth analysis reveals that several dependency metrics are good indicators of the potential benefits of applying our technique on specific programs and their libraries.

Original languageEnglish
Title of host publicationProceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016
PublisherIEEE Computer Society
ISBN (Electronic)9781509014286
DOIs
Publication statusPublished - Jul 5 2016
Event24th IEEE International Conference on Program Comprehension, ICPC 2016 - Austin, United States
Duration: May 16 2016May 17 2016

Publication series

NameIEEE International Conference on Program Comprehension
Volume2016-July

Other

Other24th IEEE International Conference on Program Comprehension, ICPC 2016
CountryUnited States
CityAustin
Period5/16/165/17/16

Fingerprint

Automatic testing
Retrofitting
Testing
Seed
Costs
Experiments

All Science Journal Classification (ASJC) codes

  • Hardware and Architecture
  • Software

Cite this

Ma, L., Zhang, C., Yu, B., & Zhao, J. (2016). Retrofitting automatic testing through library tests reusing. In Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016 [7503725] (IEEE International Conference on Program Comprehension; Vol. 2016-July). IEEE Computer Society. https://doi.org/10.1109/ICPC.2016.7503725

Retrofitting automatic testing through library tests reusing. / Ma, Lei; Zhang, Cheng; Yu, Bing; Zhao, Jianjun.

Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016. IEEE Computer Society, 2016. 7503725 (IEEE International Conference on Program Comprehension; Vol. 2016-July).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Ma, L, Zhang, C, Yu, B & Zhao, J 2016, Retrofitting automatic testing through library tests reusing. in Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016., 7503725, IEEE International Conference on Program Comprehension, vol. 2016-July, IEEE Computer Society, 24th IEEE International Conference on Program Comprehension, ICPC 2016, Austin, United States, 5/16/16. https://doi.org/10.1109/ICPC.2016.7503725
Ma L, Zhang C, Yu B, Zhao J. Retrofitting automatic testing through library tests reusing. In Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016. IEEE Computer Society. 2016. 7503725. (IEEE International Conference on Program Comprehension). https://doi.org/10.1109/ICPC.2016.7503725
Ma, Lei ; Zhang, Cheng ; Yu, Bing ; Zhao, Jianjun. / Retrofitting automatic testing through library tests reusing. Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016. IEEE Computer Society, 2016. (IEEE International Conference on Program Comprehension).
@inproceedings{670765331d494de8a66685cb3f56c183,
title = "Retrofitting automatic testing through library tests reusing",
abstract = "Test cases are useful for program comprehension. Developers often understand dynamic behavior of systems by running their test cases. As manual testing is expensive, automatic testing has been extensively studied to reduce the cost. However, without sufficient knowledge of the software under test, it is difficult for automated testing techniques to create effective test cases, especially for software that requires complex inputs. In this paper, we propose to reuse existing test cases from the libraries of software under test, to generate better test cases. We have the observation that, when developers start to test the target software, the test cases of its dependent libraries are often available. Therefore, we propose to perform program analysis on these artifacts to extract relevant code fragments to create test sequences. We further seed these sequences to a random test generator GRT to generate test cases for target software. The preliminary experiments show that the technique significantly improves the effectiveness of GRT. Our in-depth analysis reveals that several dependency metrics are good indicators of the potential benefits of applying our technique on specific programs and their libraries.",
author = "Lei Ma and Cheng Zhang and Bing Yu and Jianjun Zhao",
year = "2016",
month = "7",
day = "5",
doi = "10.1109/ICPC.2016.7503725",
language = "English",
series = "IEEE International Conference on Program Comprehension",
publisher = "IEEE Computer Society",
booktitle = "Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016",
address = "United States",

}

TY - GEN

T1 - Retrofitting automatic testing through library tests reusing

AU - Ma, Lei

AU - Zhang, Cheng

AU - Yu, Bing

AU - Zhao, Jianjun

PY - 2016/7/5

Y1 - 2016/7/5

N2 - Test cases are useful for program comprehension. Developers often understand dynamic behavior of systems by running their test cases. As manual testing is expensive, automatic testing has been extensively studied to reduce the cost. However, without sufficient knowledge of the software under test, it is difficult for automated testing techniques to create effective test cases, especially for software that requires complex inputs. In this paper, we propose to reuse existing test cases from the libraries of software under test, to generate better test cases. We have the observation that, when developers start to test the target software, the test cases of its dependent libraries are often available. Therefore, we propose to perform program analysis on these artifacts to extract relevant code fragments to create test sequences. We further seed these sequences to a random test generator GRT to generate test cases for target software. The preliminary experiments show that the technique significantly improves the effectiveness of GRT. Our in-depth analysis reveals that several dependency metrics are good indicators of the potential benefits of applying our technique on specific programs and their libraries.

AB - Test cases are useful for program comprehension. Developers often understand dynamic behavior of systems by running their test cases. As manual testing is expensive, automatic testing has been extensively studied to reduce the cost. However, without sufficient knowledge of the software under test, it is difficult for automated testing techniques to create effective test cases, especially for software that requires complex inputs. In this paper, we propose to reuse existing test cases from the libraries of software under test, to generate better test cases. We have the observation that, when developers start to test the target software, the test cases of its dependent libraries are often available. Therefore, we propose to perform program analysis on these artifacts to extract relevant code fragments to create test sequences. We further seed these sequences to a random test generator GRT to generate test cases for target software. The preliminary experiments show that the technique significantly improves the effectiveness of GRT. Our in-depth analysis reveals that several dependency metrics are good indicators of the potential benefits of applying our technique on specific programs and their libraries.

UR - http://www.scopus.com/inward/record.url?scp=84979742700&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84979742700&partnerID=8YFLogxK

U2 - 10.1109/ICPC.2016.7503725

DO - 10.1109/ICPC.2016.7503725

M3 - Conference contribution

AN - SCOPUS:84979742700

T3 - IEEE International Conference on Program Comprehension

BT - Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016

PB - IEEE Computer Society

ER -