تخمین میزان خطا خیزی ماژول ها با استفاده از یادگیری ماشین

نوع مقاله : مقاله پژوهشی

نویسندگان

1 دانشجوی دکتری ،دانشگاه علم و صنعت ایران، تهران، ایران.

2 دانشیار،دانشگاه علم و صنعت ایران، تهران، ایران.

3 استادیار، گروه نرم افزار، واحد تهران مرکز، دانشگاه ازاد اسلامی، تهران، ایران.

چکیده

برای آگاهی از میزان کیفیت نرم‌افزار لازم است عامل­های مؤثر در کیفیت را اندازه بگیریم. میزان قابلیت اطمینان و تعداد خطا در نرم‌افزار از  مهم‌ترین عامل­های کمی هستند که کیفیت آنها را می‌سنجند. اگر بتوان این عامل­ها را در حین چرخة توسعة نرم‌افزار اندازه‌گیری کرد، می‌توان فعالیت‌های مؤثر و بهتری را در راستای بهبود کیفیت نرم‌افزار انجام داد. مشکل اینجا است که این دسته از عامل­ها در مراحل آخر توسعة نرم‌افزار در دسترس خواهند بود. برای حل این مشکل، این عامل­ها توسط معیارهایی اندازه‌گیری می‌شوند که در چرخة توسعة نرم‌افزار به‌صورت زودهنگام در دسترس هستند. معیارهای اندازه‌گیری شده ورودی­های مدل پیش‌بینی خطا هستند و خروجی این مدل، ماژول­هایی از نرم‌افزار هستند که احتمال بروز خطا در آنها وجود دارد. پیش‌بینی ماژول­ها مستعد خطا، رویکردی اثبات شده در جهت تخصیص به‌موقع منابع پروژه، در مرحلة آزمون نرم‌افزار است. هنگامی که یک ماژول به‌عنوان یک ماژول مستعد خطا پیش‌بینی می‌شود، تلاش بیشتری برای آزمون و تصحیح آن باید صرف شود. علاوه‌برآن ماژول، تمامی ماژول­ها وابسته به آن نیز نیاز به رسیدگی ویژه‌ای دارند. زمانی که یک ماژول تغییر می‌کند تمامی ماژول­ها وابسته به آن نیز ممکن است تحت‌تأثیر قرار بگیرند. مشکل در این است که معیارهای شناخته شده‌‌ای که در حوزه‌ی پیش‌بینی خطا مورداستفاده قرار می‌گیرند، این وضعیت را در نظر نمی‌گیرند. برای حل این مشکل، در این مقاله معیارهای جدیدی بر اساس تغییرات در موارد وابستگی ارائه شده است. نتایج تجربی به‌دست‌آمده نشان داد هرچه میزان تغییرات در ماژول­ها مورد وابستگی بیشتر باشد، احتمال خطا در ماژول وابسته بیشتر می‌شود. با ارزیابی‌های صورت‌گرفته مشاهده شد معیار پیشنهادی قدرت پیش‌بینی نسبتاً بالایی دارد و به‌کاربردن آن برای ساخت مدل‌های پیش‌بینی خطا نیز افزایش قدرت پیش‌بینی را برای آنها در پی داشت.

کلیدواژه‌ها


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

Fault Proness Estimation of Software Modules Using Machine learning

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

  • reza torkashvan 1
  • Saeed Parsa 2
  • babak vaziri 3
1 PHD student , Iran University of Science and Technology, Tehran, Iran.
2 Associate Professor, Iran University of Science and Technology, Tehran, Iran.
3 Assistant Professor, Department of Software, Central Tehran Branch, Islamic Azad University, Tehran, Iran.
چکیده [English]

To evaluate the software quality it is required to measure factors affecting the qualityof the software . Reliability and number of faults are examples of quality factors. If these factors are measured during the software development life cycle, more efficient and optimal activities can be performed to improve the software quality. The difficulty is that these factors could be measured only at the ending steps of the life cycle. To resolve the difficulty, these factors are indirectly measured through some software metrics which are available at the early stages of life cycle. These metrics are used as the input to fault prediction models and software components which may be faulty are the output of these models. Prediction of fault prone modules is a well known approach in software testing phase. When a module is predicted to be faulty, apparently more efforts have to be paid for correcting it. In addition to the module, all its dependent modules require specific consideration. When modifying a module all its dependent modules may be affected. The difficulty is that current known metrics for fault prediction do not reflect this situation. To resolve the difficulty, in this thesis, new metrics are introduced. Our experimental results show that the more the dependees of a module are changed, the more fault prone the module will be

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

  • Software quality
  • Fault prediction
  • Measurement
  • Software metrics
  • Fault prone modules
  • Change metrics
  • Dependency

Smiley face

