Software Engineering Framework for Software Defect Management Using Machine Learning Techniques with Azure

The presence of bugs in a software release has become inevitable. The loss incurred by a company due to the presence of bugs in a software release is phenomenal. Modern methods of testing and debugging have shifted focus from ‘detecting’ to ‘predicting’ bugs in the code. The existing models of bug prediction have not been optimized for commercial use. Moreover, the scalability of these models has not been discussed in depth yet. Taking into account the varying costs of fixing bugs, depending on which stage of the software development cycle the bug is detected in, this chapter uses two approaches—one model which can be employed when the ‘cost of changing code’ curve is exponential and the other model can be used otherwise. The cases where each model is best suited are discussed. This chapter proposes a model that can be deployed on a cloud platform for software development companies to use. The model in this chapter aims to predict the presence or absence of a bug in the code, using machine learning classification models. Using Microsoft Azure’s machine learning platform, this model can be distributed as a web service worldwide, thus providing bug prediction as a service (BPaaS).

[1]  Zaigham Mahmood,et al.  Software Engineering Approach to Bug Prediction Models using Machine Learning as a Service (MLaaS). , 2018 .

[2]  James Miller,et al.  An empirical evaluation of defect detection techniques , 1997, Inf. Softw. Technol..

[3]  Gitika Sharma,et al.  A Novel Way of Assessing Software Bug Severity Using Dictionary of Critical Terms , 2015 .

[4]  Arvinder Kaur,et al.  Application of Neural Networks in Software Engineering: A Review , 2009, ICISTM.

[5]  Tim Menzies,et al.  Actionable Analytics for Software Engineering , 2018, IEEE Softw..

[6]  H. T. Kung,et al.  Distributed Deep Neural Networks Over the Cloud, the Edge and End Devices , 2017, 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS).

[7]  Fang Wu,et al.  Predicting Defect Priority Based on Neural Networks , 2010, ADMA.

[8]  Aditya K. Ghose,et al.  Explainable Software Analytics , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: New Ideas and Emerging Technologies Results (ICSE-NIER).

[9]  Ekbal Rashid,et al.  A survey in the area of machine learning and its application for software quality prediction , 2012, SOEN.

[10]  Karthik Muthuswamy,et al.  Global Software Development with Cloud Platforms , 2009, SEAFOOD.

[11]  Danny Ho,et al.  Neural network models for software development effort estimation: a comparative study , 2015, Neural Computing and Applications.

[12]  Harsh Bhasin,et al.  Neural network based black box testing , 2014, SOEN.

[13]  Licheng Jiao,et al.  The Empirical Study of Semi-Supervised Deep Fuzzy C-Mean Clustering for Software Fault Prediction , 2018, IEEE Access.

[14]  Gail C. Murphy,et al.  Automatic bug triage using text categorization , 2004, SEKE.

[15]  Kevin Lee,et al.  Empirical prediction models for adaptive resource provisioning in the cloud , 2012, Future Gener. Comput. Syst..

[16]  Tim Menzies,et al.  The \{PROMISE\} Repository of Software Engineering Databases. , 2005 .

[17]  Qinbao Song,et al.  Data Quality: Some Comments on the NASA Software Defect Datasets , 2013, IEEE Transactions on Software Engineering.

[18]  A. R. Venkatachalam Software cost estimation using artificial neural networks , 1993, Proceedings of 1993 International Conference on Neural Networks (IJCNN-93-Nagoya, Japan).

[19]  Siu-Ming Yiu,et al.  Multi-key privacy-preserving deep learning in cloud computing , 2017, Future Gener. Comput. Syst..

[20]  Natalia Juristo Juzgado,et al.  Functional Testing, Structural Testing, and Code Reading: What Fault Type Do They Each Detect? , 2003, ESERNET.

[21]  Foutse Khomh,et al.  Software Engineering for Machine-Learning Applications: The Road Ahead , 2018, IEEE Software.

[22]  Sachin Gupta,et al.  COCOMO Estimates Using Neural Networks , 2012 .

[23]  Robert DeLine Research Opportunities for the Big Data Era of Software Engineering , 2015, 2015 IEEE/ACM 1st International Workshop on Big Data Software Engineering.

[24]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[25]  A. Eerola,et al.  Service-oriented software engineering (SOSE) framework , 2005, Proceedings of ICSSSM '05. 2005 International Conference on Services Systems and Services Management, 2005..

[26]  Jeffrey J. P. Tsai,et al.  Machine Learning and Software Engineering , 2002, 14th IEEE International Conference on Tools with Artificial Intelligence, 2002. (ICTAI 2002). Proceedings..

[27]  Dewayne E. Perry,et al.  Classification and evaluation of defects in a project retrospective , 2002, J. Syst. Softw..

[28]  Yasushi Inoguchi,et al.  Performance evaluation of a Green Scheduling Algorithm for energy savings in Cloud computing , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[29]  Taghi M. Khoshgoftaar,et al.  Using neural networks to predict software faults during testing , 1996, IEEE Trans. Reliab..

[30]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[31]  Frederick C. Harris,et al.  Cloud-RA: A Reference Architecture for Cloud Based Information Systems. , 2018 .

[32]  Tim Menzies,et al.  Software Analytics: So What? , 2013, IEEE Softw..

[33]  Michele Lanza,et al.  An extensive comparison of bug prediction approaches , 2010, 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010).

[34]  Harshpreet Singh,et al.  Review on Fault Tolerance Techniques in Cloud Computing , 2015 .

[35]  Swapnil Soner,et al.  A Survey on Software Bug Evaluation , 2015 .

[36]  Hai Zhao,et al.  Joint Learning of POS and Dependencies for Multilingual Universal Dependency Parsing , 2018, CoNLL.

[37]  Harald C. Gall,et al.  Software Engineering for Machine Learning: A Case Study , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP).

[38]  L. Darrell Whitley,et al.  Prediction of software reliability using neural networks , 1991, Proceedings. 1991 International Symposium on Software Reliability Engineering.

[39]  David N. Card,et al.  Learning from Our Mistakes with Defect Causal Analysis , 1999, IEEE Softw..

[40]  Aman Kumar Sharma,et al.  Comparative Study of the Bug Tracking Tools , 2015 .

[41]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[42]  Stephen S. Yau,et al.  Software Engineering Meets Services and Cloud Computing , 2011, Computer.

[43]  Xiaochen Li,et al.  Deep Learning in Software Engineering , 2018, ArXiv.