Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Using Extreme Programming in a Maintenance Environment
IEEE Software
IEEE Software
An Automated Refactoring Approach to Design Pattern-Based Program Transformations in Java Programs
APSEC '02 Proceedings of the Ninth Asia-Pacific Software Engineering Conference
Towards a 'Safe' Use of Design Patterns to Improve OO Software Testability
ISSRE '01 Proceedings of the 12th International Symposium on Software Reliability Engineering
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
A UML-Based Pattern Specification Technique
IEEE Transactions on Software Engineering
Refactoring to Patterns
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
Head First Design Patterns
XUnit Test Patterns: Refactoring Test Code
XUnit Test Patterns: Refactoring Test Code
Design Patterns in Java(TM) (2nd Edition) (Software Patterns Series)
Design Patterns in Java(TM) (2nd Edition) (Software Patterns Series)
Test-Driven Development of Relational Databases
IEEE Software
ICSEA '07 Proceedings of the International Conference on Software Engineering Advances
A quantitative approach for evaluating the quality of design patterns
Journal of Systems and Software
Quality Patterns for Conceptual Modelling
ER '08 Proceedings of the 27th International Conference on Conceptual Modeling
Investigating the Evolution of Bad Smells in Object-Oriented Code
QUATIC '10 Proceedings of the 2010 Seventh International Conference on the Quality of Information and Communications Technology
Hi-index | 0.00 |
In the current trend, Extreme Programing methodology is widely adopted by small and medium-sized projects for dealing with rapidly or indefinite changing requirements. Test-first strategy and code refactoring are the important practices of Extreme Programing for rapid development and quality support. The test-first strategy emphasizes that test cases are designed before system implementation to keep the correctness of artifacts during software development; whereas refactoring is the removal of "bad smell" code for improving quality without changing its semantics. However, the test-first strategy may conflict with code refactoring in the sense that the original test cases may be broken or inefficient for testing programs, which are revised by code refactoring. In general, the developers revise the test cases manually since it is not complicated. However, when the developers perform a pattern-based refactoring to improve the quality, the effort of revising the test cases is much more than that in simple code refactoring. In our observation, a pattern-based refactoring is composed of many simple and atomic code refactorings. If we have the composition relationship and the mapping rules between code refactoring and test case refactoring, we may infer a test case revision guideline in pattern-based refactoring. Based on this idea, in this research, we propose a four-phase approach to guide the construction of the test case refactoring for design patterns. We also introduce our approach by using some well-known design patterns and evaluate its feasibility by means of test coverage.