
آقای سامان تیموری دانشجوی کارشناسی ارشد جناب آقای دکتر سعید پارسا روزیکشنبه 21/12/90 ساعت 10 صبح در اتاق دفاعیه واقع در طبقه سوم دانشکده کامپیوتر از پروژه کارشناسی ارشد خود تحت عنوان تحلیل ساختاری برنامه در جهت افزایش مسیرهای پوشش داده شده با استفاده از روشهای داده - محور دفاع خواهند نمود. چکیده پایان نامه: در این پایاننامه، راهکاری جهت تخمین تعداد مسیرهای ایستای و تولید موارد آزمون به هدف افزایش پوشش مسیرهای اجرایی برنامههای نرمافزاری جهت آزمون نرمافزار، ارائه شده است. ابزار ارائه شده در این راهکار پیشنهادی، قابلیت تحلیل ایستا و پویای برنامههای به زبان C را دارا میباشد. راهکار پیشنهادی، با دریافت کد برنامه و کاوش کد اسمبلی آن، بلاکهای اولیه برنامه شناسایی کرده و براساس آنها گراف جریان کنترلی برنامه را میسازد. برای استخراج مسیرهای گراف جریان کنترلی پیش پردازش شده، از یک ساختار ذخیرهسازی درختی و الگوریتم تغییریافته جستجوی عمقی بهره میگیرد. استفاده از این ساختار درختی موجب مقیاسپذیری بالای راهکار پیشنهادی میشود. روش ارائه شده، معیار پوشش مسیرها را به عنوان کاملترین معیار پوشش، در اختیار آزمون کننده قرار میدهد. سایر معیارهای اندازهگیری پوشش کد برنامه نظیر پوشش جملات، انشعابات، بلاکهای اولیه، توابع و کلاسها، برای آزمونکننده نرمافزار این امکان را فراهم نمیکنند که از صحت عملکرد نرمافزار اطمینان حاصل نماید. به عبارت دیگر، تا زمانی که آزمونکننده نرمافزار، اطلاع کافی از کلیه مسیرهای برنامه نداشته باشد، قادر نخواهد بود تمامی خطاهای موجود در برنامه را شناسایی و رفع نماید. اما راهکار پیشنهادی با استخراج مسیرهای ایستا در برنامه و اعلام آنها، این توانایی را برای آزمونکننده نرمافزار ایجاد میکند. از جمله قابلیتهای راهکار پیشنهادی، تحلیل پویای برنامه در کنار تحلیل ایستا است. این کار با مستندگذاری خودکار برنامه در سطح کد اسمبلی صورت میگیرد و مسیرهای مختلف برنامه براساس روش پیشنهادی تولید موارد آزمون پیمایش میشوند. در راهکار پیشنهادی برای تولید موارد آزمون، از شبکه بیزین به هدف مدلسازی وابستگیهای احتمالی شرطی میان بلاکهای اولیه برنامه از یک طرف و وابستگی احتمالی گذرهای میان بلاکهای اولیه و پارامترهای ورودی برنامه استفاده شده است. با تحلیل شبکه بیزین ایجاد شده، ورودیهای مسبب پیمایش مسیرهای مختلف برنامه شناسایی شده و به این ترتیب با تولید مسیرهای اجرایی مختلف، قابلیت اطمینان برنامه افزایش مییابد. مجموعه آزمایشات انجام شده بر روی تعدادی برنامه استاندارد، دقت و کارآمدی راهکار پیشنهادی را آشکار میسازد. واژههای کلیدی: آزمون نرمافزار، شبکه بیزین، تحلیل ایستا و پویا، پوشش مسیرها
Abstract:
In this thesis, a new approach for measuring the number of static paths in a given program and generating test cases with the aim of increasing path coverage is presented. The tool presented in this thesis, is capable of static and dynamic analysis of C programs. It receives program source code and explores corresponding assembly code to identify basic blocks and builds program control flow graph. To extract paths in program's control flow graph, it uses a developed tree structure and a modified DFS algorithm which makes the approach scalable in terms of program size and complexity. This approach gives program tester the path coverage of program which is the most exhaustive coverage criterion. Similar approaches for program coverage such as statement coverage, branch coverage, block coverage, functions and class coverage cannot help program tester to guarantee software reliability. In other words, until software tester has incomplete knowledge about all program paths, he is not able to find and fix existing bugs. However, the proposed approach, extracts static program paths to measure the reliability of the program. A main advantage of proposed approach is program dynamic analysis in addition to static analysis. To this end, program is instrumented in assembly level and different execution paths are traversed using a novel test case generation method. This novel method, applies Bayesian network to model conditional probabilities among program basic blocks on one hand and conditional probabilities between input parameters and basic block transitions on the other hand. By analyzing and updating the network, different input parameters for traversing corresponding execution paths are generated and hence the reliability of program is considerably increased. The experiments on various programs reveal the efficiency and accuracy of proposed approach. Keywords: Software Testing, Bayesian Network, Static and Dynamic Analysis, Path Coverage ارائهدهنده: سامان تیموری اساتید راهنما: دکتر سعید پارسا استاد ممتحن داخلی : دکتر بهروز مینایی بیدگلی استاد ممتحن خارجی :دکتر رامان رامسین زمان : یکشنبه 21/12/90 ساعت 10 مکان: دانشکده مهندسی کامپیوتر- طبقه سوم- اتاق دفاعیه از اساتید بزرگوار، دانشجویان گرامی و دیگر متخصصان و علاقه مندان به موضوع دفاعیه دعوت می شود با حضور خود موجبات غنای علمی و ارتقای کیفی را فراهم سازند. دانشکده مهندسی کامپیوتر مدیریت تحصیلات تکمیلی |