Development of efficient t-way test data generation algorithm and execution strategies - Khandakar Fazley, Rabbi (2012)
For a typical software product, it is desired to test all possible combinations of input data in various configurations, Exhaustive testing is impossible to execute prior to release in the market. The lack of resources, cost factors and tight deadlines to market are some of the main factors that prevent this consideration. In current practice, usually the test-data are selected and executed randomly. Many useful strategies (2-Way and TWay sampling) were developed to generate test-data and facilitate smooth testing process. Comprehensive test data generation is nondeterministic polynomial hard problem (NP-complete). Hence, optimization in terms of number of generated test-data and execution time is in demand. Motivated by these, this thesis addresses the design, implementation and validation of four effective test data generation strategies in terms of 2-way and T-way as follows: (I) PS2Way (Pairwise Search for 2-way Test Data Generation) strategy is based on parameters pair technique. This strategy is able to reduce the number of test data, but the execution time is not optimized. (II) EasyA (Easy Algorithm for 2-way Test Data Generation) is developed based on matrix based calculation to overcome the time constrains by keeping the number of test data in an acceptable range. This strategy is unable to support non uniform values. (III) R2Way (Random Search for 2-way Test Data Generation) with execution tool is developed to support both uniform and non-uniform values using search based software engineering. R2Way outperforms other existing strategies but cannot support higher interaction level (T > 2). And finally, (IV) MTTG (Multi-Tuple based T-way Test Data Generation) strategy is developed inspiring kids “Card Game” to overcome the limitations of interaction strength. An executable prototype tool is also developed for auto test execution besides efficient test data generation. Empirical data shows that MTTG is effective and outperforms other strategies in terms of number of test data generation time (more than 74% improvement), maintaining a tolerable test data size. All the proposed strategies are simpler to implement and handle. They are also efficient in terms of execution time and able to generate highly reduced test data suites to fulfil the current demand (easy and faster process) by software development companies.