错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Dynamic domain testing with multi-agent Markov chain Monte Carlo method

  • Roshan Golmohammadi,
  • Saeed Parsa,
  • Morteza Zakeri-Nasrabadi

摘要

Path testing is one of the most efficient approaches for covering a program during the test. However, executing a path with a single or limited number of test data does not guarantee that the path is fault-free, specifically in the fault-prone paths. A common solution in these cases is to extract the corresponding domain of the path constraint that covers the path and select the arbitrary numbers of test data from the extracted domain. Many approaches have been proposed to extract and partition the program input domain statically without executing the program under test. However, extracting domain based on the path constraints is inaccurate and time-consuming, specifically in high dimensional inputs. This paper presents a dynamic approach for extracting the input domain of a given path based on the modified Markov chain Monte Carlo method, multi-agent Metropolis algorithm. The algorithm uses sampling and randomly walks around symmetric proposal distribution to find a finite number of points that approximate the target domain. Our approach chooses the highest fault-prone path from the minimum-cost test paths for domain extraction to maximize the fault detection capabilities. Our experiments with ten Python programs reveal a 14% improvement in the accuracy of the extracted domains compared to the state-of-the-art domain extraction approaches. In addition, the mutation score of automatically generated test cases has improved by an average of 17.95% compared to branch and prime-path testing approaches.