Testing Basics
Learning Objectives
 What Testing is
 Why it is needed
 Basic terms to be Known
 Cost of Testing
 Need of Domain Knowledge
 Need of Static Testing
 Need of White Box Testing
 Need of Black Box Testing
 What Static / WB / BB Reveal and
 Why they are Complementary
INTRODUCTION TO TESTING
Software products are integral part of our lives. We cannot
imagine doing without them. They are used in Banks,
Telecom, Retail, Hospitals etc .However if defects are
encountered in them they can lead loss of money, time,
business reputation and can even result in injury or death.
Some of the Major disasters seen due to defects in software
are:
Disaster: Canada’s radiation therapy machine malfunctioned
and delivered lethal radiation doses to patients. Three people
Therac-25 died and three were critically injured due to it.
Cause: Due to race condition defect, a technician could
accidentally configure Therac-25 so the electron beam would
fire in high-power mode without the proper patient shielding
INTRODUCTION TO TESTING
Disaster: Businesses spent billions on programmers to fix Y2K bug.
Cause:  To save computer storage space, legacy software often stored
the year for dates as two digit numbers, such as “99″ for 1999.  The
software also interpreted “00″ to mean 1900 rather than 2000, so when
the year 2000 came along, bugs would result.
Cost:  $475 million, corporate credibility
Disaster:  Intel’s Pentium chip occasionally made mistakes when
dividing floating-point numbers within a specific range. For example,
dividing 4195835.0/3145727.0 yielded 1.33374 instead of 1.33382, an
error of 0.006. Intel replaced the chips for anyone who complained. It cost
them $475 million, corporate credibility.
Cause:  The divider in the Pentium floating point unit had a flawed
division table, missing about five of a thousand entries and resulting in
these rounding errors. 
WHY DO DEFECTS OCCUR?
Incorrect and incomplete and misunderstood specification.
Defects occur because human beings have tendency to
make mistakes.
Due to time pressure programmers don’t get enough time to
check their code.
Some of the tasks are inherently complex.
Failures are also caused by environmental conditions such
as: radiation, magnetism, electronic fields
Faults in firmware can influence execution of software.
Changing requirements/Late design changes result in
change of code which is bound to have defects.
When one programmer tries to change another
programmer’s code, errors occur due to miscommunication.
Cost of Defects:
Defect detected and corrected in earlier and same phase will cost
less as compared to defect detected and corrected in latter stages.
Problem amplifies as it percolates to the later stages.
The costs are Logarithmic that is it increases ten folds as the time
increases.
INTRODUCTION TO TESTING
What is testing?
Have you done testing before?
NEED OF TESTING?
 Find defects.
 Access quality of the product.
 Build confidence in product.
 Certify to standards.
 Meet customer’s requirements.
 Minimize time and cost
 Find scenarios for smooth working of software inspite of
defects.
 Avoid being sued by customer.
SOME TERMS AND TERMINOLOGIES
RELATED TO SOFTWARE TESTING:
Testing and Debugging.
QA and QC.
Product and Project.
Error, Defect (Bug) and Failure.
TESTING AND DEBUGGING.
Testing:
Testing is done to find defects in the software.
Debugging:
Debugging is done to find, analyse and remove causes of failure in
software.
QA AND QC.
Quality Assurance:
A planned and systematic set of activities necessary to
provide adequate confidence that requirements are
properly established and products or services conform to
specified requirements.
Quality Control:
The process by which product quality is compared with
applicable standards; and the action taken when non-
conformance is detected.
Difference between Product and Project.
Product (COTS):
Software made for general market e.g. Windows, Adobe products.
Project:
Software made for specific customer.
Definition
Error (Mistake):
A human action that produces an incorrect result.
Defect (Bug, Fault):
A flaw in a component or system that can cause the component
or system to fail to perform its required function. e.g. an incorrect
statement or data definition. A defect, if encountered during
execution, may cause a failure of the component or system.
Failure:
Deviation of the component of the system from its expected
delivery, services or result.
-Fo undatio n o f So ftware te sting
TYPES OF TESTING
 Manual and Automation testing.
 Static and Dynamic testing.
 Black and White box testing.
 Retesting and Regression testing.
 Functional and Non-Functional testing.
 Exhausting testing.
