{"title":"Ensuring Reliability Through Combinatorial Coverage Measures","authors":"M. S. Raunak, D. R. Kuhn, R. Kacker, Y. Lei","doi":"10.1109/MRL.2024.3389629","DOIUrl":null,"url":null,"abstract":"Verification of complex software systems is an important, yet challenging task. Testing is the most common method for assuring that software meets its specifications and is defect-free. To claim that software is defect-free and thus reliable, one has to show that it produces the “correct” output or “behaves” according to specification without failing under all possible parameter values and configurations. In the software verification world, this is known as exhaustive testing. For any software of reasonable size and complexity, exhaustive testing is completely infeasible. Thus, during the testing process, a small subset of parameter values and configurations is selected to ensure that the software is producing its output or maintaining its behavior as “expected.” The selected parameter value for one test execution is called a Test Case, and the set of test cases selected for testing a system is called a Test Suite. The essence of software testing, therefore, lies in effective ways of identifying the test cases and building the test suite. Two overarching questions related to this process include: 1) how to select the test cases and 2) how to decide when enough test cases have been selected. Over the years, researchers have proposed different Test Adequacy criteria for answering these two questions.","PeriodicalId":517825,"journal":{"name":"IEEE Reliability Magazine","volume":"51 14","pages":"20-26"},"PeriodicalIF":0.0000,"publicationDate":"2024-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Reliability Magazine","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MRL.2024.3389629","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Verification of complex software systems is an important, yet challenging task. Testing is the most common method for assuring that software meets its specifications and is defect-free. To claim that software is defect-free and thus reliable, one has to show that it produces the “correct” output or “behaves” according to specification without failing under all possible parameter values and configurations. In the software verification world, this is known as exhaustive testing. For any software of reasonable size and complexity, exhaustive testing is completely infeasible. Thus, during the testing process, a small subset of parameter values and configurations is selected to ensure that the software is producing its output or maintaining its behavior as “expected.” The selected parameter value for one test execution is called a Test Case, and the set of test cases selected for testing a system is called a Test Suite. The essence of software testing, therefore, lies in effective ways of identifying the test cases and building the test suite. Two overarching questions related to this process include: 1) how to select the test cases and 2) how to decide when enough test cases have been selected. Over the years, researchers have proposed different Test Adequacy criteria for answering these two questions.