Lộ trình Automation Testing cho Manual Tester



- Automation testing giải quyết bài toán gì mà manual testing không làm được
- Nên học ngôn ngữ gì cho automation testing và vì sao
- Lộ trình 30 ngày: từ manual tester đến bộ test tự động đầu tiên
- Viết kịch bản automation testing đầu tiên: ví dụ cụ thể kiểm thử trang đăng nhập
- Những lỗi phổ biến khi học automation testing và cách tránh
- Câu hỏi thường gặp khi bắt đầu automation testing
- Tổng kết
- Bình luận
Lộ trình học automation testing cho manual tester trong 30 ngày: nên học gì, theo thứ tự nào, ngôn ngữ và công cụ nào, giúp bạn viết được bộ test tự động đầu tiên dù chưa từng code.
Automation testing giải quyết bài toán gì mà manual testing không làm được
Hãy tưởng tượng một tình huống quen thuộc: mỗi lần ứng dụng được phát hành bản mới, bạn phải đăng nhập, kiểm tra giỏ hàng, thanh toán thử một đơn và kiểm lại trang cá nhân. Lần đầu tiên làm bằng tay mất 20 phút. Nếu có 50 kịch bản như vậy, một lần hồi quy (regression) tốn cả một ngày làm việc. Và dự án ra phiên bản mỗi tuần, nghĩa là tester phải lặp lại công việc giống hệt nhau hàng trăm lần mỗi quý.
Đó chính xác là khoảng trống mà automation testing lấp vào. Định nghĩa đơn giản nhất: automation testing dùng code để thực thi lại các kịch bản kiểm thử một cách tự động, nhanh hơn và nhất quán hơn manual testing. Bảng dưới đây so sánh hai cách tiếp cận trên cùng một tình huống hồi quy 50 kịch bản:
| Tiêu chí | Manual testing | Automation testing |
|---|---|---|
| Thời gian chạy 50 kịch bản hồi quy | Gần 1 ngày làm việc | 20–40 phút, chạy qua đêm hoặc song song |
| Chi phí khi chạy lại lần thứ 100 | Vẫn bằng lần thứ 1 | Gần như bằng 0 |
| Độ chính xác giữa các lần chạy | Phụ thuộc sự tập trung của người thực hiện | Giống hệt nhau ở mọi lần chạy |
| Chi phí ban đầu | Thấp, chỉ cần kiến thức nghiệp vụ | Cao hơn: cần thời gian học code và dựng khung |
| Khả năng phát hiện lỗi UI tinh tế | Tốt, tester nhìn ra ngay | Hạn chế nếu chỉ so khớp văn bản |
Automation không thay thế manual testing. Nó thay thế phần việc lặp lại, để tester dành thời gian cho exploratory testing, nơi máy móc vẫn yếu.
Kết luận thực tế: nếu bạn đã nắm vững tư duy kiểm thử ở mảng manual, việc học automation là nâng cấp kỹ năng, không phải bắt đầu lại từ đầu. Kinh nghiệm viết testcase, hiểu nghiệp vụ và biết lỗi thường nằm ở đâu chính là lợi thế lớn nhất khi bạn chuyển sang automation.
Nếu tư duy kiểm thử nền tảng của bạn chưa vững, khóa học Testing cơ bản (miễn phí, 107 bài, 11 chương) là điểm khởi phát hợp lý trước khi bước vào học code cho automation. Ngoài ra, nếu công ty mục tiêu của bạn yêu cầu Java, khóa Java cho QA engineer đi thẳng vào Java theo đúng bối cảnh kiểm thử, còn Git và Github (miễn phí) giúp bạn quản lý code test như một engineer thực thụ.
Nên học ngôn ngữ gì cho automation testing và vì sao
Câu hỏi phổ biến nhất từ manual tester là: "Học Java, Python hay JavaScript?". Câu trả lời phụ thuộc vào target job chứ không phụ thuộc vào độ khó ngôn ngữ. Ba nhóm phổ biến nhất hiện nay được tổng hợp như sau:
| Nhóm | Ngôn ngữ + công cụ | Ưu điểm chính | Ai nên chọn |
|---|---|---|---|
| Nhóm tốc độ bắt đầu | Python + Playwright/Selenium | Cú pháp gần với tiếng Anh, setup 10 phút, tài liệu tiếng Việt nhiều | Tester chưa từng code, chuyển ngành phi kỹ thuật |
| Nhóm web hiện đại | JavaScript/TypeScript + Playwright | Playwright được các team web JS ưa chuộng nhất hiện nay, chạy nhanh, hỗ trợ nhiều trình duyệt | Tester làm việc với team dùng React/Vue/Node |
| Nhóm enterprise | Java + Selenium/TestNG | Số lượng job lớn nhất tại các ngân hàng và tập đoàn viễn thông | Tester nhắm vào thị trường tuyển dụng quy mô lớn |
Nếu không có data rõ ràng về công ty mục tiêu, Python là lựa chọn an toàn nhất để bắt đầu: bạn có thể viết kịch bản đầu tiên trong tuần học thứ nhất thay vì tuần thứ ba.
Bất kể chọn nhóm nào, bạn chỉ cần nắm sáu core concept trước khi đụng đến công cụ kiểm thử: biến và kiểu dữ liệu, hàm, câu lệnh điều kiện (if/else), vòng lặp, danh sách/dictionary, và khái niệm đối tượng (object) ở mức đọc hiểu.
Bạn chưa từng code và muốn bắt đầu automation testing nhanh nhất. Lựa chọn nào phù hợp nhất?
Chọn một đáp án
Lộ trình 30 ngày: từ manual tester đến bộ test tự động đầu tiên
Lộ trình dưới đây giả định bạn dành 1–2 giờ mỗi ngày và đã có tư duy kiểm thử cơ bản. Mục tiêu cụ thể sau 30 ngày: một bộ 10 kịch bản tự động chạy được trên trang demo công khai, xuất báo cáo kết quả dạng bảng. Lộ trình tổng thể này khớp với bức tranh chuyển từ zero sang chuyên nghiệp mà bài Lộ Trình Học Tester: Từ Zero Đến Chuyên Nghiệp đã phác thảo, trong đó automation tester là một trong các ngã rẽ chính sau khi vững foundation.
| Tuần | Trọng tâm | Kết quả cần đạt được |
|---|---|---|
| Tuần 1 | Lập trình Python cơ bản | Viết được hàm, vòng lặp, đọc hiểu error message |
| Tuần 2 | Selenium/Playwright + locator | Tự động điền form, click, đọc kết quả trên trang |
| Tuần 3 | Cấu trúc test + Page Object Model | Chuyển code rời rạc thành hàm test có tổ chức |
| Tuần 4 | 10 kịch bản hoàn chỉnh + báo cáo | Bộ test chạy trọn vẹn, xuất được báo cáo kết quả |
Hai kỹ năng quan trọng nhất trong tuần 2 và 3 là định vị phần tử (locator) và cơ chế chờ (wait). Locator xác định "bấm vào nút nào" (qua ID, CSS Selector hoặc XPath), còn wait xử lý "chờ trang tải xong chưa". Đây là hai nguyên nhân phổ biến nhất khiến kịch bản bị false failure.
Hai kỹ năng xương sống của automation testing
Locator và wait quyết định kịch bản của bạn chạy ổn định hay liên tục lỗi sai.
Locator
Cách script tìm đúng nút, ô input trên trang. Ưu tiên thứ tự: ID hoặc data attribute > CSS Selector > XPath. Locator ổn định là locator không bị gãy khi trang chỉ thay đổi màu sắc hay bố cục.
Wait
Cách script đợi phần tử xuất hiện trước khi interact. Có hai loại chính: implicit wait (chờ ngầm toàn cục, nên hạn chế) và explicit wait (chờ điều kiện cụ thể cho từng phần tử, nên dùng). Lỗi sai phổ biến nhất của người mới là kịch bản chạy nhanh hơn trang tải.

