Software testing is the process of comparing software to its specification so as to reveal bugs. But let's say we have to determine how many testers will be needed to carry out this misson on a particular software package. We decide we need to decompose the process further in order to understand how much work there is to do. This is the beginning of the yellow-brick road. The day is sunny and bright.
Software is a program of instructions.
Software is a box containing user manuals, install disks, utility programs, application programs, data files, and online help files. Software is the phenomenon we experience when the pro- gram executes in a certain operating environment, on a certain hardware platform. Software is the total interaction between the human user and the program over time. Software is a solution provided to a customer. A specification is an understanding, on the part of the developers, testers, documenters, technical supporters, marketers, management and users of how the software is supposed to behave.