Đ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

Manual Testing vs Automation Testing: Fresher nên bắt đầu từ đâu?

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

6 tháng trước · 11 phút đọc

Manual testing và automation testing khác nhau ở đâu?

Mình nhớ lần đầu tiên đọc JD tuyển dụng QA, thấy hai dòng: "Kinh nghiệm manual testing""Biết sử dụng Selenium/Cypress". Lúc đó không hiểu hai thứ này khác nhau ra sao, cứ nghĩ "test là test".

Thực ra, đây là hai cách tiếp cận hoàn toàn khác nhau.

Manual testing (kiểm thử thủ công) là bạn tự mình ngồi click, nhập liệu, quan sát kết quả - y hệt người dùng thật. Không cần code, không cần tool phức tạp. Bạn có test case, bạn làm theo từng bước và ghi lại kết quả.

Automation testing (kiểm thử tự động) là viết script/code để máy làm thay bạn. Thay vì bạn click vào nút "Đăng nhập" 100 lần để test, bạn viết một đoạn code và máy chạy 100 lần đó trong vài phút.

343240 Manual: người test - Automation: máy test thay

Nghe có vẻ automation "xịn" hơn. Nhưng không hẳn vậy. Mình sẽ giải thích tại sao ngay dưới đây.


Ưu và nhược điểm của manual testing

Manual testing không phải "bước đệm" để rồi bỏ đi. Có những thứ chỉ người mới làm được mà máy móc không thể thay thế.

Điểm mạnh:

  • Phát hiện lỗi UX/UI nhạy cảm: Máy không biết button màu xám trông như "disabled" dù vẫn click được. Người dùng thật mới cảm nhận ra.
  • Linh hoạt khi UI thay đổi: Automation script thường "gãy" ngay khi dev đổi tên class hoặc thêm bước xác nhận. Manual thì không.
  • Exploratory testing: Đây là kiểu test "lang thang" - không theo kịch bản cố định, bạn tự nghĩ ra scenario. Cực kỳ hiệu quả tìm bug bất ngờ.
  • Phù hợp dự án ngắn hoặc tính năng mới: Chưa ổn định thì viết automation sớm = tốn công fix script liên tục.

343241 Exploratory testing tìm được bug mà script automation bỏ sót

Điểm yếu:

  • Chậm và dễ nhầm khi lặp lại nhiều lần: Test regression 200 test case mỗi sprint bằng tay thì... mệt thật.
  • Không scale được: Dự án lớn, sprint ngắn, team nhỏ - manual không đủ người.
  • Phụ thuộc vào trạng thái tester: Buổi chiều mệt, bỏ sót 2-3 bước kiểm tra là chuyện bình thường. Mình từng trải qua.

Trade-off rõ nhất: manual tốt cho chiều sâu, kém ở chiều rộng lặp lại.


Ưu và nhược điểm của automation testing

Nhiều bạn mới vào nghề nghe "automation" là muốn học ngay. Mình hiểu cảm giác đó - nghe có vẻ tech, có vẻ "pro". Nhưng mình cần nói thật về cả hai mặt.

Điểm mạnh:

  • Chạy nhanh, chạy nhiều lần: Regression testing 500 test case? Script chạy qua đêm, sáng ra có kết quả. Bằng tay thì cần cả tuần.
  • Nhất quán 100%: Máy không bao giờ "quên" bước số 7. Người thì có.
  • Tích hợp CI/CD được: Mỗi lần dev push code, pipeline tự chạy test. Bug được phát hiện ngay lập tức, không chờ tester ngồi test tay.
  • ROI tốt về dài hạn: Viết script một lần, chạy nghìn lần.

343242 Automation tích hợp CI/CD giúp phát hiện bug ngay khi dev push code

Điểm yếu:

  • Chi phí setup ban đầu cao: Viết một bộ script automation cho tính năng đăng nhập đúng chuẩn có thể mất 2-3 ngày. Manual test cùng tính năng đó mất 2-3 giờ.
  • Maintenance nặng: UI thay đổi = script gãy = phải sửa. Dự án thay đổi liên tục mà automation nhiều thì team tester chỉ lo fix script.
  • Cần kỹ năng code: Không phải ai cũng sẵn sàng học Selenium, Cypress, hay Playwright ngay từ đầu.
  • Không test được "cảm giác": Màu sắc sai, font chữ không đẹp, flow khó dùng - automation không biết.

Trade-off: automation tốt ở chiều rộng lặp lại, kém ở chiều sâu trải nghiệm.


Thị trường tuyển dụng tester Việt Nam đang cần gì?

Đây là câu hỏi thực tế nhất mà các bạn trái ngành cần biết trước khi quyết định học gì.

Mình đã xem qua hàng chục JD tuyển QA/Tester trên các sàn tuyển dụng lớn tại Việt Nam. Kết quả khá rõ:

Với vị trí Fresher/Junior Tester (0-1 năm kinh nghiệm):

  • Phần lớn JD yêu cầu kiến thức manual testing là bắt buộc
  • Automation thường là "nice to have" hoặc không đề cập
  • Yêu cầu biết viết test case, bug report, hiểu SDLC
  • Tool thông dụng: Jira, TestRail, Postman (không phải Selenium)

Với vị trí Mid/Senior (2+ năm):

  • Automation bắt đầu xuất hiện nhiều hơn
  • Selenium, Cypress, Playwright, Appium - tùy stack dự án
  • API testing với Postman hoặc Rest Assured
  • Một số nơi yêu cầu cả framework (TestNG, JUnit)

343243 Junior cần manual vững - Senior mới cần automation thành thạo

Thực tế mình thấy: công ty Việt Nam, đặc biệt outsourcing, vẫn cần rất nhiều manual tester. Sản phẩm thay đổi liên tục, team nhỏ, không phải dự án nào cũng có ngân sách/thời gian xây automation framework.

