Software equivalence checking based on unit testing and symbolic execution
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Günümüzde her şey nasıl değişime uğruyorsa, donanım komponentleri de bu değişimin parçası olmak zorunda. Bu durum son kullanıcı için küçük rahatsızlıklar yaratmakta. Fakat gömülü sistem tasarımcıları için bu durum çok daha kritik, çünkü gömülü yazılımlar üzerinde çalışacakları donanıma yüksek bir oranda bağlı olduğundan herhangi bir donanım değişikliği yazılım geliştirme süreçlerine büyük külfetler getirmekte. En büyük zorluk ise donanımın artık üretilmemesi durumunda ortaya çıkacaktır. Böyle bir durumda eski donanım için tasarlanmış yazılım ağır bir yenileme sürecine girecek ve hatta tamamen baştan yazılmak zorunda kalacaktır. Bu yenileme sürecinden sonra eski yazılım ve donanım ile yeni yazılım ve donanım ikilisi ile fonksiyonel anlamda denk olmalıdır. Bu denkliği test etmek oldukça uzun ve etraflı bir süreçtir ve denklik testi olarak adlandırılır. Bu çalışmada denklik testini otomatik olarak gerçekleştirebilen bir method ortaya koyuyoruz. Methodumuz iki değerlendirme yöntemiyle test edilmiştir. İlk yöntemde küçük boyutlu fonksiyonlarla ikinci yöntemde ise gerçek hayat senaryolarına daha yakın bir kod örneği kullanılmıştır. İki yöntemde de methodumuz 6 üzerinden 5 başarı oranı sağlamıştır. 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 cus- tomized 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 lengthly 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.
Collections