What is Software Testing
What is Software Testing
Software Testing is the process of verifying whether the developed application meets the client's
required functionalities.
1. Manual Testing:
o Explanation: This type of testing involves checking the application manually, without
any automated tools. Testers play the role of end-users and verify whether the
application works as expected.
o Process: Testers execute test cases and scenarios manually, checking for bugs or
issues by interacting with the application. They document the results and any defects
they find.
o When to Use: It's useful in the early stages of development, for exploratory testing,
and in scenarios where the cost or effort of automation is not justified.
2. Automation Testing:
o Explanation: In this type of testing, testers use automated tools and scripts to verify
the application. It involves writing scripts that automatically execute test cases,
compare the actual results with expected outcomes, and report any discrepancies.
o Process: Automation involves creating and running test scripts using specialized
software tools like Selenium, QTP, or LoadRunner. These tools simulate user actions
and check if the application behaves correctly.
o When to Use: It's ideal for repetitive tasks, regression testing, performance testing,
and large-scale applications where manual testing would be time-consuming and
error-prone.
The Software Development Life Cycle (SDLC) is a framework that outlines the stages involved in the
development and maintenance of software.
Roles:
Stages of SDLC:
Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the testing
process to ensure software quality.
Verification Scenarios:
D) Verify the application by clicking on the submit button when both user and password
fields are blank.
Phases of STLC:
2. Test Case Creation Phase: Writing detailed and comprehensive test cases based on
requirements.
3. Test Environment Setup: Preparing the testing environment where the application will be
tested.
5. Defect Logging Phase: Logging defects found during testing for developers to address.
6. Test Cycle Closure: Concluding the testing cycle after verifying all defects have been resolved.
The Bug/Defect Life Cycle refers to the stages a defect goes through from its identification to its
closure.
Version: 1.2
Environment: Testing
Description:
o Steps to Reproduce:
Defect Category:
4. Deferred: The defect is postponed for fixing in the next release due to low priority.
5. Duplicate: The defect is marked as duplicate if it has already been raised in conjunction with
another issue.
8. Retesting: The tester retests the application to ensure the defect is fixed.
Functional Testing: This involves verifying the client-required functionality of the application.
Smoke Testing: Also known as BVT (Build Verification Test), Surface Level Testing, or Initial
Level Testing. It involves verifying the "happy flow" of the application to ensure it is testable
for further levels of testing.
Sanity Testing: Conducted when there is limited time to test the entire application. It focuses
on testing the critical functionality only.
Re-Testing: This involves verifying any functionality again after an issue has been fixed.
Regression Testing: When new functionality is added or bugs are fixed, regression testing
ensures the new functionality and related functionalities work as expected, without
negatively impacting other parts of the application.
Integration Testing: Performed when two or more modules are integrated, and their
integration is verified.
Component Testing: Involves verifying each and every functionality in detail.
GUI Testing (Graphical User Interface): Focuses on verifying the application's look and feel to
ensure it meets the required specifications.
1. Performance Testing: Verifying the application's performance during execution, often using
tools like JMeter.
2. Load Testing: Verifying the application's behavior under a particular or average load, typically
using tools like JMeter or LoadRunner.
3. Stress Testing: Checking the application's performance under extreme conditions, beyond
normal operational capacity, to determine how much load the system can handle.
5. Usability Testing: Assessing how easy and user-friendly the application is to use.
6. Scalability Testing: Testing the application's ability to handle increased and decreased traffic
to see how it behaves under varying loads.
7. Accessibility Testing: Ensuring the application can be accessed and used by as many people
as possible, including those with disabilities.
8. Volume Testing: Testing the application to see how it performs when many users run it
simultaneously on different machines with the same credentials.