Q/A, Release builds vs Debug builds, and Assertions

qatesting

Just curious:

When you release software builds to Q/A, do you prefer to always use the "RELEASE" version, or do you sometimes use the DEBUG version?

Here's my conundrum:
We like to use Asserts to trap for conditions that should never happen.

On the one hand, it might be useful for Q/A to test our software with the Assertions enabled, so that if they can create a scenario that triggers an assertion, they can report it to us.

On the other hand, there is always the risk that a developer has coded an assertion in a way such that it changes the behavior of the code. In that case, Q/A should be testing the a build with Assertions disabled.

To date, we have always had Q/A operating on our Relesae builds, as that was the code that would ship. However, I am thinking about trying a pattern where our really early releases to Q/A would go out with assertions enabled. Then as we get closer to shipping, we will notify them that their builds have assertions disabled.

What do you guys think?

Best Answer

We release both to Q/A, and test passes complete on both. If you are heavy on automated testing, this just becomes an issue of having extra hardware to run the tests.

Release versions must be tested, since they are what actual customers use. Debug versions contain addition asserts/validations/tracing/etc., which are incredibly useful at finding non-obvious bugs.

Related Topic