3 ms·
Goodness. If all of software engineering is an infinite space, software testing is always infinite+1. The problem always starts at human-defined logic and end
by scollet 6y ago
Goodness.
If all of software engineering is an infinite space, software testing is always infinite+1.
The problem always starts at human-defined logic and ends at human-defined interpretation.
There is no amount of testing that can replicate eyes on those expectations defined on either end, and my own personal politics reflect that:
Tests are simply reinforcing these vectors from human to human where we might have a black, grey box that is incompletely understood by its contributors.
The point is to reduce complexity and optimize those vectors so those expectations directly align.
If you're writing the consistency of crêpe-like tests, perhaps those goals don't align. I've been there. Something surely has to change. Tests should be very simple validations and should be very developer interpretable. In fact, they should be enlightening to that vertical code.
They should necessarily be an aside to the larger architecture where we generally understand what is supposed to happen. They should define a ruleset to its operation at each discrete step.
Never a validation of "what function functions?".
I've seen too many PMs, execs, and can-do engineers get lost beyond the design because they were building on sand and justifying their castle.
Just stop.
Bring testing to the 'else' case on 'if, else if, elsif, ...' where we can actually understand that path.
Goodness.
Addendum: perhaps I've not worked in complex enough systems. I would appreciate any constructive argument towards my personal views.