Software Testing
Software Testing
What is testing?
Section I Section II
Before execution After execution
Date: Date:
Verification and Validation
Validation
• Validation is process to ensure that the software that has been built is
traceable to satisfies the user requirements. If the software matches
requirements for which it was made, it is validated.
• Validation ensures the product under development is as per the user
requirements.
• Validation answers the question – "Are we developing the product
which attempts all that user needs from this software?".
• Validation emphasizes on user requirements.
Verification
Test Closure
• Where all testing-related activities are completed and documented.
• The main objective of the test closure stage is to ensure that all
testing-related activities have been completed and that the software
is ready for release.
Manual Testing Vs Automated Testing
Manual testing is a technique used to test software by utilizing the
functions and features of an application. This means that manual
testing will involve checking the defect manually by trying each
function to ensure it is working as expected.
Advantages:
Fast and accurate visual feedback
Less Expensive
No coding required
Efficient for unplanned changes
• Automated testing is a technique where the Tester writes scripts on
their own and uses a suitable Software or Automation Tool to test the
software. It allows for executing repetitive tasks without the
intervention of a Manual Tester.
Advantages
Simplifies Test Case Execution
Improves the Reliability of the test : equal focus on all the areas.
Increases the amount of test coverage
Minimizing human intervention.
Types of Manual Testing
1. White box testing
• White Box Testing is a software testing technique that
involves testing the internal structure and workings of a
software application. The tester has access to the source
code and uses this knowledge to design test cases that
can verify the correctness of the software at the code
level.
• Also know as clear box testing
• It is done by the developers
Advantages of White Box Testing:
Thorough Testing: White box testing is thorough as the entire code
and structures are tested.
Code Optimization: It results in the optimization of code, removing
errors, and helps to remove extra lines of code.
Early Detection of Defects: It can start at an earlier stage, as it doesn’t
require any interface.
Detection of Complex Defects: Testers can identify defects that
cannot be detected through other testing techniques.
2. Black box testing
• Black-box testing is a type of software testing in which the tester is not
concerned with the internal knowledge or implementation details of the
software but rather focuses on validating the functionality based on the
provided specifications or requirements.
• It is done by the testers.
Advantages of Black Box Testing:
The tester does not need to have more functional knowledge or programming
skills to implement the Black Box Testing.
It is efficient for implementing the tests in the larger system.
Tests are executed from the user’s or client’s point of view.
Test cases are easily reproducible.
It is used to find the ambiguity and contradictions in the functional
specifications.
3. Grey Box Testing
• Combination of White box testing and black box testing.
• In the Black Box Testing technique, the tester is unaware of the
internal structure of the item being tested and in White Box Testing
the internal structure is known to the tester.
• The internal structure is partially known in Gray Box Testing.
• This includes access to internal data structures and algorithms to
design the test cases.
Advantages of Gray Box Testing:
• Clarity of goals: Users and developers have clear goals while doing
testing.
• Done from a user perspective: Gray box testing is mostly done from
the user perspective, focusing on how the software behaves in
real-world scenarios.
• High programming skills not required: Testers are not required to
have high programming skills for this testing. Testers only need a basic
understanding of the internal workings, such as architecture, data
flow, or logic, which can often be learned quickly.
• Improved product quality: Since gray box testing examines both
functional behavior and internal structures, it leads to the detection
of more comprehensive bugs.
Types of Black Box Testing
Functional Testing:
• Testing in which the system is tested against the functional
requirements and specifications.
• Functional testing ensures that the requirements or specifications are
properly satisfied by the application.
• This type of testing is particularly concerned with the result of
processing.
• It checks what the system does, not how it does it.
Examples of Functional Testing Tasks:
• Checking if the login function works when valid/invalid credentials are
entered.
• Verifying if a shopping cart updates correctly when items are added or
removed.
• Testing if the "Submit" button performs the expected action (e.g.,
sends data, shows confirmation)
Advantages of Functional Testing:
• Bug-free product: Functional testing ensures the delivery of a
bug-free and high-quality product.
• Customer satisfaction: It ensures that all requirements are met and
that the customer is satisfied.
• Testing focused on specifications: Functional testing is focused on
specifications as per customer usage.
• Proper working of the application: This ensures that the application
works as expected and ensures proper working of all the functionality
of the application.
• Improves quality of the product: Functional testing ensures the
security and safety of the product and improves the quality of the
product.
Non-Functional Testing
• Performed to verify the non-functional requirements of the
application, such as performance, usability, reliability , etc.
• It verifies whether the behavior of the system is as per the
requirement or not.
• It focuses on how the system performs rather than what it does.