The problem was that the wrong but of code got inadvertently released, not that the code was not tested, however M do that, possibly including listening tests. I guess it depends on the impact that the coding change has as to what type of testing it undergoes.
As for it happening in the future, one can only guess the development lifecycle that M use. But I suspect that it is quite informal with code possibly being developed until quite late in the development lifecycle, but this means that some testing may not occur on the physical release build, so build issues may fall through the net as would appear to have happened here. In a larger commercial environment, with formal testing, the code cutoff will occur much sooner in the lifecycle and the release build will be used much earlier resulting in build issues being caught.
I don't think that Meridian did anything wrong, its just they may not have the benefit of time and/or resources to devote to thoroughly testing the actual release build and that in this case, the errant code slipped through checks on at least two occasions, once when the build was first released and subsequently rechecked.