Total views : 142

A Framework to Reduce Redundancy in Android Test Suite using Refactoring

Affiliations

  • Department of Computer Science and Information Technology, Universiti Tun Hussein Onn Malaysia, 86400 Parit Raja, Batu Pahat, Johor, Malaysia
  • International Islamic University Malaysia, 50728 Kuala Lumpur, Gombak, Malaysia
  • College of Computer Science, King Khalid University, Abha KSA, Saudi Arabia

Abstract


Objective: Test cases tend to be large in number as redundant test cases are generated due to the presence of code smells, hence the need to reduce these smells. Methods/Statistical Analysis: This research adopts a proactive approach of reducing test cases by detecting the lazy class code smells based on the cohesion and dependency of the code and applying the inline class refactoring practices before test case generation thereby significantly avoiding redundant test cases from being generated Findings: The test cases generated from the original source code is compared to test cases from the refactored code. Test cases from the refactored code show a reduction of up to 33.3% in cyclomatic complexity compared to the original source code. There was 8.2% improvement in the branch coverage of the generated test cases indicating the efficiency of the refactored code Applications/Improvements: From the results, refactoring is an effective technique that can reduce redundant test cases. While the focus is on test case reduction, it also improves the quality of generated test cases in terms of its branch coverage.

Keywords

Android Test Suite, Code Smell, Refactoring, Test cases, Test case redundancy.

Full Text:

 |  (PDF views: 162)

