Skip to main content
SUPERVISOR
Abdolreza Mirzaei
عبدالرضا میرزایی دمابی (استاد راهنما)
 
STUDENT
Faegheh Javadi
فائقه جوادی

FACULTY - DEPARTMENT

دانشکده مهندسی برق و کامپیوتر
DEGREE
Master of Science (MSc)
YEAR
1389

TITLE

Software Test Data Generation using Evolutionary Algorithms
The main activity to verify software quality and reliability is software testing. To obtain the correct performance of the software execution environment, software testing is essential. Software testing is an expensive and time consuming process so much effort has been spent to automate it. One of the software testing techniques is test data generation. Test data generation in program testing is the process of identifying a set of test data that meets the test criteria. To solve the problem of test data generation, it is converted to an optimization problem so that we can take advantage of optimization techniques to solve this problem. Metaheuristic search techniques are successive approaches in this area. The use of metaheuristic search techniques for the automatic generation of test data has been a burgeoning interest for many researchers in recent years. These techniques offer much promise in regard to these problems. Metaheuristic search techniques are high-level frameworks, which utilize heuristics to seek solutions for combinatorial problems at a reasonable computational cost. Evolutionary algorithms are one of the most common methods of searching and nowadays are used in many real-world problems. One of the applications of evolutionary algorithms is generating test data automatically. This thesis aims to generate test data using evolutionary algorithms and considers branch coverage as quality criteria. The search technique that has been used in this thesis is learnable evolution model (LEM). LEM employs machine learning to generate new populations. Speci?cally, in Machine Learning mode, a learning system seeks reasons why certain individuals in a population are superior to others in performing a designated reasons, expressed as inductive hypotheses, are used to generate new populations . Furthermore, the knowledge gained from the study of earlier stages is used to enhance the speed. So LEM is used in order to take advantage of the knowledge in the form of hypotheses. In other words, the idea is that the search space is reduced to search faster. As mentioned, the problem of test data generation is an optimization problem. Before solving the optimization problem, no information about the locations of the global optimum is available . Thereby, orthogonal arrays have been used to generate an initial population of points that are scattered uniformly over the feasible solution space , so that the algorithm can evenly scan the feasible solution space once to locate good points for further exploration in subsequent iterations. The test functions in similar studies have been chosen to evaluate the performance of the proposed method. The proposed method is used to generate fewer test data to achieve maximum branch coverage which experiments is provided this fact. In order to evaluate performance of the proposed method, the results have been compared to the other methods' outputs, which show that the proposed method has a relatively better performance comparing the other approaches. Keywords : Test Data Generation, Metaheuristic Search Techniques, Learnable Evolution Model
یکی از مهم ترین روش های بررسی کیفیت نرم افزار، تست نرم افزار است . برای بدست آوردن اطمینان از درستی عملکرد نرم‌افزار در محیط اجرایی مشخص شده، تست نرم‌افزار ضروری است. تست نرم افزار یکی از فرآیندهای پرهزینه و زمان بر است و پژوهش های زیادی با هدف تسهیل این عملیات و انجام آن به صورت خودکار صورت گرفته است . یکی از روش های تست نرم افزار تولید داده تست است . تولید داده تست در فرآیند تست برنامه عبارت است از مشخص کردن مجموعه ای از داده های تست که معیار تست را برآورده می کند. برای حل مسئله تولید داده تست، آن را به مسئله بهینه سازی تبدیل می کنند بدین ترتیب می توان از روش های بهینه سازی برای حل این مسئله بهره برد. روش های جستجوی فرامکاشفه ای از رویکردهای موفق در این میان بوده اند که در سال های اخیر بیش از پیش مورد استفاده قرار گرفته است که به کارگیری ابزارهای مختلف از جمله روش های هوش مصنوعی منجر به پیشرفت در راستای تست خودکار نرم افزار شده اند. روش های جستجوی فرامکاشفه ای با استفاده از مکاشفه به جستجوی راه حل برای مسائل ترکیبی با هزینه محاسباتی معقول می پردازد. الگوریتم های تکاملی یکی از پرکاربردترین روش های جستجوی فرامکاشفه ای می باشند و امروزه در بسیاری از مسائل دنیای واقعی کاربرد دارند. یکی از کاربردهای الگوریتم های تکاملی تولید خودکار داده تست است. در این پایان نامه هدف تولید داده تست با استفاده از الگوریتم های تکاملی با در نظر گرفتن معیار کیفیت پوشش شاخه می باشد. روش جستجویی که در این تحقیق مورد استفاده قرار گرفته است مدل تکاملی یادگیر (LEM) می باشد. این روش ترکیبی از الگوریتم های تکاملی و روشهای یادگیری ماشین است. از روش های یادگیری برای بدست آوردن دلیل خوب بودن افراد بهره می گیرد. این دلایل به صورت فرض های استقرایی بیان شده و از آن ها برای تولید جمعیت نسل بعدی فاز تکاملی استفاده می گردد. همین خاصیت باعث شده است که مدل تکاملی یادگیر نسبت به بسیاری از روش های تکاملی مانند الگوریتم ژنتیک کارایی بالاتری داشته باشد. به علاوه این پژوهش از دانش بدست آمده از مراحل پیشین به منظور افزایش سرعت مسئله بهره گرفته است. بنابراین از LEM استفاده شده تا بتوان از دانش در قالب فرضیه بهره برد. به بیان دیگر ایده مورد نظر بدین صورت است که فضای اولیه جستجو کاهش می یابد تا جستجو سریعتر انجام گردد. همان طور که گفته شد، مسئله تولید داده تست یک مسئله بهینه سازی تبدیل است. پیش از حل کردن مسئله بهینه سازی، هیچ اطلاعی در مورد نحوه قرار گیری نقاط بهینه سراسری در دسترس نیست. در صورتی که جمعیت اولیه به صورت یکنواخت در تمامی فضای جستجو پخش شوند،کل فضای جستجو به طور مساوی بررسی می شود و نقاط مناسبی برای ادامه جستجو انتخاب می گردند. بنابراین در روش پیشنهادی از آرایه های متعامد برای تولید جمعیت استفاده شده است تا حدالامکان از قرار گرفتن در بهینه محلی جلوگیری گردد. برای بررسی کارایی روش پیشنهادی تعدادی از توابع تست که در پژوهش های مشابه وجود داشته است انتخاب شده اند. روش پیشنهادی به منظور تولید داده تست کمتر و پوشش حداکثر شاخه های برنامه ارائه شده است که آزمایش انجام شده گویای این مطلب است. برای بررسی عملکرد روش پیشنهادی نتایج بدست آمده با سایر روش ها مقایسه شده است که نشان می دهد روش پیشنهادی عملکرد بهتری نسبت به سایر روش ها دارد. کلمات کلیدی: 1- تولید داده تست، 2- جستجوی فرامکاشفه ای، 3- مدل تکاملی یادگیر

ارتقاء امنیت وب با وف بومی