Terminology
Lately I was diving deeper into some technical terminology while writing my book and in particular into terminology of software testing.
As an industry, we should have some common understanding of the most basic and important terms, and it is interesting to see that we don’t. Some examples may include:
Unit testing, where half of the development world insist on isolating units from real dependencies, and the other half writes tutorials on how to unit test code interacting with the database.
Integration testing, which can mean testing with real dependencies, integrating several components together, contract testing, and probably many other things.
The desire of some people to distinguish between testing and checking.
The desire to separate the terms integration testing and integrated testing.
The shift in the meaning of acceptance tests to adapt to a world where customers no longer do acceptance tests.
What is really TDD and what isn’t. The same with BDD.
The internet never ceased to produce all sorts of contradictory definitions and information. Then people start discussing test pyramids and what kind of testing should be done, or how testing should be done, and we can probably guess how this ends.
Because we can only expect this to get worse, it is time for us all to reflect on the use of terminology any time we have or see a disagreement, or when we want to introduce existing terminology to new people. We need to be aware of the contexts, and that probably half of the world doesn’t agree with us.
Have a nice weekend,
Petr