Manual and Automation
testing
Manual testing:
Testing that requires human input and analysis.
Automation testing:
Testing software with aid tool (software used for testing) e.g. of
tools are QTP, Load runner etc.
Black Box and White Box Testing
Black Box/Behavioral testing/I/O driven:
Testing the software without knowing the internal working of the
software.
White Box/Clear Box/Structural Testing/code driven
testing:
Testing the internal structure of the software (Unit) .
It is also known as Code driven testing.
Retesting and Regression Testing
Retesting:
Rerunning of tests that failed earlier in order to verify the success
of corrective action.
Regression testing:
Testing of the previously tested program following modification to
ensure that defects have not been introduced in the unchanged
areas of software due to the changes made.
Static and Dynamic testing
Static testing:
Testing software without executing/running it.
Dynamic testing:
Testing software by executing/running it.
Functional and Non-Functional Testing
Functional Testing:
Testing the functionality of a component or system based on the
specification.
Non-Functional Testing:
Testing attributes of the component or system apart from
functionality.
e.g. performance, usability, maintainability, portability
Exhaustive testing
Testing with combination of all input values and
preconditions.
Characteristics of a Good Tester.
 They are explorers.
 They are troubleshooters.
 They are relentless.
 They are creative.
 They are (mellowed) perfectionists.
 They exercise good judgment.
 They are tactful and diplomatic.
 They are persuasive.
What good testers do?
 Desired results from planned efforts
 Being productive without waste
 Being in the right context
 Channelizing the testing efforts
 Being creative and smart
 Thought process with a difference
How to achieve it?
 Goals for testing activities:
 Knowing the quality and Risk of the system we are
testing.
 Enough information to concerned stakeholders like
developers etc.
 Help management understand system quality
 Project subjective goals team wants to achieve?
How good testers work
 Keeping information about the most
important aspects of overall system
 Provide developers the information which
help them complete tasks efficiently
 Help Management understand the
concepts of Testing and Quality
What Is the Right Level of Efficiency?
Cconformance = Testing (Finding Bugs) + QA
(Preventing Bugs)
Cnonconformance = Fixing Bugs+Retesting+Customer
dissatisfaction+ Lost bussiness etc.
Cquality= Cconformance + Cnonconformance
Role of the Tester
 Lessons learned in S/W testing-Kaner
 Tester is headlight of a project
 Mission drives everything tester do
 Tester serves many clients (like manager, developer, user
etc.)
 Find important bugs fast
 Run with the programmers
 Question everything, but not necessarily loud.
 Focus on failures. You will not find all bugs.
 Beware of testing “Completely”
Role of the Tester
 Lessons learned in S/W testing-Kaner
 You don’t assure quality by testing
 Never be a gatekeeper
 Beware of the not-my-job theory of testing
 Don’t expect anyone to understand testing.
 You focus on failures so that client can focus on success.
 Always remember Good Testers think technically,
creatively, critically and practically.
Limits of testing
 You cannot test a program completely
 The domain of possible inputs is too large to test
 There are too many possible paths
 The UI issues are too complex to test
 You cannot find every design error
 You can’t prove programs correct using logic
 You have to check that the system is good enough
 Good enough means an acceptable level of quality problems
and risks remain
So Why Test?
 The Purpose of Testing a program is to find problems
in it.
 The purpose of finding problems is to get them fixed.
 Always remember-A test that reveals a problem is a
success. A test that did not reveal a problem was a
waste of time.
What Does “Quality” Mean to You?
 A definition from J. M. Juran:
Fitness for use. Features [that] are decisive as to product
performance and as to ‘product satisfaction’…. The word
‘quality’ also refers to freedom from deficiencies…[that]
result in complaints, claims, returns, rework and other
damage. Those collectively are forms of ‘product
dissatisfaction.’
 Fitness for use by who m ?
 Testing looks for the presence or absence of
deficiencies
 What happens when Quality is lacking.

