ارائه روشی برای پیش‌بینی خطای نرم‌افزار با ترکیب نظریه آشوب و الگوریتم تکاملی اسب وحشی

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

نویسندگان

1 کارشناسی ارشد، دانشگاه جامع امام حسین، تهران ایران

2 استادیار، دانشگاه جامع امام حسین (ع)، تهران، ایران

3 کارشناسی ارشد ، دانشگاه جامع امام حسین(ع) ، ایران، تهران

چکیده

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

کلیدواژه‌ها

موضوعات


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

A method for software fault prediction with combination of chaos theory and herd horse optimization algorithm

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

  • MohammadReza Khosravi Farsani 1
  • Ali Karimi 2
  • saeed khodadadian 3
1 Master's degree, Imam Hossein University, Tehran, Iran
2 Assistant Professor, Imam Hossein (AS) University, Tehran, Iran
3 Master's degree, Imam Hossein University, Tehran, Iran
چکیده [English]

A software defect, error, or failure is an incorrect or unexpected behavior in a software product. It results in undesired outcomes and behaves in unintended ways. This is a flaw in a software product that leads to unexpected performance. Predicting software defects involves the process of tracking defective components in the software and before starting the testing phases. In fact, the occurrence of defects is inevitable, but we must minimize the number of defects. This leads to a reduction in development time and cost, reduction in rework efforts, increased customer satisfaction, and software reliability. In this research, a multi-stage process has been used to predict software errors, where the pre-processing operation was performed to improve the data in the first stage. After the improvement operation, feature extraction operations were used to extract influential features. In this research, the wild horse algorithm was used to extract features. Finally, the decision tree algorithm was used to predict software errors. The evaluation metrics in this research are classification metrics, including accuracy, precision, recall, and F-measure. In this research, the standard dataset described in the base article was used for predicting software errors. Finally, a comparison was made between the proposed method and the base article method. The results showed that the performance of the wild horse algorithm (in the proposed method) is superior to the whale algorithm (in the base article) for feature selection because the wild horse algorithm was able to traverse the problem space appropriately. Additionally, the proposed algorithm utilized the theory of chaos to create diversity in the solutions. Therefore, the performance of the wild horse algorithm is superior to the whale algorithm in terms of comparison.

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

  • Software defect
  • Feature extraction
  • Wild horse algorithm
  • Classification
  • Chaos Theory
  • Decision tree algorithm

Smiley face

 

