From a psychological point of view, software analysis and
design (along with coding) are constructive tasks. The software
engineer creates a computer program, its documentation, and
related data structures. Like any builder, the software engineer is
proud of the edifice that has been built and looks askance at
anyone who attempts to tear it down. When testing commences,
there is a subtle, yet definite, attempt to 'break' the thing that the
software engineer has built. From the point of view of the builder,
testing can be considered to be (psychologically) destructive.