
آقای مجتبی وحیدی اصل دانشجوی دکترای جناب آقای دکتر سعید پارسا روز چهارشنبه مورخ 20/01/93 ساعت 8 صبح در دانشکده مهندسی کامپیوتر از رساله دکترای خود تحت عنوان کشف خطاهای معنایی پنهان نرمافزار با استفاده از روشهای آماری دفاع خواهد نمود. چکیده پایان نامه هدف از این رساله، ارایه راهکاری جدید به هدف مکانیابی خطاهای معنایی پنهان نرمافزار میباشد. به این منظور اطلاعات اجرایی یک برنامه در اجراهای موفق و ناموفق جمعآوری شده و با تحلیل این اطلاعات با استفاده از روشهای آماری پیشنهادی، محل خطا در کد برنامه شناسایی میشود. به دلیل تنوع بسیار وسیع خطاهای معنایی پنهان، رساله پیشنهادی از یک رویکرد پلکانی پیروی میکند. به این منظور، پس از شناسایی و دستهبندی خطاهای موجود در نرمافزارها، در پله اول، سه راهکار آماری جدید به نامهای NN-Graph، Stat-Slice و Hierarchy-Debug پیشنهاد شده است که هریک قادر به کشف دسته خاصی از خطاهای معنایی نرمافزار هستند. در پله دوم رساله، راهکار آماری جدیدی به نامTCG-Net برای تولید موارد آزمون به هدف افزایش پوشش مسیرهای اولیه برنامه، پیشنهاد شده است. به این منظور، ساختار گراف جریان کنترلی برنامه به یک شبکه احتمالاتی نگاشت شده و با انجام استنتاجهای احتمالی، ورودیهای برای پیمایش مسیرهای مختلف در این گراف تولید میشوند.در پله سوم، دو راهکار جدید به نامهایCERM-fl و GCERM-fl براساس تواناییهای سه راهکار قبلی پیشنهاد شده است که علاوه بر یافتن خطاهای راهکارهای پیشین، انواع دیگری از خطاها را نیز مکانیابی میکند. برای پیادهسازی راهکار CERM-fl یک روش رگرسیونی جدید ابداع و پیشنهاد شده است که قادر است همزمان با ایجاد مدل خطی، زنجیرههای عِلّی-معلولی جملات برنامه را در قالب متغیرهای پیشگو نگاهداری کرده و به عنوان حوزه خطا، به برنامهنویس گزارش کند. روش جدید براساس ساختار ایستای برنامه عمل کرده و مانع ایجاد مدلی کوکورانه و صرفاً مبتنی بر دادههای اجرایی برنامه میشود. روش جدید، همچنین نواحی خطاخیز برنامه را در ساخت مدل مدنظر قرار داده و قادر به یافتن همزمان چندین خطا در برنامه، با دقت بالا میباشد. موارد آزمون تولید شده توسط TCG-Net، به راهکار CERM-fl داده میشوند و در رویکردی تکراری، خطاهای بیشتری در برنامه مکانیابی میشوند.آزمایشات متنوع و گستردهای برروی مجموعه برنامههای محک استاندارد انجام شده است و نتایج ارزیابیها، کارایی راهکارهای پیشنهادی را در حوزه مکانیابی خطاهای معنایی پنهان نرمافزار آشکار میسازند.
واژههای کلیدی:خطاهای معنایی، مکانیابی خطا، تولید خودکار دادههای آزمون، روشهای آماری، رگرسیون Abstract The aim of this thesis is to introduce a new technique for latent fault localization in software programs. To this end, the execution data of a subject program in various failing and passing runs are collected.Analyzing the data using proposed statistical methods, the location of latent faults are identified. Due to very wide variety of latent semantic faults, we have followed a stepwise approach. To achieve this, after identification and categorization of semantic faults, in the first step, three new techniques, so called NN-Graph, Stat-Slice and Hierarchy-Debug are introduced, each of them are capable to detect some specific types of faults. In the third step, a new technique, so called CERM-fl, is introduced. The basis of CERM-fl is a novel cause-effect regression model which preserves cause-effect chains of variables during the construction of the linear model of program entities. These chains are reported to programmer, as failure context for efficient fault localization. The new method uses program static structure as its roadmap in order to avoid building a blind and inaccurate model which only relies on dynamic runtime data. The new method considers the fault-prone pieces of code while building the regression model and is capable to find multiple faults in programs. An extension of CERM-fl, the so-called GCERM-fl، is also designed on graph a data input which is capable to find combinatorial faults affecting control dependence of program. In third step of our approach, we have also invented a novel statistical technique for automatic test case generation to assist the fault localization model in finding the location of unknown faults. The new test case generation scheme is based on mapping program control flow graph to a probabilistic network. By making inferences on the constructed network, new parameter values are generated to traverse different prime paths in a given program. The new discovered path data are fed into the CERM-fl model to locate previously unknown faults, in an iterative procedure. A large number of experiments is done on standard benchmark programs and the experimental results, support our claim regarding the performance of the proposed techniques in finding latent fault locations in programs.
Keywords: Semantic faults, fault localization, automatic test data generation, statistical methods, regression. ارائهدهنده: مجتبی وحیدیاصل استاد راهنما: دکتر سعید پارسا استاد مشاور: دکتر بهروز مینایی هیات داوران: دکتر رزازی- دکتر حقیقی دکتر آنالویی- دکتر عبدالهی- دکتر کنگاوری زمان : چهارشنبه 20 فروردینماه 1393 ساعت 8 صبح مکان: دانشکده مهندسی کامپیوتر- طبقه دوم- اتاق دفاعیه دانشکده مهندسی کامپیوتر مدیریت تحصیلات تکمیلی |