Test case prioritization and distributed testing of object-oriented program

Test case prioritization and distributed testing of object-oriented program

Software systems have increased in size and complexity. As a result, object-oriented programming (OOP)is increasingly being used in the development of such large and complex systems. Traditional procedural programmingrequires a design method that follows a sequential flow of control, which is difficult to follow in the case of large systemsdesign. Thinking in terms of real-life objects and their interactions makes design easier in the case of OOP. However,OOP comes with its own set of disadvantages and testing is one of them. Testing of such systems requires much moreeffort and time. In our approach the program is analyzed to build a system dependence graph-based model. This modelis analyzed for test script generation and to find state-save points within the program where the state of the program canbe saved and reused for executing another test case. The test cases are prioritized looking at the structural complexity ofthe program. The distributed testing presented here is different from traditional distributed testing, where they addresstesting of web and distributed applications. The distributed architecture developed in this work enables testing of OOPin an efficient manner. The concept is implemented for Java programs as there is support for continuation.

___

  • [1] Morris S, Johnson J. A survey of testing techniques for object-oriented systems. In: Conference of the Centre for Advanced Studies on Collaborative Research; Toronto, Canada; 1996. pp. 17-24.
  • [2] Jorgensen PC, Erickson C. Object-oriented integration testing. Communications of ACM 1994; 37 (9): 30-38. doi: 10.1145/182987.182989
  • [3] Zhao R, Lin L. An UML statechart diagram-based MM-path generation approach for object-oriented integration testing. International Journal of Applied Mathematics and Computer Sciences 2008; 2 (10): 3470-3475.
  • [4] Gao J, Kung D, Hsia P, Toyoshima Y, Chen C. Object state testing for object-oriented programs. In: IEEE Computer Software and Applications Conference; Dallas, TX, USA; 1995. pp. 76-85.
  • [5] Mall R. Fundamentals of Software Engineering. 3rd ed. New Delhi, India: Prentice Hall of India, 2010.
  • [6] Catal C, Mishra D. Test case prioritization: a systematic mapping study. Software Quality Journal 2013; 21 (3): 445-478. doi: 10.1007/s11219-012-9181-z
  • [7] Vipin KKS, Sheena M. Model based distributed testing of object oriented programs. In: Elsevier 2014 Procedia Technology - International Conference on Information and Communication Technologies; Kochi, India; 2014. pp. 857-866.
  • [8] Terence P. Definitive ANTLR Reference: Building Domain Specific Languages. Raleigh, NC, USA: Pragmatic Bookshelf, 2007.
  • [9] Vipin KKS, Lallu A, Sheena M. An efficient approach for distributed regression testing of object oriented programs. In: ACM International Conference on Interdisciplinary Advances in Applied Computing; Amritapuri, India; 2014. pp. 331-337.
  • [10] Elbaum S, Malishevsky AG, Rothermel G. Test case prioritization: a family of empirical studies. IEEE Transactions on Software Engineering 2002; 28 (2): 159-182. doi: 10.1109/32.988497
  • [11] Sarma M, Murthy PVR, Jell S, Ulrich A. Model-based testing in industry: a case study with two MBT tools. In: ACM Fifth Workshop on Automation of Software Test; New York, NY, USA; 2010. pp. 87-90.
  • [12] Swain SK, Mohapatra DP, Mall R. Test case generation based on use case and sequence diagram. International Journal of Software Engineering 2010; 3 (2): 21–52.
  • [13] Larsen L, Harrold MJ. Slicing object-oriented software. In: IEEE International Conference On Software Engineering; Washington, DC, USA; 1996. pp. 495-505.
  • [14] Liang D, Harrold MJ. Slicing objects using system dependence graph. In: IEEE International Conference on Software Maintenance; Bethesda, MD, USA; 1998. pp. 358-367.
  • [15] Kaur P, Bansal P, Sibal R. Prioritization of test scenarios derived from UML activity diagram using path complexity. In: ACM CUBE International Information Technology Conference; Pune, India; 2012. pp. 355-359.
  • [16] Kiran RS, Chandraprakash, Srinivas K. A literature survey on TCP-test case prioritization using the RT-regression techniques. Global Journal of Research In Engineering 2015; 15 (1): 29-40.
  • [17] Khatibsyarbini M, Isa MA, Jawawi DNA, Tumeng R. Test case prioritization approaches in regression testing: a systematic literature review. Information and Software Technology 2018; 93: 74-93. doi: 10.1016/j.infsof.2017.08.014
  • [18] Kumar A, Singh K. A literature survey on test case prioritization. COMPUSOFT International Journal of Advanced Computer Technology 2014; 3 (5): 793-799.
  • [19] Ansaria A, Anam K, Alisha K ,Mukadam K. Optimized regression test using test case prioritization. Procedia Computer Science 2016; 79: 150–160. doi: 10.1016/j.procs.2016.03.020
  • [20] Singh Y, Kaur A, Suri B, Singhal S. Systematic literature review on regression test prioritization techniques. Informatica International Journal of Computing and Informatics 2012; 36 (4): 379–408.
  • [21] Chidamber SR, Kemerer CF. A metric suite for object-oriented design. IEEE Transactions on Software Engineering 1994; 20 (6): 476-493. doi: 10.1109/32.295895
  • [22] Fenton NE, Neil M. Software metrics: roadmap. In: ICSE Conference on The Future of Software Engineering; Limerick, Ireland; 2000. pp. 357–370.
  • [23] Xenos M, Stavrinoudis D, Zikouli K, Christodoulakis D. Object-oriented metrics – a survey. In: FESMA 2000, Federation of European Software Measurement Associations; Madrid, Spain; 2000.
  • [24] Koru AG. The PROMISE Repository of Software Engineering Databases. Ottawa, Canada: School of Information Technology and Engineering, University of Ottawa, 2005.
  • [25] Almeida EC, Marynowski JE, Sunyé G, Traon YL, Valduriez P. Efficient distributed test architectures for largescale systems. In: Springer Lecture Notes on Computer Science ICTSS 2010 Testing Software and Systems; Berlin, Germany; 2010. pp. 174-187.
  • [26] Haraty RA, Mansour N, Moukahal L, Khalil I. Regression test cases prioritization using clustering and code change relevance. International Journal of Software Engineering and Knowledge Engineering 2016; 26 (5): 733–768. doi: 10.1142/S0218194016500248
  • [27] Alves ELG, Machado PDL, Massoni T, Kim M. Prioritizing test cases for early detection of refactoring faults. Software: Testing, Verification and Reliability 2016; 26 (5): 402–426. doi: 10.1002/stvr.1603