These are some extracts from my Software Engineering study guide, of my degree program which I always found interesting. Now its 4 years after I did this subject and yesterday I remembered them again, so I dig my course guide out, to have another look at them. Quite interesting definitions indeed!!!
Correctness is the most basic quality of software. A software product is (functionally)
correct if, and only if, its behavior conforms to (functional) requirement specification.
This definition makes two assumptions, viz., that a specification does exist correctly, and that it is possible to ascertain incontrovertibly whether a software product does or does not behave in conformity to its specification.
Most specifications are cast in everyday language, which means that they are plagued by ambiguities and susceptible to conflicting interpretations. The stricter about the content and the more precise about the terms of a specification one is, the stronger one’s claim can be made about the correctness or otherwise of the software product.
If a software product is not correct we say that it contains one or more
faults. Note that if its specification itself is incorrect or incomplete, a software product might be correct and still exhibit unexpected behavior. An execution event in which a software product exhibits unexpected behavior is called a
failure. It follows from the definition of fault and failure that a software product may have faults and still fail.
posted by 88Pro / Monday, May 17, 2004