Abstract
We propose a technique to select regression test cases that is targeted to reduce the size of test suite by using improved precision slices. For this, we first construct the control flow graph model of an object-oriented program. Subsequently, we identify the infeasible paths and compute the definition-use (def-use) pairs only along the feasible paths. Next, we construct the dependency model using this information. This helps us to ignore the dependencies existing along infeasible paths leading to construction of precise slices. Then, we build the dependency model and construct forward slices on the dependency model to determine the affected nodes and the test cases that cover the affected nodes in the dependency graph model are selected for regression testing. The results obtained from our experimental studies indicate that our approach reduces the regression test suite size on an average by 11.25 % as compared to a related approach, without degrading the fault-revealing effectiveness.
Similar content being viewed by others
References
Kapfhammer G (2004) The Computer Science Handbook, Chapter Software testing. CRC Press, Boca Raton
Leung H, White L (1989) Insights into regression testing. In: Proc. of the conference on software maintenance, pp 60–69
Ball T (1998) On the limit of control flow analysis for regression test selection. In: Proc. of the acm international symposium on software testing and analysis, pp. 134–142
Harrold M, Jones J, Li T, Liang D, Orso A (2001) Regression test selection for Java software. In: Proc. of the 16th ACM SIGPLAN Conference on object-oriented programming, systems, languages and applications, pp 312–326
Rothermel G, Harrold M (1996) Analyzing regression test selection techniques. IEEE Trans Softw Eng 22(8):529–551
Rothermel G, Harrold M (1997) A safe, efficient regression test selection technique. ACM Trans Softw Eng Methodol 6(2):173–210
Rothermel G, Harrold M, Dedhia J (2000) Regression test selection for C++ software. J Softw Test Verif Reliab 10(6):77–109
Rothermel G, Harrold MJ (1994) Selecting regression tests for object-oriented software. In: Proc. of the Intl. Conf. on software maintenance, Victoria, pp 14–25
Zheng J, Robinson B, Williams L, Smiley K (2006) Applying regression test selection for cots-based applications. In: Proc. of the 28th international conference on software engineering (ICSE’06), pp 512–522
Farooq Q, Zohaib M, Iqbal Z, Nadeem A, Malik ZI (2007) An approach for selective state machine based regression testing. In: Proc. of the ACM 3rd international workshop on advances in model-based testing, pp 44–52
Briand L, Labiche Y, He S (2009) Automating regression test selection based on uml designs. J Inf Softw Technol 16–30
Naslavsky L, Ziv H, Richardson DJ (2009) A model-based regression test selection technique. In: Proc. of 25th IEEE international conference on software maintenance, Edmonton
Horwitz S, Reps T, Binkley D (1990) Interprocedural slicing using dependence graphs. Trans Program Lang Syst 12(1):26–60
Tip F (1994) A survey of program slicing techniques. Technical Report: CSR9438, CWI (Centre for Mathematics and Computer Science), Amsterdam
Panigrahi C, Mall R (2013) Slicing of object-oriented programs with improved precision. Technical Report, Department of Computer Science and Engineering, IIT Kharagpur
Hedley D, Hennell MA (1985) The causes and effects of infeasible paths in computer program. In: Proc. of 8th international conference on software engineering (Cat. No.85CH2139-4), London, pp 28–30
Ngo MN, Tan HBK (2007) Detecting large number of infeasible paths through recognizing their patterns. In: Proc. of ESEC/FSE 07, Cavtat near Dubrovnik, Croatia, pp 102–112
Young M, Taylor RN (1988) Combining static concurrency analysis with symbolic execution. IEEE Trans Softw Eng 14:1499–1511
Coward PD (1991) Symbolic execution and testing. Inf Softw Technol 33(1):53–64
Goldberg A, Wang TC, Zimmerman D (1994) Applications of feasible path analysis to program testing. In: Proc. of ISSTA, Seattle, pp 17–19
Bodik R, Gupta R, Soffa ML (1997) Refining data flow information using infeasible paths. In: Proc. of 6th European software engineering conference held jointly with the 5th ACM SIGSOFT symposium on the foundations of software engineering (ESEC/FSE ’97), vol 22, pp 361–377
Zhang J, Wang X (2001) A constraint solver and its application to path feasibility analysis. Int J Softw Eng Knowl Eng 11:139–156
Malevris N, Yates DF, Veevers A (1990) Predictive metric for likely feasibility of program paths. Inf Softw Technol 32:115–118
Forgacs I, Bertolino A (1997) Feasible test path selection by principal slicing. In: Proc. of ESEC/FSE ’97, Zurich
Bueno PMS, Jino M (2000) Identification of potentially infeasible program paths by monitoring the search for test data. In: Proc. of ASE, Grenoble, France, pp 11–15
Larsen L, Harrold M (1996) Slicing object-oriented software. In: Proc. of 18th IEEE international conference on software engineering
White L, Abdullah K (1997) A firewall approach for regression testing of object-oriented software. In: Proc. of 10th annual software quality week
Kung D, Gao J, Hsia P, Toyoshima Y, Chen C (1997) Firewall regression testing and software maintenance of object-oriented systems. J Object-Oriented Program
Jang YK, Munro M, Kwon YR (2001) An improved method of selecting regression tests for c++ programs. J Softw Maint Res Pract 13:331–350
Martins E, Vieira VG (2005) Regression test selection for testable classes. Lect Notes Comput Sci 34(63):453–470
Panigrahi C, Mall R (2013) An approach to prioritize the regression test cases of object-oriented programs. J CSI Trans ICT 1(2):159–173
Panigrahi C, Mall R (2013) A Heuristic-based regression test case prioritization approach for object-oriented programs. J Innov Syst Softw Eng (ISSE) NASA J 10(3):155–163
Eclipse (last visited March 21, 2014). Available http://www.eclipse.org/
Antlr parser generator. (last visited March 21, 2014). Available: http://www.antlr.org/
Wisniewski S, Antlr java grammar. (last visited March 21, 2014). Available: http://www.antlr.org/grammar/list
Graphviz (last visited March 21, 2014). Available: http://www.graphviz.org/
Pande H, Landi W, Ryder BG (1994) Interprocedural def-use associations in C programs. IEEE Trans Softw Eng 20(5):385–403
Open source website. (last visited October 30, 2015). Available: http://sourceforge.net/
An open source mutation testing plug-in for eclipse. (last visited March 21, 2014). Available: http://muclipse.sourceforge.net/
Ma Y-S, Offutt J, Kwon Y-R (2005) Mujava: An automated class mutation system. Journal of Software Testing, Verification and Reliability 15(2):97–133
Bates S, Horwitz S (1993) Incremental program testing using program dependence graphs. In: Conf. Record of the 20th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, Charleston, South California, pp. 384–396
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Panigrahi, C.R., Mall, R. Regression test size reduction using improved precision slices. Innovations Syst Softw Eng 12, 153–159 (2016). https://doi.org/10.1007/s11334-015-0262-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-015-0262-6