A Tool Development for Test Case Based Code Optimization in Java

A Tool Development for Test Case Based Code Optimization in Java

Java has been a popular programming language since its first stable release in 1996 because of its platform independence. Along with its popularity Java has been a focus of performance studies since its debut. Developments in hardware has unbelievably advanced the performance of the devices that run Java and thus software performance has lost its popularity until the release of Android OS and rapid increase in mobile device ownership Java language usage has increased once again. Mobile devices having far less system resources compared to personal computers had re-brought software performance studies into the spotlight. However mobile devices have gone into a fast-paced development like all other information technologies and this brought down the need for software performance studies, again. Also, worth mentioning that development of new Java Virtual Machine (JVM) versions has made the specialized compiler studies, which may threaten the platform independency, obsolete except for specific situations. Today it is not enough to consider code optimization solely in terms of performance improvement. Much broader vision is needed like software development processes such as Maintainability, code readability, improving cooperation in multi-programmer projects, software quality assurance.In this study, white box testing approach is adopted as the software testing technique and static code analysis method is selected to ensure line coverage. A new software (JPA) has been developed based on a currently used testing tool (PMD) to improve the user experience.

___

  • Abdallah, M. M., & Al-Rifaee, M. M. (2017). Java Standards: A Comparative Study. International Journal of Computer Science and Software Engineering, 6 (6), 146-151.
  • Aderhold, M., & Kochtchi, A. (2013). Tailoring pmd to secure coding. Tech. Rep.
  • Ayewah, N., Pugh, W., Hovemeyer, D., Morgenthaler, J. D., & Penix, J. (2008). Using static analysis to find bugs. IEEE Software, 25 (5), 22-29.
  • Bajwa, M. S., Agarwal, A. P., Gupta, N. (2016) Code optimization as a tool for testing software. 3rd International Conference on Computing for Sustainable Global Development, 961–967.
  • Carpenter, B., Chang, Y. J., Fox, G., Leskiw, D., & Li, X. (1997). Experiments with ‘HP Java’. Concurrency: Practice and Experience, 9(6), 633-648.
  • Galin, D. (2004). Software quality assurance: from theory to implementation. India: Pearson Education.
  • Gosling, J., Joy, B., Steele, G., Bracha, G., Buckley, A., Smith, D. (2018) The Java(TM) Language Specification Java SE 11 Edition, Retrieved November 14, 2018, from https://docs.oracle.com/javase/specs/
  • Hall, S. P. & Anderson, E. (2009) Operating systems for mobile computing. Journal of Computing Sciences in Colleges, 25 (2), 64-71.
  • Jovanović, I. (2009) Software testing methods and techniques. The IPSI BgD Transactions on Internet Research, 5 (1), 30-41.
  • Johnson M. (2008) Code Optimization. Handout 20.
  • Karnavel, K., & Santhoshkumar, J. (2013, February). Automated software testing for application maintenance by using bee colony optimization algorithms (BCO). In 2013 International Conference on Information Communication and Embedded Systems (ICICES), 327-330
  • Khan, M. E., & Khan, F. (2012). A comparative study of white box, black box and grey box testing techniques. International Journal of Advanced Computer Science and Applications, 3 (6), 12-15.
  • Knuth, D. E. (1974). Computer programming as an art. Communications of the ACM, 17(12), 667-673.
  • Kotlin (n.d.). Retrieved January 5, 2019, from https://kotlinlang.org
  • Lins, F. M. (2017) The effects of the compiler optimizations in embedded processors reliability. MSc Thesis, Universidade Federal Do Rio Grande Do Sul, Porto Alegre
  • Moreira, J. E., Midkiff, S. P., Gupta, M., Artigas, P., Wu, P., & Almasi, G. (2001). The ninja project: Making java work for high performance numerical computing. Commun. ACM, 44(10), 102-109.
  • McConnell, S. (2004). Code complete (2nd ed.). Redmond, Washington: Microsoft Press.
  • Merriam-Webster (n.d.). Retrieved November 15, 2018, from https://www.merriam-webster.com/dictionary/optimization
  • Nembhard, F., Carvalho, M., & Eskridge, T. (2017). A hybrid approach to improving program security. In 2017 IEEE Symposium Series on Computational Intelligence (SSCI) 1-8.
  • Palaniappan S. (2016) Recent trends and challenges in source code optimization. International Journal of Trend in Research and Development, 3(6), 603-607.
  • PMD (n.d.). Retrieved April 3, 2019, from https://pmd.github.io/pmd-6.5.0/pmd_rules_java.html
  • Sawant, A. A., Bari, P. H., Chawan, P. M. (2012). Software testing techniques and strategies. International Journal of Engineering Research and Applications (IJERA), 2 (3), 980-986.
  • Scala (n.d.). Retrieved January 5, 2019, from https://www.scala-lang.org
  • Singh, A. H., & Kazi, N. N. (2016) Software Testing Mumbai: Himalaya Publishing House Pvt. Ltd.
  • Statcounter (n.d.). Retrieved November 15, 2018, from http://gs.statcounter.com/os-market-share
  • Watson, M. (2017). Why Premature Optimization Is the Root of All Evil. Retrieved January 3, 2019, from https://stackify.com/premature-optimization-evil/