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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Yu, K., Lin, M.X.: Advances in automatic fault localization techniques. Chin. J. Comput. 34(8), 1411–1422 (2011)
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)
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)
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
Cao, H.L., Jiang, S.J., Ju, X.L.: Survey of software fault localization. Comput. Sci. 41(2), 1–6 (2014)
Liu, X.: Research on optimization of fault localization with range invariant. Harbin Institute of Technology (2016)
Ernst, M.D., Notkin, D.: Dynamically discovering likely program invariants. IEEE Trans. Softw. Eng. 27(2), 99–123 (2000)
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)
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
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
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_5
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_16
Wang, R., Ding, Z., Gui, N., Liu, Y.: Detecting bugs of concurrent programs with program invariants. IEEE Trans. Reliab. 66(2), 425–439 (2017)
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
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
Pytlik, B., Renieris, M., Krishnamurthi, S., Reiss, S.P.: Automated fault localization using potential invariants. Computer Science, pp. 273–276 (2003)
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)
Menzies, T., Owen, D., Richardson, J.: The strangest thing about software. Computer 40(1), 54–60 (2007)
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
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)
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Ma, L., Ding, Z. (2018). Software Bug Localization Based on Key Range Invariants. In: Bu, L., Xiong, Y. (eds) Software Analysis, Testing, and Evolution. SATE 2018. Lecture Notes in Computer Science(), vol 11293. Springer, Cham. https://doi.org/10.1007/978-3-030-04272-1_2
Download citation
DOI: https://doi.org/10.1007/978-3-030-04272-1_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-04271-4
Online ISBN: 978-3-030-04272-1
eBook Packages: Computer ScienceComputer Science (R0)