Software testing involves verifying that a software program performs as intended. There are different types of testing including black box, white box, unit, integration, system, and acceptance testing. The goal is to detect bugs and ensure the software functions properly before it is released to end users.
2. 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.
3. 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
5. 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.
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
• 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.
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
• 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.
14. 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
15. 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.
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
• 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.
18. 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 .
19. 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.