All you need to know about testing preparation, process, evaluation and analysis
- Principles of testing
- Testing terminology
- Why testing is necessary?
- Why do software faults occur?
- What do software faults cost?
- Exhaustive testing
- Fundamental test process
- What is the fundamental test process?
- Psychology of testing
- Re-testing and regression testing
- What is re-testing?
- What is regression testing?
- The 'Oracle Assumption'
- Testing in the lifecycle
- Models for testing
- Test design and test execution
- The Waterfall Model, pre-Waterfall, and damage to testing
- Economics of testing
- Big Bang integration
- Top-down integration and Stubs
- Bottom-up integration and Drivers
- Business process-based testing
There is a lot of terminology surrounding testing, but not until recently has there been an industry standard. A new standard (first published in August 1998) seeks to provide a standard set of terms: BS 7925-i Glossary of Testing Terms. Although a British Standard, it is being adopted by the International Standards Organization (ISO) and will hopefully become an ISO standard within two or three years. An error is something that a human does, we all make mistakes and when we do whilst developing software it is known as an error. The result of an error being made is a fault. It is something that is wrong in the software (source code or documentation - specifications, manuals, etc.). Faults are also known as a defects or bugs but in this course we will use the term fault. When a system or piece of software produces an incorrect result or does not perform the correct action this is known as a failure. Failures are caused by faults in the software. Note that software system can contain faults but still never fail (this can occur if the faults are in those parts of the system that are never used). Another term that should be understood is reliability. A system is said to be reliable when it performs correctly for long periods of time. However, the same system used by two different people may appear reliable to one but not to the other. This is because the different people use the system in different ways. The definition of reliability therefore includes the phrase ?under specified conditions'. When reporting on the reliability of a system it is important to explain under what conditions the system will achieve the specified level of reliability. For example, a system may achieve a reliability of no more than one failure per month providing no more than 10 people use the system simultaneously.
[...] We feel that all developers should use static analysis tools, since the information they can give can find faults very early when they are very cheap to fix Dynamic Testing Techniques 4.1 About Testing Techniques The need for testing techniques In Session 1 we explained that testing everything is known as exhaustive testing (defined as exercising every combination of inputs and preconditions) and demonstrated that it is an impractical goal. Therefore, as we cannot test everything we have to select a subset of all possible tests. [...]
[...] Staffing and Training: Needs Staff required and any training they will need such as training on the system to be tested (so they can understand how to use it) training in the business or training in testing techniques or tools Schedule: Milestones for delivery of software into testing, availability of the environment and test deliverables Risks and Contingencies: what could go wrong and what will be done about it to minimize adverse impacts if anything does go wrong Approvals: Names and when approved. [...]
[...] Sometimes the users are tempted to say to the technical staff: know more about computers than we do, so you do the acceptance testing for This is like asking the used car salesman to take a test drive for you! The users bring the business perspective to the testing. They understand how the business actually functions in all of its complexity. They will know of the special cases that always seem to cause problems. They can also help to identify sensible work-around, and they gain a detailed understanding of the system if they are involved in the acceptance testing. [...]