Đang tải...

Lửng Lọc Lõi

Đeo kính để soi Bug cho rõ, nhíu mày để nhắc Dev sửa cho kỹ. Với tôi, 'chạy được' thôi là chưa đủ! 🧐💻


0

Tester có cần giỏi lập trình không? Trả lời thực tế cho người trái ngành

Lửng Lọc Lõi
Lửng Lọc Lõi

6 giờ tới · 9 phút đọc

Câu hỏi mình nhận nhiều nhất từ người trái ngành

Bạn đang học kế toán, kinh tế, hay thậm chí luật - rồi nghe nói tester không cần code nhiều, có thể chuyển ngành được. Nhưng Google tìm thêm thì thấy đầy job description yêu cầu "biết Python", "kinh nghiệm Selenium"... Thế là hoang mang.

Mình hiểu cảm giác đó. Hồi mình mới tìm hiểu về testing, mình cũng sợ y vậy.

Câu trả lời ngắn: manual tester không cần biết lập trình. Nhưng câu trả lời đầy đủ thì phức tạp hơn một chút - và bài này mình sẽ giải thích để bạn biết chính xác mình cần học gì, không cần học gì.

347367 Bức tranh toàn cảnh trước khi đi vào chi tiết

Trước hết, cần hiểu một điều: "tester" không phải một nghề đồng nhất. Có ít nhất hai con đường khác nhau hoàn toàn về yêu cầu kỹ năng.


Manual tester và automation tester: khác nhau ở điểm nào?

Manual tester là người test bằng tay - tức là tự mình mở app, thực hiện các thao tác như người dùng thật, rồi ghi lại kết quả. Bạn nhấn nút, điền form, kiểm tra xem màn hình hiển thị đúng không, số liệu có khớp không, flow có vỡ không.

Công việc này đòi hỏi gì? Logic rõ ràng, tỉ mỉ từng bước, hiểu nghiệp vụ của sản phẩm, và khả năng viết bug report (mô tả lỗi) để dev hiểu và fix được. Không có dòng code nào trong đây.

Automation tester thì khác. Thay vì tự tay test, bạn viết script để máy tự chạy test. Ví dụ: viết đoạn code Python để tự động mở trang đăng nhập, điền username/password, nhấn nút, rồi kiểm tra xem có vào được dashboard không.

Cái này cần code. Không nhiều như dev, nhưng cần.

347368 Hai vai trò khác nhau, yêu cầu khác nhau - chọn đúng điểm bắt đầu

Điều quan trọng: Phần lớn các công ty tuyển fresher tester ở Việt Nam hiện nay tuyển vị trí manual trước. Automation thường yêu cầu 1-2 năm kinh nghiệm manual. Nghĩa là con đường thực tế của hầu hết mọi người là: bắt đầu từ manual, sau đó mới học automation nếu muốn.


Kỹ năng nào manual tester KHÔNG cần biết

Mình liệt kê thẳng để bạn yên tâm:

  • Không cần biết viết hàm, vòng lặp, điều kiện
  • Không cần hiểu OOP (lập trình hướng đối tượng)
  • Không cần biết HTML/CSS/JavaScript
  • Không cần đọc source code của sản phẩm
  • Không cần setup server hay deploy

Nhiều bạn thấy job description ghi "biết Python là lợi thế" rồi nghĩ đó là bắt buộc. Không phải. "Lợi thế" nghĩa là nếu có thì tốt hơn, không có vẫn được tuyển.

347369 "Lợi thế" không phải "bắt buộc" - đọc JD cần phân biệt rõ

Mình từng hướng dẫn một bạn từng làm kế toán 5 năm, chưa viết dòng code nào trong đời. Bạn đó vào làm manual tester tại một công ty phần mềm ở Hà Nội sau 3 tháng học. Kỹ năng bạn ấy mang vào: tỉ mỉ với con số, quen với nghiệp vụ tài chính, và hiểu user behavior tốt hơn cả dev. Những thứ đó có giá trị thật sự trong testing.


Kỹ năng kỹ thuật NÊN có (dù không bắt buộc)

Đây là vùng "không cần nhưng sẽ giúp bạn làm việc tốt hơn hẳn". Mình chia làm 2 nhóm:

SQL cơ bản - học 2 tuần, dùng cả đời

Khi test tính năng liên quan đến dữ liệu - đăng ký tài khoản, mua hàng, chuyển điểm - bạn cần verify xem dữ liệu có lưu vào database đúng không. Manual tester làm điều này bằng cách chạy câu query SQL để kiểm tra trực tiếp.

Ví dụ: test tính năng đăng ký user trên app thương mại điện tử. Sau khi điền form và nhấn "Đăng ký", bạn không chỉ nhìn màn hình hiện "Thành công" là xong. Bạn chạy thêm câu:

