การทดสอบซอฟต์แวร์มีหลาย ระดับ (level) (ตามขอบเขต) และหลาย ประเภท (type) (ตามวัตถุประสงค์) การเข้าใจสิ่งเหล่านี้ — unit, integration, end-to-end; functional กับ non-functional — ช่วยสร้างแนวทางการทดสอบที่ครบถ้วนซึ่งครอบคลุมคุณภาพในแง่มุมต่างๆ
ระดับการทดสอบ (ตามขอบเขต)
UNIT → individual functions/methods in isolation (smallest, fastest, most numerous)
INTEGRATION → multiple units/components working TOGETHER (e.g. code + database, services)
END-TO-END (E2E) → the WHOLE application from the user's perspective (full flows,
through the real UI/system) — broadest, slowest
SYSTEM → the complete integrated system; ACCEPTANCE → meets business requirements
