perform both semantic or syntactic similarity based
techniques. Using combined methods, 96.52% and
96.62% of the total search space can be eliminated
to find the correct patch. Results further show that
these approaches are significantly better in ranking
the correct patch earlier than semantic or syntactic
based approaches. Moreover, these two techniques
rank the correct solution at the top in 11.79% and
10.16% cases. It indicates that combined approaches
have the potential to rank correct patch before incor-
rect plausible ones.
The combined methods obtain promising result in
terms of median rank of the correct patch, average
space reduction and perfect repair. Therefore, these
approaches can be further explored using other bench-
mark datasets such as Defects4J (Just et al., 2014),
QuixBugs (Lin et al., 2017). In addition, existing ap-
proaches such as (Le Goues et al., 2012), (Qi et al.,
2014), (Le et al., 2016) can be modified to incorporate
the combination of syntactic and semantic similarities
for complementing their techniques.
ACKNOWLEDGEMENTS
This research is supported by the fellowship
from ICT Division, a department of Ministry of
Posts, Telecommunications and Information Technol-
ogy, Bangladesh. No-56.00.0000.028.33.093.19-427;
Dated 20.11.2019. The virtual machine facilities used
in this research is provided by the Bangladesh Re-
search and Education Network (BdREN).
REFERENCES
Asad, M., Ganguly, K. K., and Sakib, K. (2019). Im-
pact analysis of syntactic and semantic similarities
on patch prioritization in automated program repair.
In Proceedings of the 2019 IEEE International Con-
ference on Software Maintenance and Evolution (IC-
SME), pages 328–332. IEEE.
Barr, E. T., Brun, Y., Devanbu, P., Harman, M., and Sarro,
F. (2014). The plastic surgery hypothesis. In Proceed-
ings of the 22nd ACM SIGSOFT International Sympo-
sium on Foundations of Software Engineering (FSE),
pages 306–317. ACM.
Chen, L., Pei, Y., and Furia, C. A. (2017). Contract-based
program repair without the contracts. In Proceedings
of the 32nd IEEE/ACM International Conference on
Automated Software Engineering (ASE), pages 637–
647. IEEE.
Chen, Z. and Monperrus, M. (2018). The remarkable role of
similarity in redundancy-based program repair. Com-
puting Research Repository (CoRR), abs/1811.05703.
Gabel, M., Jiang, L., and Su, Z. (2008). Scalable detection
of semantic clones. In Proceedings of the 30th Inter-
national Conference on Software Engineering (ICSE),
pages 321–330. ACM.
Gazzola, L., Micucci, D., and Mariani, L. (2017). Auto-
matic software repair: A survey. IEEE Transactions
on Software Engineering.
Jiang, J., Xiong, Y., Zhang, H., Gao, Q., and Chen, X.
(2018). Shaping program repair space with existing
patches and similar code. In Proceedings of the 27th
ACM SIGSOFT International Symposium on Software
Testing and Analysis (ISSTA), pages 298–309. ACM.
Just, R., Jalali, D., and Ernst, M. D. (2014). Defects4j: A
database of existing faults to enable controlled test-
ing studies for java programs. In Proceedings of the
2014 International Symposium on Software Testing
and Analysis (ISSTA), pages 437–440. ACM.
Kim, D., Nam, J., Song, J., and Kim, S. (2013). Auto-
matic patch generation learned from human-written
patches. In Proceedings of the 2013 International
Conference on Software Engineering (ICSE), pages
802–811. IEEE Press.
Le, X.-B. D., Chu, D.-H., Lo, D., Le Goues, C., and Visser,
W. (2017). S3: syntax-and semantic-guided repair
synthesis via programming by examples. In Proceed-
ings of the 2017 11th Joint Meeting on Foundations of
Software Engineering (FSE), pages 593–604. ACM.
Le, X. B. D., Lo, D., and Le Goues, C. (2016). History
driven program repair. In Proceedings of the 2016
IEEE 23rd International Conference on Software
Analysis, Evolution, and Reengineering (SANER),
volume 1, pages 213–224. IEEE.
Le Goues, C., Dewey-Vogt, M., Forrest, S., and Weimer,
W. (2012). A systematic study of automated program
repair: Fixing 55 out of 105 bugs for $8 each. In Pro-
ceedings of the 34th International Conference on Soft-
ware Engineering (ICSE), pages 3–13. IEEE.
Le Goues, C., Nguyen, T., Forrest, S., and Weimer, W.
(2011). Genprog: A generic method for automatic
software repair. IEEE Transactions on Software Engi-
neering, 38(1):54–72.
Lin, D., Koppel, J., Chen, A., and Solar-Lezama, A. (2017).
Quixbugs: a multi-lingual program repair benchmark
set based on the quixey challenge. In Proceedings
Companion of the 2017 ACM SIGPLAN International
Conference on Systems, Programming, Languages,
and Applications: Software for Humanity (SPLASH),
pages 55–56. ACM.
Liu, K., Koyuncu, A., Bissyand
´
e, T. F., Kim, D., Klein, J.,
and Le Traon, Y. (2019a). You cannot fix what you
cannot find! an investigation of fault localization bias
in benchmarking automated program repair systems.
In Proceedings of the 2019 12th IEEE Conference on
Software Testing, Validation and Verification (ICST),
pages 102–113. IEEE.
Liu, K., Koyuncu, A., Kim, D., and Bissyand
´
e, T. F.
(2019b). Tbar: revisiting template-based automated
program repair. In Proceedings of the 28th ACM SIG-
SOFT International Symposium on Software Testing
and Analysis (ISSTA), pages 31–42. ACM.
Martinez, M., Weimer, W., and Monperrus, M. (2014). Do
the fix ingredients already exist? an empirical in-
Impact of Combining Syntactic and Semantic Similarities on Patch Prioritization
179