Computing Students - Computer Science Degree Notes
Home Contact Shop Notes Questions Programming Links Dictionary Coursework FORUM Tutors
  Recommended Kelkoo Searches: Computer Science | Computing | Computer Systems | Database | Computing Revision  

Notes > Software Analysis / Testing > Introduction

Testing has the goal of trying to find faults or failures within a program by using various input values. Failures can be detected when it is seen that the actual output does not match the expected output. Exhaustive testing involves using all possible input values for testing the program but this is rarely possible. A tester needs to choose a small set of test input values from the overall set of possible inputs.

The Implementation Under Test (IUT) refers to the actual code or program that is being tested. A Test Case is made up of an input value and an expected outcome. It can also contain information about the initial state or set-up in which the test will be executed. A good test case is one which is relatively likely to detect faults (by producing test failures).

The way of checking that an input/output pair is valid is by using what is often called an Oracle. The Oracle defines whether an output response from an input is acceptable. It is therefore vital to have an Oracle in testing.

Test failures are caused by faults. A fault is a mistake in the program that led to the failure. Faults in the program will have been created by a mistake made by the programmer. Human mistakes such as these are called errors. Debugging is a term used to describe the fixing  of faults found in the code. Debugging is not testing.

The issue of when to stop testing is an important one. In most cases, indefinitely lasting (never ending) testing would be quite possible. There are various factors which affect the decision to stop testing (or even not to test at all!). Management may want to stop testing in order to avoid delays in a product's release or it being over budget.

Test Criteria determine when testing should stop. They outline the test requirements, often for each phase of testing, from the start. The criteria chosen will be based upon the risks involved with the parts of the system i.e. how likely failures are and what the costs and implications of these failures are.

It is generally the case that programmers are poor at testing their own code. Most software companies have separate test teams for this very reason.

Search for "Software Analysis and Testing" on: Google | Kelkoo | Amazon | eBay (UK) | eBay (US)

Search for "Software Analysis and Testing" on the rest of Computing Students: Software Analysis and Testing






Home | Contact | Shop | Notes | Questions | Programming | Links | Dictionary | Coursework | Tutors Sponsored Links: Affiliate Program Articles | Computer Science Definitions | CS Degree Notes
Copyright © 2005-2006 ComputingStudents.com
This site is to be used in accordance with the ComputingStudents.com User Agreement
Acuras Website and Online Database Development and Management