Software Testing is the process of checking whether the actual software product meets the expected requirements. It ensures that the software is defect-free.
- Ensures software quality
- Increases customer satisfaction
- Saves business from failures
- Reduces long-term development cost
- Helps find bugs early
Manual execution of test cases without using any automation tools.
Testing using tools like Selenium, QTP, etc., to reduce manual effort.
The steps involved in creating software:
- Requirement Gathering
- Feasibility Study
- Design (HLD and LLD)
- Development
- Testing
- Deployment
- Maintenance
- Sequential model
- Good when requirements are stable
- Testing is planned in parallel with development
- Better defect prevention
- Combination of waterfall and iterative
- Suitable for large, complex projects
- Create a sample version first
- Great for projects with unclear requirements
- Iterative and fast-paced
- Focuses on collaboration and customer feedback
- Test Case ID
- Title
- Module
- Precondition
- Steps
- Expected Result
- Actual Result
- Status
- Author/Reviewer
Aspect | Retesting | Regression Testing |
---|---|---|
Purpose | Verifying fixed bugs | Ensuring no side effects after changes |
Scope | Specific tests | Broader area of impact |
Execution | Always done | Done based on project needs |
- New
- Assigned
- Open
- Fixed
- Retesting
- Closed
- Reopened
- Rejected / Deferred / Duplicate / Not a Bug
- Unit Testing β Individual components (by developers)
- Integration Testing β Between modules
- System Testing β End-to-end testing
- Acceptance Testing β Done by client/user
Severity | Priority |
---|---|
High β Crashes app | High β Must fix immediately |
Medium β Some features broken | Medium β Fix soon |
Low β UI issues | Low β Can fix later |
- Selenium
- QTP/UFT
- TestComplete
- JIRA
- TestLink
- ALM/QC
- Bugzilla
- Mantis
- JIRA
- JMeter
- LoadRunner
- NeoLoad
A table that connects:
- Requirements β Test Scenarios β Test Cases β Defects
Ensures every requirement is tested.
- Objective
- Scope (In/Out)
- Entry/Exit Criteria
- Test Environment
- Schedule
- Tools
- Deliverables
- Risks & Mitigation
Type | Description |
---|---|
Static | No code execution (reviews, walkthroughs) |
Dynamic | Code is executed during testing |
Test inputs at the edges of valid ranges.
Example: For input 1β100, test 0, 1, 100, 101
Divide inputs into valid and invalid partitions and test one value from each.
Based on tester's experience. Example: entering special characters in names.
Useful for logic-based rules. Combines inputs and expected outputs.
Tests how the system behaves with different inputs/states.
Tests based on end-user scenarios.
Check if app works on different:
- Browsers
- Devices
- Operating Systems
Check if app is easy and pleasant to use.
Check if differently-abled users can use the app (e.g., via screen readers).
- I18N: Support multiple languages and regions
- L10N: Adapt app for a specific region (currency, date format)
Type | Description |
---|---|
Smoke | Basic check of main functionality |
Sanity | Quick check after minor fix/update |
- Build: Version given to testing team
- Release: Version delivered to client/users
- Alpha Testing: Done internally before client sees it
- Beta Testing: Done by client or real users
Issues found in production are logged as incidents and resolved quickly.
Used to find the root cause of problems (also called Ishikawa Diagram).
- Unit Regression β One module
- Partial Regression β Related modules
- Full Regression β Entire system
- Entry: Conditions to begin testing
- Exit: Conditions to stop testing (like 95% test cases passed)
Knowingly adding bugs to check the effectiveness of testing.
One bug hides another.
Bug missed during testing, but found in production.
Formula:
Defect Density = Number of Valid Defects / Project Size (LOC or effort)
Meeting to decide the priority, severity, and assignment of open bugs.
Capability Maturity Model Integration:
- Initial
- Managed
- Defined
- Quantitatively Managed
- Optimizing
- Test Case Execution %
- Defect Leakage Rate
- Test Coverage
- Test Productivity
Test Scenario | Test Case |
---|---|
High-level idea to test | Detailed steps for testing |
Faster to write | Takes time to prepare |
Test Case ID: TC_001
Title: Login with valid credentials
Precondition: User must be registered
Steps:
- Open login page
- Enter valid email/password
- Click login
Expected Result: Redirect to homepage
Actual Result: As expected
Status: Pass
Unstructured testing done by exploring the application.
Informal testing without any planning or documentation.
Checks app behavior after failures like power outages.
Ensures app performs consistently over time.
End of Rephrased Manual Testing Notes