مکانیابی خطاهای پنهان نرم افزار با استفاده از آنتروپی متقاطع و مدلهای n-گرام

نویسندگان

1 سازمان پژوهشهای علمی و صنعتی

2 دانشگاه علم و صنعت

چکیده

چکیده: هدف، ارایه راه‌کاری برای تعیین خودکار محدوده خطاهای پنهان در متن برنامه‌ها می‌باشد. می‌توان محدوده علت خطا را براساس مقایسه مسیرهای اجرایی صحیح و غلط به‌دست آورد. براساس شباهت مسیرهای اجرایی می‌توان آنها را دسته‌بندی نمود. جهت به‌دست آوردن شباهت مسیرها، مدل‌های N-گرام اجراها را به‌دست آورده و سپس با استفاده از آنتروپی متقاطع شباهت بین این مدل‌ها را محاسبه می‌کنیم. برای به‌دست آوردن مدل‌های N-گرام که در دسته مدل‌های مارکوف قرار می‌گیرند از تخمین حداکثر احتمال توسط شمارش کلمات یا به‌عبارتی N-گرام‌ها استفاده می‌شود. سپس با تحلیل هر دسته، با کمک آنتروپی متقاطع، یک سری مکان‌های مشکوک به خطا شناسایی می‌شوند و در نهایت با استفاده از رأی اکثریت بین دسته‌ها، مکان‌های مشکوک به خطا به‌صورت بخش‌هایی از یک زیرمسیر به برنامه‌نویس معرفی می‌شود. راه‌کار ارائه شده در این مقاله، با دقت بالا محدوده خطا را نشان می‌دهد و نتایج به‌دست آمده از اِعمال این راه‌کار به مجموعه محک زیمنس، گویای آن می‌باشد.

کلیدواژه‌ها


عنوان مقاله [English]

Software Fault Localization using Cross Entropy and N-gram Models

نویسندگان [English]

  • majid hajibaba 1
  • saeed parsa 2
چکیده [English]

The aim is to automate the process of bug localization in program source code. The cause of program failure could be best determined by comparing and analyzing correct and incorrect execution paths generated by running the instrumented program with different failing and passing test cases. To compare and analysis the execution paths, one approach is clustering the paths according to their similarity. To calculate similarities among execution paths, N-gram models could be created for each individual run. The constructed models are further analyzed using cross entropy to compute the similarities among their corresponding execution paths. By counting elements in each execution path, each element is known as uni-gram, we can compute MLE probabilities to create N-gram models, known as markov models. Then by further analyzing the cross-entropy of sequences in each cluster, a series of fault suspicious locations are identified and finally using majority voting among clusters, faulty locations are reported to the programmer as faulty subpath(s). Our experiments on Siemens benchmark suite show that the proposed method in this paper shows the location of faults with high accuracy.

کلیدواژه‌ها [English]

  • Fault localization
  • Software Fault
  • Cross entropy
  • N-gram Models