80 likes | 93 Views
Explore the importance of encapsulation in testing object-oriented software, ensuring code quality, and adhering to the Law of Demeter. Learn about testing strategies, separation of concerns, and the benefits of aspect-oriented programming.
E N D
Testing OO Software • Encapsulation means modeling and storing with an object the parts and the operations. • Interactions become implicit in code. • Makes difficult to understand interactions and to prepare test cases for them.
Testing OO Software • Perry/Kaiser:Adequate Testing and Object-Oriented Programming • Retest everything when context changes
Testing OO Software • Smith/Robson: Object-Oriented Programming - The Problems of Validation • Quality of a collection of classes • Test not only for correctness but quality of code • Code written with a consistent method (such as the Demeter Method) should have a higher quality than ad-hoc written code
Testing OO Software • Wilde/Huitt: Maintenance Support for Object-Oriented Programs • Law of Demeter • Propagation patterns • Abstracting propagation patterns
Small methods problem of OO • In 3 large scale studies: 50% of methods are less than 2 C++ statements or 4 Smalltalk statements • Law of Demeter connection
Testing OO Software • Robert Binder: Design for Testability in Object-Oriented Systems • Separation of concerns • avoid entwined capabilities, makes testing easier • user interface capabilities should not be entwined with basic functions • Law of Demeter • Demeter Compliance: reduces number of interfaces?
Two definitions of AOP • NU definition: Collaborating units, loosely coupled, each unit enhancing other units, change in one: minimal changes in others: cross cutting • Xerox PARC: new: an aspect is modular unit that cross-cuts other modular units. Old: Aspect: what is not a component