Image description

About         Home              Magzines             Interview           Downloads           Contact

What is testing?

Most of the people say that testing is the process of finding defects in application but in real sense
testing is finding the gap between actual and expected to maintain the quality.

What is Quality?

Quality is conformance to requirements. If a product is fulfilling user's requirement and developed within time and

 budget then the product is quality product. 

7 Principles of Software Testing

As software development techniques have advanced during the last decades, some basic principles of testing have 

also been established. Describing theoretical ideas and practical hints, these principles are basic guideline for testing. 

Testing shows presence of errors

In general, testing proves the presence of errors. Sufficient testing reduces the likelihood of existing, not discovered 

error conditions within the test object. It does not verify that no more bugs exist, even if no more errors can be found.

Testing is not a prove that the system is free of errors.

Exhaustive testing is not possible

An exhaustive test which considers all possible input parameters, their combinations and different pre-conditions can 

not be accomplished (except for trivial test objects). Test are always spot tests. Therefore, the effort must be managed 

by risk, priorities and thoughtful selection.

Early Testing

Testing activities should begin as early as possible within the software life cycle. They should be repeated regularly and 

have its’ own agenda. Early testing helps detecting errors at an early stage of the development process which simplifies 

error correction (and reduces the costs for this work).

Defect clustering

Testing effort shall be focused proportionally to the expected and later observed defect density of
modules. A small number of modules usually contains most of the defects discovered during prerelease
testing, or is responsible for most of the operational failures.

Pesticide paradox

If the same tests are repeated over and over again, eventually the same set of test cases will no
longer find any new defects. To overcome this “pesticide paradox”, test cases need to be regularly
reviewed and revised, and new and different tests need to be written to exercise different parts of
the software or system to find potentially more defects.

Testing is context dependent

No two systems are the same and therefore can not be tested the same way. Testing intensity, the definition of end 

criteria etc.must be defined individually for each system depending on its testing context. E-commerce websites require a different approach than online-banking applications.

Absence-of-errors fallacy

Finding and fixing defects does not help if the system built is unusable and does not fulfill the users
needs and expectations.



Bookmark and Share

Fundamentals of Testing

Why Software testing is necessary?
An error is a human action that produces an incorrect result. A fault is a manifestation of an error in software (also known 
as a defect or bug). A fault, if encountered, may cause a failure, which is a deviation of the software from its expected 
delivery or service. Reliability is the probability that software will not cause the failure of a system for a specified time under
 specified conditions. Errors occur because we are not perfect and, even if we were, we are working under 
constraints such as delivery deadlines.

Testing identifies faults, whose removal increases the software quality by increasing the software’s potential reliability. Testing is
the measurement of software quality. We measure how closely we have achieved quality by testing the relevant factors such as
correctness, reliability, usability, maintainability, reusability, testability, etc.

Other factors that may determine the testing performed may be contractual requirements, or legal requirements, normally defined in industry-specific standards, or based on agreed best practice (or more realistically non negligent practice).

Though It is very difficult to determine how much testing is enough because sometimes A single failure can cost nothing or a lot. Software in safety-critical systems can cause death or injury if it fails, so the cost of a failure in such a system may be in human lives. 

The amount of testing performed depends on the risks involved. Risk must be used as the basis for allocating the test time that is available and for selecting what to test and where to place emphasis.