tvn wrote:Chắc cũng có nhiều người thắc mắc không biết công việc của một
tester là gì? Hôm nay mình xin mạn phép nói đôi điều về công việc của một tester ở Việt nam.
Chắc các bạn cũng nghe nói về
QC trong các lĩnh vực sản xuất hay trên một số sản phẩm có dán một mẩu giấy nhỏ nhỏ tròn tròn ghi là
"QC passed". Trong các lĩnh vực sản xuất, công
việc QC là kiểm tra sản phẩm được sản xuất ra có đúng theo yêu cầu chưa. ví dụ, một cái áo trước khi xuất xưởng phải đạt các tiêu chuẩn: kích thước, màu áo, đường chỉ may, túi áo, cúc (nút) áo,...v.v. nếu không đạt một trong số các tiêu chuẩn này thì sản phẩm này sẽ bị loại ra. Các ngành sản xuất khác cũng làm vậy, nhưng mỗi ngành có mỗi cách kiểm tra, thiết bị hỗ trợ kiểm tra khác nhau.
Trong lĩnh vực sản xuất
phần mềm thì cũng cần có QC - là người kiểm tra chất lượng của sản phẩm phần mềm vừa được xây dựng có phù hợp với yêu cầu của khách hàng hay chưa. Cũng có nhiều người thường gọi QC là Tester nhưng nếu nói sát nghĩa thì Tester là người thực hiện test sản phẩm, còn nếu nói QC thì người này không những test phần mềm mà còn làm nhiều việc khác nữa như viết test case, viết test plan,...
Trong lĩnh vực sản xuất phần mềm, để sản xuất được một sản phẩm phần mềm phải trải qua nhiều công đoạn và tốn nhiều nhân lực, thường thì người ta gọi quá trình sản xuất 1 sản phẩm phần mềm này là "dự án ABC" với "ABC" là tên của sản phẩm.
Công việc của một QC trước tiên là phải được
đào tạo về nghiệp vụ của dự án mà mình chuẩn bị tham gia, sau đó họ sẽ tìm hiểu tài liệu liên quan đến dự án, tài liệu hướng dẫn, các qui định riêng cho từng dự án, và tiếp theo khi dự án bắt đầu, công việc của người quản lý nhóm tester của dự án này (có thể là
QC leader hoặc một QC bình thường) sẽ viết test plan (kế hoạch test sản phẩm này) sau đó lên kế hoạch (schedule) cho việc test dự án này, trong bảng kế hoạch này sẽ cho biết ai làm phần nào (module nào, màn hình nào, chức năng nào...) sau đó, các bạn QC trong nhóm tham gia dự án này sẽ tiến hành đọc spec của màn hình, chức năng đã được phân công trong schedule (spec= bản mô tả chi tiết về xử lý và layout của một chức năng hay màn hình - đang nói về phần thiết kế chi tiết, vì có khi spec cũng là bản mô tả xử lý của một chức năng gồm nhiều màn hình liên kết với nhau). Trong khi đọc hiểu spec các bạn QC sẽ viết test case (còn gọi là thiết kế test case - test case design). Trong quá trình đọc spec và viết test case, nếu gặp chỗ không hiểu, QC sẽ viết QA (Question & Answer) để liên hệ với bộ phận thiết kế chi tiết (nơi viết ra spec) để hỏi hoặc xác nhận lại vấn đề mà mình không hiểu.
Sau khi DEV lập trình xong màn hình/chức năng ACB và yêu cầu QC test, thì lúc này QC sẽ dựa vào test case mình đã viết để test màn hình/chức năng này. Trong khi test, nếu phát hiện lỗi thì QC sẽ post lỗi này vào chương trình quản lý lỗi (tùy mỗi công ty sẽ có chương trình quản lý lỗi khác nhau, có thể viết bằng excel hoặc tự viết chương trình riêng hay sử dụng các chương trình miễn phí, thương mại của công ty khác - ví dụ: Mantis,
Bugzilla). Khi có lỗi thì DEV sẽ sửa lỗi, hoặc không sửa (nếu lỗi mà QC post lên không phải là lỗi của chương trình mà do QC làm sai thao tác - ví dụ như vậy). Trong quá trình test QC là người tạo data dùng để
test chức năng/màn hình của mình, có khi do một người nào đó chuyên trách tạo data để test.
Sau khi DEV đã sửa lỗi xong, thì QC có nhiệm vụ là phải test lại -
regression testing, nếu lỗi đã được khắc phục thì QC thực hiện thao tác "đóng" lỗi trên chương trình quản lý lỗi (chuyển trạng thái của lỗi sang trạng thái đã khắc phục xong). Nếu lỗi vẫn còn xảy ra thì chuyển trạng thái lỗi sang trạng thái "mở lại - reopen" (trạng thái vẫn còn lỗi sau khi đã sửa). Lặp lại quá trình này cho đến khi nào màn hình/chức năng đang test không còn phát hiện ra lỗi nữa. (không hẳn là "sạch lỗi" - chẳng qua mình chưa phát hiện được thôi
)
Sau khi test xong một màn hình/chức năng thì QC sẽ làm một bản báo cáo cho Quản lý dự án và mọi người trong dự án biết: trạng thái của màn hình ABC đã hết lỗi hay còn lỗi gì khó không khắc phục được và những thông tin chi tiết khác theo qui định của dự án hoặc công ty,...
Nếu công ty hay dự án có thực hiện test ở mức tích hợp hay mức hệ thống thì sau khi test xong ở mức đơn vị (test từng màn hình/chức năng) sẽ tiến hành thực hiện test ở mức hệ thống -
system testing. (mức này cũng được viết test case - công việc này có thể do một QC nào khác đảm nhiệm)
Sau khi test xong và dự án hết lỗi thì tiến hành đóng gói giao cho khách hàng.
Trên đây là mô tả công việc bình thường, chung chung của một tester (QC), vì tùy vào mỗi công ty, tổ chức hay dự án khác nhau tester có một số công việc khác nhau nữa (ví dụ như tạo data để test, thiết kế chỉnh sửa hình ảnh để test, review code, thiết lập môi trường test,...).
Cám ơn các bạn đã quan tâm.