Do your developers write tests?
September 21, 2021When test writing is removed from code writing, there's no observed benefit in IT performance. Writing tests in a silo is an anti-pattern.
A quick reminder: September 23 at 17:00 CET (Europe) / 8:00 AM PT (USA), I’ll be doing a free, live video Q&A session answering your DevOps career questions. Space is limited! Register up now!
There's a good chance you have some sort of automated testing in your software delivery lifecycle. And of course there are many _kinds_ of automated tests, from unit tests to API tests to end-to-end tests.
But who on your team writes these tests?
I’ve worked with teams that have dedicated QA personnel writing automated tests.
I’ve worked with teams where only developers wrote tests.
I’ve also worked with teams that do a combination of the two.
Which of these three scenarios do you expect produces the best results?
Quoting again from Accelerate, (emphasis added):
The following practice predict(s) IT performance:
Developers primarily create and maintain acceptance tests. It’s interesting to note that having automated tests primarily created and maintained either by QA or an outsourced party is not correlated with IT performance.
Note that this is not saying there’s no room for dedicated QA personnel in IT. It’s only saying that when test writing is removed from code writing, there’s no observed benefit in IT performance.
Or if I can add my own interpretation: Writing tests in a silo is an anti-pattern.
Which skill is more important: Testing, or debugging?
One of these skills, if you're good at it, diminishes the need for the other other.
Levels of testing
Who is responsible for unit, integration, and acceptance testing? Developers.
TDD ≠ Unit Tests
The unit of test in TDD is a behavior. That may correspond to a "unit." It often does not.