https://creativecommons.org/licenses/by/4.0/ This article is licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0) CopyRight (C) Authors

  1. G. Krishnan Rajbahadur, S. Wang, G. A. OlivaY.Kamei, and A.E.Hassan “The impact of feature importance methods on the interpretation of defect classifiers“,IEEE Transactions on Software Engineering TSE 2021.3056941,
  2. S. Kumar Pandey, R. Bhushan Mishra, A. Kumar Tripathi “Machine learning based methods for software fault prediction: A survey” 0957-4174, 2021 Elsevier
  3. J.P.D.Wijesekara, P.G.T.P. Gunawardhana” A Review on Mining Software Engineering Data for Software Defect Prediction” ITRU RESEARCH SYMPOSIUM 2020, FACULTY OF INFORMATION TECHNOLOGY, UNIVERSITY OF MORATUWA,
  4. R.Moussaa, D. Azara” A PSO-GA Approach Targeting Fault-Prone Software Modules” Preprint submitted to Journal of Systems and Software June 19, 2017
  5. E. Arisholm, L. C. Briand, and E. B. Johannessen, “A systematic and comprehensive investigation of methods to build and evaluate fault prediction models,” Journal of Systems and Software, vol. 83, no. 1, pp. 2 – 17, 2010.
  6. T. Gilb and S. Finzi, Principles of software engineering management, vol. 4. Addison-Wesley Wokingham, 1988.
  7. T. DeMarco, Controlling software projects: management, measurement & estimation. Yourdon Press, 1982.
  8. N. E. Fenton and S. L. Pfleeger, Software metrics: a rigorous and practical approach. PWS Publishing Co., 1998.
  9. C. Catal and B. Diri, “A systematic review of software fault prediction studies,” Expert Systems with Applications, vol. 36, no. 4, pp. 7346–7354, 2009.
  10. K. Pan, S. Kim, and E. J. Whitehead Jr, “Bug classification using program slicing metrics,” in Source Code Analysis and Manipulation, 2006. SCAM’06. Sixth IEEE International Workshop on, 2006, pp. 31–42.
  11. T. L. Graves, A. F. Karr, J. S. Marron, and H. Siy, “Predicting fault incidence using software change history,” Software Engineering, IEEE Transactions on, vol. 26, no. 7, pp. 653–661, 2000.
  12. E. J. Weyuker, T. J. Ostrand, and R. M. Bell, “Do too many cooks spoil the broth? using the number of developers to enhance defect prediction models,” Empirical Software Engineering, vol. 13, no. 5, pp. 539–559, 2008.
  13. N. Nagappan, B. Murphy, and V. Basili, “The influence of organizational structure on software quality,” in Software Engineering, 2008. ICSE’08. ACM/IEEE 30th International Conference on, 2008, pp. 521–530.
  14. A. Mockus, “Organizational volatility and its effects on software defects,” in Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, 2010, pp. 117–126.
  15. M. Pinzger, N. Nagappan, and B. Murphy, “Can developer-module networks predict failures?,” in Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, 2008, pp. 2–12.
  16. [A. Meneely, L. Williams, W. Snipes, and J. Osborne, “Predicting failures with developer networks and social network analysis,” in Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, 2008, pp. 13–23.
  17. C. Bird, N. Nagappan, B. Murphy, H. Gall, and P. Devanbu, “Don’t touch my code!: examining the effects of ownership on software quality,” in Proceedings of the 19th Symposium on the Foundations of Software Engineering and the 13rd European Software Engineering Conference, 2011, pp. 4–14.
  18. F. Rahman and P. Devanbu, “Ownership, experience and defects: a fine-grained study of authorship,” in Proceedings of the 33rd International Conference on Software Engineering, 2011, pp. 491–500.
  19. C. Bird, N. Nagappan, P. Devanbu, H. Gall, and B. Murphy, “Does distributed development affect software quality?: an empirical case study of windows vista,” Communications of the ACM, vol. 52, no. 8, pp. 85–93, 2009.
  20. J. Kumar Chhabra and V. Gupta, “A survey of dynamic software metrics,” Journal of Computer Science and Technology, vol. 25, no. 5, pp. 1016–1029, 2010.
  21. J. Czerwonka, R. Das, N. Nagappan, A. Tarvo, and A. Teterev, “CRANE: Failure Prediction, Change Analysis and Test Prioritization in Practice -- Experiences from Windows,” in Software Testing, Verification and Validation (ICST), 2011 IEEE Fourth International Conference on, 2011, pp. 357–366.
  22. T. Zimmerman, N. Nagappan, K. Herzig, R. Premraj, and L. Williams, “An Empirical Study on the Relation between Dependency Neighborhoods and Failures,” in Software Testing, Verification and Validation (ICST), 2011 IEEE Fourth International Conference on, 2011, pp. 347–356.
  23. N. Nagappan and T. Ball, “Use of relative code churn measures to predict system defect density,” in Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on, 2005, pp. 284– 292.
  24. N. Nagappan, A. Zeller, T. Zimmermann, K. Herzig, and B. Murphy, “Change bursts as defect predictors,” Changes, vol. 2, no. 4, p. 3, 2010.
  25. N. Nagappan and T. Ball, “Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study,” in Empirical Software Engineering and Measurement, 2007. ESEM 2007. First International Symposium on, 2007, pp. 364–373.
  26. T. Zimmermann and N. Nagappan, “Predicting defects using network analysis on dependency graphs,” in Software Engineering, 2008. ICSE’08. ACM/IEEE 30th International Conference on, 2008, pp. 531–540.
  27. H. Wang, T. M. Khoshgoftaar, and N. Seliya, “How Many Software Metrics Should be Selected for Defect Prediction?,” in Twenty-Fourth International FLAIRS Conference, 2011.
  28. K. Gao, T. M. Khoshgoftaar, and H. Wang, “An empirical investigation of filter attribute selection techniques for software quality classification,” in Information Reuse & Integration, 2009. IRI’09. IEEE International Conference on, 2009, pp. 272–277.
  29. H. Hata, O. Mizuno, and T. Kikuno, “Bug prediction based on fine-grained module histories,” in Software Engineering (ICSE), 2012 34th International Conference on, 2012, pp. 200–210.
  30. “Understand Your Code.” [Online]. Available: http://www.scitools.com/index.php. [Accessed: 02-Feb-2013].
  31. T. Zimmermann, R. Premraj, and A. Zeller, “Predicting defects for eclipse,” in Predictor Models in Software Engineering, 2007. PROMISE’07: ICSE Workshops 2007. International Workshop on, 2007, pp. 9–9.
  32. “Eclipse Bug Data! - Software Engineering Chair (Prof. Zeller) - Saarland University.” [Online]. Available: http://www.st.cs.uni-saarland.de/softevo/bug-data/eclipse/. [Accessed: 02-Feb-2013].
  33. “Eclipse Burst Data! - Software Engineering Chair (Prof. Zeller) - Saarland University.” [Online]. Available: http://www.st.cs.uni-saarland.de/softevo/burst-data/eclipse/. [Accessed: 02-Feb-2013].
  34. T. M. Khoshgoftaar and N. Seliya, “Software quality classification modeling using the SPRINT decision tree algorithm,” in Tools with Artificial Intelligence, 2002.(ICTAI 2002). Proceedings. 14th IEEE International Conference on, 2002, pp. 365–374.
  35. Y. Jiang, J. Lin, B. Cukic, and T. Menzies, “Variance analysis in software fault prediction models,” in Software Reliability Engineering, 2009. ISSRE’09. 20th International Symposium on, 2009, pp. 99–108.
  36. S. R. Chidamber and C. F. Kemerer, “A metrics suite for object oriented design,” Software Engineering, IEEE Transactions on, vol. 20, no. 6, pp. 476–493, 1994.
  37. F. B. Abreu and R. Carapuça, “Object-oriented software engineering: Measuring and controlling the development process,” in proceedings of the 4th International Conference on Software Quality, 1994.
  38. M. Lorenz and J. Kidd, Object-oriented software metrics: a practical guide. Prentice-Hall, Inc., 1994.
  39. J. Bansiya and C. G. Davis, “A hierarchical model for object-oriented design quality assessment,” Software Engineering, IEEE Transactions on, vol. 28, no. 1, pp. 4–17, 2002.
  40. T. J. Ostrand, E. J. Weyuker, and R. M. Bell, “Predicting the location and number of faults in large software systems,” Software Engineering, IEEE Transactions on, vol. 31, no. 4, pp. 340–355, 2005.
  41. S. Bibi, G. Tsoumakas, I. Stamelos, and I. Vlahavas, “Software defect prediction using regression via classification,” in IEEE International Conference on, 2006, pp. 330–336.
  42. T. M. Khoshgoftaar and N. Seliya, “Fault Prediction Modeling for Software Quality Estimation: Comparing Commonly Used Techniques,” Empirical Software Engineering, vol. 8, no. 3, pp. 255–283, 2003.
  43. B. Selic, G. Gullekson, and P. Ward, “Real-time object oriented modeling and design,” 1994.
  44. E. Arisholm, L. C. Briand, and A. Foyen, “Dynamic coupling measurement for object-oriented software,” Software Engineering, IEEE Transactions on, vol. 30, no. 8, pp. 491–506, 2004.
  45. Á. Mitchell and J. F. Power, “A study of the influence of coverage on the relationship between static and dynamic coupling metrics,” Science of Computer Programming, vol. 59, no. 1, pp. 4–25, 2006.
  46. Y. Hassoun, S. Counsell, and R. Johnson, “Dynamic coupling metric: proof of concept,” in Software, IEE Proceedings-, 2005, vol. 152, pp. 273–279.
  47. Y. Hassoun, R. Johnson, and S. Counsell, “A dynamic runtime coupling metric for meta-level architectures,” in Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings. Eighth European Conference on, 2004, pp. 339–346
دوره 11، شماره 4 - شماره پیاپی 44
(شماره پیاپی 44، فصلنامه زمستان)
اسفند 1402
صفحه 45-59
  • تاریخ دریافت: 16 شهریور 1402
  • تاریخ بازنگری: 15 آذر 1402
  • تاریخ پذیرش: 01 دی 1402
  • تاریخ انتشار: 28 دی 1402