I was just at Chapter 7 of Think Like a Rocket Scientist, and that section was literally about testing. And of course, I couldn’t help but draw parallels or find links of what he said to software testing.
“The test must run forward to shed light on uncertainty, rather than run backward to confirm preconceptions.”
>>> Tests are for finding information, not just to confirm positive test cases, but also to see what happens with negative test cases.
“Experiments on Earth must mimic, to the greatest extent possible, the same conditions in flight.”
>>> This hinted at the importance of having our test environments closely resembling our prod environments.
“The best way to determine an object’s breaking point is to break it… This objective requires exposing every component, down to the screws, to the same type of shocks, vibrations, and extreme temperatures awaiting them in space.”
>>> It initially sounded like stress testing to me. And with the mention of components, down to the screws, made me think of unit tests and integration tests.
“It’s not enough to test the reliability of individual components. Without systems-level testing, you can unwittingly unleash Frankenstein’s monster.”
>>> What he said.
“When you make a last-minute change to a product and ship it out the door without retesting the whole thing, you’re risking disaster.”
>>> This just shouted impact analysis and regression testing to me.
“Instead of creating artificial testing environments disconnected from reality, we’re better off observing customer behavior in real life.”
>>> This, and one of the other anecdotes, reminded me of User Testing and A/B Testing.
“Treat your testing instruments like your investments and diversify them. If you’re building a website, test it using different browsers and different computers.”
>>> Again, what he said, nothing to add there.