Kiểm thử phần mềm là gì? Quy trình & các loại kiểm thử chi tiết
- Tháng Bảy 23, 2026
- Posted by: codestar
- Category: Kiến Thức Kiểm Thử
Kiểm thử phần mềm là gì? Quy trình, phân loại & các loại kiểm thử chi tiết
Giải thích trọn vẹn Software Testing cho người mới: khái niệm, vai trò, các loại & cấp độ kiểm thử, quy trình 6 bước và công cụ phổ biến — cập nhật số liệu ngành 2026.
Cập nhật 22/07/2026 · Biên soạn bởi đội ngũ chuyên môn CodeStar Academy (thuộc Kaopiz)
Trả lời nhanh: Kiểm thử phần mềm (Software Testing) là quá trình đánh giá và xác minh một phần mềm hoặc ứng dụng có hoạt động đúng yêu cầu hay không, nhằm phát hiện lỗi (bug) và đảm bảo chất lượng trước khi sản phẩm đến tay người dùng. Công việc này do kỹ sư kiểm thử (Tester/QA) đảm nhiệm, gồm hai hình thức chính là kiểm thử thủ công (manual) và kiểm thử tự động (automation), thường tuân theo chuẩn quốc tế như ISTQB.
Kiểm thử phần mềm là gì?
Kiểm thử phần mềm (Software Testing) là quá trình đánh giá và xác minh rằng một phần mềm hoặc ứng dụng hoạt động đúng như mong đợi, với mục tiêu phát hiện lỗi (bug) và đảm bảo sản phẩm đạt chất lượng trước khi triển khai cho người dùng.
Nói cách khác, kiểm thử không chỉ là “soi lỗi”. Đó là hoạt động bảo vệ trải nghiệm người dùng, đảm bảo hệ thống vận hành ổn định, bảo mật và đáp ứng đúng yêu cầu đã đặc tả. Đây cũng là công việc cốt lõi của nghề Tester — vị trí cửa ngõ vào ngành IT mà cả người trái ngành cũng có thể theo đuổi.
Vì sao kiểm thử phần mềm lại quan trọng?
Một lỗi bị bỏ sót có thể khiến doanh nghiệp mất tiền, mất khách và mất uy tín. Kiểm thử giúp phát hiện vấn đề sớm — khi chi phí sửa còn thấp. Vai trò chính của kiểm thử gồm:
- Phát hiện & sửa lỗi sớm: lỗi được tìm ở giai đoạn đầu tốn ít chi phí hơn nhiều so với khi đã phát hành.
- Đảm bảo đúng yêu cầu: xác minh phần mềm làm đúng theo tài liệu đặc tả (SRS) và kỳ vọng của khách hàng.
- Nâng cao trải nghiệm người dùng: sản phẩm “mượt”, ít lỗi tạo niềm tin và sự hài lòng.
- Tăng độ tin cậy & bảo mật: đảm bảo hệ thống ổn định và phát hiện sớm lỗ hổng an ninh.
Nguồn: Mordor Intelligence (2026) về quy mô thị trường; Gartner về mức độ ứng dụng AI trong QA; TopCV, ITviec, VietnamWorks (2026) về nhu cầu tuyển dụng & lương Tester tại Việt Nam. Xem thêm mức lương Tester 2026.
Phân loại các loại kiểm thử phần mềm
Kiểm thử phần mềm được phân loại theo nhiều góc nhìn. Bảng dưới đây tổng hợp các nhóm chính và câu hỏi mà mỗi nhóm trả lời:
| Nhóm phân loại | Các loại tiêu biểu | Trả lời câu hỏi |
|---|---|---|
| Theo mục tiêu | Kiểm thử chức năng · phi chức năng | Phần mềm làm ĐÚNG không / làm TỐT đến mức nào? |
| Theo hiểu biết code | Hộp đen · hộp trắng · hộp xám | Tester có nhìn thấy mã nguồn không? |
| Theo cấp độ | Unit · Integration · System · Acceptance | Đang kiểm thử ở tầng nào của hệ thống? |
| Theo cách thực thi | Thủ công (manual) · tự động (automation) | Con người hay công cụ thực hiện? |
| Theo tính chất | Tĩnh (static) · động (dynamic) | Có chạy chương trình lên không? |
Xem chi tiết cách phân biệt tất cả các loại trong bài Test Type là gì?. Hai nhóm quan trọng nhất với người mới là kiểm thử chức năng và phi chức năng:
| Tiêu chí | Kiểm thử chức năng | Kiểm thử phi chức năng |
|---|---|---|
| Trả lời | “Phần mềm có làm đúng không?” | “Phần mềm làm tốt đến mức nào?” |
| Đánh giá | Tính năng theo yêu cầu (SRS) | Hiệu năng, bảo mật, khả dụng, tương thích |
| Ví dụ | Đăng nhập, thanh toán, tìm kiếm | Load, Stress, Security, Usability |
Kỹ thuật kiểm thử: hộp đen, hộp trắng, hộp xám
Đây là ba kỹ thuật phổ biến, phân theo mức độ hiểu biết của Tester về mã nguồn bên trong:
| Tiêu chí | Hộp đen | Hộp trắng | Hộp xám |
|---|---|---|---|
| Biết mã nguồn? | Không | Có, đầy đủ | Biết một phần |
| Tập trung vào | Đầu vào – đầu ra, hành vi | Luồng logic, điều kiện, vòng lặp | Cả hành vi & cấu trúc |
| Ai thường làm | Tester | Developer | Tester có nền lập trình |
| Áp dụng nhiều ở | System, Acceptance | Unit | Integration |
Các cấp độ kiểm thử phần mềm (Test Levels)
Kiểm thử được thực hiện theo bốn cấp độ, từ nhỏ đến lớn. Xem tổng quan tại các giai đoạn kiểm thử phần mềm.
| Cấp độ | Kiểm thử cái gì | Ai thực hiện |
|---|---|---|
| Unit Testing | Từng hàm/module nhỏ nhất | Developer |
| Integration Testing | Sự tương tác giữa các module | Developer / Tester |
| System Testing | Toàn bộ hệ thống end-to-end | Tester |
| Acceptance Testing | Sản phẩm có đáp ứng kỳ vọng thực tế (gồm Alpha & Beta) | Khách hàng / người dùng |
Kiểm thử thủ công vs tự động (Manual vs Automation)
Người mới thường bắt đầu từ kiểm thử thủ công rồi tiến lên kiểm thử tự động. Hai hình thức bổ trợ cho nhau chứ không thay thế nhau:
| Tiêu chí | Thủ công (Manual) | Tự động (Automation) |
|---|---|---|
| Cách làm | Người thực hiện từng test case | Script chạy tự động qua công cụ |
| Phù hợp | Exploratory, UI/UX, dự án nhỏ | Regression, chạy lặp lại nhiều lần |
| Yêu cầu code | Không bắt buộc | Cần biết lập trình cơ bản |
| Công cụ tiêu biểu | Jira, TestRail | Selenium, Appium, Postman |
7 nguyên tắc kiểm thử phần mềm (theo ISTQB)
Bảy nguyên tắc nền tảng theo chuẩn ISTQB — chi tiết tại 7 nguyên tắc kiểm thử:
- Kiểm thử cho thấy sự hiện diện của lỗi, không chứng minh phần mềm hoàn toàn không có lỗi.
- Kiểm thử toàn bộ là bất khả thi — cần chọn lọc theo rủi ro và độ ưu tiên.
- Kiểm thử sớm (early testing) giúp tiết kiệm chi phí.
- Lỗi tập trung (defect clustering): phần lớn lỗi dồn vào một số ít module.
- Nghịch lý thuốc trừ sâu: lặp mãi một bộ test sẽ không tìm được lỗi mới.
- Kiểm thử phụ thuộc ngữ cảnh: app ngân hàng test khác app giải trí.
- Ngộ nhận “không lỗi”: hết bug không có nghĩa sản phẩm đáp ứng đúng nhu cầu.
Quy trình kiểm thử phần mềm 6 bước (STLC)
Quy trình kiểm thử phần mềm (STLC – Software Testing Life Cycle) gồm 6 bước. Lưu ý phân biệt: STLC là vòng đời kiểm thử, khác với SDLC – vòng đời phát triển phần mềm (bao trùm cả lập trình).
- Phân tích yêu cầu: hiểu rõ mục tiêu, yêu cầu chức năng & phi chức năng để xác định phạm vi kiểm thử.
- Lập kế hoạch kiểm thử: xây dựng Test Plan — chiến lược, phạm vi, nhân sự, công cụ, thời gian.
- Thiết kế Test case: viết test case & test data, mô tả bước thực hiện và kết quả mong đợi.
- Thiết lập môi trường kiểm thử: tạo môi trường giống hệ thống thật (server, database, thiết bị…).
- Thực hiện kiểm thử: chạy test case, so sánh kết quả, log bug và theo dõi xử lý.
- Kết thúc kiểm thử: tổng hợp báo cáo, đánh giá chất lượng, lưu trữ tài liệu cho dự án sau.
| # | Giai đoạn | Đầu vào | Đầu ra |
|---|---|---|---|
| 1 | Phân tích yêu cầu | SRS, thiết kế, prototype | File Q&A |
| 2 | Lập kế hoạch | File Q&A, tài liệu cập nhật | Test Plan, Checklist |
| 3 | Thiết kế kiểm thử | Test Plan, tài liệu đặc tả | Test Case, Test Data, Script |
| 4 | Chuẩn bị môi trường | Test Plan, Smoke Test, Test Data | Môi trường ổn định |
| 5 | Thực thi kiểm thử | Test Case, Script, Test Data | Test Results, Defect Report |
| 6 | Kết thúc kiểm thử | Toàn bộ tài liệu & kết quả | Final Test Report |
Công cụ kiểm thử phổ biến
Một số công cụ Tester thường dùng theo từng nhóm (xem đầy đủ tại Top công cụ kiểm thử phần mềm):
- Quản lý test & bug: Jira, TestRail, Redmine.
- Automation web: Selenium, Cypress, Playwright.
- Kiểm thử mobile: Appium.
- Kiểm thử API: Postman.
- Hiệu năng: JMeter, k6.
- Unit test: JUnit, NUnit, Jest.
QA, QC và Tester khác nhau như thế nào?
Ba khái niệm hay bị nhầm — xem chi tiết tại phân biệt QA, QC và Tester:
| Vai trò | Trọng tâm | Tính chất |
|---|---|---|
| QA (Quality Assurance) | Xây dựng & cải tiến quy trình để phòng ngừa lỗi | Chủ động, bao quát cả vòng đời |
| QC (Quality Control) | Kiểm tra sản phẩm để phát hiện lỗi | Tập trung vào đầu ra |
| Tester | Trực tiếp thực thi kiểm thử, tìm & báo bug | Thực thi cụ thể |
Muốn theo nghề kiểm thử phần mềm?
Kiểm thử là một trong những con đường vào IT dễ tiếp cận nhất cho người mới & trái ngành. Xem lộ trình học Tester từ số 0, hoặc tìm hiểu khóa học Tester cho người mới tại CodeStar (học trên dự án thật, hỗ trợ việc làm).
Câu hỏi thường gặp về kiểm thử phần mềm
Kiểm thử phần mềm có cần biết lập trình không?
Không bắt buộc khi mới bắt đầu. Kiểm thử thủ công (manual testing) không yêu cầu giỏi code, nên người trái ngành vẫn học được. Khi muốn làm kiểm thử tự động (automation), bạn mới cần lập trình cơ bản như Java, Python hoặc JavaScript.
Kiểm thử phần mềm và Tester có phải là một?
Kiểm thử phần mềm là công việc; Tester (kiểm thử viên) là người làm công việc đó. Ngoài Tester còn có các vai trò liên quan như QA (đảm bảo chất lượng qua quy trình) và QC (kiểm soát chất lượng sản phẩm).
Có bao nhiêu loại kiểm thử phần mềm?
Kiểm thử được phân theo nhiều nhóm: theo mục tiêu (chức năng / phi chức năng), theo hiểu biết code (hộp đen / trắng / xám), theo cấp độ (Unit / Integration / System / Acceptance), theo cách thực thi (thủ công / tự động) và theo tính chất (tĩnh / động).
Quy trình kiểm thử phần mềm gồm mấy bước?
Quy trình kiểm thử (STLC) gồm 6 bước: phân tích yêu cầu, lập kế hoạch, thiết kế test case, thiết lập môi trường, thực thi kiểm thử và kết thúc kiểm thử.
Học kiểm thử phần mềm mất bao lâu?
Với lộ trình bài bản, người mới thường cần khoảng 2–3 tháng để nắm kiến thức nền và thực hành đủ để ứng tuyển vị trí Fresher Tester. Thời gian phụ thuộc vào việc bạn học thủ công hay cả automation.
Bắt đầu học kiểm thử phần mềm cùng CodeStar
Khóa học Tester cho người mới: lộ trình 20 buổi trên dự án thật, lớp 12 học viên, hỗ trợ giới thiệu việc làm. Để lại thông tin hoặc gọi hotline để được tư vấn lộ trình phù hợp.
Nguồn số liệu: Mordor Intelligence (2026), Gartner, TopCV, ITviec, VietnamWorks (2026); khung kiến thức tham chiếu ISTQB. Cập nhật: 22/07/2026.
