Testing, in common man terms is termed
as the process to identify if a product is fit and ready to use and if it is
meeting the requirements of the customer. Say for example a bike or any two
wheelers is tested in the factory to check if it is meeting the expectations
before launching in the market for sales.
What
is Software Testing?
Testing a software is also similar to
the one which is discussed above. It is the “Process of testing the software to
confirm it is defect free and fit to use”. Also it is done to ensure customer’s
requirements are met.
Why
do Software Failures or Crash Occurs?
·
When
the software is used incorrectly by the end user it will result in the
malfunction of the software, which results in the failure of the software.
·
When
there is error in the development process of the software itself then it will
have defect and will not work as per the requirements.
·
These
failures are called as Bugs or Defects or Faults.
Why
do we need Testing?
All the softwares are developed to meet
the customer requirements or end user’s needs. Let’s assume if some banking
software in operation is launched without testing, assume that it fails to
operate in a specific mode on a particular day and dissatisfies the customer.
Here
the First parameter to be taken into consideration is the Risk involved; in
this case it is very high, even unacceptable as banking is one of the critical
domains with lot of sensitivity around it.
Next,
the failure will result in the loss of reputation for the company and also it
will lead to financial loss in terms of fixing the defect and also in terms of
operational losses.
In order to avoid all these problems,
proper testing to be carried even before the product is put into live use.
Phases
in Software testing
Unlike other testing in other products
software testing has various phase beginning from the time the software
development begins. Software testing is not a single activity it is a process.
The various phases of testing can be
roughly given as follows,
Planning - Identifying the basic requirements
and outline sketch of the testing to be carried out.
Preparation - Here the various base lines for the
testing is defined such as Test design and test cases are derived here.
Evaluation - then the designed test
cases are executed and desired outcomes are identified and evaluated
Testing
Principles
The various testing principles are
discussed below,
Testing shows presence of defects
Testing can show that defects are present, but cannot prove
that there are no defects. Testing reduces the probability of undiscovered
defects remaining in the software but, even if no defects are found, it is not
a proof of correctness.
Exhaustive testing is impossible
Testing everything (all combinations of inputs and
preconditions) is not feasible except for trivial cases. Instead of exhaustive
testing, we use risks and priorities to focus testing efforts.
Early testing
Testing activities should start as early as possible in the
software or system development life cycle and should be focused on defined objectives.
Defect clustering
A small number of modules contain most of the defects
discovered during pre-release testing or show the most operational failures.
Pesticide paradox
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 bugs. To
overcome this 'pesticide paradox', the 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 potentially find more defects.
Testing is context dependent
Testing is done differently in different contexts. For
example, safety-critical software is tested differently from an e-commerce
site.
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.
No comments:
Post a Comment