Fundamentals of Software
Testing
What is Software Testing ?
• Software Testing is an activity to detect bug/issues by checking actual result
and matching it with expected result to make software product defect free.
• Software Testing does not assure that product is defect free.
• It is also verification of Application under Test (AUT).
• Testing can be performed Manually or by Automation Tools.
• There are basically 3 types of testing Black Box, White Box and Grey Box
Testing.
Black Box Testing White Box Testing
Objective is to test the Functionality or Behavior
of the application.
Objective is to test the infrastructure of the
application.
All possible inputs cannot be covered in testing. Each path can be tested thoroughly.
Testing can be done without any coding
knowledge .
Testing requires knowledge of internal structure and
coding knowledge .
Testing performed after Requirement
Specification document .
Testing performed after Detail Designed document .
Boundary Value Analysis, Equivalence
Partitioning, Error Guessing etc. are the testing
technique used in Black box testing
Conditional Testing, Data Flow Testing, Loop Testing
etc. are the testing technique used in White box
testing
Tough to automate . Since , Testing and
programming are dependent.
Easy to Automate
Levels of Testing
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Unit Testing
• It is a Level of testing where Individual units/ component of software are tested.
• Each unit of software is validated . Unit is considered as the smallest testable
element of software.
• Individual program, function, procedure, etc. can be units of Procedural
programming.
• Whereas, in OOPS (object-oriented programming) smallest unit can be a
method, which may belong to a base/ super class, abstract class or derived/
child class.
Unit Testing (contd.)
• It is done using tools or framework for particular programming
language.
• Development Environment and Test Environment should be different.
• Test Data should be similar to Production data.
• Focuses on Impact or Behavior of the System.
Integration Testing
• Software modules are integrated logically and tested as a group.
• Integration Testing is also termed as thread testing or String
Testing.
• Testing of Communication between two or more unit or functions.
• Test case in Integration testing focuses mainly on the interfaces &
flow of data information.
Integration Testing (contd.)
• Testing is performed on Individual structure and by performed programmers.
• Integration Testing is necessary because one module can have effects on another
module.
• Interfacing errors are detected .
Approaches of Integration
Testing
• Top Down Approach – testing starts with high level system at the
top level and integrates from top down by replacing individual
components by stubs.
• Main control modules which integrates is called drivers and individual
components that are replaced are called stubs.
• After tests are conducted stubs are replaced by individual modules.
• Top down approach is easier to implement for testing than bottom up
Approach.
Bottom up Approach
• Approach is to test lowest level element and then after it facilitate
highest level components.
• Fault localization is easier.
• Time is utilized because it is not required to wait for all modules to be
developed.
• Critical Modules are tested later which may be prone to defects.
Big Bang Approach
• Components are integrated and then tested.
• Type of Approach convenient for small systems.
• Fault localization is difficult.
• Presupposes simultaneous checking of all system components.
System Testing
• System is a form of testing conducted on completely integrated system or
software to validate specified requirement.
• Specification are checked to validate end to end compliance of software .
• Testing conducted on whole system by referring either functional
requirement or System Requirement or sometimes both.
• System Testing is performed by independent test team that helps to test
the quality of the system impartial.
System Testing Process
Test
Environment
Setup
Test Cases
Preparation
Test Data
Preparation
Test Case
Execution
Defect
Reporting
Regression
Testing
Logging of DefectRetest
Types of System Testing
• Performance Testing
o Load Testing
o Stress Testing
o Spike Testing
o Volume Testing
• Security Testing
• Recovery Testing
• Usability Testing
• Regression Testing
Acceptance Testing
• Testing performed to determine whether the software meets requirement specification.
• System's compliance is evaluated the with the business requirements.
• Verification of the End user requirement criteria.
• Forms of Acceptance Testing
o User Acceptance Testing.
o Business Acceptance Testing.
o Alpha Testing.
o Beta Testing.
User Acceptance Testing
• UAT is performed on customer’s end to validate the requirements.
• UAT is also known as Beta Testing performed when Unit Testing,
Integration, Regression testing and System testing are over.
• Customer’s end testing team or Selected End Users are involved in such
kind of testing .
• After finishing the UAT feedback is received from the customer’s end
whether software product is ready to for Live Environment or not.
Alpha Testing
• Alpha testing is performed to identify all possible issues/bugs before
releasing the software application product to user or customer.
• Black box testing and White box testing techniques are used to
simulate real users.
• Tasks are performed as a typical user carried out in environment (server
space) testers are internal employees of the organization.
• It is called alpha testing because it is done early on, near the end of the
development of the software, and before beta testing.
Beta Testing
• Testing performed by "real users" of the software application in a
"real environment“ or live environment and can be considered as a
form of external User Acceptance Testing.
• Beta version of the software is released to a limited number of end-
users of the product to obtain feedback on the quality of the product.
• Feedback taken from customer/end users creates a qualitative
analysis which increases quality of the product through customer
validation.
• Shipping a product to the customers becomes easy and has better
ROI .
Usability Testing
• Evaluates that the software application is easy to use by users.
• Minimizes the risk of the product failing.
• Conducted repeatedly, from early development until a product’s
release.
• Exploratory Testing is often performed to decrease the complexity of
the software product.
• Usability testing is usually in the initial phases of product
development to recognize expectation of user or customer.
Fundamentals of software part 1

