Qa qc tester là gì

  1. Trước hết, Cùng điểm qua các khái niệm cơ bản QA, QC, Tester
  1. Quality Assurance [viết tắt là QA]: Là người chịu trách nhiệm đảm bảo chất lượng sản phẩm và tiến độ dự án thông qua việc đưa ra quy trình làm việc giữa các bên liên quan. QA không trực tiếp kiểm tra chất lượng phần mềm [giống QC].
  2. Quality Control [viết tắt là QC]: Là người thực hiện những bài kiểm tra chất lượng để đảm bảo sản phẩm đáp ứng đúng và đủ những yêu cầu mà QA đề ra. 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]. Có 2 vị trí QC thông thường là manual QC [không đòi hỏi kỹ năng lập trình] và automation QC [đòi hỏi kỹ năng lập trình].
  3. Tester: Là người kiểm tra những sản phẩm [phần mềm hay ứng dụng] mà các lập trình viên đã làm ra, tìm các trường hợp còn thiếu sót hay lỗi so với yêu cầu sản phẩm.

II. Bảng so sánh QA, QC và Tester

III. Một số minh họa cụ thể về nhiệm vụ của QA, QC và Tester

Thông thường, nhiệm vụ của QA sẽ chủ yếu bao gồm các việc như: Đề xuất, đưa ra các quy trình phát triển sản phẩm phù hợp với từng yêu cầu cụ thể của các dự án; Đưa ra các 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; Kiểm tra, đánh giá việc thực hiện quy trình của các bộ phận trong nhóm có đúng quy trình QA đề ra hay không; Điều chỉnh, thay đổi quy trình phù hợp và nhắc nhở các đội ngũ phát triển sản phẩm tuân thủ theo

  1. QC [Kiểm soát chất lượng] 

Một số nhiệm vụ chủ yếu của bộ phận QC là: Tìm hiểu hệ thống, phân tích tài liệu mô tả về hệ thống và thiết kế test case,và thực hiện việc test phần mềm trước khi giao cho khách hàng; Lên kế hoạch kiểm thử [thường do QC Leader thực hiện]; Viết Script cho automation test [nếu có áp dụng kiểm thử tự động]; Sử dụng các test tool để tạo và thực hiện các test case/script chi tiết; Phối hợp với nhóm lập trình trong việc fix bug và báo cáo chi tiết cho Project Manager hoặc các bên liên quan khác tuỳ dự án.

3. Testing – Kiểm thử 

Trong thực tế thì việc QC có kiểm tra tốt tới đâu hay quy trình QA chặt chẽ như thế nào thì lỗi vẫn còn đâu đó trong sản phẩm. Vì vậy, Nhiệm vụ của Testing là tìm xem sản phẩm còn lỗi nào hay không, những lỗi mà phạm vi QC không bao phủ hết. Theo một cách dí dỏm thì công việc chính của “Kiểm thử” là lục tung hết các ngóc ngách để tìm càng nhiều lỗi càng tốt. 

Trong testing, tester thường đóng vai trò người dùng cuối để dùng sản phẩm và tìm lỗi trên sản phẩm, đánh giá những rủi ro tiềm ẩn có thể ảnh hưởng đến chất lượng sản phẩm mà các bên liên quan có thể không lường trước được hay không được nêu ra trong yêu cầu sản phẩm.

