Output sampling for output diversity in automatic unit test generation

Article


Menéndez, H., Boreale, M., Gorla, D. and Clark, D. 2022. Output sampling for output diversity in automatic unit test generation. IEEE Transactions on Software Engineering. 48 (1), pp. 295-308. https://doi.org/10.1109/TSE.2020.2987377
TypeArticle
TitleOutput sampling for output diversity in automatic unit test generation
AuthorsMenéndez, H., Boreale, M., Gorla, D. and Clark, D.
Abstract

Diverse test sets are able to expose bugs that test sets generated with structural coverage techniques cannot discover. Input-diverse test set generators have been shown to be effective for this, but also have limitations: e.g., they need to be complemented with semantic information derived from the Software Under Test. We demonstrate how to drive the test set generation process with semantic information in the form of output diversity. We present the first totally automatic output sampling for output diversity unit test set generation tool, called OutGen. OutGen transforms a program into an SMT formula in bit-vector arithmetic. It then applies universal hashing in order to generate an output-based diverse set of inputs. The result offers significant diversity improvements when measured as a high output uniqueness count. It achieves this by ensuring that the test set’s output probability distribution is uniform, i.e. highly diverse. The use of output sampling, as opposed to any of input sampling, CBMC, CAVM, behaviour diversity or random testing improves mutation score and bug detection by up to 4150% and 963% respectively on programs drawn from three different corpora: the R-project, SIR and CodeFlaws. OutGen test sets achieve an average mutation score of up to 92%, and 70% of the test sets detect the defect. Moreover, OutGen is the only automatic unit test generation tool that is able to detect bugs on the real number C functions from the R-project.

PublisherIEEE
JournalIEEE Transactions on Software Engineering
ISSN0098-5589
Electronic1939-3520
Publication dates
Online15 Apr 2020
Print01 Jan 2022
Publication process dates
Submitted27 Jun 2019
Accepted29 Mar 2020
Deposited13 Apr 2021
Output statusPublished
Accepted author manuscript
File Access Level
Open
Copyright Statement

© 2020 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.

Digital Object Identifier (DOI)https://doi.org/10.1109/TSE.2020.2987377
LanguageEnglish
Permalink -

https://repository.mdx.ac.uk/item/894z7

Download files


Accepted author manuscript
outgen-main.pdf
File access level: Open

  • 82
    total views
  • 21
    total downloads
  • 0
    views this month
  • 0
    downloads this month

Export as

Related outputs

Hashing fuzzing: introducing input diversity to improve crash detection
Menendez Benito, H. and Clark, D. 2022. Hashing fuzzing: introducing input diversity to improve crash detection. IEEE Transactions on Software Engineering. 48 (9), pp. 3540-3553. https://doi.org/10.1109/TSE.2021.3100858
Clustering: finding patterns in the darkness
Menendez Benito, H. 2021. Clustering: finding patterns in the darkness. Open Journal of Machine Learning. 1 (1), pp. 1-28. https://doi.org/10.46723/ojml.v1i1.4
Malware: the never-ending arm race
Menendez Benito, H. 2021. Malware: the never-ending arm race. Open Journal of Cybersecurity. 1 (1), pp. 1-25. https://doi.org/10.46723/ojc.1.1.3
Software testing or the bugs’ nightmare
Menendez Benito, H. 2021. Software testing or the bugs’ nightmare. Open Journal of Software Engineering. 1 (1), pp. 1-21. https://doi.org/10.46723/ojse.1.1.1
Getting ahead of the arms race: hothousing the coevolution of VirusTotal with a Packer
Menendez Benito, H., Clark, D. and T. Barr, E. 2021. Getting ahead of the arms race: hothousing the coevolution of VirusTotal with a Packer. Entropy. 23 (4). https://doi.org/10.3390/e23040395
Assessing stakeholder network engagement
Okazaki, S., Plangger, K., Roulet, T. and Menendez Benito, H. 2021. Assessing stakeholder network engagement. European Journal of Marketing. 55 (5), pp. 1359-1384. https://doi.org/10.1108/EJM-12-2018-0842
Diversifying focused testing for unit testing
Menendez Benito, H., Jahangirova, G., Sarro, F., Tonella, P. and Clark, D. 2021. Diversifying focused testing for unit testing. ACM Transactions on Software Engineering and Methodology. 30 (4), pp. 1-24. https://doi.org/10.1145/3447265
Designing large quantum key distribution networks via medoid-based algorithms
Garcia-Cobo, I. and Menendez Benito, H. 2021. Designing large quantum key distribution networks via medoid-based algorithms. Future Generation Computer Systems. 115, pp. 814-824. https://doi.org/10.1016/j.future.2020.09.037