Trong bài viết này chiasekinang sẽ giúp các bạn hiểu rõ hơn về QA và QC là gì. Hãy cũng mình tìm hiểu những điều cần biết về QA và QC qua bài viết này nhé.
QA là gì?
QA là viết tắt của Quality Assurance. QA là người đảm bảo chất lượng sản phẩm chuẩn dựa vào việc đưa ra quy trình làm việc giữa những bên liên quan.
QA là cần làm gì?
- Đề 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 bắt buộc cụ thể của từng dự án. Các quy trình này mang thể được vững mạnh dựa trên V-model hay Agile (đa số là Scrum hoặc Lean Development). Hoặc phê duyệt việc vận dụng các quy trình quản lý sẵn có như ISO hay CMMI.
- Đư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 đa số những bộ phận trong nhóm tăng trưởng sản phẩm.
- Kiểm tra, audit việc thực thi quy trình của các phòng ban trong nhóm khiến sản phẩm với đúng quy trình QA đã đề ra không.
- Nhắc nhở hàng ngũ lớn mạnh sản phẩm việc tuân thủ theo quy trình làm cho 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.
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ẽ đảm nhiệm việc đưa ra quy trình làm việc giữa các bên liên quan. Và một lúc quy trình ấy được duyệt bởi cấp quản lý, thì nó sẽ được duy trì và ứng dụng cho những 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ẽ sử dụng các tool nào để kiểm thử, đồng thời đưa ra những tiêu chuẩn cho 1 sản phẩm thấp và chưa tốt.
Đây là một vị trí siêu quan trọng, nó quyết định sản phẩm có đặt chuẩn hay không. Do đó, thông thường, chỉ sở hữu những công ty Outsourcing rất lớn như KMS, Harvey Nash, FPT Software… mới tuyển vị trí PQA và chỉ sở hữu 2-3 đầu người cho tất cả các team khiến sản phẩm. Còn lại, tất cả các nhà hàng phần mềm thường tuyển SQA (thường gọi là QC).
Dưới đây là 1 đặc điểm về PQA:
- Tư vấn về quy trình cho dự án để bảo đảm chất lượng của toàn dự án.
- Kiểm soát việc thực hành quy trình của dự án.
- Thu nhận và theo dõi những quan điểm phản hồi khách hàng.
- Thực hiện kiểm phê duyệt lần cuối (Final inspection) đối có các 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 để kiểm tra chất lượng sản phẩm.
- Cải tiến quy trình.
Kỹ năng buộc phải thiết cho QA là gì?
1. Tính tỉ mỉ
Kỹ năng quan sát là yếu tố quan trọng nhất của nhân viên QA. Ngoài khả năng quan sát tổng thể quy trình để kiểm soát chất lượng, nhân viên QA còn phải có sự cẩn thận trong từng chi tiết. Chỉ buộc phải một lỗi công nghệ hoặc sơ sót nhỏ cũng có thể làm hỏng cả quy trình sản xuất. Chính vì vậy, họ cần hội tụ những yếu tố chi tiết nhất để hạn chế bỏ sót những lỗi kỹ thuật.
2. Lòng kiên nhẫn
Đức tính cẩn thận, tỉ mỉ là đức tính thể hiện 1 người sở hữu lòng kiên nhẫn. Đặc biệt là một nhân viên QA thì đây là điều đó là không thể thiếu được. Để trở nên một nhân viên QA giỏi thì bạn nên nhẫn nại trong toàn bộ những trường hợp. Việc bạn vội vã phê duyệt 1 quá trình nào đấy mà chưa đánh giá kỹ lưỡng có thể dẫn tới hậu quả nghiêm trọng, lãng phí thời gian, công sức và tiền bạc của cả 1 tập thể.
3. Kỹ năng giao tiếp tốt
Những tiêu chí trong “tiêu chuẩn quản lý chất lượng” thường tương đối chuyên sâu và trừu tượng, không phải là ai nghe cũng hiểu được ngay. Chính lý do đó mà nhân viên QA đòi hỏi cần có kỹ năng giao tiếp tốt để có thể truyền đạt các đề nghị khoa học tới những bộ phận sở hữu tương tác và giải thích được các bước diễn ra của dự án.
4. Ham học hỏi
Những phần mềm quản lý và kiểm tra đều là vật dụng công nghệ, mà công nghệ thông báo càng ngày càng phát triển mạnh mẽ. Một viên chức QA buộc phải theo kịp các xu hướng khoa học hiện đại nhất để ko bị lạc hậu. Khi bạn càng biết phổ biến về kỹ thuật kiểm soát chất lượng thì giá trị của bạn trong công ty càng ngày càng được nâng lên.
QC là gì?
QC là người chịu trách nhiệm thực hiện công tác đánh giá chất lượng phần mềm. Có 2 vị trí QC đó 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.
Nhiệm vụ của những QC chính yếu là:
- Tìm hiểu hệ thống, phân tách tài liệu mô tả về hệ thống và mẫu mã test case và thực hành 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ó vận dụng kiểm thử tự động).
- Sử dụng những test tool để tạo và thực hiện những 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 những bên liên quan khác tuỳ dự án.
- PQA đưa ra quy trình làm cho việc cho team tăng trưởng sản phẩm, trong ấy có khâu Testing, quy định QC kiểm thử sản phẩm ở quá trình nào, 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à đánh giá QC mang thực hiện đúng quy trình không, sau đó chỉnh sửa cho ưa thích có 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ật 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 nơi tuyển dụng QA Engineer nhưng bản chất lại làm mọi công việc của QC như sau:
- Nghiên cứu bắt buộc và mẫu mã 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 những bộ phận thúc đẩy để bảo đảm 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.
Những kỹ năng quan trọng của QC
Để phát triển thành một nhân viên QC tốt đòi hỏi bạn cần tới rất nhiều những kỹ năng cũng như những kiến thức về chuyên môn. Tuy nhiên, với các kỹ năng được kiểm tra là quan yếu hơn cả cho 1 QC mang thể thành công trong công việc.
Kỹ năng code
QC cần có những kiến thức về hầu hết 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.
Kỹ năng giám sát
QC đóng vai trò vô cùng quan trọng trong công tác phân phối phần mềm vì họ sẽ là người trực tiếp kiểm tra từng giai đoạn của giai đoạn sản xuất. Bạn buộc phải phát hiện ra những điểm chưa hoàn thiện, những lỗi trên sản phẩm để đưa ra được sản phẩm cuối cùng hoàn thiện nhất. Bộ phận QC nên đảm bảo sản phẩm phải được kiểm soát 100% tại hầu hết các công đoạn.
Do vậy, bạn cần có kỹ năng giám sát thì mới có thể mau chóng phát hiện những lỗi khoa học trong công đoạn được giao. Một QC trường hợp không sở hữu kỹ năng giám sát tốt sẽ dễ bỏ qua lỗi, gây ra những ảnh hưởng nghiêm trọng tới chất lượng sản phẩm.
Kỹ năng giao tiếp
Vì QC cần có kĩ năng giao tiếp với những thành viên khác trong team và nhất là công tác truyền đạt ý kiến, phản hồi của mình có Developer, Project Manager.
Kỹ năng quản lý
Đây là một kỹ năng nê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ý những 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. Giao công việc cho nhân viên những công việc yêu thích mang ưu thế của họ. Biết đôn đốc nhân viên hoàn thành công tác đúng tiến độ. Nếu bạn có kỹ năng quản lý tốt thì bạn với thể hoàn tất đúng hạn khối lượng công việc được giao và tăng tính gắn kết thành viên trong nhóm.
Về mặt quản lý bản thân, nếu bạn quản lý phải chăng quỹ thời gian, đưa ra quy trình làm cho 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.
Xem thêm: Website học lập trình online
QA và QC khác nhau thế nào?
Ở một số doanh nghiệp sử dụng “QA” thay vì QC cần đa dạng người nhầm lẫn QA có QC (Quality Control). Vì vậy, ở trên thị trường xuất hiện 1 số vai trò như PQA (Process Quality Assurance – thực hiện công tá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ụ, nhiệm vụ 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 những quy trình làm cho việc trước lúc khởi đầu một dự án.
Nhiều doanh nghiệp vừa và nhỏ, họ không chỉ định 1 vị trí PQA rõ ràng. QC Manager/Leader sẽ đảm nhiệm việc đưa ra quy trình làm việc giữa các bên liên quan. Một khi quy trình đó được phê chuẩn 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ẽ 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ẽ tiêu dùng những tool nào để kiểm thử… Đồng thời đưa ra các tiêu chuẩn cho 1 sản phẩm tốt và chưa tốt.
Đây là 1 vị trí rất quan trọng đối với những team khiến cho sản phẩm.
Học gì để vươn lên là tester
Kiến thức chung
- 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, 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 buộc phải thiết lúc khiến test, bạn không cần phải học sâu để viết code nhưng chí ít bắt buộc đọc hiểu được và sở hữu 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, những thuật ngữ, quy trình lớn mạnh phần mềm, quy trình test. Bạn sở hữu 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, định nghĩa căn bản về kiểm thử phần mềm.
- Why is Software Testing Important? – Tại sao testing lại quan yếu và bắt buộc thiết? nếu không với tester thì sản phẩm sẽ ra sao?
- Software Development life cycle: Vòng đời lớn mạnh phần mềm, vị trí của testing trong những công đoạn vững mạnh sản phẩm.
- Software Test life cycle: Vòng đời của kiểm thử, vật dụng 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 những 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 1 số khái niệm.
- Software Testing Levels: Các mức độ trong kiểm thử, đi từ nhỏ nhất đến những chừng độ cao nhất.
- Software Testing types: Các mẫu testing thư Functional testing, Non-functional testing, Structural testing, Change related testing.
Phần kiến thức bổ sung
Manual Test:
Đây là danh sách các kiến thức bạn buộc phải chọn hiểu sâu thêm giả dụ sẽ làm cho test theo hướng manual.
- Create a Test Plan: Các thành phần nên sở hữu trong một test plan cơ bản, bí quyết 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 ngoại hình testcase, giúp cho testcase hiệu quả và hợp lý 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 bí quyết report & quản lý một bug cũng như tiêu 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 vận dụng mobile, phương pháp giả lập vật dụng điện thoại trên máy tính.
- Windows, Website testing & Tools support: Cách test 1 ứng dụng desktop, một trang web và fake 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 tìm hiểu thêm nhưng cũng buộc phải hiểu qua.
- Coding: SQL, HTML, CSS.
Automation Test:
- 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 cho automation hay sử dụng. Hay với các ngôn ngữ khác sử dụng để hỗ trợ như AutoIT, Python.
- Học về các Automation Tool/Framework nhiều như: Ranorex, Selenium, Appium, TestComplete.
- Các Tools khác như: Jmeter, SoapUI.
Đây những những chia sẻ của mình về QA là gì, QC là gì. Cảm ơn các bạn đã xem bài viết.