Automated Mutation-Based Test Data Generation: Genetic Algorithm Game-Like Approach

Automated Mutation-Based Test Data Generation: Genetic Algorithm Game-Like Approach. Masters thesis, King Fahd University of Petroleum and Minerals.

[img]
Preview
PDF
Automated_Mutation-Based_Test_Data_Generation_-_Genetic_Algorithm_Game-Like_Approach.pdf

Download (2MB) | Preview

Arabic Abstract

الاختبار هو مرحلة حاسمة من دورة حياة تطوير البرمجيات. يهدف إلى تحسين الثقة في جودة البرنامج. واحد من أساسيات الاختبار هو كشف الأخطاء باستخدام حالات الاختبار. يتم إنشاء حالات الاختبار التي تفي بمعيار معين للكشف عن الأعطال. تم اقتراح معايير مختلفة في الأدبيات للتأكد من التغطية الكافية لمختلف سلوكيات البرامج. معيار التغطية للطفرات هو أحد هذه المعايير حيث يتم إجراء التحليل للعثور على الاختبارات التي تميز البرنامج عن المسوخ. المعيار له شرط واحد فقط ؛ هذا هو قتل متحولة. بعد ثلاثة عقود من البحث ، لا يزال اختبار الطفرات لا يزال يعتمد بالكامل من قبل الصناعات بسبب تكلفته المرتفعة. ترجع التكلفة إلى العدد الكبير من المسوخ الذي يجب أن يُنظر إليه بالإضافة إلى المتحولات المكافئة المولدة بدون علم. وقد ركزت العديد من الأبحاث على حل مشكلة واحدة أو أكثر من المشاكل المرتبطة بتردد اعتماد اختبار الطفرات من قبل الصناعات. وبصرف النظر عن تطوير اختبارات فعالة ، فإننا نضمن أيضًا توليد الطفرات غير الطفيفة لإنتاج حالات اختبار الجودة بشكل ممتاز. وتتمثل المساهمة الرئيسية لهذه الأطروحة في تطوير تقنية اختبار تشبه الألعاب المبنية على الطفرات باستخدام الخوارزميات الجينية للسماح بتطوير طفرات برنامجية ذات مغزى على جانب واحد وتوليد حالات اختبارات تقتل مثل هذه المسوخات على الجانب الآخر. في هذا البحث ، قمنا بتطوير نهج لتوليد كل من المسوخ وحالات الاختبار من قبل لاعبين متنافسين. تم تصميم هذا النموذج على أنه لعبة غير متعاونة بين لاعب جيل متحور ومولد توليد اختبار حيث يستخدم كلا اللاعبين الخوارزميات الجينية في لعب اللعبة. يقوم اللاعبان - mutantGA (mGA) و testGA (tGA) على التوالي بتوليد مسوخ يصعب قتله وحالات اختبار فعالة لقتل تلك المسوخات. يتم التحقق من صحة هذه التقنية تجريبيا من خلال النظر في خمس برامج MATLAB دراسة حالة. تظهر النتائج أن التقنية واعدة في ، من ناحية ، توليد المسوخ قوية ويصعب قتل. ومن ناحية أخرى ، توليد بيانات اختبار فعالة ولدت لقتل معظم هذه المسوخ. نحن أيضا مقارنة أداء اللاعبين المستندة إلى GA لأداء لاعبين عشوائية. تم عرض أداء اللاعبين المعتمدين على GA بتفوق أداء اللاعبين العشوائيين.

English Abstract

Testing is a crucial phase of software development life cycle. It is meant to improve the confidence in the quality of the software. One of the essences of testing is to uncover faults using test cases. Test cases that satisfy a given criterion are created to uncover faults. Various criteria have been proposed in the literature to ascertain adequate coverage of the different software behavior. Mutation coverage criterion is one of such criteria where analysis is performed to find tests that distinguish a program from its mutants. The criterion has only one requirement; that is to kill a mutant. After three decades of research, mutation testing is still yet to be fully adopted by industries due to its high cost. The cost is due to the high number of mutants to be considered as well as the equivalent mutants generated unknowingly. Many researches have focused on solving one or more problems associated with the hesitation of adopting mutation testing by industries. Apart from developing effective tests, we also ensure non-trivial mutants are generated to excellently produce quality test cases. The major contribution of this thesis is the development of a mutation-based novel game-like testing technique using Genetic Algorithms to allow development of meaningful program mutants on one side and generate tests cases that kill such mutants on the other side. In this research, we developed an approach to generating both mutants and test cases by two competing players. The approach was modelled as a non-cooperative game between a mutant generation player and a test generation player where both players use Genetic Algorithms in playing the game. The two players – mutantGA (mGA) and testGA (tGA) respectively generate hard-to-kill mutants and effective test cases to kill those mutants. The technique is validated experimentally by considering five case-study MATLAB programs. Results show that the technique is promising in, on one hand, generating strong and hard-to-kill mutants; and on the other hand, generating effective test data generated to kill most of those mutants. We also compared the performance of the GA-based players to the performance of random players; the GA-based players’ performance was shown to outperform that of the random players.

Item Type: Thesis (Masters)
Subjects: Computer
Department: College of Computing and Mathematics > Computer Engineering
Committee Advisor: Ahmed, Moataz
Committee Members: Jameleddine, Hassine and Sajjad, Mahmood
Depositing User: HAYATULLAH ADEYEMO (g201403720)
Date Deposited: 15 Nov 2018 10:23
Last Modified: 31 Dec 2020 09:06
URI: http://eprints.kfupm.edu.sa/id/eprint/140833