Skip to main content

Usage of Machine Learning in Software Testing

  • Chapter
  • First Online:

Part of the book series: Learning and Analytics in Intelligent Systems ((LAIS,volume 8))

Abstract

Finding, pinpointing and correcting bugs in the software takes a lot of effort for software developers. Traditional testing requires humans to search and analyze data. Humans being prone to poor assumptions and hence skewed results leads to overlooked bugs. Machine learning helps systems to learn and apply the learned knowledge in the future which helps software testers with more accurate knowledge. Capability of several advanced machine learning techniques such as deep learning in a number of software engineering tasks such as code completion, defect prediction, bug localization, clone detection, code search and learning API sequences. A lot of approaches have been proposed by the researchers over the years at modifying programs automatically. Repairing programs by generate-and-validate techniques gain a lot by producing acceptable patches to the programmers and not overfitting through learning from past history and generating patches from correct code via probabilistic model. These approaches given the right environments play significant role in reducing the effort and time consumption as well as cost of the bug fixing for the software developers. In this chapter, various machine learning algorithms and their impact in software testing and bug fixing are explored. The last chapter concludes with the future of machine learning and predictive analysis and how they might be used for addressing the challenge of reacting faster to dynamic expectations of customers and their needs.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   119.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   159.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   159.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. K. Nayak, D. Marino, P. Efstathopoulos, T. Dumitras, Some vulnerabilities are different than others. in Proceedings of the 17th International Symposium on Research in Attacks, Intrusions and Defenses (RAID’14) (Springer, 2014), pp. 426–446

    Google Scholar 

  2. US-CERT, Adobe flash and Microsoft windows vulnerabilities (2015), Retrieved from https://www.us-cert.gov/ncas/alerts/TA15-195A

  3. US-CERT, Oracle java contains multiple vulnerabilities (2013), Retrieved from https://www.us-cert.gov/ncas/alerts/TA13-064A

  4. H. Shahriar, M. Zulkernine, Mitigating program security vulnerabilities: Approaches and challenges. ACM Comput. Surv. (CSUR) 44(3), 11 (2012)

    Article  Google Scholar 

  5. I.V. Krsul, Software Vulnerability Analysis. Ph.D. Dissertation. Purdue University, 1998

    Google Scholar 

  6. A. Ozment, Improving vulnerability discovery models, in Proceedings of the 2007 ACM workshop on Quality of Protection (QoP’07) (ACM, 2007), pp. 6–11

    Google Scholar 

  7. M. Dowd, J. McDonald, J. Schuh, The Art of Software Security Assessment, Identifying and Preventing Software Vulnerabilities (Addison-Wesley Professional, 2007)

    Google Scholar 

  8. AIEEE Standards, IEEE Standard Glossary of Software Engineering Terminology, IEEE Std. 610.12-1990 (1990)

    Google Scholar 

  9. W. Landi, Undecidability of static analysis. ACM Lett. Program. Lang. Syst. (LOPLAS) 1(4), 323–337 (1992)

    Article  Google Scholar 

  10. T. Reps, Undecidability of context-sensitive dat a-dependence analysis. ACM Trans. Program. Lang. Syst. (TOPLAS) 22(1), 162–186 (2000). S.J. Russell, P. Norvig, Artificial Intelligence: A Modern Approach, 3 rd edn. (2009)

    Google Scholar 

  11. Y. Xie, M. Naik, B. Hackett, A. Aiken, Soundness and its role in bug detection systems. in Proceedings of the Workshop on the Evaluation of Software Defect Detection Tools (BUGS’05, 2005)

    Google Scholar 

  12. R. Jhala, R. Majumdar (2009) Software model checking. ACM Comput. Surv. (CSUR’09) 41(4):21

    Article  Google Scholar 

  13. P. Godefroid, Random testing for security: Blackbox vs. whitebox fuzzing, in Proceedings of the 2nd International Workshop on Random Testing (RT’07) (ACM,1, 2007)

    Google Scholar 

  14. P. Godefroid, M.Y. Levin, D. Molnar, SAGE: Whitebox fuzzing for security testing. Queue 10(1), 20 (2012)

    Article  Google Scholar 

  15. D. Evans, D. Larochelle, Improving security using extensible lightweight static analysis. IEEE Softw. 19(1), 42–51 (2002)

    Article  Google Scholar 

  16. J.R. Larus, T. Ball, M. Das, R. DeLine, M. Fahndrich, J. Pincus, S.K. Rajamani, R. Venkatapathy, Righting software. IEEE Softw. 21(3), 92–100 (2004)

    Article  Google Scholar 

  17. N. Ayewah, D. Hovemeyer, J.D. Morgenthaler, J. Penix, W. Pugh, Using static analysis to find bugs. IEEE Softw. 25(5), 22–29 (2008)

    Article  Google Scholar 

  18. A. Bessey, K. Block, B. Chelf, A. Chou, B. Fulton, S. Hallem, C. Henri-Gros, A. Kamsky, S. McPeak, D. Engler, A few bil lion lines of code later: Using static analysis to find bugs in the real world. Commun. ACM (CACM) 53(2), 66–75 (2010)

    Article  Google Scholar 

  19. V. Chandola, A. Banerjee, V. Kumar, Anomaly detection: A survey. ACM Comput. Surv. (CSUR) 41(3), 15 (2009)

    Article  Google Scholar 

  20. T.J. McCabe, A complexity measure. IEEE Trans. Softw. Eng. 2(4), 308–320 (1976)

    Article  MathSciNet  Google Scholar 

  21. M.H. Halstead, Elements of Software Science (Elsevier, New York, NY, USA, 1977)

    MATH  Google Scholar 

  22. N. Japkowicz, C. Myers, M.A. Gluck, A novelty detection approach to classification, in Proceedings IJCAI (1995) pp. 518–523

    Google Scholar 

  23. H. He, E.A. Garcia, Learning from imbalanced data. IEEE Trans. Knowl. Data Eng. 21(9), 1263–1284 (2009)

    Article  Google Scholar 

  24. Z.-H. Zhou, X.-Y. Liu, Training cost-sensitive neural networks with methods addressing the class imbalance problem. IEEE Trans. Knowl. Data Eng. 18(1), 63–77 (2006)

    Article  MathSciNet  Google Scholar 

  25. G. Brown, J.L. Wyatt, P. Tino, Managing diversity in regression ensembles. J. Mach. Learn. Res. 6, 1621–1650 (2005)

    MathSciNet  MATH  Google Scholar 

  26. K. Tang, P.N. Suganthan, X. Yao, An analysis of diversity measures. Mach. Learn. 65, 247–271 (2006)

    Article  Google Scholar 

  27. N.V. Chawla, A. Lazarevic, L.O. Hall, K.W. Bowyer, SMOTE- Boost: Improving prediction of the minority class in boosting, in Knowledge Discovery in Databases: PKDD, vol. 2838 (2003), pp. 107–119

    Google Scholar 

  28. S. Wang, H. Chen, X. Yao, Negative correlation learning for classification ensembles, in Proceedings of the International Joint Conference on Neural Networks (WCCI, 2010), pp. 2893–2900

    Google Scholar 

  29. S. Wang, X. Yao, Negative Correlation Learning for Class Imbalance Problems, School of Computer Science, (University of Birmingham, 2012) Technical Report

    Google Scholar 

  30. L. Pelayo, S. Dick, Applying novel resampling strategies to software defect prediction, in Annual Meeting of the North American Fuzzy Information Processing Society (2007), pp. 69–72

    Google Scholar 

  31. L. Pelayo, S. Dick, Evaluating stratification alternatives to improve software defect prediction. IEEE Trans. Rel. 61(2), 516–525 (2012)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sumit Mahapatra .

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Mahapatra, S., Mishra, S. (2020). Usage of Machine Learning in Software Testing. In: Automated Software Engineering: A Deep Learning-Based Approach. Learning and Analytics in Intelligent Systems, vol 8. Springer, Cham. https://doi.org/10.1007/978-3-030-38006-9_3

Download citation

Publish with us

Policies and ethics