Identifying characteristics of Java methods that may influence branch coverage: An exploratory study on open source projects

Software testing is an important activity to assure the quality of software. Testing techniques and criteria have been created over time to help testers to devise high quality test suites. However, duly and systematically testing a software to reach high coverage on criteria, such as branch coverage, requires much effort. In this context, identifying characteristics of a software that may influence branch coverage is important to create software easier to test since the beginning. Therefore, the main purpose of this paper is to present an investigation conducted by us to identify the differences between methods whose branches were fully covered and the methods that have been partially covered. This investigation has been conducted on 39 open source Java projects.

[1]  Hong Sun,et al.  Investigating the use of analysis contracts to improve the testability of object‐oriented code , 2003, Softw. Pract. Exp..

[2]  Jeffrey M. Voas,et al.  Semantic metrics for software testability , 1993, J. Syst. Softw..

[3]  Yves Le Traon,et al.  Measuring design testability of a UML class diagram , 2005, Information and Software Technology.

[4]  Vinicius H. S. Durelli,et al.  An empirical study to quantify the characteristics of Java programs that may influence symbolic execution from a unit testing perspective , 2016, J. Syst. Softw..

[5]  Yuming Zhou,et al.  An in-depth investigation into the relationships between structural metrics and unit testability in object-oriented systems , 2012, Science China Information Sciences.

[6]  Ismael Rodríguez,et al.  A General Testability Theory: Classes, Properties, Complexity, and Testing Reductions , 2014, IEEE Transactions on Software Engineering.

[7]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[8]  Luc Lamontagne,et al.  Predicting Unit Testing Effort Levels of Classes: An Exploratory Study based on Multinomial Logistic Regression Modeling , 2015, SCSE.

[9]  Vinicius H. S. Durelli,et al.  Quantifying the Characteristics of Java Programs That May Influence Symbolic Execution from a Test Data Generation Perspective , 2014, 2014 IEEE 38th Annual Computer Software and Applications Conference.

[10]  Gordon Fraser,et al.  Sound empirical evidence in software testing , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[11]  Amjed Tahir,et al.  Understanding class-level testability through dynamic analysis , 2014, 2014 9th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE).

[12]  Abdullah,et al.  Testability Estimation of Object Oriented Design: A Revisit , 2013 .

[13]  J. Voas,et al.  Software Testability: The New Verification , 1995, IEEE Softw..

[14]  T J. Mccabe,et al.  Structured Testing: A Software Testing Methodology Using the Cyclomatic Complexity Metric , 1982 .

[15]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[16]  Mourad Badri,et al.  An empirical analysis of a testability model for object-oriented programs , 2011, SOEN.

[17]  Mourad Badri,et al.  An Empirical Analysis of Lack of Cohesion Metrics for Predicting Testability of Classes , 2011 .

[18]  Richard Bache,et al.  Measures of testability as a basis for quality assurance , 1990, Softw. Eng. J..

[19]  Robert V. Binder,et al.  Design for testability in object-oriented systems , 1994, CACM.