Một bạn manual tester kỹ càng, viết bug report rõ ràng, communicate tốt với dev - vẫn có giá trị rất cao. Đừng để bị áp lực "phải biết automation ngay" làm bạn nản.


Khi nào dùng manual, khi nào dùng automation?

Câu trả lời không phải "cái nào tốt hơn" mà là "cái nào phù hợp với tình huống này".

Dùng manual khi:

  • Tính năng mới, thay đổi liên tục (chưa ổn định để viết script)
  • Test UX/UI, trải nghiệm người dùng, màu sắc, flow cảm giác
  • Exploratory testing - tự do khám phá để tìm bug ẩn
  • Dự án nhỏ, timeline ngắn - không đủ thời gian setup automation
  • Smoke testing nhanh trước release

Dùng automation khi:

  • Regression testing - test lại những gì đã test từ trước
  • Tính năng ổn định, ít thay đổi UI
  • Load/performance testing - không thể giả lập 1000 user bằng tay
  • Chạy trên nhiều browser/device cùng lúc (cross-browser)
  • Có team và thời gian setup framework

343244 Quyết định đúng loại test phụ thuộc vào đặc điểm dự án

Mình hay dùng một nguyên tắc đơn giản: "Nếu test case này cần chạy lại nhiều hơn 10 lần trong vòng đời dự án, hãy nghĩ đến automation." Còn không, manual nhanh hơn, rẻ hơn, đủ tốt.

Ví dụ thực tế: Tính năng đăng nhập của một app thương mại điện tử thì nên automation (chạy mỗi sprint). Tính năng dashboard report mới thêm tuần trước, đang thay đổi thiết kế liên tục thì manual trước đã.


Lộ trình cho fresher trái ngành: manual trước, automation sau

Câu hỏi mình nhận nhiều nhất: "Mình từ ngành khác, 28 tuổi, có học tester được không?"

Được. Hoàn toàn được. Lớp mình từng có bạn 33 tuổi từ ngành kế toán, chưa biết gì về IT, sau 6 tháng đã đi làm junior tester. Không phải ngoại lệ.

Tháng 1-2: Nền tảng manual testing

Học test case là gì, bug report viết thế nào, SDLC/STLC là gì. Cài Jira, thực hành với app demo. Mục tiêu: viết được test case cho tính năng đăng nhập, đăng ký, giỏ hàng - những tính năng có ở hầu hết mọi app.

Tháng 3-4: Thực chiến và công cụ cơ bản

Học Postman để test API (kiểm thử giao diện lập trình ứng dụng) cơ bản - không cần biết code, chỉ cần biết cách gửi request và đọc response. Học SQL cơ bản để verify dữ liệu trong database. Xây dựng portfolio: test thật một ứng dụng web công khai, ghi lại bug tìm được.

343245 Lộ trình 6 tháng: manual vững rồi mới tính automation

Tháng 5-6: Chuẩn bị xin việc + bắt đầu automation nhẹ

Lúc này, bạn đã có đủ nền tảng để apply junior tester. Song song, bắt đầu tìm hiểu một tool automation: Selenium với Python hoặc Cypress với JavaScript - chọn một, đừng học cả hai cùng lúc.

Tại sao phải học manual trước? Vì automation chỉ là "code hóa" những gì bạn làm bằng tay. Nếu bạn không hiểu test case, không biết mình đang verify cái gì, bạn sẽ viết script mà không biết script đó đúng hay sai.

Tải checklist lộ trình chi tiết ở đây: Checklist lộ trình học tester 6 tháng


Câu hỏi thường gặp khi chọn hướng

"Mình không biết code, có học tester được không?"

Manual testing không cần code. Mình nhắc lại: không cần code. Bạn chỉ cần tư duy logic, tỉ mỉ và biết đặt câu hỏi "điều gì có thể sai ở đây?". Automation thì có - nhưng bạn học automation sau, khi đã hiểu testing là gì.

"Automation testing có đang thay thế manual không?"

Không hoàn toàn. Theo nhiều khảo sát, manual testing vẫn chiếm tỉ trọng lớn trong tổng số công việc QA toàn cầu. Automation thay thế các task lặp lại, nhàm chán - nhưng không thể thay thế tư duy phân tích, trải nghiệm người dùng, và sáng tạo trong exploratory testing. Manual tester giỏi vẫn có việc làm.

"Nên học Selenium hay Cypress trước?"

Nếu bạn đã biết JavaScript dù chút ít, Cypress dễ vào hơn nhiều - cú pháp hiện đại, debug dễ, có UI trực quan. Nếu background Java/Python thì Selenium phù hợp hơn. Quan trọng: chọn một, học cho thành thạo, đừng nhảy lung tung.

343246 Chọn tool automation phù hợp background của bạn

"Mình có nên lấy chứng chỉ ISTQB không?"

ISBQ Foundation (ISTQB Foundation Level) là chứng chỉ quốc tế được nhiều công ty tại Việt Nam công nhận. Không bắt buộc để xin việc, nhưng có sẽ giúp CV nổi bật hơn, đặc biệt với công ty outsourcing. Nếu đã học xong manual basics, ôn ISTQB là cách hệ thống hóa kiến thức rất tốt.

Tóm lại, testing không khó. Khó là giữ được sự tỉ mỉ sau 3-4 tháng đầu khi mọi thứ còn mới. Mình tin nếu bạn đọc đến đây, bạn đã có tư duy đúng rồi. Bắt đầu từ manual, làm kỹ từng test case, rồi automation sẽ đến tự nhiên.

Comment bên dưới nếu bạn đang phân vân ở bước nào - mình trả lời từng bạn nhé.