Software testing (kiểm thử phần mềm) là quá trình xác minh rằng phần mềm hoạt động đúng như mong đợi — kiểm tra rằng nó hành xử chính xác, đáp ứng yêu cầu và không có lỗi. Đây là việc thiết yếu để cung cấp phần mềm tin cậy, chất lượng và phát hiện vấn đề trước khi chúng đến tay người dùng.
Testing là gì
Testing = XÁC MINH một cách có hệ thống rằng phần mềm hành xử đúng:
→ nó có làm đúng việc cần làm không? (đáp ứng yêu cầu)
→ nó có xử lý các edge case, lỗi và input không hợp lệ không?
→ một thay đổi có làm hỏng chức năng hiện có không? (regression)
→ từ kiểm thử thủ công (con người kiểm tra) đến test TỰ ĐỘNG (code kiểm tra code)
Tại sao testing quan trọng
✓ BẮT LỖI — tìm lỗi TRƯỚC khi người dùng gặp (sửa sớm rẻ/dễ hơn trong production)
✓ TỰ TIN — thay đổi/refactor code mà biết test sẽ bắt được regression
✓ CHẤT LƯỢNG — phần mềm tin cậy; ít sự cố production, crash, vấn đề dữ liệu hơn
✓ TÀI LIỆU — test cho thấy code được dùng/hành xử như thế nào
✓ NHANH HƠN về lâu dài — test tự động bắt vấn đề nhanh so với kiểm tra thủ công chậm chạp
→ Chi phí của một lỗi tăng lên khi nó được phát hiện càng muộn (dev < test < production).
