Complexity Metrics for Regression Testing of Component-Based Software

Component-based software construction is a widely used approach in software development, aiming to reduce the engineering effort and speed up development cycle. During software maintenance, various software update approaches can be utilized to realize ∗ 基金项目 : 国家自然科学基金 (61402229, 61202003); 国家教育部博士点基金 (20113219120021); 江苏省博士后基金 (1401043B); 计算机软件新技术国家重点实验室(南京大学)开放课题(KFKT2015B10) Foundation item: National Natural Science Foundation of China (61402229, 61202003); The Ph.D. Programs Foundation of Ministry of Education of China (20113219120021); the Postdoctoral Fund of Jiangsu Province (1401043B); The Open Fund of the State Key Laboratory for Novel Software Technology (Nanjing University) (KFKT2015B10) 收稿时间: 2014-12-20; 修改时间: 2015-03-09, 2015-06-11; 定稿时间: 2015-07-30 3044 Journal of Software 软件学报 Vol.26, No.12, December 2015 specific change requirements of component-based software. Different update approaches might lead to diverse regression testing complexity. However, there is a lack of research work addressing regression testing complexity in software maintenance. In this paper, a framework is proposed to measure and analyze regression testing complexity based on a set of change and impact complexity models and metrics. The paper presents an approach to complexity metrics for regression testing of component-based software. A graphic model and several measurements for the complexity metrics, which consist of both maintenance and retesting complexity, are also proposed. An experimental study is conducted to compare the complexity of regression testing using the data from several independent groups. The study results indicate the presented approach is feasible in providing visual comparison on various complexity of regression testing from different methods.

[1]  Gregg Rothermel,et al.  Empirical Studies of a Prediction Model for Regression Test Selection , 2001, IEEE Trans. Software Eng..

[2]  Wei Li,et al.  QoS Assurance for Dynamic Reconfiguration of Component-Based Software Systems , 2012, IEEE Transactions on Software Engineering.

[3]  John C. Munson,et al.  An approach to the measurement of software evolution , 2005, J. Softw. Maintenance Res. Pract..

[4]  Roger S. Pressman,et al.  “Software Engineering – A Practitioner‟s Approach”, Seventh Edition, Mc Graw-Hill International Edition, 2010 , 2015 .

[5]  Tracy Hall,et al.  Reducing Regression Test Size by Exclusion , 2007, 2007 IEEE International Conference on Software Maintenance.

[6]  Hyunsoo Kim,et al.  The software maintenance project effort estimation model based on function points , 2003, J. Softw. Maintenance Res. Pract..

[7]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[8]  Gregg Rothermel,et al.  The impact of test suite granularity on the cost-effectiveness of regression testing , 2002, ICSE '02.

[9]  David Chenho Kung,et al.  Identifying polymorphism change and impact in object-orientated software maintenance , 1996 .

[10]  Alain Fournier,et al.  Triangulating Simple Polygons and Equivalent Problems , 1984, TOGS.

[11]  Hareton K. N. Leung,et al.  A cost model to compare regression test strategies , 1991, Proceedings. Conference on Software Maintenance 1991.

[12]  Chris F. Kemerer,et al.  Software complexity and software maintenance: A survey of empirical research , 1995, Ann. Softw. Eng..

[13]  Gregg Rothermel,et al.  Analyzing Regression Test Selection Techniques , 1996, IEEE Trans. Software Eng..

[14]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[15]  Gregg Rothermel,et al.  Using component metacontent to support the regression testing of component-based software , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[16]  Gregg Rothermel,et al.  Modeling the cost-benefits tradeoffs for regression testing techniques , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[17]  Bixin Li,et al.  A Model-based Approach to Regression Testing of Component-based Software , 2011, SEKE.

[18]  Kaoru Ishikawa Introduction to Quality Control , 1990 .

[19]  Jingsha He,et al.  A Systematic Regression Testing Method and Tool For Software Components , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[20]  Ahmed E. Hassan,et al.  Predicting faults using the complexity of code changes , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[21]  Kuo-Chung Tai Program Testing Complexity and Test Criteria , 1980, IEEE Transactions on Software Engineering.

[22]  David S. Rosenblum,et al.  Using Coverage Information to Predict the Cost-Effectiveness of Regression Testing Strategies , 1997, IEEE Trans. Software Eng..