KEMBAR78
CCS366 Softwares Testing Automation.pptx
CCS366 Software Testing Automation
S.Satheeshkumar
Assistant Professor
Department of IT
Vivekanandha College of Technology for Women
UNIT I FOUNDATIONS OF SOFTWARE TESTING
• Introduction
• Why do we test Software?
• Black-Box Testing and White-Box Testing
• Software Testing Life Cycle
• V-model of Software Testing
• Program Correctness and Verification
• Reliability versus Safety, Failures, Errors and Faults (Defects)
• Software Testing Principles
• Program Inspections
• Stages of Testing: Unit Testing, Integration Testing, System
Testing
Introduction
• A major problem of the software industry is its
inability to develop error-free software.
• Software developers ever been asked to certify
that the software developed is error-free, no
software would have ever been released.
• Hence ‘software crises’ has become a fixture of
everyday life with many well-publicized failures
that have had not only major economic impact
but also have become the cause of loss of life.
Some Software Failures
• The Explosion of the Ariane 5 Rocket
• The Y2K Problem
• The USA Star-Wars Program
• Failure of London Ambulance System
• USS Yorktown Incident
• Accounting Software Failures
• Experience of Windows XP
Testing Process
• Testing is an important aspect of the software development life cycle.
• It is basically the process of testing the newly developed software, prior to
its actual use.
• The program is executed with desired input(s) and the output(s) is/are
observed accordingly.
• The observed output(s) is/are compared with expected output(s). If both
are same, then the program is said to be correct as per specifications,
otherwise there is something wrong somewhere in the program.
• Testing is a very expensive process and consumes one-third to one-half of
the cost of a typical development project.
• It is largely a systematic process but partly intuitive too.
• Hence, good testing process entails much more than just executing a
program a few times to see its correctness.
What is Software Testing?
• There are many definitions of testing. A few of
them are given below:
• (i) Testing is the process of demonstrating that
errors are not present.
• (ii) The purpose of testing is to show that a
program performs its intended functions correctly.
• (iii) Testing is the process of establishing
confidence that a program does what it is
supposed to do.
Software Testing Definition
• “Testing is the process of executing a
program with the intent of finding faults.”
Why do we test Software?
• Software testing is a very expensive and critical activity;
but releasing the software without testing is definitely
more expensive and dangerous.
• The programs are growing in size and complexity. The
most common approach is ‘code and fix’ which is against
the fundamental principles of software engineering
• Find more errors in the early phases of software
development. The cost of removal of such errors will be
very reasonable as compared to those errors which we
may find in the later phases of software development.
Why do we test Software?
• The cost to fix errors increases drastically from the
specification phase to the test phase and finally to the
maintenance phase as shown in Figure below.
Software Development Life Cycle (SDLC)
• Software Development is the development of software for distinct
purposes. For software development, there is a specific programming
language like Java, Python, C/C++, etc. The entire process of software
development isn’t as simple as its definition, it’s a complicated
process. Accordingly, it requires an efficient approach from the
developer in the form of the Software Development Life Cycle (SDLC).
• Proper planning and execution are the key components of a
successful software development process. The entire software
development process includes 6 stages. Software Development Life
Cycle (SDLC) is the common term to summarize these 6 stages.
Software Testing Life Cycle
• The Software Testing Life Cycle (STLC) is a systematic
approach to testing a software application to ensure
that it meets the requirements and is free of
defects. It is a process that follows a series of steps
or phases, and each phase has specific objectives
and deliverables. The STLC is used to ensure that the
software is of high quality, reliable, and meets the
needs of the end-users.
V-model of Software Testing
Stages of Testing: Unit Testing, Integration
Testing, System Testing
Unit under test with stubs and driver
Integration Testing Coupling amongst units
Integration approaches
System Testing
• A system is defined as a combination of the software,
hardware and other associated parts that together provide
product features and solutions.
• System testing ensures that each system function works as
expected and it also tests for non-functional requirements
like performance,security, reliability, stress, load, etc.
• This is the only phase of testing which tests both functional
and non-functional requirements of the system.
• A team of the testing persons does the system testing under
the supervision of a test team leader
Acceptance Testing
• When the testing team feels that the product is ready for the
customer(s), they invite the customer(s) for demonstration.
• After demonstration of the product, customer(s) may like to use the
product to assess their satisfaction and confidence.
• This may range from adhoc usage to systematic well-planned usage
of the product. This type of usage is essential before accepting the
final product. The testing done for the purpose of accepting a
product is known as acceptance testing.
• This may be carried out by the customer(s) or persons authorized by
the customer(s).
• Generally, acceptance testing is carried out at the customer’s site.
Acceptance testing is carried out only when the software is
developed for a particular customer(s).
alpha / beta testing
• If we develop ‘standardised’ software for anonymous users
at large (like operating systems, compilers, case tools,
etc.), then acceptance testing is not feasible.
• In such cases, potential customers are identified to test the
software and this type of testing is called alpha / beta
testing.
• Beta testing is done by many potential customers at their
sites without any involvement of developers / testers.
• However, alpha testing is done by some potential
customers at the developer’s site under the direction and
supervision of developers testers.
Functional Testing & Structural Testing
• https://slideplayer.com/slide/17856883/
Test plan
• The test plan is a by-product of the detailed
planning process that’s undertaken to create
it.
• It’s the planning process that matters, not the
resulting document.
The Goal of Test Planning
• https://slideplayer.com/slide/10322719/
Resource Requirements
• Planning the resource requirements is the process of deciding what’s necessary to
• accomplish the testing strategy. Everything that could possibly be used for testing
• over the course of the project needs to be considered. For example:
• • People. How many, what experience, what expertise? Should they be full-time,
• part-time, contract, students?
• • Equipment. Computers, test hardware, printers, tools.
• • Office and lab space. Where will they be located? How big will they be?
• How will they be arranged?
• • Software. Word processors, databases, custom tools. What will be purchased,
• what needs to be written?
• • Outsource companies. Will they be used? What criteria will be used for
• choosing them? How much will they cost?
• • Miscellaneous supplies. Disks, phones, reference books, training material.
• What else might be necessary over the course of the project?

