Explore chapters and articles related to this topic
Software Verification
Published in Leanna Rierson, Developing Safety-Critical Software, 2017
Equivalence partitioning requires an evaluation of equivalence classes. The DO-178C glossary defines equivalence class as: “The partition of the input domain of a program such that a test of a representative value of the class is equivalent to a test of other values of the class” [1]. Equivalence class testing considers classes of input conditions to be tested, where each class covers a large set of other possible tests. It “enables the tester to evaluate input or output variables systematically for each parameter in a feature” [9]. It is typically applied to situations where valid (normal) and invalid (robustness) inputs over a range are identified. Rather than testing every value of the range, only representative values are needed (typically on both sides of the boundaries). For large ranges of data, a value in the middle and at the extremes of each end are also typical. In addition to ranges of values, equivalence classes consider similar groups of variables, unique values that require different handling, or specific values that must or must not be present.
The Project Management Framework
Published in William E. Lewis, David Dobbs, Gunasekaran Veerapillai, Software Testing and Continuous Quality Improvement, 2017
William E. Lewis, David Dobbs, Gunasekaran Veerapillai
Equivalence class partitioning, described in Appendix G, is a valuable technique for avoiding repetitive test case coverage. The technique classifies business functions on the basis of input conditions that cause the same kind of processing and output. The result of equivalence class partitioning is a concise set of test cases that increase the testers’ ability to locate defects.
Applications of Formal Methods, Modeling, and Testing Strategies for Safe Software Development
Published in Qamar Mahboob, Enrico Zio, Handbook of RAMS in Railway Systems, 2018
Alessandro Fantechi, Alessio Ferrari, Stefania Gnesi
Boundary value analysis (BVAN): Test cases are selected based on the boundary values of the equivalence classes. This enables to check for typical programming errors, in which, e.g., a less or equal condition is erroneously replaced with a less condition.
Intelligent evaluation of test suites for developing efficient and reliable software
Published in International Journal of Parallel, Emergent and Distributed Systems, 2021
Masoud Mohammadian, Zafer Javed
TSC compares concrete and executable test suites using equivalence class partitioning (ECP). ECP, as proposed by Myers [8], partitions the program’s input(s) and executing conditions into a finite number of equivalence classes. This partitioning reduces the total number of potential test cases to a minimal set of tests that will uncover as many errors as possible. In ECP, which is also known as category partitioning [9], testers select a representative test value for each equivalence class. The test case that results from the representative value for a class is considered ‘equivalent’ to the test cases which are created from the other values in the same class. If the test case of the representative value does not discover any error, it is reasoned that all the other ‘equivalent’ test cases would not identify any errors either.
A novel approach for mutant diversity-based fault localization: DAM-FL
Published in International Journal of Computers and Applications, 2021
Neha Gupta, Arun Sharma, Manoj Kumar Pachariya
From literature, it may be seen that partitioning program elements on the basis of their coverage information helps in successful fault localization. A test input reduction approach based on statement partitioning for fault localization has been proposed by Hao et al. [21]. Their results show that test suite with more number of statement partitions is able to distinguish more statements and produce better fault localization results. Vidacs et al. [22] have proposed an approach which is appropriate equally for fault-localization and detection. They have selected test cases such that they help in partitioning or distinguishing the program elements and not just covering those elements. Paper concluded that partition-based reduction outdid coverage-based fault localization. Similarly, a test suite reduction strategy based on code coverage and statement partitioning for fault detection and localization has been proposed by Geng et al. [23]. With statement partitioning approach, reduced test suite is able to locate faults early. Authors have examined that statements have the same suspiciousness value if they are covered by the same test cases, thus affecting the accuracy of SBFL approaches. Similarly, if mutants are killed by the same test cases then they will have the same suspicion value and will affect the precision of MBFL approaches. Thus, partitioning coverage elements into equivalence classes helps in diversification which further helps in better fault localization. According to Papadakis and Traon [7], it is not necessary to have a large set of mutants but a set of mutants which is able to represent the whole program because real faults are by nature few, which can be covered by fewer mutants.