- Functional testing — kiểm tra hệ thống làm gì: các chức năng có chạy đúng theo yêu cầu không (đăng nhập, tính tiền, tìm kiếm...). Tập trung vào hành vi và kết quả.
- Non-functional testing — kiểm tra hệ thống làm tốt tới đâu: các thuộc tính chất lượng như hiệu năng, tải, bảo mật, khả dụng (usability), độ tin cậy, tương thích. Tập trung vào "nhanh/an toàn/dễ dùng thế nào".
Ví dụ cùng một tính năng "đăng nhập": functional hỏi "đúng mật khẩu thì vào được không", còn non-functional hỏi "1000 người đăng nhập cùng lúc thì mất bao lâu, có bị lộ dữ liệu không".