posted on 2023-05-25, 13:05authored byCharaka Geethal Kapugama Kapugamawasangamagedon
When a program produces incorrect or unexpected outputs for certain inputs without being crashed, there exists a semantic bug in the program. For example, assume a calculator that incorrectly says 2+2=5 (instead of 4) while performing the other mathematical operations correctly. Only a human who knows expected behaviour can detect this type of bug in most scenarios. This thesis mainly focuses on developing learning techniques to produce automated models called test oracles to identify test failures under a semantic bug. Moreover, it explores how to use this learning process to automatically fix a semantic bug.