Developers Learning Testing
Firstly I think that many developers learn basic ideas of testing. Testing is something everyone does every day, and the separation of ātesterā is one of knowledge, expertise and skill, unlike coding that requires a lot of understanding to get going in the first place. Most people understand bad software at some level, and developers do write unit tests and review compile errors and use the software a bit before pushing it out. So I suppose my comments from here will be about learning testing deeper, as an expert.
I think that developers self-train on the things that interest them, like new languages, technologies, tools, libraries and frameworks, or architecture, methodologies and design.
If developers wanted to study testing subjects, like science, epistemology, test strategy, testability, heuristics, oracles, test reporting, exploration skills, et cetera ad nauseum sine qua nonā¦ then they could do that.
Hereās the reasons I can think of why they might not do that:
- They donāt know that these testing ideas exist to be learned in the first place.
- They have a skewed idea of what testing can be (metrics, automation driven by acceptance criteria, etc), and settle on that.
- They donāt have a particular interest in it.
Testing is something anyone can do, but testing well is really difficult, and it has a fuzzy, unsure, never-finished, always-compromising, confusing, constantly questioning and challenging, open-ended, social science element to it that doesnāt sit right with everyone. Perhaps that is where the comfort of not knowing about, or pretending about, or delegating testing comes from.
My suspicion is that they donāt really care about being able to do expert testing, in the same way that I donāt really care about being able to write product code within a team. I suspect that they love creating, and testing can be seen as critiquing the elegant beauty of that creation. I suspect that they love solving solvable problems, and testing is often about where to compromise concerning the impossible.
Quality
Quality is a subjective relationship between a person and a thing. I might say something is high quality and you might say itās not. That makes it non-fungible and heavily situation-dependent, especially as the software, project, business and users are changing all the time, and testers fight with what they understand about all of those to create some understanding of perceived quality of the users and other test clients. So very hard to measure and have some solid understanding, and a tough subject for academia.
If youāre looking for academia about quality Iād look to social science for your answers. It will likely not be actually about quality, but about relationships, purchasing decisions, game theory, psychology, and so on. Usually what happens, by my observation at least, is that testers bring that back to the theories behind testing to develop how we understand the relationship between software, tester and test client, and skip over the academic papers altogether. Perhaps itās why developers donāt get to see it.