[1] S. S. Rathore and S. Kumar, "A study on software fault prediction techniques," Artificial Intelligence Review, vol. 51, no. 2, pp. 255-327, Feb. 2019. https://doi.org/10.1007/s10462-017-9563-5.
[2] W. Rhmann, B. Pandey, G. Ansari, and D. K. Pandey, "Software fault prediction based on change metrics using hybrid algorithms: An empirical study," Journal of King Saud University - Computer and Information Sciences, vol. 32, no. 4, pp. 419-424, May 2020. https://doi.org/10.1016/j.jksuci.2019.03.006.
[3] S. S. Rathore and S. Kumar, "An empirical study of ensemble techniques for software fault prediction," Applied Intelligence, vol. 51, no. 6, pp. 3615-3644, Jun. 2021. https://doi.org/10.1007/s10489-020-01935-6.
[4] E. Erturk and E. A. Sezer, "A comparison of some soft computing methods for software fault prediction," Expert Systems with Applications, vol. 42, no. 4, pp. 1872-1879, 2015. https://doi.org/10.1016/j.eswa.2014.10.025.
[5] D. Sharma and P. Chandra, "A comparative analysis of soft computing techniques in software fault prediction model development," International Journal of Information Technology, vol. 11, no. 1, pp. 37-46, Mar. 2019. https://doi.org/10.1007/s41870-018-0211-3.
[6] V. Garousi, M. Felderer, and F. N. Kılıçaslan, "A survey on software testability," Information and Software Technology, vol. 108, pp. 35-64, 2019. https://doi.org/10.1016/j.infsof.2018.12.003.
[7] B. J. Akinsanya et al., "Machine Learning and Value Generation in Software Development: A Survey," Communications in Computer and Information Science, vol. 1288 CCIS, pp. 44-55, 2021. https://doi.org/10.1007/978-3-030-71472-7_3.
[8] S. Masuda, K. Ono, T. Yasue, and N. Hosokawa, "A survey of software quality for machine learning applications," in Proceedings - 2018 IEEE 11th International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2018, pp. 279-284, 2018. 10.1109/ICSTW.2018.00061.
[9] J. Chen, V. Nair, and T. Menzies, "Beyond evolutionary algorithms for search-based software engineering," arXiv preprint arXiv:1701.07950,2017.https://doi.org/10.1016/j.infsof.2017.08.007.
[10] S. S. Rathore and S. Kumar, "Linear and non-linear heterogeneous ensemble methods to predict the number of faults in software systems," Knowledge-Based Systems, vol. 119, pp. 232-256, 2017. https://doi.org/10.1016/j.knosys.2016.12.017.
[13] Wahono, R.S., "A Systematic Literature Review of Software Defect Prediction: Research Trends, Datasets, Methods and Frameworks," Journal of Software Engineering, vol. 1, pp. 1-16, 2017. http://journal.ilmukomputer.org.
[15] B. Boehm and V. R. Basili, "Top 10 list [software development]," Computer, vol. 34, no. 1, pp. 135-137, 2011. doi:10.1109/2.962984.
[16] T. Menzies, Z. Milton, B. Turhan, B. Cukic, Y. Jiang, and A. Bener, "Defect prediction from static code features: current results, limitations, new approaches," Automated Software Engineering, vol. 17, no. 4, pp. 375-407, 2010. https://doi.org/10.1007/s10515-010-0069-5.
[17] S. Omri and C. Sinz, "Deep Learning for Software Defect Prediction," in Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, New York, NY, USA: ACM, 2020, pp. 209-214. https://doi.org/10.1063/5.0178913.
[18] M. Ravat and S. Dubey, "Software defect prediction models for quality improvement: a literature study," *Int. J. Comput. Sci. Issues*, vol. 9, pp. 288-296, 2012. 
[18] W. Huang and C. Chieh-Jen, "A GA-based feature selection and parameters optimization for support vector machines," *Expert Syst. Appl.*, vol. 31, no. 2, pp. 231-240, 2006. https://doi.org/10.1016/j.eswa.2005.09.024.
[19] M. A. Tahir, A. Bouridane, and F. Kurugollu, "Simultaneous feature selection and feature weighting using hybrid tabu search/k-nearest neighbor classifier," Pattern Recognition Letters, vol. 28, no. 4, pp. 438–446, 2007. https://doi.org/10.1016/j.patrec.2006.08.016.
[20] B. Zarei and M. R. Meybodi, "Improving learning ability of learning automata using chaos theory," Journal of Supercomputing, vol. 77, no. 1, pp. 652–678, 2021. https://doi.org/10.1007/s11227-020-03293-z.
[21] M. Sharafi, F. Fotouhi-Ghazvini, M. Shirali, and M. Ghassemian, "A low power cryptography solution based on chaos theory in wireless sensor nodes," IEEE Access, vol. 7, pp. 8737–8753, 2019. 10.1109/ACCESS.2018.2886384.
[22] A. M. Anter and M. Ali, "Feature selection strategy based on hybrid crow search optimization algorithm integrated with chaos theory and fuzzy c-means algorithm for medical diagnosis problems," Soft Computing, vol. 24, no. 3, pp. 1565–1584, 2020. https://doi.org/10.1007/s00500-019-03988-3.
[23] G. Martin, S. Kaviraj, A. Hocking, S.C. Read, and J.E. Geach, "Galaxy morphological classification in deep-wide surveys via unsupervised machine learning," Monthly Notices of the Royal Astronomical Society, vol. 491, no. 1, pp. 1408–1426, 2020. https://doi.org/10.1093/mnras/stz3006.
[24] A.C. Lorena, L.P.F. Garcia, J. Lehmann, M.C.P. Souto, and T.K.A.M. Ho, "How complex is your classification problem? A survey on measuring classification complexity," ACM Computing Surveys, vol. 52, no. 5, 2019. https://doi.org/10.1145/3347711.
[26] B. Charbuty and A. Abdulazeez, "Classification Based on Decision Tree Algorithm for Machine Learning," Journal of Applied Science and Technology Trends, vol. 2, no. 01, pp. 20-28, 2021. https://doi.org/10.38094/jastt20165.
[27] J. Mrva, Š. Neupauer, L. Hudec, J. Ševcech, and P. Kapec, "Decision Support in Medical Data Using 3D Decision Tree Visualisation," in 2019 E-Health and Bioengineering Conference (EHB), Nov. 2019, pp. 1-4. 10.1109/EHB47216.2019.8969926.
[28] I. Tumar, Y. Hassouneh, H. Turabieh, and T. Thaher, "Enhanced binary moth flame optimization as a feature selection algorithm to predict software fault prediction," IEEE Access, vol. 8, pp. 8041–8055, 2020. 10.1109/ACCESS.2020.2964321.
[29] T. Thaher and N. Arman, "Efficient Multi-Swarm Binary Harris Hawks Optimization as a Feature Selection Approach for Software Fault Prediction," in 2020 11th International Conference on Information and Communication Systems, ICICS 2020, pp. 249–254, 2020. 10.1109/ICICS49469.2020.239557.
[30] Y. Hassouneh, H. Turabieh, T. Thaher, I. Tumar, H. Chantar, and J. Too, "Boosted Whale Optimization Algorithm with Natural Selection Operators for Software Fault Prediction," IEEE Access, vol. 9, pp. 14239–14258, 2021. 10.1109/ACCESS.2021.3052149.
[31] H. Alsghaier and M. Akour, "Software fault prediction using Whale algorithm with genetics algorithm," Softw. Pract. Exp., vol. 51, no. 5, pp. 1121–1146, May 2022. https://doi.org/10.1002/spe.2941.
[32] M. R. Ahmed, M. A. Ali, N. Ahmed, M. F. Bin Zamal, and F. M. J. M. Shamrat, "The Impact of Software Fault Prediction in Real-World Application," in Proceedings of 2020 the 6th International Conference on Computing and Data Engineering, 2020, pp. 247–251. https://doi.org/10.1145/3379247.3379278.
[33] O. Al Qasem, M. Akour, and M. Alenezi, "The Influence of Deep Learning Algorithms Factors in Software Fault Prediction," IEEE Access, vol. 8, pp. 63945–63960, 2020. 10.1109/ACCESS.2020.2985290.
[34] F. MiarNaeimi, G. Azizyan, and M. Rashki, "Horse herd optimization algorithm: A nature-inspired algorithm for high-dimensional optimization problems," Knowledge-Based Syst., vol. 213,p.106711,Feb.2021.https://doi.org/10.1016/j.knosys.2020.106711.
  • تاریخ دریافت: 05 مرداد 1403
  • تاریخ بازنگری: 21 آذر 1403
  • تاریخ پذیرش: 13 دی 1403
  • تاریخ انتشار: 13 بهمن 1403