References


  • Anand S, Burke EK, Chen TY, Clark J, Cohen MB, Grieskamp W, et al. An orchestrated survey of methodologies for automated software test case generation. Journal of Systems and Software. 2013; 86(8):1978–2001.
  • Chen L, Li Q. Automated test case generation from use case: A model based approach. 3rd IEEE International Conference on Computer Science and Information Technology (ICCSIT).IEEE; 2010.
  • Asaithambi SPR, Jarzabek S. Pragmatic Approach to Test Case Reuse-A Case Study in Android OS BiDiTests Library. Software Reuse for Dynamic Systems in the Cloud and Beyond. Springer; 2014. p.122–38.
  • Ke Z, Bo J, Chan WK. Prioritizing Test Cases for Regression Testing of Location-Based Services: Metrics, Techniques, and Case Study. IEEE Transactions on Services Computing.. 2014; 7(1):54–67.
  • Papadakis M, Malevris N. Mutation based test case generation via a path selection strategy. Information and Software Technology. 2012; 54(9):915–32.
  • Zhang C, Groce A, Alipour MA, editors. Using test case reduction and prioritization to improve symbolic execution. Proceedings of the 2014 International Symposium on Software Testing and Analysis. ACM; 2014.
  • Mondal SK, Tahbildar H. Regression Test Cases Minimization for Object Oriented Programming using New Optimal Page Replacement Algorithm. International Journal of Software Engineering and Its Applications. 2014; 8(6):253–64.
  • Zhang W, Zhao D. Reuse-Oriented Test Case Management Framework. International Conference on Computer Sciences and Applications (CSA).IEEE; 2013.
  • Asaithambi S, Jarzabek S. Towards Test Case Reuse: A Study of Redundancies in Android Platform Test Libraries,Berlin Heidelberg. Springer; 2013. p. 49–64.
  • Fowler M. Refactoring: Improving the design of existing code. India: Pearson Education;; 1999.
  • Lashari SA, Ibrahim R, Senan N. Fuzzy Soft Set based Classification for Mammogram Images. International Journal of Computer Information Systems and Industrial Management Applications. 2015; 7:66–73.
  • Ahmed M, Ibrahim R, Ibrahim N. An Adaptation Model for Android Application Testing with Refactoring. Growth. 2015; 9(10):65–74.
  • Fowler M. Refactoring: Improving the Design of Existing Code. 1997. Available from: http://www.martinfowler.com/books/refactoring.html.
  • Al Dallal J. Identifying refactoring opportunities in object-oriented code: A systematic literature review. Information and Software Technology. 2015; 58:231–49.
  • Jena SKSAK, Mohapatra DP. A Novel Approach for Test Case Generation from UML Activity Diagram. 2014.
  • Ibrahim R, Saringat MZ, Ibrahim N, Ismail N. An Automatic Tool for Generating Test Cases from the System's Requirements. 2007;861–6.
  • Nguyen CD, Marchetto A, Tonella P, editors. Combining model-based and combinatorial testing for effective test case generation. Proceedings of the 2012 International Symposium on Software Testing and Analysis, ACM; 2012.
  • Swain R, Panthi V, Behera PK, Mohapatra DP. Automatic test case generation from UML state chart diagram. International Journal of Computer Applications. 2012; 42(7):26–36.
  • Khan SUR, Lee SP, Ahmad RW, Akhunzada A, Chang V. A Survey on Test Suite Reduction Frameworks and Tools. International Journal of Information Management. 2016; 36(6): Part A, 963–75.
  • Jatana N, Suri B, Kumar P, Wadhwa B. Test Suite Reduction by Mutation Testing Mapped to Set Cover Problem. Proceedings of the Second International Conference on Information and Communication Technology for Competitive Strategies, ACM; 2016.
  • Gupta A, Gupta A, Kushwaha DS, editors. Test Case Reduction Using Decision Table for Requirements Specifications. Proceedings of the International Congress on Information and Communication Technology, Springer; 2016.
  • Alipour MA, Shi A, Gopinath R, Marinov D, Groce A. Evaluating non-adequate test-case reduction. Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering. ACM. 2016.
  • Shahid M, Ibrahim S. A New Code Based Test Case Prioritization Technique. International Journal of Software Engineering and its Applications. 2014; 8(6): 31–8.
  • Ahmed M, Ibrahim R. Improving effectiveness of testing using reusability factor. International Conference on Computer and Information Sciences (ICCOINS).IEEE; 2014.
  • Dig D. A refactoring approach to parallelism. IEEE Software. 2011; 28(1):17–22.
  • Rieger M, Van Rompaey B, Du Bois B, Meijfroidt K, Olievier P. Refactoring for performance: An experience report. Proc. Software Evolution. 2007; 2(9):1–9.
  • Yoshioka N, Washizaki H, Maruyama K. A survey on security patterns. Progress in informatics. 2008; 5(5):35–47.
  • Omotunde H, Ibrahim R. Mitigating SQL Injection Attacks via Hybrid Threat Modelling. 2nd International Conference on Information Science and Security (ICISS).IEEE; 2015.
  • Omotunde H, Ibrahim R. A Review of threat modelling and ITS hybrid approaches to software security testing. Research gate. 2006.
  • Garrido A, Rossi G, Distante D. Refactoring for usability in web applications. IEEE Software. 2011; 28(3):60.
  • Al Dallal J. Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics. Information and Software Technology. 2012; 54(10):1125–41.
  • Bavota G, De Lucia A, Marcus A, Oliveto R. Automating extract class refactoring: an improved method and its evaluation. Empirical Software Engineering. 2014; 19(6):1617–64.
  • Palomba F, Bavota G, Oliveto R, De Lucia A. Anti-Pattern Detection: Methods, Challenges, and Open Issues. Advances in Computers. 2014; 95:201–38.
  • Silva D, Terra R, Valente MT. JExtract: An Eclipse Plug-in for Recommending Automated Extract Method Refactorings. Federal University of Minas Gerais: Brazil. 2014, pp.1-8.
  • Dennis B. Repatterning: Improving the Reliability of Android Applications with an Adaptation of Refactoring [PhD thesis]https://etd.auburn.edu/handle/10415/4219.2014.
  • Fokaefs M, Tsantalis N, Stroulia E, Chatzigeorgiou A. JDeodorant: Identification and application of extract class refactorings. Proceedings of the 33rd International Conference on Software Engineering, Waikiki, Honolulu, HI, USA.ACM; 2011. p. 1037–9.
  • Yoo S, Harman M. Pareto efficient multi-objective test case selection. Proceedings of the 2007 International symposium on Software testing and analysis, London, United Kingdom. ACM; 2007. P. 140–50.

Refbacks

  • There are currently no refbacks.


Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.