Search In this Thesis
   Search In this Thesis  
العنوان
A Study of Higher order Mutation Testing Techniques /
المؤلف
Shehata, Marwa Hashem.
هيئة الاعداد
باحث / مروه هاشم شحاته
مشرف / احمد عبد القادر رمضان
مشرف / مهيب رمزى جرجس
الموضوع
Mutation (Biology).
تاريخ النشر
2021.
عدد الصفحات
148 p. :
اللغة
الإنجليزية
الدرجة
الدكتوراه
التخصص
النظرية علوم الحاسب الآلي
الناشر
تاريخ الإجازة
24/11/2020
مكان الإجازة
جامعة بني سويف - كلية العلوم - الرياضيات وعلوم الحاسب
الفهرس
Only 14 pages are availabe for public view

from 151

from 151

Abstract

ما يقرب من 90% من الأخطاءالموجودة في البرامج هي أخطاء مركبة من التحورات ذات الرتب العليا(Higher order mutants) ويحتاج إصلاحها الي عدةتغيرات. الأبحاث المتعلقة بالتحورات ذات الرتب العليا أصبحت أكثر انتشارا من التحورات أحادية الرتبة . ولقد تم تطوير اختبار التحوراتMutation Testingلإيجاد مدخلات اختبار(Test data) قادرةعلى اكتشاف الأخطاءالموجودة داخل البرنامج.
عمليه اختبار التحورات هي عمليه إضافة بعض الأخطاء الى البرنامج الأصلي لتوليد نسخ أخري منه بها أخطاء. هذه النســـخ تسمي تحورات أحاديةالرتبة (First order mutants) إذا كان كل منها عبارة عن البرنامج الأصلي مضاف إليه خطأ واحد فقط ، أو تسمي تحورات ذات الرتب العليا(Higher order mutants) إذا كان كل منهاعبارة عن البرنامج الأصلي مضاف إليه أكثر من خطأ.
يعد تحقيق معدلات عالية في اكتشافالأخطاءالموجودة داخل البرنامج الأصلي هو امر مهم جدا في عمليه اختبار التحورات ويتطلب توليد مدخلات اختبار ذات جودة عالية.علي الرغم من أن مدخلات الاختبار المحددة يدويا ذات قيمه الا انها ليست كافيه لاكتشاف كل الاخطاء الموجوده داخل البرنامج لذلك لابد من التوليد التلقائي لمدخلات الاختبار. ولقد تم تقديم العديد من التقنيات لتوليد مدخلات الاختبار بعضها يولد مدخلات اختبار عشوائية(Random test data generation) وبعضها استخدم تقنيه تغطية الاكواد(Code coverage) كمعيار للاختبار وتوليد مدخلات والبعض الأخر استخدم تقنيه اختبار التحورات(Mutation testing) كمعيار للاختبار وتوليد مدخلات اختبار لاكتشاف الأخطاء.
لقد قدم الباحثون تحليلا شاملا لاتجاهات ونتائج تقنيات اختبار التحورات. يعد التوليد التلقائي لمدخلات الاختبار عن طريق اكتشاف أو قتل الأخطاء في البرنامج عملية صعبة الحل ولذلك تلجأ العديد من التقنيات لاستخدام مفاهيم اختبار التحورات الضعيفة(weak mutation testing) لتوليد مدخلات الاختبار وتحسين كفاءتها لاكتشاف الأخطاء.
هناك العديد من التحديات التي تواجه تقنيات اختبار التحورات ويعد التوليد التلقائي لمدخلات الاختبار لقتل واكتشاف الأخطاءأحد التحديات الرئيسية في تقنيات اختبار التحورات. وعلي الرغم من وجود تقنيات عديدة لتوليد مدخلات الاختبار لاكتشاف الأخطاء الا انها تعاني من بعض المشاكل كالاتي:
أولا:تبني نظام دقيق لقتل أو اكتشاف كل الأخطاء داخل البرنامج مما يجعل توليد مدخلات اختبار لكل نسخه من البرنامج عملية مكلفة .
ثانيا:تعتمد هذه التقنيات على حل انظمة القيود المنشأة بشكل ثابت وعدم القدرةعلى التعامل مع البرامج ذات هياكل البيانات المعقدة أو العمليات الحسابية غير الخطيه او فهرسة المصفوفات بتعبيرات غير ثابته.
ثالثا:لا تستطيع هذه التقنيات اكتشاف او قتل التحورات ذات الرتب العليا مما يجعل تقنيات توليد مدخلات الاختبار لاكتشاف هذه التحورات او الاخطاء غير قابله للتطبيقعلىبرامج العالم الحقيقي ولا يتم استخدامها على نطاق واسع.
أهداف الرسالة
أولا: توليد تحورات ذات الرتب العليا(Higher order mutants) من التحـــورات أحــاديةالرتبة (First order mutants) لتقليل العدد الكبير من التحورات الأحادية.
ثانيا: حل أحدأصعب المشاكل التي تواجه اختبار التحورات وهي مشكله تشابه النسخ الخاطئة من البرنامج مع البرنامج الأصلي (Equivalent mutants)
ثالثا:توليد مدخلات اختبار (Test data) ذات جودة عالية قادره على اكتشاف الأخطاء داخل البرنامج.
فصول الرسالة
تتكون الرسالة من ستة فصول كلاتي :
الفصل الأول: نقدم فيه مقدمة عن طرق اختبار البرامج والتحورات والمشاكل التي تواجهها وأيضا نقدم فيه الهدف العام للرساله وكذلك عرض فكره مختصره عن محتويات كل فصل وما تم دراسته خلال كل فصل.
الفصل الثاني:في هذا الفصل قدمنا أول مقاله بحثيهSystematic Literature Reviewعن اختبارات التحورات ذات الرتب العليا . على الرغم من وجود مقالات كثيرة تتعلق باختبارات التحورات بصفه عامه الا ان هذا المقال يعد الاول في التحورات ذات الرتب العليا.هذا الفصل حلل نتائج أكثر من مائه وستين مقاله بحثيه في هذا المجال، وايضا قدم نتائج نوعيه وتحليله للمقالات التي شملها الاستطلاع.عززنا هذه النتائج بالنتائج العلميه والكميه وتوصلنا الي النتائج التالية:
• معظم الدراسات السابقه بنسبه 55% ركزت على تقليل عدد التحورات ذات الرتب العليا للبرنامج الاصلي بينما نسبه قليله وصلت الي5.6% ركزت علي انشاء تحورات ذات الرتب العليا الحقيقية.
• معظم تقنيات توليد مدخلات الاختبار تهدف الي اكتشاف التحورات احاديه الرتبه بينما التقنيات المتعلقة بالتحورات ذات الرتب العليا قليلة.
• أكثر من 66.6% تستخدم لغةالبرمجة Java بينما نسبة 27.8% تستخدم لغةالبرمجة C#.
• MuJava and MiLu هي اكثر التقنيات المستخدمة لتوليد التحورات ذات الرتب العليا .
• توليد التحورات ذات الرتب العليا ساهم في تجنب توليد تحورات مشابهة للبرنامج الاصلي وايضا ساهم في اكتشاف التحورات ذات الرتب الاحاديه المشابهة للبرنامج الأصلي.
• نسبه التقليل في عدد التحورات ذات الرتب العليا وصلت ما بين %66 و 77.05.%
• لا توجد اي مقالات بحثيه درست العلاقه بين التحورات ذات الرتب العليا والاخطاء الحقيقية.
الفصل الثالث: في هذا الفصل قدمنا ثلاث خوارزميات جديدة (SCWR, 2E2O, and2E2OWR) لتوليد التحورات ذات الرتب العليا عن طريق دمج التحورات احاديه الرتب معا بطرق مختلفة وذلك للتغلب على بعض المشاكل التي تواجه اختبارات التحورات وهي مشكله العدد الكبير في التحورات احاديه الرتبه وايضا مشكله التحورات المتشابهة للبرنامج الأصلي.لقد قمنا بتنفيذ هذه الخوارزميات علي العديد من برامج الجافا (Java) ولقياس مدي كفاءتها تم مقارنتها بتقنيات سابقه في نفس المجال وتوصلنا الي النتائج الأتية:
• استطاعت الخوارزميات المقدمة تقليل عدد التحورات أحاديهالرتبة بنسب %67.9,%61.0 ,%60.1مقارنه بالخوارزميات السابقة%53.6, %50.1
• استطاعت الخوارزميات المقدمة تقليل التحورات المشابهة للبرنامج الأصلي بنسب 66.9, 79.6, %65.0% مقارنة ب %25.8, %36.4 للخوارزمياتالسابقة.
الفصل الرابع: في هذا الفصل قدمنا خوارزمية جديدة لاكتشاف التحورات المشابهة للبرنامج الأصلي تلقائيا بدلا من الطريقةاليدوية. هذه الطريقة تعتمد على توليد التحورات ذات الرتبة العليا وبالأخصالرتبةالثانية ثم يتم تطبيق الخوارزمية لاكتشاف التحورات المشابهة للبرنامج الأصلي. هذه التقنيه ساعدت في تقليل عدد التحورات المشابهة وايضا تصنيف التحورات الي تحورات تم التعرف عليها وتحورات لم يتم التعرف عليها. وقد طبقنا الخوارزميةعلى العديد من برامج الجافاواستطاعت الخوارزميةأن تكتشف التحورات المشابهة للبرنامج الاصلي بنسبه 94%مقارنه بالطريقه اليدويه.
الفصل الخامس: في هذه الفصل قدمنا خوارزميةجديدة لتوليد مدخلات الاختبار للبرامج مستخدمه التحورات ذات الرتب العليا وذلك عن طريق دمج تقنيتين من أفضل التقنيات المستخدمة لتوليد مدخلات الاختبار (GA and HSA). ولقياس مدي كفاءه هذه الخوارزمية في توليد مدخلات اختبار ذات كفاءه عاليه تم تنفيذ مدخلات الاختبار على التحورات ذات الرتبة العلياللبرنامج الأصلي فاذا تم اكتشافها يتم تصنيف هذه المدخلات علىإنها ذات كفاءه عاليه. ايضا طبقنا الخوارزمية على العديد من برامج الجافا وتم مقارنتها بالتقنيتين السابقتين كلا علىحده لقياس كفاءه الخوارزميةالجديدة. استطاعت الخوارزمية توليد مدخلات اختبار ذات كفاءه عالية فاقت الخوارزميات السابقة بنسبة92.8% مقارنة بالخوارزميتين 88.9%, 86.5%.
الفصل السادس: قدمنا في هذا الفصل ملخص ما تم عرضه في الفصول السابقه وايضا عرضنا بعض نقاط البحث المستقبلية في مجال الدراسة.