Another reason why the second answer to the question about the goal of a good software test was better is a psychological one. We humans often tend to try to reach a given goal directly. So if we are supposed to prove the correctness of a program, we will undeliberately run tests that are less likely to detect a faults. On the other hand, if it is the goal of a test to find a fault, we will automatically orientate our efforts in this direction and produce better tests.
Psychology also helps to explain why this field has been treated so stepmotherly. A lot of programmers start to identify themselves with their programs when working on them for a longer period of time. Since software testing is a destructive activity which is directed against their work they regard it as a direct personal attack. Due to this, a lot of programmers did not help to develop better methods for software quality control or even tried to hinder this process.
Owing to this problem, most western software developing companies make use of external testers or at least of a separated testing department. In some companies the project leaders try to avoid a direct contact between the programmers and the testers, because this reduces the psychological barrier, and it forces the developers to make better documentations . Otherwise misunderstandings are inevitable and will cause additional work for the developers.
As usual, there is no rule without an exception [Alper94]: those psychological problems are not valid for Japanese software developers. In Japan the testers and the programmers form one unit. One of the top level programmers is usually responsible for testing and quality ensuring. This is only possible due to a huge difference between the Japanese and the western mentality. Our society hopes to improve by settling conflicts, whereas the eastern has a more total view. Each and every one feels responsible for the whole company and not so much for his own work in particular.