Kiểm thử phần mềm là công việc kiểm tra xem phần mềm có làm đúng như yêu cầu không, tìm lỗi trước khi người dùng gặp, ghi lại lỗi đủ rõ để lập trình viên sửa được, rồi kiểm lại sau khi sửa. Người làm nghề này thường được gọi là tester hoặc kỹ sư kiểm thử; có hai hướng chính là kiểm thử thủ công (tự thao tác trên phần mềm theo kịch bản) và kiểm thử tự động (viết chương trình để kiểm tra phần mềm).
Quanh Công viên phần mềm Quang Trung, kiểm thử là một trong những vị trí được tuyển đều đặn, vì các công ty gia công cần đội kiểm thử đi kèm mỗi dự án. Đây cũng là cửa vào nghề phần mềm phổ biến của người học trái ngành và người chuyển nghề. Bài nói về công việc thật, kỹ năng cần có, cách học và đường đi lên; không nêu mức lương vì phụ thuộc nhiều yếu tố.
Một ngày làm kiểm thử trong dự án gia công
Buổi sáng thường bắt đầu bằng cuộc họp ngắn của đội dự án: hôm qua làm gì, hôm nay làm gì, đang vướng gì. Người kiểm thử báo số trường hợp đã chạy, số lỗi phát hiện, lỗi nào đang chặn tiến độ. Sau đó là phần việc chính: đọc tài liệu yêu cầu của chức năng sắp làm, viết các trường hợp kiểm thử, chạy kiểm thử trên bản phần mềm mới nhất, ghi lỗi vào hệ thống quản lý.
Một lỗi được ghi tốt có tiêu đề rõ, các bước tái hiện từng bước, kết quả mong đợi, kết quả thực tế, ảnh chụp hoặc đoạn quay màn hình, môi trường đã kiểm (thiết bị, trình duyệt, phiên bản). Lập trình viên đọc xong phải tái hiện được ngay mà không cần hỏi lại. Viết lỗi rõ ràng là kỹ năng quan trọng bậc nhất của nghề, quan trọng hơn nhiều người nghĩ.
Cuối giai đoạn, đội kiểm thử chạy kiểm thử hồi quy: kiểm lại các chức năng cũ xem việc sửa lỗi hay thêm chức năng mới có làm hỏng chỗ khác không. Với dự án cho khách Nhật, tài liệu kiểm thử thường rất chi tiết, có mẫu biểu riêng, đôi khi phải viết bằng tiếng Nhật hoặc có người dịch. Trước ngày bàn giao, khối lượng việc tăng, có thể phải tăng ca.
Kiểm thử thủ công và kiểm thử tự động
Hai hướng này bổ sung cho nhau chứ không thay thế nhau. Nhiều người bắt đầu bằng thủ công rồi học thêm tự động.
| Tiêu chí | Kiểm thử thủ công | Kiểm thử tự động |
|---|---|---|
| Làm gì | Tự thao tác trên phần mềm theo kịch bản, quan sát kết quả | Viết chương trình chạy kiểm thử lặp lại, đọc báo cáo kết quả |
| Cần gì để bắt đầu | Tỉ mỉ, hiểu nghiệp vụ, viết rõ ràng, kiến thức nền về phần mềm | Biết lập trình ở mức khá, hiểu công cụ kiểm thử tự động |
| Hợp với việc gì | Chức năng mới, giao diện, trải nghiệm người dùng, tình huống bất ngờ | Kiểm thử hồi quy lặp lại, kiểm thử hiệu năng, nhiều dữ liệu |
| Điểm mạnh | Phát hiện lỗi mà máy không nghĩ tới, đánh giá cảm nhận | Nhanh, lặp lại được, chạy ban đêm |
| Hạn chế | Tốn thời gian khi lặp nhiều lần, dễ sót khi mệt | Tốn công viết và bảo trì kịch bản, không thay được phán đoán của người |
Thị trường những năm gần đây nghiêng về người biết cả hai. Người làm thủ công lâu năm mà không học thêm tự động hoặc nghiệp vụ chuyên sâu sẽ thấy cơ hội thu hẹp dần, vì phần việc lặp lại ngày càng được máy làm.
Kỹ năng thật sự cần, không chỉ là "cẩn thận"
Đọc hiểu yêu cầu. Phần lớn lỗi nghiêm trọng bắt nguồn từ yêu cầu bị hiểu sai. Người kiểm thử giỏi đọc tài liệu và hỏi ngay những chỗ mơ hồ, mâu thuẫn trước khi viết dòng mã nào. Câu hỏi đúng lúc tiết kiệm cho dự án nhiều ngày sửa.
Nghĩ như người dùng, và như người phá. Thử những gì người dùng bình thường sẽ làm, rồi thử những gì họ có thể làm sai: bấm hai lần, nhập chữ vào ô số, mất mạng giữa chừng, dùng trên điện thoại cũ.
Kỹ thuật thiết kế trường hợp kiểm thử. Chia lớp dữ liệu tương đương, kiểm giá trị biên, bảng quyết định — những kỹ thuật giúp kiểm ít trường hợp mà phủ được nhiều. Học được từ sách giáo khoa và các giáo trình chứng chỉ kiểm thử phổ biến.
Kiến thức kỹ thuật nền. Cơ sở dữ liệu và câu truy vấn để kiểm dữ liệu sau thao tác; cách web và ứng dụng di động gọi máy chủ; công cụ của trình duyệt để xem lỗi. Không cần giỏi như lập trình viên, nhưng càng hiểu thì lỗi ghi càng chính xác.
Giao tiếp không gây chiến. Báo lỗi là nói với người khác rằng việc của họ có chỗ sai. Viết trung tính, tập trung vào hiện tượng, không đổ lỗi, giúp đội làm việc với nhau lâu dài.
Ai chuyển sang kiểm thử được
Kiểm thử là nghề có nhiều người vào từ ngành khác. Những nền tảng hay gặp và lợi thế của họ:
- Sinh viên công nghệ thông tin không thích lập trình cả ngày: có nền kỹ thuật, dễ học kiểm thử tự động sau này.
- Người học kế toán, ngân hàng, kinh tế: hiểu nghiệp vụ, rất được việc ở dự án phần mềm tài chính, kế toán, bán hàng.
- Người học ngoại ngữ, nhất là tiếng Nhật: đọc được tài liệu gốc của khách, lợi thế lớn ở công ty gia công cho khách Nhật.
- Nhân viên tổng đài, chăm sóc khách hàng: quen nghe người dùng phàn nàn, biết lỗi nào làm khách khó chịu nhất.
- Giáo viên, người làm công việc đòi hỏi tỉ mỉ: quen kiểm tra, quen viết hướng dẫn rõ ràng.
Điểm chung là phải học thêm phần kỹ thuật nền và kỹ thuật kiểm thử, không thể vào nghề chỉ bằng sự cẩn thận. Thời gian học tuỳ người; người có nền công nghệ thông tin vào nhanh hơn người hoàn toàn trái ngành.
Lộ trình tự học để xin việc kiểm thử đầu tiên
Lộ trình dưới đây không có thời hạn cố định; mỗi bước nên làm tới khi tự tin làm được, không chỉ đọc qua.
- Học kiến thức nền về quy trình làm phần mềm: phần mềm được làm qua những giai đoạn nào, kiểm thử nằm ở đâu, các cấp độ kiểm thử.
- Học kỹ thuật thiết kế trường hợp kiểm thử và cách viết báo cáo lỗi; tập trên một ứng dụng có sẵn mà bạn hay dùng, viết thử hai chục trường hợp và năm báo cáo lỗi.
- Học cơ sở dữ liệu và câu truy vấn cơ bản; học dùng công cụ của trình duyệt để xem yêu cầu gửi đi và lỗi trả về.
- Làm quen một công cụ quản lý lỗi và quản lý kiểm thử phổ biến (nhiều công cụ có bản dùng thử miễn phí).
- Gom bài tập thành một hồ sơ: tài liệu kiểm thử, báo cáo lỗi mẫu, ghi chú những gì đã học. Mang theo khi phỏng vấn.
- Sau khi có việc, học dần một ngôn ngữ lập trình và một công cụ kiểm thử tự động, áp dụng ngay vào phần việc lặp lại của dự án.
Có thể học qua tài liệu mở, sách, khoá trực tuyến hoặc lớp ở trung tâm. Nếu đăng ký lớp, học thử trước, hỏi học viên cũ, và tránh những nơi hứa chắc chắn có việc kèm học phí lớn hay hợp đồng vay.
Kiểm thử theo loại phần mềm
Cùng là kiểm thử nhưng mỗi loại phần mềm đòi hỏi chú ý khác nhau. Biết trước giúp bạn chọn dự án hợp với nền tảng của mình.
| Loại phần mềm | Chú ý chính | Hợp với ai |
|---|---|---|
| Trang web, hệ thống quản lý doanh nghiệp | Đúng nghiệp vụ, phân quyền người dùng, dữ liệu sau thao tác, nhiều trình duyệt | Người hiểu nghiệp vụ kế toán, bán hàng, nhân sự |
| Ứng dụng di động | Nhiều đời máy, kích thước màn hình, mạng chập chờn, thông báo, pin | Người kiên nhẫn, thích thử trên nhiều thiết bị |
| Hệ thống ngân hàng, tài chính | Tính đúng số, bảo mật, nhật ký giao dịch, quy định của ngành | Người học tài chính, kế toán |
| Hệ thống nhúng, thiết bị | Phần mềm chạy trên máy móc, cảm biến, đo thời gian phản hồi | Người học điện tử, có nền kỹ thuật |
| Sản phẩm giải trí, nội dung số | Trải nghiệm, độ mượt, nội dung hiển thị đúng ngôn ngữ | Người thích công nghệ tiêu dùng, để ý chi tiết |
Người mới thường không được chọn dự án; nhưng biết mình hợp với loại nào giúp bạn nói rõ mong muốn khi phỏng vấn và khi trao đổi với trưởng nhóm về dự án tiếp theo.
Hiểu lầm hay gặp về nghề kiểm thử
"Kiểm thử là nghề dễ, ai cũng làm được." Bắt đầu thì không quá khó, nhưng làm giỏi thì khó: phải hiểu nghiệp vụ, đọc ra chỗ mơ hồ trong yêu cầu, thiết kế được bộ kiểm thử gọn mà phủ rộng, đánh giá rủi ro để biết chỗ nào cần kiểm kỹ. Người coi nghề là dễ thường dừng ở mức chạy kịch bản người khác viết.
"Kiểm thử chỉ là bấm thử." Bấm thử chỉ là phần nhìn thấy. Phần lớn thời gian là đọc tài liệu, đặt câu hỏi, viết kịch bản, phân tích lỗi, kiểm dữ liệu. Ở dự án lớn, người kiểm thử còn lập kế hoạch kiểm thử cho cả giai đoạn.
"Tìm càng nhiều lỗi càng giỏi." Số lượng lỗi không phải thước đo duy nhất. Một lỗi nghiêm trọng tìm ra sớm có giá trị hơn hàng chục lỗi chính tả. Người kiểm thử giỏi biết ưu tiên lỗi theo mức ảnh hưởng tới người dùng và khách hàng.
"Kiểm thử là vị trí thấp hơn lập trình." Ở đội làm tốt, kiểm thử và lập trình là hai vai ngang nhau cùng chịu trách nhiệm về chất lượng. Nơi coi kiểm thử là phụ thường là nơi phần mềm hay lỗi.
Đường đi lên của người làm kiểm thử
Sau vài năm, người làm kiểm thử có nhiều hướng: trở thành trưởng nhóm kiểm thử, lo kế hoạch và phân việc cho cả đội; chuyên sâu kiểm thử tự động, hiệu năng, bảo mật; chuyển sang phân tích nghiệp vụ nhờ hiểu sâu yêu cầu; chuyển sang quản lý dự án; hoặc chuyển sang lập trình nếu đã học đủ.
Những người đi lên nhanh thường có hai điểm chung: hiểu nghiệp vụ của khách sâu hơn mức chỉ kiểm theo kịch bản, và chủ động tự động hoá những phần việc lặp lại thay vì chờ được giao. Chứng chỉ kiểm thử có thể giúp hồ sơ, nhưng người tuyển thường coi trọng kinh nghiệm dự án hơn.
Quanh Công viên phần mềm, người làm kiểm thử có lợi thế là nhiều công ty trong một khu, đổi việc để học thêm loại dự án mới không phải đổi chỗ ở. Nhưng cũng nên tránh đổi việc quá thường xuyên trong những năm đầu; ở đủ lâu để đi trọn vài dự án từ đầu tới bàn giao mới học được hết vòng đời của nghề.
Câu hỏi thường gặp
Làm kiểm thử có cần biết lập trình không?
Kiểm thử thủ công không bắt buộc biết lập trình để bắt đầu, nhưng cần hiểu phần mềm vận hành thế nào, biết truy vấn dữ liệu cơ bản. Muốn đi xa, nhất là sang kiểm thử tự động, thì cần học lập trình. Nhiều người vừa làm vừa học dần.
Nghề kiểm thử có bị trí tuệ nhân tạo thay thế không?
Một phần việc lặp lại như chạy lại kịch bản cũ, sinh dữ liệu thử đang được công cụ tự động hoá hỗ trợ ngày càng nhiều. Phần đòi hỏi hiểu nghiệp vụ, đặt câu hỏi về yêu cầu, đánh giá trải nghiệm, phán đoán rủi ro vẫn cần người. Người làm kiểm thử nên học dùng các công cụ mới thay vì né chúng.
Nữ làm kiểm thử có phù hợp không?
Kiểm thử không phân biệt nam nữ; nhiều đội kiểm thử có tỷ lệ nữ cao. Điều quyết định là kỹ năng và sự bền bỉ. Luật lao động cấm phân biệt đối xử vì giới tính trong tuyển dụng; nếu gặp tin tuyển dụng ghi giới hạn giới tính không có lý do chính đáng, đó là dấu hiệu cần cân nhắc.
Tester ở công ty gia công khác tester ở công ty sản phẩm thế nào?
Ở công ty gia công, kiểm thử theo yêu cầu và tiêu chuẩn của khách, tài liệu nhiều, quy trình chặt. Ở công ty sản phẩm, kiểm thử gắn với người dùng thật, phát hành thường xuyên, phải tự đánh giá rủi ro nhiều hơn. Người mới thường học được nền tảng tốt ở công ty gia công.
Có nên học chứng chỉ kiểm thử quốc tế trước khi xin việc không?
Chứng chỉ giúp hệ thống hoá kiến thức và có thể là điểm cộng trên hồ sơ, nhưng không thay được việc thực hành. Nếu ngân sách hạn chế, ưu tiên tự thực hành và làm hồ sơ bài tập trước; chứng chỉ có thể học sau khi đi làm, có nơi được công ty hỗ trợ.
Người lớn tuổi chuyển nghề sang kiểm thử có muộn không?
Không có tuổi cố định, nhiều người chuyển nghề ở tuổi ba mươi trở lên, nhất là khi mang theo hiểu biết nghiệp vụ từ nghề cũ. Khó khăn là bắt đầu lại ở vị trí người mới. Nên chọn dự án thuộc lĩnh vực mình từng làm để tận dụng kinh nghiệm.