What’s easy for a computer to do, and what’s almost impossible? Those questions form the core of computational complexity. We present a map of the landscape: P, NP, etc.
"Strong integration tests, consisting of collaboration tests (clients using test doubles in place of collaborating services) and contract tests (showing that service implementations correctly behave the way clients expect) can provide the same level of confidence as integrated tests at a lower total cost of maintenance."
"You’ve seen interfaces that violate the Interface Segregation Principle in the worst possible ways—my canonical example is Java’s ResultSet—and mocking those interfaces is a sure path towards madness."
Here are a few things you should know about complex systems, result of a worldwide collaborative effort from leading experts, practitioners and students in the field.
T. McCabe. Proceedings of the 2nd international conference on Software engineering, page 407--. Los Alamitos, CA, USA, IEEE Computer Society Press, (1976)ACM ID: 807712.
T. Mccabe. ICSE '76: Proceedings of the 2nd international conference on Software engineering, Los Alamitos, CA, USA, IEEE Computer Society Press, (1976)