At the end of this post is an audacious idea about the present and future of software development. In the middle are points about mental models: how important and how difficult they are. But first, a…
"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."
S. Salimzadeh, G. He, and U. Gadiraju. Proceedings of the 31st ACM Conference on User Modeling, Adaptation and Personalization, page 215-227. ACM, (June 2023)
X. Hu, W. Liu, J. Bian, and J. Pei. Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, page 1521--1531. (2020)