-- Kiểm tra xem user vừa đăng ký có trong database không
SELECT * FROM users WHERE email = '[email protected]';

Nếu không có dòng nào trả về, có nghĩa là frontend hiển thị sai - data thực ra không được lưu. Bug này nếu không check database sẽ bị bỏ sót hoàn toàn.

SQL không phải lập trình theo nghĩa thông thường. Bạn không cần viết logic hay hàm - chỉ cần biết SELECT, WHERE, JOIN cơ bản là đủ dùng trong 80% công việc daily.

347370 SQL đơn giản hơn bạn nghĩ - 3 lệnh cơ bản dùng được ngay

Đọc hiểu API response - không cần viết code

Nhiều app hiện nay là single-page app (React, Vue...) - frontend gọi API để lấy data, rồi hiển thị lên màn hình. Khi test, đôi lúc màn hình hiển thị đúng nhưng data từ API trả về lại sai, hoặc ngược lại.

Bạn cần mở DevTools (F12) hoặc dùng Postman để xem API trả về gì. Kỹ năng này không cần viết code - chỉ cần đọc JSON response và biết đây là dữ liệu gì, đúng chưa.

Hai kỹ năng này - SQL và đọc API - không phải lập trình, nhưng sẽ giúp bạn test sâu hơn và phát hiện được bug mà người không có kỹ năng này sẽ bỏ qua.


Khi nào fresher nên bắt đầu học automation?

Câu trả lời thẳng: sau khi có 6-12 tháng làm manual tester.

Tại sao không học ngay từ đầu? Vì automation testing không phải chỉ là "viết code để test". Muốn viết script automation tốt, bạn cần hiểu:

  • Tính năng cần test là gì, test case nào quan trọng
  • Flow của app như thế nào, element nào stable, element nào hay thay đổi
  • Test nào nên automation, test nào nên để manual

Những thứ này chỉ có được sau khi làm manual đủ lâu. Mình từng thấy bạn học automation trước khi hiểu testing cơ bản - kết quả là viết được script chạy được, nhưng không biết đang test cái gì, bỏ sót bug nghiêm trọng vì không có test case đúng.

347371 Nền tảng manual vững mới làm automation có giá trị

Nếu bạn đang ở giai đoạn mới bắt đầu, đừng lo về automation. Tập trung vào:

  1. Viết test case kỹ - đủ happy path, invalid input, edge cases
  2. Viết bug report rõ - dev đọc là reproduce được ngay
  3. Hiểu quy trình testing trong team - Agile, sprint, release cycle

Bạn không cần nhớ hết các loại testing ngay từ đầu. Đi làm chủ yếu dùng 3-4 loại. Gặp loại mới thì học - không ai nhớ hết từ đầu, kể cả người có 5 năm kinh nghiệm.


Lộ trình thực tế từ zero code sang automation tester

Cho bạn cái nhìn cụ thể về hành trình, không phải lý thuyết:

Giai đoạn 1 - 0 đến 3 tháng: Nền tảng manual

Học viết test case, bug report, làm quen với Jira (công cụ quản lý task và bug). Thực hành với app thật - tìm app mẫu trên mạng hoặc tự cài các demo app rồi test thử. Mục tiêu: viết được 20-30 test case cho một tính năng đăng nhập, không bỏ sót edge case.

Giai đoạn 2 - 3 đến 6 tháng: Thêm kỹ năng kỹ thuật nhẹ

Học SQL cơ bản - SELECT, WHERE, JOIN, GROUP BY. Học dùng Postman để gọi API và đọc response. Thực hành kết hợp: test tính năng rồi verify database bằng SQL.

Giai đoạn 3 - 6 đến 12 tháng: Đi làm manual, học thêm từ thực tế

Đây là giai đoạn quan trọng nhất. Làm thật trong team thật, gặp bug thật, học quy trình thật. Automation chưa cần thiết ở đây.

Giai đoạn 4 - 12 tháng trở đi: Bắt đầu automation nếu muốn

Lúc này bạn đã hiểu test case là gì, flow app như thế nào. Học Python cơ bản kết hợp Selenium hoặc Playwright. Không cần học Python đầy đủ - chỉ cần đủ để viết script test.

347372 Bốn giai đoạn rõ ràng, không bị áp lực từ đầu

Một gợi ý nhỏ: nếu bạn muốn có nền tảng JavaScript cơ bản để sau này làm quen với automation tools như Playwright (dùng JS), khóa Lập Trình JavaScript Cơ Bản miễn phí trên F8 là điểm bắt đầu nhẹ nhàng - học theo nhịp của mình, không áp lực.