Introduction To
Software Testing
Testing What’s That?
This is an easily answered question and something that we do
in every day life without thought. But before we go into this, lets
have a nice HOT cup of TEA!
Tea Making Process
Not what you thought eh? Let’s take a look at the Tea making
process and some of the requirements, checks and tests that
we do every day without a second thought.
The process of making tea for a number of visitors can be
broken down into a number of sub-processes.
These are:
Gathering Information on Requirements – sugar, milk etc.
Preparation – making sure the appropriate components and
hardware are available - cup, kettle, water etc.
Distribution – ensuring that each drink ends up with the right
person
Testing within the Tea making
process
If you want to avoid this …..
…. Then it is important to ensure that appropriate checks and
tests are done before and during the process of making and
delivering the tea
Testing Tea making process
So what preparation checks do we want to do?
• Ensure that there are no cracks in the cup
• Ensure that the handle on the cup is not loose
• Ensure that the water has boiled
Testing Tea making process
• Check that the milk has not gone sour in order to avoid
Curdling
Take five minuets to write down other things that you might
want to check during the tea making process
Testing What’s That?
So, following the correct process and performing the
appropriate tests or checks leads to an enjoyable experience ..
A Lovely CUP OF TEA.
So, the reason we tested in this instance was:
• For safety
• To verify that we had met our visitors requirements
• To ensure that the Tea we made was fit for purpose
Right! enough of that, let us have a look at testing in the
Software environment
Fundamentals of testing
The inevitable existence of defects (errors) in software makes
testing necessary. Defect detection and removal can be seen
as the cornerstone of testing, but the overall objectives include:
• Risk measurement
• Risk reduction
• Confidence building
Testers need to know how defects occur because as testers we
must detect these defects. Only by understanding our quarry,
can we prepare effective ways (strategies) to detect them.
Costly Software Failures
Most people have had an experience with software that did not
work as expected. Software that does not work correctly can
lead to many problems, including:
• Loss of money
• Time or business reputation
• Injury or even death
Historical Costly Software
Failures
NIST report, “The Economic Impacts of inadequate Infrastructure for
Software Testing” (2002)
Inadequate software testing costs the US alone between $22 and
$59 billion annually
Better approaches could cut this amount in half
• Symantec says that most security vulnerabilities are due to faulty
software
• NASA’s Mars lander: September 1999, crashed due to a units
integration fault
• Ariane 5 explosion, Mars Polar Lander Pentium FDIV bug
Why testing is necessary
Software systems are an increasing part of life, from business
applications (e.g. Insurance, banking) to consumer products
(e.g. cars). Most people have an experience with software that
did not work as expected.
We conduct testing to:
Learn what a system does or how it behaves
• Assess the quality of a system
• Ensure that a system performs as required
• Demonstrate to the user that a system conforms to
requirements
• Demonstrate to the user that the system matches what they
ordered
Causes of software defects
We test to find a as many defects as we can, to ensure that we
deliver a high quality product with a minimum of defects.
The term “Bug” generally refers to a problem in the software. It
does not have a specific meaning and sometimes we use it
subconsciously to deflect the blame or deflect away from the
real source.
A human being can make an error (mistake), which produces a
defect (defect, bug) in the code in software or a system, or in a
document.
Causes of software defects –
Example 1
The year will probably
Analyst always begin with 19
makes an
error.
Your account is
……. 36,535 days past due.
Payment Char (2); Please pay now to
…….
avoid another late fee
£38,731
The Analyst error becomes a fault The fault may cause a
in software failure at runtime
As depicted above, the analyst makes an error of assuming,
that the year will always begin with 19. This in turn leads to an
error of defining the date as a char(2) field. Hence there occurs
a failure while computing the difference.
Causes of software defects
Computer system may fail due to one or many of the following
reasons:
• Communication or miscommunication – about what an
application does (application requirements)
• Software Complexity – Multi-tiered applications, client-server
and distributed application relational databases and sheer size
of applications have contributed to exponential growth
• Programming errors
• Changing Requirements
• Time Pressures
• Egos
• Poorly documented code
• Environmental conditions
Testing and Quality
Rigorous testing of systems and documentation can help to
reduce the risk of problems occurring in an operational
environment and contribute to the quality of software systems.
Software testing may also be required to meet contractual or
legal requirements, or industry-specific standards.
Testing is done to:
• Verify that it satisfies specified requirements
• Identify differences between expected and actual results
• Determine that it meets required results
• Measure software quality
Testing and Quality
Testing can give confidence in the quality of the software if it
finds few or no defects. A properly designed test that passes
reduces the overall level of risk in a system. When testing does
find defects, the quality of the software system increases when
those defects are fixed.
Tester Skills and Attributes
So what makes a good test organisation? Well, Lets
see:
The brains of the finest to outsmart their design and ferret
out the bugs
The enthusiasm of a wagging tail ... To keep spirits high
even when software crashes and the deadline is close
The Sharpe eyes of an eagle ... To find GUI problems that
will annoy users to the point of distraction.
Tester Skills and Attributes
The Nose of a bloodhound ... To boldly go into even the
smelliest of software to make it safe for humanity
The bravery of a lion .... To face hostile eyes and still
present the awful truth
The skin of a rhino .. To shake off barbs and comments
The empathy of a Labrador .... To feel the pain of the
customer who has to use the software every day
Testing and You
Change Delivery IT and Resourcing [CDT/IT] operate
governance framework of end to end quality assurance and are
currently reviewing and improving processes and procedures in
order to maintain proven success. CDT/IT operate as gate
keepers for production environments to ensure that fit for
purpose components are delivered at each stage.
Your experience gained within the organisation will help in
delivering this competency by leveraging the skills you have
and the knowledge you have gained within your business unit.
Testing and You
So, How can I help?
Testing covers many area’s from End User Test (UAT) to
detailed product knowledge test. We also cover the testing of
processes and Documentation.
You will have developed key skills in these area’s and have
developed a good understanding of business process within
your company. We see these skills as vital part of testing
activity.
Of course you will develop new skills and ongoing
mentoring, training and support to further develop your test
skills.