Để đảm bảo việc cung cấp cho người dùng một phần mềm chất lượng cao, không phát sinh lỗi trong quá trình trải nghiệm thì không thể thiếu đi bước kiểm tra chất lượng của QA QC. QA QC đóng vai trò quan trọng trong việc “bảo vệ” các tiêu chuẩn viết code, quy tắc kiến trúc và các phương pháp phát triển phần mềm nhằm ngăn chặn các rủi ro có thể xảy ra ngay từ đầu quy trình phát triển.
Đọc bài viết để tìm hiểu ngay:
- QA QC là gì?
- Lộ trình học tập cho những ai đang muốn trở thành nhân viên QA, QC
QA QC là gì?
Quality Assurance (QA) và Quality Control (QC) là hai khái niệm quan trọng thường gặp trong ngành công nghệ thông tin. Chúng thường được sử dụng cùng nhau và đều có mục tiêu chung là đảm bảo chất lượng phần mềm trước khi phát hành ra thị trường.
QA là gì?
QA (Quality Assurance) là quy trình kiểm thử có hệ thống nhằm xác định xem một sản phẩm hoặc dịch vụ có đáp ứng các yêu cầu cụ thể hay không, ngăn ngừa các lỗi xuất hiện trong phần mềm để đảm bảo chất lượng của sản phẩm trước khi phát hành.
Hoạt động QA sẽ liên quan đến việc thiết lập các quy trình, tiêu chuẩn và phương pháp làm việc nhằm đảm bảo rằng mọi hoạt động đều được thực hiện đúng và tuân thủ theo các yêu cầu chất lượng đã được đặt ra.
QC là gì?
QC (Quality Control) là quá trình được thực hiện để đảm bảo rằng các phương pháp tiếp cận, kỹ thuật, phương pháp và quy trình phát triển phần mềm được tuân thủ chính xác và đáp ứng các yêu cầu về tiêu chuẩn chất lượng đã được đề ra trước đó.
Tóm lại, QC sẽ tập trung vào việc kiểm tra chất lượng của phần mềm cuối cùng thay vì tập trung vào các quy trình được sử dụng để tạo ra sản phẩm.
Tham khảo thêm: QA là gì? QA và QC có phải là một vị trí giống nhau?
Lộ trình học tập để trở thành QA QC chuyên nghiệp
1. Phát triển các kiến thức chuyên môn
Để trở thành một QA QC chuyên nghiệp, việc hiểu và thành thạo các kiến thức chuyên môn là rất quan trọng. Dưới đây là mô tả chi tiết về các khía cạnh mà bạn cần nắm vững trong quá trình phát triển kiến thức chuyên môn để làm việc trong lĩnh vực này:
SDLC (Software Development Life Cycle)
SDLC là chu trình phát triển phần mềm từ lúc khởi tạo, phát triển đến khi hoàn thành và bảo trì hoặc nâng cao chất lượng phần mềm tổng thể. Hiểu rõ từng giai đoạn của SDLC giúp QA QC xác định đúng thời điểm và phương pháp kiểm thử phù hợp.
Dưới đây là các giai đoạn của SDLC:
Giai đoạn 1: Lập kế hoạch và phân tích yêu cầu
Các thành viên của nhóm phát triển phần mềm sẽ làm việc với khách hàng, tiến hành khảo sát thị trường để nghiên cứu tính khả thi của phần mềm, xác định những yêu cầu liên quan đến chức năng và phi chức năng mà hệ thống phần mềm cần có, sau đó lập kế hoạch xây dựng dự án (bao gồm những rủi ro có thể xuất hiện trong quá trình phát triển và đề ra các phương pháp kỹ thuật nên sử dụng để thực hiện dự án thành công với rủi ro tối thiểu).
Giai đoạn 2: Xác định yêu cầu của khách hàng
Ghi lại các yêu cầu của khách hàng về phần mềm mà họ muốn sở hữu dựa theo cấu trúc của tài liệu SRS.
Giai đoạn 3: Thiết kế phương án phát triển sản phẩm
Các nhà phát triển sẽ dựa vào tài liệu để SRS đưa ra phương án thực hiện tốt nhất cho phần mềm sắp thực hiện, bao gồm những nội dung như đánh giá rủi ro, kiến trúc module của phần mềm, ngân sách và thời gian, phương pháp phát triển và kiểm thử,…
Giai đoạn 4: Tiến hành coding
Các nhà phát triển bắt tay vào quá trình viết source code cho phần mềm dựa theo các yêu cầu trong phương án phát triển sản phẩm và các nguyên tắc mã hóa do tổ chức của họ đề ra.
Giai đoạn 5: Kiểm thử phần mềm
Nhà phát triển tiến hành kiểm thử chất lượng của phần mềm vừa được tạo để xem phần mềm đã đáp ứng được các yêu cầu hay chưa, tìm ra lỗi và fix bug để đảm bảo sản phẩm đủ điều kiện đưa ra thị trường.
Một số phương pháp kiểm thử được thực hiện trong bước này như kiểm thử tích hợp (integration testing), kiểm thử hệ thống (system testing), kiểm thử hiệu năng (performance testing), kiểm thử khả năng sử dụng (usability testing),…
Giai đoạn 6: Triển khai phần mềm và hoàn thiện
Sau khi thông qua các bước kiểm thử và đạt yêu cầu, phần mềm sẽ được gửi đến khách hàng hoặc phát hành trên thị trường. Sau đó, dựa trên feedback của khách hàng, nhóm phát triển có thể thực hiện các thay đổi để phù hợp hơn với tình hình thực tế.
Manual Testing
Manual Testing là quá trình kiểm thử phần mềm được QA QC thực hiện một cách thủ công và không sử dụng bất kỳ công cụ tự động nào. Mục đích của manual testing là xác định các lỗi, sự cố hoặc những điểm chưa hoàn thiện khi phần mềm hoạt động.
Các công việc cơ bản mà một QA QC cần phải làm là viết test script, thực hiện kiểm thử, ghi chú và báo cáo lỗi cho các bên liên quan.
Tìm hiểu sâu hơn về vai trò Manual Tester cũng như sự khác nhau giữa kiểm thử thủ công và kiểm thử tự động.
Automation Testing
Automation Testing là một kỹ thuật kiểm thử phần mềm được QA QC thực hiện bằng cách sử dụng các công cụ tự động để thực hiện các test case. Phương pháp này giúp tăng tốc độ kiểm thử so với manual testing.
Tham khảo thêm: Top 5 automation test tool được yêu thích nhất 2024
Non-Functional Testing
Non-Functional Testing (kiểm thử phi chức năng) là việc kiểm thử các khía cạnh không liên quan đến chức năng của phần mềm như hiệu suất, độ bảo mật và khả năng mở rộng. Một số loại kiểm thử phi chức năng mà QA QC có thể tìm hiểu thêm là:
- Performance Testing: Kiểm thử hiệu suất của phần mềm dưới các tải khác nhau.
- Security Testing: Kiểm thử bảo mật để phát hiện các lỗ hổng bảo mật trong quá trình sử dụng phần mềm.
- Compatibility Testing: Đảm bảo phần mềm hoạt động tốt trên các nền tảng và thiết bị khác nhau.
Email Testing
Email Testing là quá trình kiểm thử chức năng gửi và nhận email của hệ thống để đảm bảo rằng các email được gửi đúng và chính xác đến danh sách người đăng ký. Các khía cạnh cần kiểm tra trong phần này như sau:
- Định dạng email: Kiểm thử định dạng và bố cục của email trên nhiều thiết bị khác nhau như PC, smartphone,… để chắc chắn các nội dung được hiển thị đầy đủ.
- Nội dung email: Kiểm thử để đảm bảo rằng nội dung email đúng với yêu cầu mà khách hàng đưa ra (chính tả, font chữ, màu sắc, logo,…), kiểm thử các liên kết và các file đính kèm nếu có, các thông tin cá nhân hóa của khách hàng xem có được điền chính xác hay không,…
- Hiệu suất gửi email: Đảm bảo email được gửi đúng thời gian và đến đúng người nhận.
Reporting
Reporting trong công việc QA QC là quá trình ghi nhận tất cả các trường hợp kiểm thử đã được thực hiện trong quá trình kiểm thử phần mềm, các lỗi phát hiện, tình trạng kiểm thử tổng thể và kết quả của các kiểm thử đó. Các yếu tố cần có trong báo cáo kiểm thử mà nhân viên QA QC cần cung cấp là:
- Mục tiêu kiểm tra;
- Các tính năng của phần mềm;
- Phương pháp kiểm thử;
- Các lỗi xuất hiện nếu có;
- Thông tin các nền tảng được sử dụng trong quá trình kiểm thử;
- Tóm tắt tổng thể báo cáo cung cấp phản hồi về trạng thái tổng thể của phần mềm đang được thử nghiệm.
Theo dõi và ghi lại
Theo dõi và ghi lại là hoạt động giám sát và ghi chép toàn bộ quá trình phát triển hệ thống từ bước lập kế hoạch, viết code, thử nghiệm, triển khai và vận hành sản phẩm theo thời gian thực.
Các công cụ giúp QA QC thực hiện công việc này hiệu quả hơn như:
- ELK Stack (Elasticsearch, Logstash, Kibana) là bộ công cụ mạnh mẽ có mã nguồn mở giúp bạn tổng hợp nhật ký từ hệ thống, lưu trữ, xử lý và hiển thị dữ liệu log và sự kiện từ hệ thống, phần mềm.
- Grafana là nền tảng hỗ trợ mã nguồn mở để bạn tổng hợp, truy vấn, phân tích các số liệu của phần mềm và hiển thị dưới dạng dashboard.
- New Relic giúp nhân viên QA QC hiểu rõ về hệ thống và biết cách cải thiện phần mềm mà họ đang phát triển bằng cách nhập dữ liệu từ bất kỳ nguồn kỹ thuật số nào lên hệ thống.
- Datadog là nền tảng hỗ trợ việc giám sát, quản lý hệ thống, ứng dụng hàng đầu và phân tích phần mềm có quy mô lớn. Datadog được thiết kế để hỗ trợ người dùng theo dõi hiệu suất và hoạt động của hệ thống công nghệ thông tin theo thời gian thực.
Version Control System
Version Control System (VCS) là hệ thống quản lý các phiên bản source code của phần mềm trong một cơ sở dữ liệu đặc biệt. Nhân viên QA QC có thể dễ dàng truy vấn ra được sự thay đổi của source code trong một file tại một thời điểm bất kỳ và có thể đảo ngược phiên bản cũ lên thành phiên bản mới của phần mềm nếu cần.
Có 2 VCS phổ biến được nhiều nhân viên QA QC sử dụng hiện nay là Git và SVN (Subversion).
Repo Hosting Service
Repo Hosting Service là các nền tảng cung cấp dịch vụ lưu trữ và quản lý kho source code của phần mềm. Các nền tảng phổ biến mà bạn có thể sử dụng để lưu trữ phần mềm của mình là:
- GitHub: Nền tảng lưu trữ mã nguồn Git với nhiều tính năng hữu ích.
- GitLab: Dịch vụ lưu trữ source code có tích hợp CI/CD.
- Bitbucket: Dịch vụ lưu trữ source code tích hợp Atlassian.
CI/CD (Continuous Integration/Continuous Deployment)
CI (Continuous Integration) là phương pháp phát triển phần mềm bằng cách liên tục tích hợp và triển khai các thay đổi trong source code, còn CD (Continuous Delivery) là quá trình xây dựng, thử nghiệm và phát hành phần mềm với tốc độ và tần suất tối ưu, giúp bạn giảm chi phí, thời gian và rủi ro khi thực hiện các thay đổi.
Headless Testing
Headless Testing là việc kiểm thử các ứng dụng web mà không cần tải giao diện người dùng (UI) của trình duyệt đó. Khi sử dụng Headless Testing, tốc độ tải trên trình duyệt sẽ nhanh hơn vì bạn có thể bỏ qua toàn bộ thời gian tải CSS, từ đó giúp cho các bài kiểm thử của bạn trở nên đáng tin cậy hơn, nhanh hơn và hiệu quả hơn.
2. Phát triển kỹ năng mềm
Bên cạnh các kiến thức chuyên môn thì để thăng tiến trên con đường sự nghiệp của mình dễ dàng hơn, bạn cũng nên tích lũy và phát triển các kỹ năng mềm như:
- Tư duy phân tích và giải quyết vấn đề giúp bạn đánh giá khó khăn, rèn luyện tư duy phản biện và giải quyết các tình huống khó khăn
- Tính tỉ mỉ, chú ý đến chi tiết giúp bạn phát hiện những lỗi nhỏ nhất.
- Kỹ năng giao tiếp giúp bạn truyền đạt thông tin hiệu quả và thuyết phục hơn đến các bên liên quan trong quá trình làm việc.
- Khả năng tiếp thu nhanh để nắm bắt cách sử dụng các công cụ và công nghệ mới để áp dụng chúng trong công việc.
- Quản lý thời gian giúp bạn sắp xếp thứ tự ưu tiên công việc một cách hiệu quả, kiểm soát khối lượng công việc và tuân thủ thời hạn kiểm thử.
3. Lấy bằng đại học hoặc các chứng chỉ chuyên môn
Bạn có thể theo học các chuyên ngành như Khoa học Máy tính, Công nghệ phần mềm, Quản lý Chất lượng, Công nghệ Thông tin,… tại các trường đại học.
Đồng thời, bạn có thể học thêm từ các khóa học bên ngoài để bổ sung các chứng chỉ chuyên môn như:
- ISTQB (International Software Testing Qualifications Board): Chứng chỉ về kiểm thử phần mềm.
- Six Sigma: Các chứng chỉ như Green Belt hoặc Black Belt trong do Six Sigma cung cấp.
- ISO 9001 Auditor: Chứng chỉ đánh giá nội bộ theo tiêu chuẩn ISO 9001.
- Chứng chỉ PMP (Project Management Professional): Chứng chỉ quản lý dự án chuyên nghiệp.
- Các chứng chỉ do American Society for Quality (ASQ) cung cấp như: Certified Quality Engineer (CQE), Certified Calibration Technician (CCT), Software Quality Engineer (CSQE),…
Các câu hỏi thường gặp về QA QC
Một số chức danh của công việc QA QC
Khi đảm nhiệm vị trí QA QC trong một doanh nghiệp thì bạn có thể nắm giữ một số chức danh như Quality Technician, Quality Auditor, Quality Coordinator, Quality Assurance Tester, Quality Control Supervisor, Quality Analyst, Quality Engineer,…
QA QC có cần học code không?
Các QA QC nên học code để có thể tự xây dựng các bộ kiểm thử tự động (automation test) và áp dụng cho công việc để tiết kiệm thời gian kiểm thử thủ công. Một số ngôn ngữ lập trình được sử dụng rộng rãi mà bạn có thể chọn học là Java, C#, JavaScript và Python.
Tổng kết QA QC là gì
Lộ trình học tập để trở thành một QA QC chuyên nghiệp đòi hỏi bạn phải nắm được các kiến thức chuyên môn, kỹ năng mềm và đạt được các chứng chỉ chuyên ngành để chứng minh cho năng lực của bản thân. Hy vọng rằng thông qua lộ trình học tập rõ ràng và chi tiết mà ITviec vừa giới thiệu, bạn sẽ có được nền tảng vững chắc để phát triển sự nghiệp trong lĩnh vực quản lý chất lượng phần mềm.