Intro to Software Testing
Dashboard
Topic 1/13
Home โ€บ Testing โ€บ Intro to Software Testing

๐Ÿงช Intro to Software Testing

SDLC, STLC, types of testing, black/white/grey box, and 7 ISTQB principles.

What is Software Testing?

Software testing is the process of evaluating and verifying that a software application or system fulfills expected requirements and is free of defects. Testing ensures quality, reliability, security, and optimal performance before product release.

Note: Fixing a bug in production costs up to 100x more than finding it during requirement analysis!

SDLC vs STLC Comparison

Software Development Life Cycle (SDLC) defines phases for building software, whereas Software Testing Life Cycle (STLC) defines phases dedicated specifically to quality assurance.

Phase SDLC Activity STLC Testing Activity
Requirements Gather business specs Requirement Analysis & Review
Design System architecture & UI mockup Test Strategy & Test Planning
Development Write code & compile Test Case Design & Test Data setup
Testing Execute tests & log bugs Test Execution & Bug Reporting
Deployment Release build to Production Smoke Testing & Test Closure Report

7 ISTQB Principles of Software Testing

Standard principles governing software quality assurance.

# Principle Key Takeaway
1 Testing shows presence of defects Testing proves defects exist, not that software is 100% bug-free.
2 Exhaustive testing is impossible Testing all input combinations is non-feasible; prioritize via risk analysis.
3 Early testing saves time/money Start testing activities as early as possible in SDLC.
4 Defect clustering (Pareto 80/20) 80% of software defects are usually found in 20% of modules.
5 Pesticide paradox Repeating same tests over and over will cease to discover new bugs.
6 Testing is context dependent E-commerce apps require different testing strategies than medical devices.
7 Absence-of-errors fallacy Fixing bugs doesn't help if the system is unusable or built wrong.

Black Box, White Box, and Grey Box Testing

Classification of testing techniques based on visibility into internal source code logic.

Technique Code Access Target Tester Example
Black Box No Access to Code QA Engineer / User UI Validation & Functional Testing
White Box Full Source Code Access Developer / SDK Engineer Unit Testing & Code Coverage
Grey Box Partial Knowledge (DB/APIs) Automation Tester API & Database Integration Testing