Software Development Methodologies, QA, and Testing Tools
This area is definition-heavy and easy to score if revised.
SDLC
SDLC = Software Development Life Cycle.
Phases:
- Requirement analysis
- Design
- Implementation/coding
- Testing
- Deployment
- Maintenance
Waterfall model
Sequential model.
Best when:
- requirements are fixed,
- project is simple,
- changes are unlikely.
Disadvantage:
- difficult to handle changing requirements.
Agile
Iterative and incremental development.
Features:
- frequent delivery,
- customer collaboration,
- embraces change,
- continuous feedback.
Scrum
Agile framework.
Terms:
- Sprint: fixed development cycle.
- Product backlog: prioritized feature list.
- Sprint backlog: work selected for sprint.
- Scrum master: facilitates process.
- Product owner: represents business/customer.
- Daily standup: short status meeting.
Kanban
Visual workflow board.
Columns:
To Do -> In Progress -> Testing -> Done
Key idea: limit Work In Progress.
DevOps
DevOps combines development and operations.
Goals:
- faster delivery,
- automation,
- CI/CD,
- monitoring,
- reliability.
CI/CD
CI = Continuous Integration.
CD = Continuous Delivery/Deployment.
Pipeline steps:
code -> build -> test -> package -> deploy
Verification vs Validation
| Verification | Validation |
|---|---|
| Are we building the product right? | Are we building the right product? |
| Checks process/design/spec | Checks user need |
| Usually before/during development | Usually after implementation |
Testing levels
| Type | Meaning |
|---|---|
| Unit testing | tests individual function/module |
| Integration testing | tests module interaction |
| System testing | tests complete system |
| UAT | user acceptance testing |
Testing types
Black-box testing
Tester does not know internal code. Tests input/output behavior.
White-box testing
Tester knows internal code and logic.
Grey-box testing
Partial knowledge of internals.
Smoke testing
Basic check to verify build is stable enough for further testing.
Sanity testing
Quick check after small change/fix.
Regression testing
Ensures new changes did not break old functionality.
Performance testing
Checks speed, scalability, and stability under load.
Load testing
Checks behavior under expected load.
Stress testing
Checks behavior beyond expected limits.
Bug life cycle
Typical states:
New -> Assigned -> Open -> Fixed -> Retest -> Verified -> Closed
Other states:
- Reopened
- Deferred
- Duplicate
- Rejected
Severity vs Priority
Severity: impact of defect.
Priority: urgency of fixing defect.
Example:
- App crash on payment: high severity, high priority.
- Typo on rarely visited page: low severity, low priority.
- Company logo wrong on home page: low severity, high priority.
Test case
A test case includes:
- test case ID,
- objective,
- preconditions,
- steps,
- test data,
- expected result,
- actual result,
- status.
Common testing tools
| Tool | Use |
|---|---|
| Selenium | web UI automation |
| JUnit | Java unit testing |
| TestNG | Java testing framework |
| PyTest | Python testing |
| Postman | API testing |
| JMeter | performance/load testing |
| Jira | bug/project tracking |
| Jenkins | CI/CD automation |
| Git | version control |
| GitHub/GitLab | code hosting + CI |
Common MCQ traps
- Smoke testing happens before detailed testing.
- Regression testing is after changes.
- Validation is user-need oriented.
- Severity is technical impact, priority is business urgency.
- Agile welcomes changing requirements.
- Waterfall is sequential.