Open Access Open Access  Restricted Access Subscription Access

Locating Software Faults Based on Control Flow and Data Dependence


Affiliations
1 Lab of Intelligent Computing and Software Engineering, Zhejiang Sci-Tech University, Hangzhou, Zhejiang, 310018, China
 

Debugging software is a difficult and timeconsuming work. Fault localization techniques are becoming extremely important. Coverage Based Fault Localization (CBFL) is very commonly used in fault location technique. Tarantula is a typical one. It uses the coverage statistics of failed execution paths and passed execution paths to calculate the suspiciousness in the software. However, since this technique ignores the data dependency, it is hard to find the bugs which are not in the suspicious code area but have data dependence with it. In order to improve the efficiency of fault locating, we combine control flow coverage information and data dependence from program slicing. We validate our approach experimentally using Siemens benchmark programs. The experimental results show that our approach is more effective than Tarantula.

Keywords

Fault Location, Control Flow, Program Slicing, Data Dependence.
User
Notifications
Font Size

  • Jones, James Arthur. Semi-automatic fault localization. Diss. Georgia Institute of Technology, 2008.
  • Weiser, Mark. "Programmers use slices when debugging." Communications of the ACM 25.7 (1982): 446-452.
  • Agrawal, Hiralal, and Joseph R. Horgan. "Dynamic program slicing." ACM SIGPLAN Notices 25.6 (1990): 246-256.
  • Kusumoto, Shinji, et al. "Experimental evaluation of program slicing for fault localization." Empirical Software Engineering 7.1 (2002): 49-76.
  • Mock, Markus, et al. "Improving program slicing with dynamic points-to data." Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering. ACM, 2002.
  • Miao, Chunyu. "Dynamic Slicing Research of UML State chart Specifications." Journal of Computers 6.4 (2011): 792-798.
  • Agrawal, Hiralal, Richard A. DeMillo, and Eugene H. Spafford. "Debugging with dynamic slicing and backtracking." Software: Practice and Experience 23.6 (1993): 589-616.
  • Abreu, Rui, et al. "A practical evaluation of spectrum based fault localization." Journal of Systems and Software 82.11 (2009): 1780-1792.
  • Yu, Yanbing, James A. Jones, and Mary Jean Harrold. "An empirical study of the effects of test-suite reduction on fault localization." Proceedings of the 30th international conference on Software engineering. ACM, 2008.
  • Jones, James A., and Mary Jean Harrold. "Empirical evaluation of the tarantula automatic fault-localization technique." Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering. ACM, 2005.
  • Chilimbi, Trishul M., et al. "HOLMES: Effective statistical debugging via efficient path profiling." Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on. IEEE, 2009.
  • Santelices, Raul, et al. "Lightweight fault-localization using multiple coverage types." Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on. IEEE, 2009.
  • Jeffrey, Dennis, Neelam Gupta, and Rajiv Gupta. "Fault localization using value replacement." Proceedings of the 2008 international symposium on Software testing and analysis. ACM, 2008.
  • Zhao, Lei, Lina Wang, and Xiaodan Yin. "Context-aware fault localization via control flow analysis." Journal of Software 6.10 (2011): 1977-1984.
  • Zhang, Zhenyu, et al. "Capturing propagation of infected program states." Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering. ACM, 2009.
  • Wong, W. Eric, and Yu Qi. "Effective program debugging based on execution slices and inter-block data dependency." Journal of Systems and Software 79.7 (2006): 891-903.
  • Jones, James A., Mary Jean Harrold, and John Stasko. "Visualization of test information to assist fault localization." Proceedings of the 24th international conference on Software engineering. ACM, 2002.
  • Lina Chen. Automatic Test Cases Generation for Statechart Specifications from Semantics to Algorithm. Journal of Computers, 2011,6 (4):769-775.
  • Qian, Zhongsheng. "Test Case Generation and Optimization for User Session-based Web Application Testing." Journal of Computers 5.11 (2010): 1655-1662.
  • Hong, Hyoung Seok, Insup Lee, and Oleg Sokolsky. "Abstract slicing: A new approach to program slicing based on abstract interpretation and model checking." Source Code Analysis and Manipulation, 2005. Fifth IEEE International Workshop on. IEEE, 2005.
  • Weiser, Mark. "Program slicing." Proceedings of the 5th international conference on Software engineering. IEEE Press, 1981.
  • Hutchins, Monica, et al. "Experiments of the effectiveness of dataflow - and control flow-based test adequacy criteria." Proceedings of the 16th international conference on Software engineering. IEEE Computer Society Press, 1994.

Abstract Views: 170

PDF Views: 77




  • Locating Software Faults Based on Control Flow and Data Dependence

Abstract Views: 170  |  PDF Views: 77

Authors

Chenghui Hu
Lab of Intelligent Computing and Software Engineering, Zhejiang Sci-Tech University, Hangzhou, Zhejiang, 310018, China
Zuohua Ding
Lab of Intelligent Computing and Software Engineering, Zhejiang Sci-Tech University, Hangzhou, Zhejiang, 310018, China

Abstract


Debugging software is a difficult and timeconsuming work. Fault localization techniques are becoming extremely important. Coverage Based Fault Localization (CBFL) is very commonly used in fault location technique. Tarantula is a typical one. It uses the coverage statistics of failed execution paths and passed execution paths to calculate the suspiciousness in the software. However, since this technique ignores the data dependency, it is hard to find the bugs which are not in the suspicious code area but have data dependence with it. In order to improve the efficiency of fault locating, we combine control flow coverage information and data dependence from program slicing. We validate our approach experimentally using Siemens benchmark programs. The experimental results show that our approach is more effective than Tarantula.

Keywords


Fault Location, Control Flow, Program Slicing, Data Dependence.

References