Fundamentals of software part 1

  • 1.
  • 2.
    What is SoftwareTesting ? • Software Testing is an activity to detect bug/issues by checking actual result and matching it with expected result to make software product defect free. • Software Testing does not assure that product is defect free. • It is also verification of Application under Test (AUT). • Testing can be performed Manually or by Automation Tools. • There are basically 3 types of testing Black Box, White Box and Grey Box Testing.
  • 3.
    Black Box TestingWhite Box Testing Objective is to test the Functionality or Behavior of the application. Objective is to test the infrastructure of the application. All possible inputs cannot be covered in testing. Each path can be tested thoroughly. Testing can be done without any coding knowledge . Testing requires knowledge of internal structure and coding knowledge . Testing performed after Requirement Specification document . Testing performed after Detail Designed document . Boundary Value Analysis, Equivalence Partitioning, Error Guessing etc. are the testing technique used in Black box testing Conditional Testing, Data Flow Testing, Loop Testing etc. are the testing technique used in White box testing Tough to automate . Since , Testing and programming are dependent. Easy to Automate
  • 4.
    Levels of Testing UnitTesting Integration Testing System Testing Acceptance Testing
  • 5.
    Unit Testing • Itis a Level of testing where Individual units/ component of software are tested. • Each unit of software is validated . Unit is considered as the smallest testable element of software. • Individual program, function, procedure, etc. can be units of Procedural programming. • Whereas, in OOPS (object-oriented programming) smallest unit can be a method, which may belong to a base/ super class, abstract class or derived/ child class.
  • 6.
    Unit Testing (contd.) •It is done using tools or framework for particular programming language. • Development Environment and Test Environment should be different. • Test Data should be similar to Production data. • Focuses on Impact or Behavior of the System.
  • 7.
    Integration Testing • Softwaremodules are integrated logically and tested as a group. • Integration Testing is also termed as thread testing or String Testing. • Testing of Communication between two or more unit or functions. • Test case in Integration testing focuses mainly on the interfaces & flow of data information.
  • 8.
    Integration Testing (contd.) •Testing is performed on Individual structure and by performed programmers. • Integration Testing is necessary because one module can have effects on another module. • Interfacing errors are detected .
  • 9.
    Approaches of Integration Testing •Top Down Approach – testing starts with high level system at the top level and integrates from top down by replacing individual components by stubs. • Main control modules which integrates is called drivers and individual components that are replaced are called stubs. • After tests are conducted stubs are replaced by individual modules. • Top down approach is easier to implement for testing than bottom up Approach.
  • 10.
    Bottom up Approach •Approach is to test lowest level element and then after it facilitate highest level components. • Fault localization is easier. • Time is utilized because it is not required to wait for all modules to be developed. • Critical Modules are tested later which may be prone to defects.
  • 11.
    Big Bang Approach •Components are integrated and then tested. • Type of Approach convenient for small systems. • Fault localization is difficult. • Presupposes simultaneous checking of all system components.
  • 12.
    System Testing • Systemis a form of testing conducted on completely integrated system or software to validate specified requirement. • Specification are checked to validate end to end compliance of software . • Testing conducted on whole system by referring either functional requirement or System Requirement or sometimes both. • System Testing is performed by independent test team that helps to test the quality of the system impartial.
  • 13.
    System Testing Process Test Environment Setup TestCases Preparation Test Data Preparation Test Case Execution Defect Reporting Regression Testing Logging of DefectRetest
  • 14.
    Types of SystemTesting • Performance Testing o Load Testing o Stress Testing o Spike Testing o Volume Testing • Security Testing • Recovery Testing • Usability Testing • Regression Testing
  • 15.
    Acceptance Testing • Testingperformed to determine whether the software meets requirement specification. • System's compliance is evaluated the with the business requirements. • Verification of the End user requirement criteria. • Forms of Acceptance Testing o User Acceptance Testing. o Business Acceptance Testing. o Alpha Testing. o Beta Testing.
  • 16.
    User Acceptance Testing •UAT is performed on customer’s end to validate the requirements. • UAT is also known as Beta Testing performed when Unit Testing, Integration, Regression testing and System testing are over. • Customer’s end testing team or Selected End Users are involved in such kind of testing . • After finishing the UAT feedback is received from the customer’s end whether software product is ready to for Live Environment or not.
  • 17.
    Alpha Testing • Alphatesting is performed to identify all possible issues/bugs before releasing the software application product to user or customer. • Black box testing and White box testing techniques are used to simulate real users. • Tasks are performed as a typical user carried out in environment (server space) testers are internal employees of the organization. • It is called alpha testing because it is done early on, near the end of the development of the software, and before beta testing.
  • 18.
    Beta Testing • Testingperformed by "real users" of the software application in a "real environment“ or live environment and can be considered as a form of external User Acceptance Testing. • Beta version of the software is released to a limited number of end- users of the product to obtain feedback on the quality of the product. • Feedback taken from customer/end users creates a qualitative analysis which increases quality of the product through customer validation. • Shipping a product to the customers becomes easy and has better ROI .
  • 19.
    Usability Testing • Evaluatesthat the software application is easy to use by users. • Minimizes the risk of the product failing. • Conducted repeatedly, from early development until a product’s release. • Exploratory Testing is often performed to decrease the complexity of the software product. • Usability testing is usually in the initial phases of product development to recognize expectation of user or customer.