There are many ways to gain knowledge about a system, and testing is just one of them. We could also read its code, look at its documentation, talk to its developers, etc., and each of these would give us a belief about how the system behaves. However, testing validates our beliefs, and thus is particularly important out of all of these methods.
The overall goal of testing is then to gain valid knowledge about the system.
This goal overrides all other principles of testing – any testing method is valid as long as it produces that result.
However, some testing methods are more efficient than others: they can make it easier to create and maintain tests which produce all the information we desire. These methods should be understood and used appropriately – as your judgment dictates, and as they apply to the specific system you're testing.
-Max