CCS366 Softwares Testing Automation.pptx

  • 1.
    CCS366 Software TestingAutomation S.Satheeshkumar Assistant Professor Department of IT Vivekanandha College of Technology for Women
  • 2.
    UNIT I FOUNDATIONSOF SOFTWARE TESTING • Introduction • Why do we test Software? • Black-Box Testing and White-Box Testing • Software Testing Life Cycle • V-model of Software Testing • Program Correctness and Verification • Reliability versus Safety, Failures, Errors and Faults (Defects) • Software Testing Principles • Program Inspections • Stages of Testing: Unit Testing, Integration Testing, System Testing
  • 3.
    Introduction • A majorproblem of the software industry is its inability to develop error-free software. • Software developers ever been asked to certify that the software developed is error-free, no software would have ever been released. • Hence ‘software crises’ has become a fixture of everyday life with many well-publicized failures that have had not only major economic impact but also have become the cause of loss of life.
  • 4.
    Some Software Failures •The Explosion of the Ariane 5 Rocket • The Y2K Problem • The USA Star-Wars Program • Failure of London Ambulance System • USS Yorktown Incident • Accounting Software Failures • Experience of Windows XP
  • 5.
    Testing Process • Testingis an important aspect of the software development life cycle. • It is basically the process of testing the newly developed software, prior to its actual use. • The program is executed with desired input(s) and the output(s) is/are observed accordingly. • The observed output(s) is/are compared with expected output(s). If both are same, then the program is said to be correct as per specifications, otherwise there is something wrong somewhere in the program. • Testing is a very expensive process and consumes one-third to one-half of the cost of a typical development project. • It is largely a systematic process but partly intuitive too. • Hence, good testing process entails much more than just executing a program a few times to see its correctness.
  • 6.
    What is SoftwareTesting? • There are many definitions of testing. A few of them are given below: • (i) Testing is the process of demonstrating that errors are not present. • (ii) The purpose of testing is to show that a program performs its intended functions correctly. • (iii) Testing is the process of establishing confidence that a program does what it is supposed to do.
  • 7.
    Software Testing Definition •“Testing is the process of executing a program with the intent of finding faults.”
  • 8.
    Why do wetest Software? • Software testing is a very expensive and critical activity; but releasing the software without testing is definitely more expensive and dangerous. • The programs are growing in size and complexity. The most common approach is ‘code and fix’ which is against the fundamental principles of software engineering • Find more errors in the early phases of software development. The cost of removal of such errors will be very reasonable as compared to those errors which we may find in the later phases of software development.
  • 9.
    Why do wetest Software? • The cost to fix errors increases drastically from the specification phase to the test phase and finally to the maintenance phase as shown in Figure below.
  • 10.
    Software Development LifeCycle (SDLC) • Software Development is the development of software for distinct purposes. For software development, there is a specific programming language like Java, Python, C/C++, etc. The entire process of software development isn’t as simple as its definition, it’s a complicated process. Accordingly, it requires an efficient approach from the developer in the form of the Software Development Life Cycle (SDLC). • Proper planning and execution are the key components of a successful software development process. The entire software development process includes 6 stages. Software Development Life Cycle (SDLC) is the common term to summarize these 6 stages.
  • 11.
    Software Testing LifeCycle • The Software Testing Life Cycle (STLC) is a systematic approach to testing a software application to ensure that it meets the requirements and is free of defects. It is a process that follows a series of steps or phases, and each phase has specific objectives and deliverables. The STLC is used to ensure that the software is of high quality, reliable, and meets the needs of the end-users.
  • 12.
  • 13.
    Stages of Testing:Unit Testing, Integration Testing, System Testing
  • 14.
    Unit under testwith stubs and driver
  • 15.
  • 16.
  • 17.
    System Testing • Asystem is defined as a combination of the software, hardware and other associated parts that together provide product features and solutions. • System testing ensures that each system function works as expected and it also tests for non-functional requirements like performance,security, reliability, stress, load, etc. • This is the only phase of testing which tests both functional and non-functional requirements of the system. • A team of the testing persons does the system testing under the supervision of a test team leader
  • 18.
    Acceptance Testing • Whenthe testing team feels that the product is ready for the customer(s), they invite the customer(s) for demonstration. • After demonstration of the product, customer(s) may like to use the product to assess their satisfaction and confidence. • This may range from adhoc usage to systematic well-planned usage of the product. This type of usage is essential before accepting the final product. The testing done for the purpose of accepting a product is known as acceptance testing. • This may be carried out by the customer(s) or persons authorized by the customer(s). • Generally, acceptance testing is carried out at the customer’s site. Acceptance testing is carried out only when the software is developed for a particular customer(s).
  • 19.
    alpha / betatesting • If we develop ‘standardised’ software for anonymous users at large (like operating systems, compilers, case tools, etc.), then acceptance testing is not feasible. • In such cases, potential customers are identified to test the software and this type of testing is called alpha / beta testing. • Beta testing is done by many potential customers at their sites without any involvement of developers / testers. • However, alpha testing is done by some potential customers at the developer’s site under the direction and supervision of developers testers.
  • 20.
    Functional Testing &Structural Testing • https://slideplayer.com/slide/17856883/
  • 21.
    Test plan • Thetest plan is a by-product of the detailed planning process that’s undertaken to create it. • It’s the planning process that matters, not the resulting document.
  • 22.
    The Goal ofTest Planning • https://slideplayer.com/slide/10322719/
  • 23.
    Resource Requirements • Planningthe resource requirements is the process of deciding what’s necessary to • accomplish the testing strategy. Everything that could possibly be used for testing • over the course of the project needs to be considered. For example: • • People. How many, what experience, what expertise? Should they be full-time, • part-time, contract, students? • • Equipment. Computers, test hardware, printers, tools. • • Office and lab space. Where will they be located? How big will they be? • How will they be arranged? • • Software. Word processors, databases, custom tools. What will be purchased, • what needs to be written? • • Outsource companies. Will they be used? What criteria will be used for • choosing them? How much will they cost? • • Miscellaneous supplies. Disks, phones, reference books, training material. • What else might be necessary over the course of the project?