SOFTWARE EQUIVALENCE CHECKING BASED ON UNIT TESTING AND SYMBOLIC EXECUTION


Tezin Türü: Yüksek Lisans

Tezin Yürütüldüğü Kurum: Orta Doğu Teknik Üniversitesi, Enformatik Enstitüsü, Bilişim Sistemleri Anabilim Dalı, Türkiye

Tezin Onay Tarihi: 2018

Öğrenci: BURAK ÜNALTAY

Danışman: ALTAN KOÇYİĞİT

Özet:

Hardware is one of the best representatives of our ever-changing world. For most of the end users this is nothing but a nuisance as they have to renew their electronics each year. For the embedded system designers who has to deal with this change in frontier however it is a definite threat. Embedded system designers have a close relationship to the hardware as the software runs on it highly tuned for the platform it runs on. It is when hardware is completely obsolete this impact reaches its peak because customized software will need heavy refactoring and often times a complete rewrite. One has to be sure to have a functionally equivalent product after this refactoring effort. This requires a costly and lengthy validation process. Sum of all validation efforts for this purpose could be identified as equivalence checking. Here in this study, we lay out a method that automatically deals with problem of equivalence checking. Our method is tested against two evaluation scenarios. In first scenario, our method is tested against small function bodies. In second scenario, it is tested against a larger code example that is closer to a real production code. In both ways of evaluation, our method is able deduce equivalency with a score of 5 out of 6.