Boosting test efficiency with fuzz testing within a unit test environment
- Coverage-guided fuzzing, is a test technique, where the interfaces of a Program under Test (PUT) are fed with semi-random inputs, mutated to maximize the PUT’s coverage depending on dynamically collected feedback. When measuring tests, there is \(\textit {test effectiveness}\) and \(\textit {test efficiency}\). Test effectiveness can be measured in the number of bugs found during testing. Fuzzing has already been shown to be an effective method to detect bugs. Test efficiency, on the other hand, can be measured with the used resources to get a certain test effect. Achieving complete coverage during testing, in a simple case line coverage, is an immense amount of test creation effort, when only unit tests are used - and most of those unit tests do not add to a thorough overall test. Due to continuously growing software systems, a \(\textit {reasonable effort}\) should be put into creating manual unit test cases. In this paper we propose a combination of unit tests and fuzz tests to reduce the overall effort in test creation. While unit tests are indispensable for functional testing, fuzz tests shine to unveil unwanted non-functional behavior, i.e. generating unexpected edge cases. This results in an overall reduction in manual effort for test creation, while the test effectiveness remains equal, i.e. coverage. We introduce an effort estimation framework for a combined unit test and fuzz test strategy. Additionally, we conduct an empirical case study of multiple automotive network components indicating test creation effort savings of around 26%, when manual (non-functional) unit tests are partly automated with fuzz tests - all while fuzzing discovered the same bugs as tortuous unit tests.
Author: | Markus DreherGND, Christopher Stefan Friedrich HuthGND |
---|---|
URN: | urn:nbn:de:hbz:294-93674 |
DOI: | https://doi.org/10.13154/294-9367 |
Parent Title (English): | 20th escar Europe - The World's Leading Automotive Cyber Security Conference (15. - 16.11.2022) |
Document Type: | Part of a Book |
Language: | English |
Date of Publication (online): | 2022/10/21 |
Date of first Publication: | 2022/10/21 |
Publishing Institution: | Ruhr-Universität Bochum, Universitätsbibliothek |
Tag: | Fuzz Testing; Test Effectiveness; Test Efficiency |
First Page: | 55 |
Last Page: | 69 |
Dewey Decimal Classification: | Allgemeines, Informatik, Informationswissenschaft / Informatik |
open_access (DINI-Set): | open_access |
Konferenz-/Sammelbände: | 20th escar Europe - The World's Leading Automotive Cyber Security Conference |
Licence (German): | Keine Creative Commons Lizenz - es gelten die Rechteeinräumung und das deutsche Urheberrecht |