Phân biệt QA, QC và Testing
Nếu các bạn chưa phân biệt được các khái niệm đảm bảo chất lượng (QA), kiểm soát chất lượng (QC), kiểm thử phần mềm (Testing) hay một số khái niệm liên quan trong lĩnh vực phát triển phần mềm thì hãy đọc bài viết này nhé.
1. QA, QC và Testing
Hầu hết mọi người bị lẫn lộn khi nói đến sự khác biệt giữa "đảm bảo chất lượng", "kiểm soát chất lượng" và "kiểm thử". Mặc dù chúng có liên quan đến nhau và ở một mức độ nào đó, chúng có thể được coi là những hoạt động giống nhau, nhưng cũng tồn tại những điểm khác nhau để phân biệt được chúng. Bảng sau đây liệt kê các điểm khác nhau giữa QA, QC và Testing.
Đảm bảo chất lượng (QA) | Kiểm soát chất lượng (QC) | Kiểm thử (Testing) |
QA bao gồm các hoạt động đảm bảo việc thực hiện các quy trình, thủ tục và tiêu chuẩn trong ngữ cảnh để xác định phần mềm được phát triển đúng với các yêu cầu hay chưa. | QC bao gồm các hoạt động đảm bảo việc xác minh một phần mềm phát triển liên quan đến các yêu cầu trong tài liệu đặc tả phần mềm. | Testing bao gồm các hoạt động đảm bảo để xác định được bug/error/defects trong phần mềm. |
Tập trung vào các quy trình và thủ tục hơn là tiến hành kiểm thử thực tế trên hệ thống. | Tập trung vào kiểm thử thực tế bằng cách test thực tế phần mềm với mục đích xác định bug/defect thông qua việc thực hiện các thủ tục và quy trình. | Tập trung vào kiểm thử thực tế trên hệ thống phần mềm. |
Các hoạt động theo định hướng quy trình. | Các hoạt động định hướng sản phẩm. | Các hoạt động định hướng sản phẩm. |
Hoạt động mang tính dự phòng | Hoạt động để phát hiện lỗi và khắc phục. | Là một hoạt động mang tính phòng ngừa. |
QA là một phần của chu kỳ phát triển phần mềm | QC có thể được coi là một phần của QA. | Testing là một phần của QC |
2. Audit (Kiểm tra) và Inspection (Thanh tra)
Audit – Một quá trình có hệ thống để xác định cách thức thực hiện quy trình kiểm thử thực tế trong một tổ chức hoặc một team. Đây là quy trình kiểm tra độc lập có liên quan trong quá trình kiểm thử phần mềm. Theo IEEE, đây là quy trình kiểm tra các tài liệu mà các tổ chức triển khai thực hiện và theo dõi. Các loại Audit bao gồm Kiểm tra tuân thủ pháp lý (Legal Compliance Audit), Kiểm tra nội bộ (Internal Audit) và Kiểm tra hệ thống (System Audit).
Inspection - Đây là một kỹ thuật bài bản có liên quan đến việc xác định lỗi trong quá trình phát triển phần mềm. Theo IEEE94, inspection là một kỹ thuật đánh giá bài bản trong đó yêu cầu phần mềm, thiết kế hoặc source code được kiểm tra chi tiết bởi một người hoặc một nhóm độc lập với developer để phát hiện lỗi, các vi phạm về tiêu chuẩn phát triển và các vấn đề khác.
Bài viết này được đăng tại [free tuts .net]
Các cuộc họp kiểm tra chính thức có thể bao gồm các quy trình sau đây: Planning, Overview Preparation, Inspection Meeting, Rework và Follow-up.
3. Testing (kiểm thử) và Debugging (Sửa lỗi)
Testing – Liên quan đến việc xác định bug/error/defect trong một phần mềm mà không bao gồm sửa việc sửa chúng. Thông thường các chuyên gia với một nền tảng đảm bảo chất lượng có liên quan đến việc xác định lỗi. Testing được thực hiện trong giai đoạn kiểm thử trong quy trình phát triển phần mềm.
Debugging - Nó liên quan đến việc xác định, phân tích và sửa lỗi. Các nhà phát triển phần mềm (Developer) tiến hành debugging khi gặp lỗi trong source code. Debugging là một phần của kiểm thử hộp trắng (White Box Testing) hoặc kiểm thử đơn vị (Unit Testing). Debugging có thể được thực hiện trong giai đoạn phát triển song song với kiểm thử đơn vị hoặc trong giai đoạn sửa các lỗi đã được báo cáo.