Int J Performability Eng ›› 2020, Vol. 16 ›› Issue (11): 1814-1825.doi: 10.23940/ijpe.20.11.p13.18141825

Previous Articles     Next Articles

Software Fault Detection for Sequencing Constraint Defects

Xiangyu Chenga, Yong Wanga,b,*, Wan Zhoua, Xue Wanga and Jingming Wangc,*   

  1. aSchool of Computer and Information, Anhui Polytechnic University, Wuhu, 241000, China;
    bState Key Laboratory for Novel Software Technology, Nanjing University, Nanjing, 210000, China;
    cComputer and Information Engineer School, Chuzhou University, Chuzhou, 239000, China
  • Submitted on ; Revised on ; Accepted on
  • Contact: *E-mail address: yongwang@ahpu.edu.cn, wjmtime@chzu.edu.cn

Abstract: Sequencing constraints are restrictions on the order of operations (statements, methods, or calls) during program execution. They trigger software failures if sequencing constraints are violated during software execution; this is a common defect in software systems. Sequencing constraint defects are difficult to find because they are specification-related. To resolve this issue, we propose a defect detection approach based on static analysis. In our approach, first, we formalize the sequencing constraints as regular expressions extracted from software specification, and define regular expression of defect patterns that violate sequencing constraints. Then, the software is converted into a control flow graph (CFG), and the CFG is labeled by the constraint information to generate a sequencing-constraint control flow graph (SC-CFG) that is converted into a path expression using algebraic representation. Finally, a suspiciousness defect report is outputted by pattern matching, which compares defect patterns with string patterns extracted by the path expression. The experiments are performed to validate the effectiveness of our approach. The evaluation results show that our approach is effective at detecting sequencing constraint defects before software testing.

Key words: sequencing constraints, defect detection, static analysis, formal specification