Industrial Training in Software Testing

  • 1.
  • 2.
    Learning Objectives  WhatTesting is  Why it is needed  Basic terms to be Known  Cost of Testing  Need of Domain Knowledge  Need of Static Testing  Need of White Box Testing  Need of Black Box Testing  What Static / WB / BB Reveal and  Why they are Complementary
  • 3.
    INTRODUCTION TO TESTING Softwareproducts are integral part of our lives. We cannot imagine doing without them. They are used in Banks, Telecom, Retail, Hospitals etc .However if defects are encountered in them they can lead loss of money, time, business reputation and can even result in injury or death. Some of the Major disasters seen due to defects in software are: Disaster: Canada’s radiation therapy machine malfunctioned and delivered lethal radiation doses to patients. Three people Therac-25 died and three were critically injured due to it. Cause: Due to race condition defect, a technician could accidentally configure Therac-25 so the electron beam would fire in high-power mode without the proper patient shielding
  • 4.
    INTRODUCTION TO TESTING Disaster:Businesses spent billions on programmers to fix Y2K bug. Cause:  To save computer storage space, legacy software often stored the year for dates as two digit numbers, such as “99″ for 1999.  The software also interpreted “00″ to mean 1900 rather than 2000, so when the year 2000 came along, bugs would result. Cost:  $475 million, corporate credibility Disaster:  Intel’s Pentium chip occasionally made mistakes when dividing floating-point numbers within a specific range. For example, dividing 4195835.0/3145727.0 yielded 1.33374 instead of 1.33382, an error of 0.006. Intel replaced the chips for anyone who complained. It cost them $475 million, corporate credibility. Cause:  The divider in the Pentium floating point unit had a flawed division table, missing about five of a thousand entries and resulting in these rounding errors. 
  • 5.
    WHY DO DEFECTSOCCUR? Incorrect and incomplete and misunderstood specification. Defects occur because human beings have tendency to make mistakes. Due to time pressure programmers don’t get enough time to check their code. Some of the tasks are inherently complex. Failures are also caused by environmental conditions such as: radiation, magnetism, electronic fields Faults in firmware can influence execution of software. Changing requirements/Late design changes result in change of code which is bound to have defects. When one programmer tries to change another programmer’s code, errors occur due to miscommunication.
  • 6.
    Cost of Defects: Defectdetected and corrected in earlier and same phase will cost less as compared to defect detected and corrected in latter stages. Problem amplifies as it percolates to the later stages. The costs are Logarithmic that is it increases ten folds as the time increases.
  • 7.
    INTRODUCTION TO TESTING Whatis testing? Have you done testing before?
  • 8.
    NEED OF TESTING? Find defects.  Access quality of the product.  Build confidence in product.  Certify to standards.  Meet customer’s requirements.  Minimize time and cost  Find scenarios for smooth working of software inspite of defects.  Avoid being sued by customer.
  • 9.
    SOME TERMS ANDTERMINOLOGIES RELATED TO SOFTWARE TESTING: Testing and Debugging. QA and QC. Product and Project. Error, Defect (Bug) and Failure.
  • 10.
    TESTING AND DEBUGGING. Testing: Testingis done to find defects in the software. Debugging: Debugging is done to find, analyse and remove causes of failure in software.
  • 11.
    QA AND QC. QualityAssurance: A planned and systematic set of activities necessary to provide adequate confidence that requirements are properly established and products or services conform to specified requirements. Quality Control: The process by which product quality is compared with applicable standards; and the action taken when non- conformance is detected.
  • 12.
    Difference between Productand Project. Product (COTS): Software made for general market e.g. Windows, Adobe products. Project: Software made for specific customer.
  • 13.
    Definition Error (Mistake): A humanaction that produces an incorrect result. Defect (Bug, Fault): A flaw in a component or system that can cause the component or system to fail to perform its required function. e.g. an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system. Failure: Deviation of the component of the system from its expected delivery, services or result. -Fo undatio n o f So ftware te sting
  • 14.
    TYPES OF TESTING Manual and Automation testing.  Static and Dynamic testing.  Black and White box testing.  Retesting and Regression testing.  Functional and Non-Functional testing.  Exhausting testing.
  • 15.
    Manual and Automation testing Manualtesting: Testing that requires human input and analysis. Automation testing: Testing software with aid tool (software used for testing) e.g. of tools are QTP, Load runner etc.
  • 16.
    Black Box andWhite Box Testing Black Box/Behavioral testing/I/O driven: Testing the software without knowing the internal working of the software. White Box/Clear Box/Structural Testing/code driven testing: Testing the internal structure of the software (Unit) . It is also known as Code driven testing.
  • 17.
    Retesting and RegressionTesting Retesting: Rerunning of tests that failed earlier in order to verify the success of corrective action. Regression testing: Testing of the previously tested program following modification to ensure that defects have not been introduced in the unchanged areas of software due to the changes made.
  • 18.
    Static and Dynamictesting Static testing: Testing software without executing/running it. Dynamic testing: Testing software by executing/running it.
  • 19.
    Functional and Non-FunctionalTesting Functional Testing: Testing the functionality of a component or system based on the specification. Non-Functional Testing: Testing attributes of the component or system apart from functionality. e.g. performance, usability, maintainability, portability
  • 20.
    Exhaustive testing Testing withcombination of all input values and preconditions.
  • 21.
    Characteristics of aGood Tester.  They are explorers.  They are troubleshooters.  They are relentless.  They are creative.  They are (mellowed) perfectionists.  They exercise good judgment.  They are tactful and diplomatic.  They are persuasive.
  • 22.
    What good testersdo?  Desired results from planned efforts  Being productive without waste  Being in the right context  Channelizing the testing efforts  Being creative and smart  Thought process with a difference
  • 23.
    How to achieveit?  Goals for testing activities:  Knowing the quality and Risk of the system we are testing.  Enough information to concerned stakeholders like developers etc.  Help management understand system quality  Project subjective goals team wants to achieve?
  • 24.
    How good testerswork  Keeping information about the most important aspects of overall system  Provide developers the information which help them complete tasks efficiently  Help Management understand the concepts of Testing and Quality
  • 25.
    What Is theRight Level of Efficiency? Cconformance = Testing (Finding Bugs) + QA (Preventing Bugs) Cnonconformance = Fixing Bugs+Retesting+Customer dissatisfaction+ Lost bussiness etc. Cquality= Cconformance + Cnonconformance
  • 26.
    Role of theTester  Lessons learned in S/W testing-Kaner  Tester is headlight of a project  Mission drives everything tester do  Tester serves many clients (like manager, developer, user etc.)  Find important bugs fast  Run with the programmers  Question everything, but not necessarily loud.  Focus on failures. You will not find all bugs.  Beware of testing “Completely”
  • 27.
    Role of theTester  Lessons learned in S/W testing-Kaner  You don’t assure quality by testing  Never be a gatekeeper  Beware of the not-my-job theory of testing  Don’t expect anyone to understand testing.  You focus on failures so that client can focus on success.  Always remember Good Testers think technically, creatively, critically and practically.
  • 28.
    Limits of testing You cannot test a program completely  The domain of possible inputs is too large to test  There are too many possible paths  The UI issues are too complex to test  You cannot find every design error  You can’t prove programs correct using logic  You have to check that the system is good enough  Good enough means an acceptable level of quality problems and risks remain
  • 29.
    So Why Test? The Purpose of Testing a program is to find problems in it.  The purpose of finding problems is to get them fixed.  Always remember-A test that reveals a problem is a success. A test that did not reveal a problem was a waste of time.
  • 30.
    What Does “Quality”Mean to You?  A definition from J. M. Juran: Fitness for use. Features [that] are decisive as to product performance and as to ‘product satisfaction’…. The word ‘quality’ also refers to freedom from deficiencies…[that] result in complaints, claims, returns, rework and other damage. Those collectively are forms of ‘product dissatisfaction.’  Fitness for use by who m ?  Testing looks for the presence or absence of deficiencies  What happens when Quality is lacking.