INTRODUCTION
TO
SOFTWARETESTING
SOFTWARE TESTING
 Software testing is a process used to identify the correctness,
completeness and quality of developed computer software.
 It is a process of executing a program / application under positive
and negative conditions by mutual or automated means. It checks
for the:-
Specification
Functionality
Performance
WHY SOFTWARE TESTING ?
 Software testing is important as it may cause mission failure,
impact on operational performance and reliability if not done
properly
 Effective software testing delivers quality software products
satisfying user’s requirements, needs and expectations.
WHO SHOULD TEST ?
 In the IT industry, large companies have a team with
responsibilities to evaluate the developed software in context of
the given requirements.
 Moreover, developers also conduct testing which is called Unit
Testing.
 In most cases, the following professionals are involved in testing a
system within their respective capacities:
• Software Tester
• Software Developer
• Project Lead/Manager
• End User
 Different companies have different designations for people who
test the software on the basis of their experience and knowledge
such as Software Tester, Software Quality Assurance Engineer,
QAAnalyst, etc.
WHEN TO START TESTING ?
 An early start to testing reduces the cost and time to rework and
produce error-free software that is delivered to the client.
 It also depends on the development model that is being used.
 For example, in the Waterfall model, formal testing is conducted
in the testing phase; but in the incremental model, testing is
performed at the end of every increment/iteration and the whole
application is tested at the end.
 Testing is done in different forms at every phase of SDLC:
• During the requirement gathering phase, the analysis and
verification of requirements are also considered as testing.
• Reviewing the design in the design phase with the intent to
improve the design is also considered as testing.
• Testing performed by a developer on completion of the code is
also categorized as testing.
WHEN TO STOP TESTING ?
It is difficult to determine when to stop testing, as testing is a never-ending
process and no one can claim that a software is 100% tested. The following
aspects are to be considered for stopping the testing process:
• Testing Deadlines
• Completion of test case execution
• Completion of functional and code coverage to a certain point
• Bug rate falls below a certain level and no high-priority bugs are identified
• Management decision
VERIFICATION
 Verification is the process of confirming that – software meets its
specification , done through inspection and walkthroughs.
USE – To identify defects in the product early in the life cycle.
VALIDATION
 Validation is the process confirming that it meets the user’s
requirement. It is actual testing.
VERIFICATION :
VALIDATION :
IS THE PRODUCT RIGHT
IS THE RIGHT PRODUCT
WHAT………??????
.......IS AN “ERROR” ????
…IS A “BUG” ??
…IS FAULT, FAILURE????
BUG, FAULT & FAILURE
QA VERSUS QC
QUALITY ASSURANCE QUALITY CONTROL
TYPES OF TESTING
Manual Testing
 Manual testing includes testing a software manually, i.e., without using any
automated tool or any script.
 In this type, the tester takes over the role of an end-user and tests the
software to identify any unexpected behavior or bug. There are different
stages for manual testing such as unit testing, integration testing, system
testing, and user acceptance testing.
 Testers use test plans, test cases, or test scenarios to test a software to ensure
the completeness of testing. Manual testing also includes exploratory
testing, as testers explore the software to identify errors in it.
2.Automation Testing
• Automation testing, which is also known as Test Automation, is
when the tester writes scripts and uses another software to test the
product. This process involves automation of a manual process.
Automation Testing is used to re-run the test scenarios that were
performed manually, quickly, and repeatedly.
• Apart from regression testing, automation testing is also used to test
the application from load, performance, and stress point of view. It
increases the test coverage, improves accuracy, and saves time and
money in comparison to manual testing.
METHODS OF TESTING
1. BLACK BOX TESTING
 No knowledge of internal program design or code required.
 Test are based on requirements and functionality.
2. WHITE BOX TESTING
 Knowledge of the internal program design and code required.
 Tests are based on coverage of code statements, branches,
paths, and condition.
LEVELS OF TESTING
 There are four levels of software testing:
1. Unit testing
2. Integration testing
3. System testing
4. Acceptance testing
UNIT TESTING
INTEGRATION TESTING
SYSTEM TESTING
ACCEPTANCE TESTING
ALPHA TESTING
 This test is the first stage of testing and will be performed amongst the
teams (developer and QA teams). Unit testing, integration testing and
system testing when combined together is known as alpha testing.
During this phase, the following aspects will be tested in the application:
• Spelling Mistakes
• Broken Links
• Cloudy Directions
• The Application will be tested on machines with the lowest specification to
test loading times and any latency problems.
BETA TESTING
 This test is performed after alpha testing has been successfully performed.
 In beta testing, a sample of the intended audience tests the application.
 Beta testing is also known as pre-release testing.
 Beta test versions of software are ideally distributed to a wide audience on
the Web, partly to give the program a "real-world" test and partly to provide
a preview of the next release.
TEST PLAN
 A test plan is a systematic approach to testing a system i.e.,
software .
 The plan typically contains a detailed understanding of what the
eventual testing workflow will be.
TEST CASE
 A test case is a specific procedure of testing a particular