Testing và QC nhìn có vẻ hao hao giống nhau nhưng vẫn có khác biệt đặc trưng cơ bản. QC nhìn chung có khuynh hướng “confirm” [nghĩa là sản phẩm có làm đúng theo yêu cầu hay không, còn Testing nhìn chung có khuynh hướng khám phá để “break”, để tìm lỗi [nghĩa là tìm xem sản phẩm chạy sai như thế nào].

Về cơ bản, Testing là một hoạt động thuộc QC. Do đó nhiều công ty sẽ kết hợp QC và Testing thành một và gọi chung chúng là QC hay Testing team.

Kết luận: 

Như vậy, thông qua một số những khái niệm, phân tích trên, chúng tôi rất mong mang đến những kiến thức, hiểu biết, phân biệt về nghề QA, QC và Tester. Nhìn chung, có thể hình dung Tester là tập con của QC, và QC lại là tập con của QA. Mục tiêu chính của QA là Prevention [Ngăn ngừa lỗi], còn mục tiêu chính của QC và Testing là Detection [Phát hiện lỗi]. Cả 3 bộ phận này đều là những thành phần vô cùng quan trọng trong quá trình sản xuất phần mềm nói chung và công đoạn kiểm thử phần mềm nói riêng. 

QC [viết tắt của chữ Quality Control] là người 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. Có 2 vị trí QC thông thường là manual QC [không đòi hỏi kỹ năng lập trình] và automation QC [đòi hỏi kỹ năng lập trình].

  • Viết Script cho automation test [nếu có áp dụng kiểm thử tự động].
  • Sử dụng các test tool để tạo và thực hiện các test case/script chi tiết.
  • Phối hợp với nhóm lập trình trong việc fix bug và báo cáo chi tiết cho Project Manager hoặc các bên liên quan khác tuỳ dự án.
  • Thiết kế test case cho phần mềm dựa vào requirement của khách hàng.
  • Đưa các testing tool vào chạy automation.
  • Làm testing report.
  • Quản lý các tài liệu liên quan đến các hoạt động test.
  • Lập tài liệu hướng dẫn và tiêu chuẩn testing.
  • Đề xuất các giải pháp fix bug và tránh bug.
  • Hợp tác sâu sát với team Developer trong hoạt động test.

  • Tổng số nỗ lực test và hiệu quả test [với sự chênh lệch về thời gian và chi phí]
  • Số liệu thực hiện thử nghiệm [passed/failed/in progress/N/A ...]
  • Hiệu quả kiểm tra [số lỗi tìm thấy trong hệ thống / tổng số lỗi được tìm thấy trong tất cả các giai đoạn]
  • Tỷ lệ Rejection lỗi [Tỷ lệ các khiếm khuyết bị từ chối / không hợp lệ / sai / trùng lặp]
  • Tỷ lệ Reopen lỗi [Tỷ lệ lỗi cố định thành công]
  • Tỷ lệ phát hiện lỗi
  • Tỉ lệ Retest

  • Tốt nghiệp Đại học chuyên ngành Khoa học máy tính, Kỹ thuật hoặc các ngành liên quan
  • Có kiến thức tốt về mọi chức năng, khía cạnh của sản phẩm
  • Sử dụng thành thạo những loại dụng cụ đo lường, phân tích kết quả.
  • Tốt nghiệp Đại học chuyên ngành Khoa học máy tính, Kỹ thuật hoặc các ngành liên quan
  • Ít nhất 1 năm kinh nghiệm kiểm thử sản phẩm phần mềm
  • Có kiến thức căn bản về máy tính, tin học văn phòng căn bản, cài đặt phần mềm, sử dụng internet
  • Biết sử dụng các công cụ bug tracking
  • Có kiến thức về lập trình: Căn bản SQL, HTML, CSS

  • Mô tả một ngày làm việc điển hình của QC.
  • Có ý kiến cho rằng “Nếu không thích, không ôm cái máy tính cả ngày, không research liên tục thì QC sẽ không phát triển được.” Quan điểm của bạn về điều này?
  • Nếu người dùng điền sai loại thông tin mà website báo lỗi rồi xoá dữ liệu mà không chỉ rõ chỗ sai, bạn sẽ xử lý như thế nào?
  • Kể lại một trường hợp bạn phải test đi test lại nhiều lần trước khi hoàn thiện một sản phẩm. Bạn có gặp áp lực không?
  • Những sai lầm phổ biến của QC?
  • Bạn có kinh nghiệm sử dụng các công cụ bug tracking nào?

Bộ giải pháp quản trị nhân sự toàn diện dành cho Doanh Nghiệp. Ứng dụng những lý thuyết quản trị hiện đại vào xây dựng giải pháp nhân sự mang tính thực tiễn cao. Bộ giải pháp giúp Doanh Nghiệp từ những giải pháp cơ bản về quản trị thông tin nhân sự, chấm công Á tính lương cho đến các giải pháp quản trị mục tiêu, đánh giá và phát triển nhân sự.

Để giúp các bạn hiểu rõ hơn về QC QA là gì? Chúng khác nhau như thế nào thì hãy đọc bài viết này nhé.

QA là người chịu trách nhiệm đảm bảo chất lượng sản phẩm thông qua việc đưa ra quy trình làm việc giữa các bên liên quan. QA là viết tắt của Quality Assurance.

  • Đề xuất, đưa ra quy trình phát triển [development process] sản phẩm phù hợp với yêu cầu cụ thể của từng dự án. Các quy trình này có thể được phát triển dựa trên V-model hay Agile [đa số là Scrum hoặc Lean Development] hay thông qua việc áp dụng những quy trình quản lý sẵn có như ISO 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.
  • Kiểm tra, audit việc thực thi quy trình của các bộ phận trong nhóm làm sản phẩm có đúng quy trình QA đã đề ra không.
  • Nhắc nhở đội ngũ phát triển sản phẩm việc tuân thủ theo quy trình làm việc đã đưa ra.
  • Điều chỉnh, thay đổi quy trình phù hợp với từng sản phẩm mà các team đang thực hiện.

Một số công ty sử dụng “QA” thay vì QC nên nhiều người nhầm lẫn QA với QC [Quality Control]. Vì vậy, trên thị trường lao động xuất hiện một số vai trò như PQA [Process Quality Assurance – thực hiện công việc về quy trình] và SQA [Software Quality Assurance – thực hiện công việc kiểm thử]. Trong đó, SQA đóng vai trò như một QC thực thụ, đảm nhiệm việc kiểm thử sản phẩm đang phát triển. Còn PQA mới là người chịu trách nhiệm về việc đưa ra các quy trình làm việc trước khi bắt đầu một dự án.

Nhiều Công ty vừa và nhỏ, họ không chỉ định 1 vị trí PQA rõ ràng, mà QC Manager/Leader sẽ phụ trách việc đưa ra quy trình làm việc giữa các bên liên quan. Và một khi quy trình đó được duyệt bởi cấp quản lý, thì nó sẽ được duy trì và áp dụng cho các dự án.

Ví dụ: PQA sẽ sẽ quy định khâu kiểm thử sản phẩm ở công đoạn cuối cùng, kiểm thử sản phẩm theo phương pháp, tiêu chuẩn nào, sẽ dùng các tool nào để kiểm thử, đồng thời đưa ra các tiêu chuẩn cho một sản phẩm tốt và chưa tốt.

Đây là một vị trí rất quan trọng đối với các team làm sản phẩm. Do đó, thông thường, chỉ có những công ty Outsourcing lớn như KMS, Harvey Nash, FPT Software… mới tuyển vị trí PQA và chỉ có 2-3 đầu người cho toàn bộ các team làm sản phẩm. Còn lại, đa số các công ty phần mềm thường tuyển SQA [thường gọi là QC].

Tuyển dụng QA lương cao làm online

  • Tư vấn về quy trình cho dự án để đảm bảo chất lượng toàn dự án.
  • Kiểm soát việc thực hiện quy trình 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.
  • Cải tiến quy trình.
  • Hiểu sâu về kiến trúc hệ thống của phần mềm vì công việc của QA rộng hơn QC.
  • Khả năng tổ chức, tư duy logic và có hệ thống.
  • Kỹ năng phân tích, làm việc dựa trên số liệu tốt.
  • Kiến thức rộng về các lĩnh vực của phần mềm mà các team đang thực hiện.
  • Kỹ năng giao tiếp trong nội bộ team và các team khác để khai thác thông tin về sản phẩm, dự án và ứng dụng nó vào việc xây dựng hệ thống quy trình.
  • Hiểu rõ về các chứng chỉ CMMI, ISO… trong phần mềm để xây dựng các quy trình chuẩn cho các team.

QC là người 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. Có 2 vị trí QC thông thường là manual QC [không đòi hỏi kỹ năng lập trình] và automation QC [đòi hỏi kỹ năng lập trình]. QC là viết tắt của chữ Quality Control.

Xem tuyển dụng QC lương cao up to 2000USD

  • Tìm hiểu hệ thống, phân tích tài liệu mô tả về hệ thống và thiết kế test case,và thực hiện việc test phần mềm trước khi giao cho khách hàng.
  • Lên kế hoạch kiểm thử [thường do QC Leader thực hiện]
  • Viết Script cho automation test [nếu có áp dụng kiểm thử tự động].
  • Sử dụng các test tool để tạo và thực hiện các test case/script chi tiết.
  • Phối hợp với nhóm lập trình trong việc fix bug và báo cáo chi tiết cho Project Manager hoặc các bên liên quan khác tuỳ dự án.

Khác với PQA, nhu cầu tuyển dụng QC hay SQA rất nhiều trong mọi công ty phần mềm vì kiểm thử là khâu rất quan trọng trong quy trình phát triển sản phẩm. QC và PQA sẽ tương tác với nhau như sau:

  • PQA đưa ra quy trình làm việc cho team phát triển sản phẩm, trong đó có khâu Testing, quy định QC kiểm thử sản phẩm ở giai đoạn nào, sử dụng công cụ gì, tiêu chuẩn nào là sản phẩm đạt yêu cầu.
  • QC thực thi quy trình mà PQA đề ra.
  • PQA giám sát, theo dõi và kiểm tra QC có thực hiện đúng quy trình không, sau đó chỉnh sửa cho phù hợp với tiến độ, hiện trạng dự án.
  • QC báo cáo kết quả test cho QC Lead/QC Manager, PQA báo cáo kết quả thực thi quy trình phát triển sản phẩm cho Project Manager.

Tuy nhiên, hiện nay hai khái niệm công việc này vẫn còn bị nhầm lẫn rất nhiều. Có những mẩu tuyển dụng QA Engineer nhưng thực chất lại làm hầu hết công việc của QC như sau:

  • Nghiên cứu yêu cầu và thiết kế của dự án.
  • Thiết kế test case, viết kịch bản test.
  • Thực thi manual test hoặc automated test.
  • Phối hợp với các bộ phận liên quan để đảm bảo chất lượng dự án/sản phẩm.
  • Quản lý, phân tích, theo dõi và báo cáo kết quả test.

Để trở thành một nhân viên QC tốt đòi hỏi bạn phải có rất nhiều kỹ năng cũng như kiến thức chuyên môn. Tuy nhiên, có những kỹ năng được đánh giá là quan trọng hơn cả cho một QC có thể thành công trong công việc.

QC phải có kiến thức tốt về mọi chức năng, khía cạnh của sản phẩm. Như vậy mới review được các yêu cầu của requirement.

QC đóng vai trò rất quan trọng trong công tác sản xuất phần mềm vì họ sẽ là người trực tiếp kiểm tra từng giai đoạn của quá trình sản xuất. Bạn phải phát hiện ra những điểm chưa hoàn thiện, các lỗi trên sản phẩm để đưa ra sản phẩm cuối cùng hoàn thiện nhất. Bộ phận QC phải đảm bảo sản phẩm phải được kiểm soát 100% tại tất cả các công đoạn.

Do vậy, nếu bạn có kỹ năng giám sát tốt thì mới có thể nhanh chóng phát hiện các lỗi kỹ thuật trong quá trình được giao. Một nhân viên QC nếu không có kỹ năng giám sát tốt sẽ dễ bỏ qua lỗi, gây ảnh hưởng nghiêm trọng đến chất lượng sản phẩm.

Tất cả các công ty đều mong muốn sản phẩm cuối cùng đến tay người tiêu dùng và khách hàng sẽ là những sản phẩm hoàn thiện và tốt nhất. Nếu bạn làm QC cho một sản phẩm kém chất lượng, không ai tin dùng thì chính bạn đã thất bại trong công việc.

Vì QC phải làm việc với rất nhiều thành viên khác trong team và nhất là công việc truyền đạt ý kiến, phản hồi của mình với Developer, Project Manager.

Đây là một kỹ năng cần thiết cho tất cả các ngành nghề, không riêng gì nghề QC. Kỹ năng quản lý được thể ở việc quản lý các nhân viên bên dưới và cả quản lý bản thân.

Một người quản lý giỏi phải biết được năng lực của cấp dưới, phân phối nhân viên làm các công việc phù hợp với thế mạnh của họ, đôn đốc nhân viên hoàn thành công việc đúng tiến độ. Nếu bạn có kỹ năng quản lý tốt thì bạn có thể hoàn thành đúng hạn khối lượng công việc được giao và tăng tính gắn kết trong nhóm.

Về mặt quản lý bản thân, nếu bạn quản lý tốt quỹ thời gian, đưa ra quy trình làm việc cụ thể, rõ ràng thì bạn sẽ phát huy được hết năng lực của mình.

  • Kiến thức căn bản về máy tính, tin học văn phòng căn bản, cài đặt phần mềm, sử dụng internet.
  • Kiến thức về lập trình: Căn bản SQL, HTML, CSS. Đây là 3 món tôi nghĩ rất cần thiết khi làm test, bạn không cần phải học sâu để viết code nhưng ít ra phải đọc hiểu được và có thể chỉnh sửa code đơn giản.
  • Kiến thức tổng quan về test, bao gồm việc hiểu các định nghĩa cơ bản, các thuật ngữ, quy trình phát triển phần mềm, quy trình test. Bạn có thể học theo cuốn ISTQB Foundation hoặc tham khảo các mục gợi ý sau:
    • What is Software Testing? – Tìm hiểu phần này để biết được testing là gì? các định nghĩa, khái niệm căn bản về kiểm thử phần mềm.
    • Why is Software Testing Important? – Tại sao testing lại quan trọng và cần thiết? nếu không có tester thì sản phẩm sẽ ra sao?
    • Software Development life cycle: Vòng đời phát triển phần mềm, vị trí của testing trong các giai đoạn phát triển sản phẩm.
    • Software Test life cycle: Vòng đời của kiểm thử, thứ tự các công việc kiểm thử.
    • Defect Life Cycle: Vòng đởi của lỗi và trạng thái qua các giai đoạn.
    • Quality Assurance vs. Quality control, Verification vs Validation: Phân biêt sự giống nhau và khác nhau giữa một số khái niệm.
    • Software Testing Levels: Các mức độ trong kiểm thử, đi từ nhỏ nhất đến các mức độ cao nhất.
    • Software Testing types: Các loại testing thư Functional testing, Non-functional testing, Structural testing, Change related testing.

Đây là danh sách các kiến thức bạn nên tìm hiểu sâu thêm nếu sẽ làm test theo hướng manual.

  • Create a Test Plan: Các thành phần cần có trong một test plan cơ bản, cách viết test plan.
  • Design Test case: Cách tạo và viết một testcase thông dụng.
  • Test Design Techniques: Các kỹ thuật thiết kế testcase, giúp cho testcase hiệu quả và tối ưu hơn.
  • Test reporting, Daily status reports – cách viết report để báo cáo kết quả test của mình.
  • Defect management: Finding defects, Logging defects, Tracking and managing defects – Học cách report & quản lý một bug cũng như sử dụng tools tracking thông dụng như Jira, Mantis, Bugzilla, Application Lifecycle Management [ALM].
  • Mobile application testing [iOS, Android, Windows Phone]: Cách cài đặt và test ứng dụng mobile, cách giả lập thiết bị điện thoại trên máy tính.
  • Windows, Website testing & Tools support: Cách test một ứng dụng desktop, một trang web và giả lập các trình duyệt khác nhau trên máy tính.
  • Risk based testing process and implementation: Đánh giá rủi ro trong kiểm thử, đây là phần nâng cao nhưng cũng nên tìm hiểu qua.
  • Coding: SQL, HTML, CSS.
  • Học thêm về lập trình: Java, C# [.Net] là hai ngôn ngữ căn bản mà những người làm automation hay sử dụng, ngoài ra có các ngôn ngữ khác dùng để hỗ trợ như AutoIT, Python.
  • Học về các Automation Tool/Framework phổ biến như: Ranorex, Selenium, Appium, TestComplete.
  • Các Tools khác như: Jmeter, SoapUI.

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.

Để trở thành những QA và QC chuyên nghiệp, bên cạnh những kinh nghiệm tích lũy được trong môi trường làm việc thì việc cập nhật những kiến thức chuyên ngành và thông tin hữu ích từ các chuyên gia thâm niên cũng là cách để bạn nâng cao trình độ và “khéo léo” hơn trong việc vận động thực hiện các công được hiệu quả và trơn tru.

Link tham khảo: //www.sam.edu.vn/qa-va-qc-giong-va-khac-nhau-nhu-the-nao

Video liên quan

Chủ Đề