Software Engineering QA

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:

  1. Requirement analysis
  2. Design
  3. Implementation/coding
  4. Testing
  5. Deployment
  6. 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.