Tìm hiểu về QA, QC, Tester trong kiểm thử phần mềm.
Bài đăng này đã không được cập nhật trong 4 năm
QA là gì? QC là gì ? Tester là gì? Chắc hẳn đây luôn luôn là những câu hỏi quen thuộc khi bạn nhắc tới kiểm thử phần mềm. Những người làm việc lâu năm chưa hẳn sẽ phân biệt rõ ràng tách biệt chúng với nhau. Bản thân cũng là người mới bước vào con đường kiểm thử phần mềm nên cũng thắc mắc, tò mò muốn hiểu về các vai trò, công việc khác nhau giữ chúng. Chính vì vậy hôm nay mình muốn chúng ta cùng đi tìm hiểu về chúng.
I. QA là gì?
QA (Quality Assurance = Kiểm định chất lượng) :
Được dùng để nói về quy trình được dùng để đảm bảo chất lượng của thành phẩm. Những người làm những công việc đảm bảo chất lượng phần mềm theo hướng đầu tiên ở trên. Đó là xác định, đề xuất, giám sát các quy trình và phương pháp kỹ thuật được sử dụng nhằm đảm bảo chất lượng cho sản phầm phần mềm.
Tức là QA hướng đến các tiêu chuẩn, quy trình và thủ tục nhằm đảm bảo cho dự án được triển khai chính xác. Đảm bảo process được tôn trọng, project theo kịp tiến độ hoặc là tạo ra những quy chuẩn chất lượng của sản phẩm để QC có thể follow.
=> Vậy nên: QA = Process + Procedure + meta (nền tảng và quy trình)
Nhiệm Vụ của QA là gì?
Những người làm QA có thể là QA Analyst (Chuyên viên phân tích chất lượng phần mềm), QA Engineer (Kỹ sư đảm bảo chất lượng), QA Team Coordinator (Điều phối viên dự án), Manager (Người quản lý dự án) hoặc chính là đội ngũ chuyên trách của phía khách hàng.
QA là người theo dõi mọi giai đoạn của quy trình phát triển phần mềm để đảm bảo chất lượng thiết kế, đảm bảo rằng phần mềm tuân thủ các tiêu chuẩn do công ty phát triển đặt ra và từ đó đảm bảo sản phẩm mới hoạt động đúng tiêu chuẩn trước khi phát hành ra công chúng.
Ngoài ra, QA còn phải bảo đảm cho dự án được vận hành đúng thời gian và ngân sách đề ra. Nói chung thì vai trò của QA khá nặng nề. Thành công của sản phẩm phần mềm phần lớn nhờ vào chất lượng sản phẩm cũng như khả năng sản phẩm có thể tung ra thị trường đúng thời hạn. Cả hai đều là trách nhiệm của kỹ sư đảm bảo chất lượng phần mềm.
Nhiệm vụ chính của của QA là gì?
- Đề xuất đưa ra quy trình phát triển phần mềm phù hợp với yêu cầu cụ thể của dự án. Các quy trình này có thể là các quy trình được phát triển dựa trên các mô hình phát triển như Waterfall, V-model hay Agile hoặc áp dụng những quy trình quản lý sẵn có như ISO 9000 hay CMMI.
- Đưa ra những tài liệu, biểu mẫu, hướng dẫn để đảm bảo chất lượng của sản phẩm cho tất cả các bộ phận trong nhóm phát triển sản phẩm, nhằm đảm bảo tất cả các thành viên trong đội ngũ phát triển nắm được quy trình và các bước thực hiện dự án một cách đầy đủ.
- Kiểm tra, giám sát, kiểm toán và đảm bảo việc thực hiện quy trình đảm bảo chất lượng trong nhóm phát triển sản phẩm.
- Đề xuất, điều chỉnh quy trình phù hợp với sản phẩm mà dự án đang thực hiện, qua từng giai đoạn nhằm đảm bảo chất lượng và tiến độ của dự án.
- Thu nhận và theo dõi các ý kiến phản hồi khách hàng.
- Thực hiện kiểm duyệt lần cuối (Final inspection) đối với những sản phẩm bàn giao cho khách hàng để đảm bảo chất lượng đúng như cam kết.
- Thực hiện việc đo đạc và phân tích số liệu để đánh giá chất lượng sản phẩm.
II. QC là gì ?
QC (Quality Control = Điều khiển chất lượng) : QC là việc kiểm tra, đánh giá chất lượng phần mềm. Tức là tập trung vào đối tượng là sản phẩm và các thủ tục, các hàm, các thành phần trong phần mềm thay vì vào quy trình như QA. Thực hiện những bài kiểm tra chất lượng (Test) để đảm bảo sản phầm đáp ứng đúng và đủ những yêu cầu mà QA đề ra.
Công việc của QC là đảm bảo chất lượng của sản phẩm bằng cách test nó. Và ngoài việc đảm bảo phần mềm follow theo guidelines & checklist của QA team, QC còn đảm bảo rằng phần mềm không chỉ đúng và đủ yêu cầu, mà còn dễ sử dụng và có hiệu suất tốt (thông qua Usability Test & Performance Test).
=> QC = Test + Report + Follow-up + Product (tập trung vào sản phẩm, kiểm thử sản phẩm)
Công việc chủ yếu của QC là gì?
QC tập trung vào việc đánh giá, kiểm tra chất lượng sản phẩm phần mềm. Tức là thực hiện việc kiểm thử, đánh giá phần mềm tuân theo các quy trình, quy chuẩn của QA đưa ra. QC chịu trách nhiệm thực hiện công việc kiểm tra chất lượng phần mềm thực tế, tức là đầu ra của quy trình phát triển, đảm bảo đánh giá sản phẩm đã đúng và đủ những yêu cầu mà khách hàng đề ra hay chưa.
Những mô tả dưới đây có thể khiến bạn liên tưởng đến Tester đúng không. QC hay Tester thường được dùng thay thế nhau. Tuy nhiên, nếu phân định rạch ròi hơn thì phạm vi công việc của QC sẽ rộng hơn so với Tester. Nhiệm vụ của Tester chủ yếu là tìm ra các lỗi hoặc thiếu sót của phần mềm so với yêu cầu đặc tả. Trong khi QC ngoài việc tìm lỗi và báo cáo, quản lý lỗi như tester thì QC sẽ phải đảm nhiệm thêm vai trò trao đổi, liên hệ với các nhóm phát triển để tìm phương án khắc phục và quản lý lỗi.
Nhiệm vụ chính của QC là gì ?
Những nhiệm vụ của một QC:
- Tìm hiểu phân tích tài liệu đặc tả từ đó thiết kế các kế hoạch kiểm thử, các test case, test script và thực hiện kiểm thử phần mềm trước khi giao cho khách hàng.
- Đảm bảo phần mềm đáp ứng tuân thủ các hướng dẫn và checklist của QA, hoạt động đúng và đủ yêu cầu được thiết kế, dễ sử dụng và có hiệu suất tốt.
- Log bug và report bug, follow up bug, confirm bug, phối hợp với đội ngũ lập trình trong quá trình fix bug đồng thời thông báo chi tiết cho các thành viên trong dự án hoặc các bên liên quan khác tuỳ dự án.
III. Sự liên hệ giữa QC và QA là gì?
QA bao hàm lớn hơn QC và chúng có mối liên hệ với nhau như sau:
- QA phụ trách về mặt hệ thống chung, có nhĩa là đưa ra các quy trình và giám sát các quy trình cho đội ngũ phát triển sản phẩm, trong đó có việc kiểm thử nhằm quy định QC sẽ tiến hành kiểm thử sản phẩm ở giai đoạn này, sử dụng công cụ gì, tiêu chuẩn nào để sản phẩm đạt yêu cầu.
- QC sẽ thực thi các bước theo quy trình mà QA đề ra, QA giám sát, theo dõi và kiểm tra sự tuân thủ của QC, và có thể tiến hành chỉnh sửa cho phù hợp với tiến độ, ngân sách và trạng thái của dự án.
- QC báo cáo kết quả kiểm thử cho QC Lead hoặc QC Manager nhằm tổng hợp kết quả kiểm thử, trạng thái các lỗi nhằm giúp cho quá trình trao đổi, hỗ trợ fix lỗi với đội ngũ phát triển sản phẩm. QA báo cáo kết quả thực thi quy trình phát triển sản phẩm trực tiếp cho Project Manager nhằm giúp Project Manager cân đối và điều phối dự án theo kịp tiến độ và nguồn lực.
Kết luận:
QA và QC là 2 lĩnh vực nghề nghiệp có liên quan nhưng hoàn toàn tách biệt. QA bao quát tổng thể hệ thống chất lượng, liên quan đến toàn bộ và sâu rộng đến các phòng ban trong tổ chức. Còn QC cụ thể hơn, nó kiểm tra chất lượng cụ thể của sản phẩm hoàn thiện hay các công đoạn trong sản xuất.
Ngày nay, Chất lượng của sản phẩm và trải nghiệm của người dùng chính là yếu tố cốt lõi cho một sản phẩm thành công. Và chính QA , QC là những người góp phần tạo nên thành công ấy. Mong rằng qua bài viết này các bạn có thể phân biệt các vai trò, nhiệm vị khác nhau giữa QA, QC và Tester.
Tài liệu tham khảo: https://topdev.vn/blog/qa-la-gi-qc-la-gi/
All rights reserved