An experienced programmer would probably agree at this point that
many of these 42 test cases represent common errors that might have
been made in developing this program, yet most of these errors probably
would go undetected if a random or ad hoc test-case-generation
method were used. Boundary-value analysis, if practiced correctly, is
one of the most useful test-case-design methods. However, it often is
used ineffectively because the technique, on the surface, sounds simple.
You should understand that boundary conditions may be very subtle
and, hence, identification of them requires a lot of thought.
An experienced programmer probably agree that the majority of the 42 test cases represent the common mistakes which are made during during the developing process. But if we generate test cases randomly or by any special methods, the majority mistakes will not be found. Being used correctly, bound-value analising is one of the most effective methods to desigh test cases. But usually this method is not used properly, because it sounds very simple. We should realize that the bound conditions are so subtle that it will take us some time to find them.