requirement .
 It will include:
 identification of specific requirement tested
 test case success/failure criteria
 Specific steps to execute
 test data
THANK YOU

Software testing

  • 1.
  • 3.
    SOFTWARE TESTING  Softwaretesting is a process used to identify the correctness, completeness and quality of developed computer software.  It is a process of executing a program / application under positive and negative conditions by mutual or automated means. It checks for the:- Specification Functionality Performance
  • 4.
    WHY SOFTWARE TESTING?  Software testing is important as it may cause mission failure, impact on operational performance and reliability if not done properly  Effective software testing delivers quality software products satisfying user’s requirements, needs and expectations.
  • 5.
    WHO SHOULD TEST?  In the IT industry, large companies have a team with responsibilities to evaluate the developed software in context of the given requirements.  Moreover, developers also conduct testing which is called Unit Testing.
  • 6.
     In mostcases, the following professionals are involved in testing a system within their respective capacities: • Software Tester • Software Developer • Project Lead/Manager • End User  Different companies have different designations for people who test the software on the basis of their experience and knowledge such as Software Tester, Software Quality Assurance Engineer, QAAnalyst, etc.
  • 7.
    WHEN TO STARTTESTING ?  An early start to testing reduces the cost and time to rework and produce error-free software that is delivered to the client.  It also depends on the development model that is being used.  For example, in the Waterfall model, formal testing is conducted in the testing phase; but in the incremental model, testing is performed at the end of every increment/iteration and the whole application is tested at the end.
  • 8.
     Testing isdone in different forms at every phase of SDLC: • During the requirement gathering phase, the analysis and verification of requirements are also considered as testing. • Reviewing the design in the design phase with the intent to improve the design is also considered as testing. • Testing performed by a developer on completion of the code is also categorized as testing.
  • 9.
    WHEN TO STOPTESTING ? It is difficult to determine when to stop testing, as testing is a never-ending process and no one can claim that a software is 100% tested. The following aspects are to be considered for stopping the testing process: • Testing Deadlines • Completion of test case execution • Completion of functional and code coverage to a certain point • Bug rate falls below a certain level and no high-priority bugs are identified • Management decision
  • 10.
    VERIFICATION  Verification isthe process of confirming that – software meets its specification , done through inspection and walkthroughs. USE – To identify defects in the product early in the life cycle.
  • 11.
    VALIDATION  Validation isthe process confirming that it meets the user’s requirement. It is actual testing.
  • 12.
    VERIFICATION : VALIDATION : ISTHE PRODUCT RIGHT IS THE RIGHT PRODUCT
  • 13.
    WHAT………?????? .......IS AN “ERROR”???? …IS A “BUG” ?? …IS FAULT, FAILURE????
  • 14.
    BUG, FAULT &FAILURE
  • 15.
    QA VERSUS QC QUALITYASSURANCE QUALITY CONTROL
  • 16.
    TYPES OF TESTING ManualTesting  Manual testing includes testing a software manually, i.e., without using any automated tool or any script.  In this type, the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. There are different stages for manual testing such as unit testing, integration testing, system testing, and user acceptance testing.  Testers use test plans, test cases, or test scenarios to test a software to ensure the completeness of testing. Manual testing also includes exploratory testing, as testers explore the software to identify errors in it.
  • 17.
    2.Automation Testing • Automationtesting, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. This process involves automation of a manual process. Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly. • Apart from regression testing, automation testing is also used to test the application from load, performance, and stress point of view. It increases the test coverage, improves accuracy, and saves time and money in comparison to manual testing.
  • 18.
    METHODS OF TESTING 1.BLACK BOX TESTING  No knowledge of internal program design or code required.  Test are based on requirements and functionality.
  • 19.
    2. WHITE BOXTESTING  Knowledge of the internal program design and code required.  Tests are based on coverage of code statements, branches, paths, and condition.
  • 20.
    LEVELS OF TESTING There are four levels of software testing: 1. Unit testing 2. Integration testing 3. System testing 4. Acceptance testing
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    ALPHA TESTING  Thistest is the first stage of testing and will be performed amongst the teams (developer and QA teams). Unit testing, integration testing and system testing when combined together is known as alpha testing. During this phase, the following aspects will be tested in the application: • Spelling Mistakes • Broken Links • Cloudy Directions • The Application will be tested on machines with the lowest specification to test loading times and any latency problems.
  • 26.
    BETA TESTING  Thistest is performed after alpha testing has been successfully performed.  In beta testing, a sample of the intended audience tests the application.  Beta testing is also known as pre-release testing.  Beta test versions of software are ideally distributed to a wide audience on the Web, partly to give the program a "real-world" test and partly to provide a preview of the next release.
  • 27.
    TEST PLAN  Atest plan is a systematic approach to testing a system i.e., software .  The plan typically contains a detailed understanding of what the eventual testing workflow will be.
  • 28.
    TEST CASE  Atest case is a specific procedure of testing a particular requirement .  It will include:  identification of specific requirement tested  test case success/failure criteria  Specific steps to execute  test data
  • 29.