تکنیک های پیش بینی خطای نرم افزار (مقاله ترجمه شده)

چکیدهدر طی فرآیند توسعه نرم افزار، پیش بینی تعداد خطاها در ماژول های نرم افزاری می تواند بسیار کمک کننده تر از پیش بینی ماژول هایی باشد که دچار خطا شده اند یا بدون خطا هستند. چنین روشی می تواند در فرآیند تست نرم افزار کمک کند و سبب ارتقاء قابلیت اطمینان سیستم نرم افزار شود. بیشتر کارهای اولیه درباره پیش بینی خطای نرم افزار از تکنیک های دسته بندی برای طبقه بندی ماژول های نرم افزاری به گروه های خطادار یا بدون خطا استفاده کرده اند. این تکنیک ها همانند رگرسیون پوآسون، رگرسیون دو جمله ای منفی ، برنامه نویسی ژنتیک، رگرسیون درخت تصمیم و پرسپترون چند لایه در پیش بینی تعداد خطاها قابل استفاده هستند. در این مقاله یک مطالعه تجربی برای ارزیابی و مقایسه ظرفیت شش تکنیک پیش بینی خطا از جمله برنامه نویسی ژنتیک، پرسپترون چند لایه، رگرسیون خطی، رگرسیون درخت تصمیم، رگرسیون پوآسون و رگرسیون دو جمله ای منفی را به منظور پیش بینی تعداد خطاها ارائه می کنیم. این بررسی تجربی برای 18 دیتاست پروژه نرم افزاری انجام شده است که از مخزن داده های PROMISE جمع آوری شده است. نتایج این تحقیق با استفاده از متوسط خطای مطلق، متوسط خطای نسبی، اندازه گیری میزان کامل بودن و پیش بینی در معیارهای سطح 1 مورد ارزیابی قرار گرفته اند. همچنین تست های Kruskal–Wallis و مقایسه چندتایی Dunn را برای مقایسه عملکرد نسبی تکنیک های پیش بینی خطا انجام می دهیم.مقدمهاز دیدگاه توسعه نرم افزار، سر و کار داشتن با خطاهای نرم افزاری کاری بسیار مهم و از اولویت بالایی برخوردار است. وجود خطاها نه تنها سبب افت کیفیت نرم افزار می شود، بلکه همچنین هزینه توسعه و نگهداری نرم افزار را نیز افزایش می دهد (Menzies et al. 2010). بنابراین شناسایی این که کدام ماژول نرم افزار با احتمال زیاد در طی مراحل اولیه توسعه نرم افزار می تواند مستعد خطا باشد، می تواند در بهبود کیفیت سیستم نرم افزار کمک کننده باشد. با پیش بینی تعداد خطاها در ماژول های نرم افزار می توانیم تست کننده های نرم افزار را برای تمرکز بر ماژول های خطادار هدایت کنیم. نتیجه گیری ها و کار آتیاین مقاله عملکرد شش تکنیک پیش بینی خطا را برای پیش بینی تعداد خطاها در ماژول های نرم افزاری داده شده مورد بررسی و مقایسه قرار داده است. ما از چهار تکنیک شناخته شده پیش بینی خطا یعنی LR، MLP، NBR و ZIP برای پیش بینی تعداد خطاها استفاده کرده ایم. علاوه بر این، ما دو تکنیک یعنی GP و DTR را نیز مورد بررسی قرار داده ایم که تا به حال به طور کامل برای پیش بینی تعداد خطاها مورد بررسی قرار نگرفته اند. این آزمایش ها برای 18 دیتاست پروژه نرم افزاری اجرا شده است. معیارهای AAE، ARE، کامل بودن و پیش بینی در سطح 1 برای ارزیابی نتایج حاصل از مدل های پیش بینی خطا مورد استفاده قرار گرفته اند. علاوه بر این، تست Kruskal–Wallis و تست مقایسه چندگانه Dunn نیز برای ارزیابی عملکرد نسبی تکنیک های پیش بینی خطا اجرا شده است. نتایج نشان داده است که در بین تکنیک های مختلف پیش بینی خطا، روش های رگرسیون درخت تصمیم، برنامه نویسی ژنتیک، پرسپترون چند لایه و رگرسیون خطی عملکرد پیش بینی بهتری برای تمامی دیتاست های تحت بررسی نشان داده اند. تحلیل نتایج به دست آمده از تست Kruskal–Wallis و تست مقایسه چندگانه Dunn پیشنهاد داده اند که به استثنای تکنیک های رگرسیون دوجمله ای منفی (NBR) و رگرسیون پوآسون با تورم صفر (ZIP)، تمامی تکنیک های دیگر عملکرد بسیار دقیقی برای پیش بینی تعداد خطاها داشته اند. به طور کلی، تکنیک های NBR و ZIP بدترین دقت پیش بینی را تولید کرده اند. بنابراین، مشاهده می شود که مدل های شمارش (NBR و ZIP) به طور کلی عملکرد ضعیفی نسبت به دیگر تکنیک های پیش بینی خطا داشته اند. در آینده سعی می شود تا اثر کلی این روش ها برای تعداد پیش بینی خطاها به منظور غلبه بر محدودیت های تکنیک های پیش بینی خطا مورد بررسی و ارزیابی قرار گیرد.این مقاله ISI در سال 2016 در نشریه اسپرینگر و در مجله محاسبات نرم، توسط گروه علوم و مهندسی کامپیوتر منتشر شده و در سایت ای ترجمه جهت دانلود ارائه شده است. در صورت نیاز به دانلود رایگان اصل مقاله انگلیسی و ترجمه آن می توانید به پست دانلود ترجمه مقاله تکنیک های پیش بینی خطای نرم افزار در سایت ای ترجمه مراجعه نمایید.