2 ms·
Most non-trivial systems software has minimal unit testing. It doesn’t measure anything important in those systems. Integration tests are everything because the
by jandrewrogers 2y ago
Most non-trivial systems software has minimal unit testing. It doesn’t measure anything important in those systems. Integration tests are everything because the main functional properties being designed are the dynamic behavior of interactions between components and the hardware.
In performance-engineered systems, a component’s behavior in isolation is not its behavior in the system, and that behavior determines correctness. Basically the same fallacy as most micro-benchmarking. Resource availability and locality vary dynamically, and the software design has to account for this, which is extremely non-trivial to do without code you can measure in the system context.
And yes, modifying software architectures to address design issues that show up in implementation details or to slice some non-obvious tradeoffs differently is expensive, but is almost always required to some extent. That’s a cost of business if you are doing non-trivial greenfield software, it comes with the territory.