Viết kịch bản automation testing đầu tiên: ví dụ cụ thể kiểm thử trang đăng nhập
Hãy nhìn một kịch bản cụ thể trước để bạn biết đích đến trông như thế nào. Kịch bản này kiểm tra màn hình đăng nhập của một trang thương mại điện tử demo (ví dụ trang demo chính thức của Playwright): đăng nhập thành công khi nhập đúng thông tin.
Từ kịch bản trên, bạn có thể thiết kế bộ testcase dạng bảng như khi kiểm thử thủ công, chỉ khác ở chỗ bước thực thi giờ do script đảm nhận:
Lưu ý quan trọng: kịch bản trên dùng headless=True để chạy ngầm không hiển thị trình duyệt, phù hợp khi chạy hàng loạt. Khi viết test đầu tiên, bạn có thể tạm bỏ cờ này để xem trình duyệt hoạt động và dễ học hơn.
Page Object Model giải quyết vấn đề này bằng cách tách mô tả giao diện khỏi logic kiểm thử. Mỗi màn hình được đóng gói thành một đối tượng riêng, nơi chứa toàn bộ locator của màn hình đó. Khi giao diện thay đổi, bạn chỉ sửa một file duy nhất.
Cấu trúc tối thiểu như sau:
-
pages/login_page.py: định nghĩa locator và các hành động của màn hình đăng nhập. -
tests/test_login.py: gọi các hành động củaLoginPageđể viết kịch bản.
Đây là mẫu thiết kế được khuyến nghị chính thức trong tài liệu của Playwright và Selenium, và là tiêu chí thường gặp trong phỏng vấn automation tester.
Những lỗi phổ biến khi học automation testing và cách tránh
Thống kê trải nghiệm từ các cộng đồng QA cho thấy người học automation thường không bỏ cuộc vì code khó, mà vì ba nguyên nhân lặp đi lặp lại. Hiểu trước ba nguyên nhân này giúp tester đi nhanh hơn đáng kể.
| Lỗi phổ biến | Biểu hiện | Cách tránh cụ thể |
|---|---|---|
| Học dàn trải nhiều công cụ cùng lúc | Một tháng học Selenium, Cypress, Appium, JMeter nhưng không viết được kịch bản hoàn chỉnh | Chọn đúng một bộ (ngôn ngữ + framework) và dùng nó cho toàn bộ 30 ngày |
| Không đọc thông báo lỗi | Stack trace hiện ra nhưng tester bỏ qua, thử sửa ngẫu nhiên | Luyện thói quen đọc 3–5 dòng lỗi đầu tiên trước khi tra cứu |
| Chỉ xem video, không tự gõ | Cảm giác hiểu bài khi xem nhưng không viết được khi mở editor | Quy tắc 30 phút học lý thuyết đi kèm 30 phút tự gõ và chạy thử |
Một nguyên tắc nữa cần giữ: không theo đuổi độ phủ test coverage cao ngay từ đầu. Một bộ 10 kịch bản chạy ổn định, được bảo trì tốt có giá trị thực tế lớn hơn một bộ 200 kịch bản thường xuyên báo lỗi sai (false failure).
Kịch bản tự động của bạn liên tục báo lỗi sai dù chức năng vẫn hoạt động bình thường. Nguyên nhân nào phổ biến nhất?
Chọn một đáp án
Câu hỏi thường gặp khi bắt đầu automation testing
Việc bạn đã quen với tư duy testcase (điều kiện, input, expected result) giúp bước chuyển này nhanh hơn người hoàn toàn mới với công nghệ. Nhiều tester chuyển ngành thành công chỉ bằng cách học mỗi tối 1–2 giờ trong ba tháng.
So sánh nhanh cho người mới:
-
Selenium: community lớn nhất, số lượng job tuyển nhiều nhất, hỗ trợ Java/Python/C#/JS, nhưng cài đặt và cấu hình driver phức tạp hơn.
-
Playwright: cài nhanh hơn, tự tải driver, hỗ trợ wait thông minh mặc định, chạy được trên Chromium/Firefox/WebKit. Nhược điểm duy nhất hiện nay là số lượng job (chủ yếu ở các công ty web hiện đại) vẫn ít hơn Selenium một chút.
Nếu công ty bạn đang dùng Selenium, học Selenium. Nếu tự học để mở rộng cơ hội, Playwright với Python hoặc JavaScript là lựa chọn tiết kiệm thời gian nhất.
Điều quan trọng hơn mức lương trung bình: automation tester có trần phát triển cao hơn, ví dụ hướng tới vị trí SDET (Software Development Engineer in Test) hoặc lead QA. Đây chính là động lực thực tế khiến nhiều manual tester chấp nhận dành ba tháng để học.
Tổng kết
-
Automation testing thay thế phần việc lặp lại của manual testing, không thay thế tư duy kiểm thử. Kinh nghiệm testcase hiện tại của bạn vẫn là tài sản lớn nhất.
-
Chọn một bộ công cụ duy nhất (khuyến nghị Python + Playwright nếu chưa có định hướng công ty) và gắn bó đủ 30 ngày để viết được bộ test đầu tiên.
-
Hai kỹ năng quyết định độ ổn định của kịch bản là locator và cơ chế chờ; cấu trúc Page Object Model là bước không thể bỏ qua khi kịch bản vượt quá vài chục.
-
Nếu bạn muốn học sâu theo từng bước, hãy thử lộ trình thực hành trong bài Playwright với TypeScript cơ bản cho Tester hoặc khóa học automation trên T5Edu. Một nền tảng kiểm thử tổng quát như API Testing cơ bản (miễn phí) cũng đáng học song song vì automation API thường được đưa vào CI/CD sớm hơn UI automation.
-
Theo bạn, kịch bản nào trong hệ thống hiện tại của bạn tốn nhiều thời gian chạy lại nhất và đáng được tự động hóa trước tiên?
Bình luận (0)