چكيده به لاتين
Test data generation plays an important role in the field of software testing, which is the process of identifying a set of program input data that satisfies a given testing criterion. Most of the test data generation approach, generate a set of test data to satisfy the test criterion at least once. However, detection of latent faults may require several executions of the faulty path with different test data, before the fault could be detected. In other words, the execution of the faulty statement, with any arbitrary value, does not necessarily reveal the fault and the test result may be coincidental correctness. Therefore, generating failure causing test data is imperative. Although many approaches have been proposed in this regard, there are still many challenges in generating appropriate test data. Motivated by this fact, in this thesis, a new criterion, domain coverage, for white box testing is introduced. In search of the biggest subdomains for input variables exercising a given path, the variable domains are repeatedly broken down into nested overlapping subdomains as far as the resultant subdomains either satisfy or violate the path constraint. Representing the relation between the subdomains and their parents as a directed acyclic graph, an Euler/Venn reasoning system could be applied to select the most appropriate subdomains. This approach has led to a significant leap in increasing the accuracy of fault localization methods. The experimental results, in test data generation and fault localization, prove the outperformance of our proposed methods compared to state-of-the-art techniques.