Advertisement

Software Bug Localization Based on Key Range Invariants

  • Lin MaEmail author
  • Zuohua DingEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11293)

Abstract

Bug localization is expensive and time-consuming during software debugging. The traditional software bug localization based on range invariants need to monitor all variables in the system, requires a large of runtime overhead. However, this overhead is not necessary. Because only a set of key variables can really affect the results of the system. Therefore, this paper proposes a software bug localization method based on key range invariants. First, add the key variables screening phase in the original method. By combining the dynamic filtering mechanism with the static reduction mechanism, the key variables set of the program are screened. Then, the values of the key variables in all successful test cases are counted to obtain the key range invariants. Finally, bug localization is performed by monitoring the values of the key variables in failure test cases. When we need to minimize the overhead of monitoring variables, we can use this method to ignore variables that are considered unimportant. The experimental results show that, the method can still maintain a good bug localization effect only monitoring the key variable set, which verifies the effectiveness of the method.

Keywords

Key variables Range invariants Bug localization Suspicious statements 

References

  1. 1.
    Yu, K., Lin, M.X.: Advances in automatic fault localization techniques. Chin. J. Comput. 34(8), 1411–1422 (2011)CrossRefGoogle Scholar
  2. 2.
    Patterson, D., et al.: Recovery oriented computing (ROC): motivation, definition, techniques, and case studies. Berkeley Computer Science, vol. 9, no. 2, pp. 14–16 (2002)Google Scholar
  3. 3.
    Xie, M., Yang, B.: A study of the effect of imperfect debugging on software development cost. IEEE Trans. Softw. Eng. TSE 29(5), 471–473 (2003)CrossRefGoogle Scholar
  4. 4.
    Santelices, R., Jones, J.A., Yu, Y., Harrold, M.J.: Lightweight fault-localization using multiple coverage types. In: International Conference on Software Engineering, ICSE 2009, pp. 56–66. IEEE, Vancouver (2009).  https://doi.org/10.1109/ICSE.2009.5070508
  5. 5.
    Cao, H.L., Jiang, S.J., Ju, X.L.: Survey of software fault localization. Comput. Sci. 41(2), 1–6 (2014)Google Scholar
  6. 6.
    Liu, X.: Research on optimization of fault localization with range invariant. Harbin Institute of Technology (2016)Google Scholar
  7. 7.
    Ernst, M.D., Notkin, D.: Dynamically discovering likely program invariants. IEEE Trans. Softw. Eng. 27(2), 99–123 (2000)CrossRefGoogle Scholar
  8. 8.
    Liu, S.K., Yang, X.H., Luo, J.Q., Liu, J.: Dynamically discovering likely program invariants based on the contract. Microcomput. Inf. 22(30), 233–235 (2006)Google Scholar
  9. 9.
    Racunas, P., Constantinides, K., Manne, S., Mukherjee, S.S.: Perturbation-based fault screening. In: High Performance Computer Architecture, HPCA 2007, Scottsdale, AZ, USA, pp. 169–180. IEEE Computer Society (2007).  https://doi.org/10.1109/HPCA.2007.346195
  10. 10.
    Hangal, S., Lam, M.S.: Tracking down software bugs using automatic anomaly detection. In: International Conference on Software Engineering, ICSE 2002, Orlando, FL, USA, pp. 291–301. IEEE (2002).  https://doi.org/10.1145/581376.581377
  11. 11.
    Abreu, R., González, A., Zoeteweij, P., van Gemund, A.J.C.: Using fault screeners for software error detection. In: Maciaszek, L.A., González-Pérez, C., Jablonski, S. (eds.) ENASE 2008. CCIS, vol. 69, pp. 60–74. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-14819-4_5CrossRefzbMATHGoogle Scholar
  12. 12.
    Santos, J., Abreu, R.: Lightweight automatic error detection by monitoring collar variables. In: Nielsen, B., Weise, C. (eds.) ICTSS 2012. LNCS, vol. 7641, pp. 215–230. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-34691-0_16CrossRefGoogle Scholar
  13. 13.
    Wang, R., Ding, Z., Gui, N., Liu, Y.: Detecting bugs of concurrent programs with program invariants. IEEE Trans. Reliab. 66(2), 425–439 (2017)CrossRefGoogle Scholar
  14. 14.
    Le, T.D.B., Lo, D., Goues, C.L., Grunske, L.: A learning-to-rank based fault localization approach using likely invariants. In: International Symposium on Software Testing and Analysis 2016, pp. 177–188. ACM, New York (2016).  https://doi.org/10.1145/2931037.2931049
  15. 15.
    Rui, A., Zoeteweij, P., van Gemund, A.J.C.: Automatic software fault localization using generic program invariants. In: ACM Symposium on Applied Computing 2008, Fortaleza, Ceara, Brazil, pp. 712–717. ACM (2008).  https://doi.org/10.1145/1363686.1363855
  16. 16.
    Pytlik, B., Renieris, M., Krishnamurthi, S., Reiss, S.P.: Automated fault localization using potential invariants. Computer Science, pp. 273–276 (2003)Google Scholar
  17. 17.
    Sahoo, S.K., Criswell, J., Geigle, C., Adve, V.: Using likely invariants for automated software fault localization. ACM SIGPLAN Not. 41(1), 139–152 (2013)CrossRefGoogle Scholar
  18. 18.
    Menzies, T., Owen, D., Richardson, J.: The strangest thing about software. Computer 40(1), 54–60 (2007)CrossRefGoogle Scholar
  19. 19.
    Masri, W., Assi, R.A.: Cleansing test suites from coincidental correctness to enhance fault-localization. In: Third International Conference on Software Testing, Verification and Validation 2010, Paris, France, pp. 165–174. IEEE (2010).  https://doi.org/10.1109/ICST.2010.22
  20. 20.
    Zong, F.F., Huang, H.Y., Ding, Z.H.: Software fault location based on double-times-locating strategy. J. Softw. 27(8), 1993–2007 (2016)MathSciNetGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.School of Information Science and TechnologyZhejiang Sci-Tech UniversityHangzhouChina

Personalised recommendations