Automation Testing Nền Tảng: Selenium và Appium Cho Người Mới Sau Manual

6 tháng trước · 14 phút đọc
Manual 3 tháng - có nên học automation chưa?
Mình nhớ lần đầu nghe đồng nghiệp nói "mày nên học Selenium đi, manual rồi sẽ bị thay". Lúc đó mình mới 2 tháng, test case còn viết chưa trơn, nghe xong hoang mang không biết bắt đầu từ đâu.
Thật ra câu trả lời không phải "học ngay" hay "đợi lâu hơn". Nó tùy vào bạn đang ở đâu và công ty tuyển dụng cần gì.
Không phải ai học automation sớm cũng tốt hơn - timing quan trọng hơn tốc độ
Theo khảo sát các JD tuyển dụng tester tại Việt Nam năm 2025-2026, hơn một nửa tin tuyển dụng fresher/junior tester yêu cầu hoặc ưu tiên có kiến thức automation cơ bản (Selenium hoặc Appium). Con số này cho thấy học automation không còn là "bonus điểm" nữa - nó đang dần trở thành kỳ vọng cơ bản.
Nhưng "biết cơ bản" khác với "thành thạo". Và khác rất nhiều so với viết automation framework từ đầu. Bài này mình sẽ phân tích rõ: sau 3 tháng manual, bạn cần học gì, học đến đâu là đủ để xin việc.
Selenium là gì và tại sao nó phổ biến với web tester?
Selenium là bộ công cụ mã nguồn mở dùng để tự động hóa trình duyệt web. Nói đơn giản hơn: thay vì bạn tự tay click vào nút "Đăng nhập", nhập username, nhập password, Selenium làm hết việc đó thay bạn - và làm được hàng trăm lần không mệt, không sai, không quên.
Bộ Selenium gồm 3 phần chính:
- Selenium WebDriver - cái bạn sẽ dùng hàng ngày. Nó điều khiển Chrome, Firefox, Edge thông qua code.
- Selenium IDE - extension trên Chrome/Firefox, ghi lại thao tác và tạo test tự động. Phù hợp để học ban đầu.
- Selenium Grid - chạy test song song trên nhiều máy/trình duyệt. Phần này học sau khi vững 2 phần trên.
WebDriver là phần bạn sẽ viết code và dùng nhiều nhất khi đi làm
Tại sao Selenium phổ biến? Vì nó miễn phí, hỗ trợ nhiều ngôn ngữ lập trình (Java, Python, C#...), và cộng đồng cực lớn. Khi gặp lỗi, Google 30 giây là ra câu trả lời. Với tester Việt Nam, Java là lựa chọn phổ biến nhất vì phần lớn dự án enterprise dùng Java stack.
Một điều mình muốn nhấn mạnh: Selenium không tự nghĩ ra test case. Bạn vẫn phải biết test cái gì, edge case nào cần cover. Đó là lý do nền tảng manual vững mới học automation được - bạn cần hiểu "logic test" trước khi viết code để thực thi nó.
Appium - khi web chưa đủ, mobile mới là tương lai
Bạn đang test app mobile? Hay muốn mở rộng sang mảng này? Appium là câu trả lời.
Appium là framework automation cho ứng dụng mobile - cả Android lẫn iOS. Nó hoạt động theo nguyên tắc tương tự Selenium WebDriver nhưng thay vì điều khiển trình duyệt, nó điều khiển ứng dụng trên điện thoại (thật hoặc giả lập).
Appium kết nối máy tính với thiết bị mobile qua Appium Server
Điểm mạnh lớn nhất của Appium: viết test một lần, chạy được cả Android và iOS. Điều này tiết kiệm rất nhiều công sức so với dùng tool riêng cho từng platform.
Appium khác Selenium ở chỗ nào?
| Tiêu chí | Selenium | Appium |
|---|---|---|
| Test trên | Trình duyệt web | App mobile (Android/iOS) |
| Đối tượng | Web tester | Mobile tester |
| Độ phức tạp setup | Trung bình | Cao hơn (cần Android Studio hoặc Xcode) |
| JD phổ biến ở VN | Rất nhiều | Ngày càng tăng |
Một lưu ý thực tế: setup Appium lần đầu khó hơn Selenium khá nhiều. Bạn cần cài Android Studio, cấu hình emulator, kết nối ADB... Mình từng mất 1 ngày chỉ để setup xong và chạy được test đầu tiên. Đừng nản - đó là bình thường với mọi người mới.
Nếu bạn đang apply vào công ty test app mobile (fintech, e-commerce có app riêng, game), học Appium sẽ là lợi thế rõ ràng. Nếu công ty chủ yếu test web, Selenium trước là đủ.
Setup môi trường Java + Selenium - từng bước không bỏ sót
Mình hay thấy bạn mới bị stuck ngay ở bước này. Không phải vì khó, mà vì thiếu hướng dẫn cụ thể. Dưới đây là những gì bạn cần cài đặt theo đúng thứ tự.
Công cụ cần chuẩn bị:
- JDK 17 hoặc 21 (Java Development Kit) - Tải JDK 21 - Oracle
- IntelliJ IDEA Community (IDE miễn phí) - Tải IntelliJ IDEA Community
- Maven (build tool, quản lý thư viện)
- ChromeDriver (driver kết nối Java với Chrome)
Cài đúng thứ tự: JDK trước, IDE sau, driver cuối cùng
Sau khi cài JDK, kiểm tra bằng lệnh:
java -version
Nếu thấy phiên bản hiện ra (ví dụ: java version "21.0.1") là ổn. Nếu không ra - kiểm tra lại JAVA_HOME trong Environment Variables.
Tạo project Maven mới trong IntelliJ, thêm dependency Selenium vào file pom.xml:
Save lại, IntelliJ sẽ tự tải thư viện về. Bước này cần internet, có thể mất 2-3 phút. Đây là điểm hay của Maven - bạn không cần tải file .jar thủ công nữa.
Lỗi thường gặp nhất: ChromeDriver version không khớp với Chrome đang cài. Giải pháp: dùng WebDriverManager - thư viện tự detect và tải đúng version ChromeDriver cho bạn.
Thêm dependency này vào, và bạn không cần lo chuyện version ChromeDriver nữa. Mình luôn khuyên bạn mới dùng WebDriverManager ngay từ đầu - tiết kiệm ít nhất 1 tiếng đau đầu.
Test case đầu tiên với Selenium - đăng nhập thực tế
Lý thuyết đủ rồi, giờ là code thật. Mình lấy ví dụ test đăng nhập trang demo SauceDemo - trang được xây sẵn để luyện automation, không cần lo phá hệ thống thật.
Chạy đúng sẽ thấy Chrome mở, tự điền form, click login - không cần chạm chuột
Code này làm đúng 1 việc: mở Chrome, vào SauceDemo, đăng nhập bằng tài khoản demo, in tiêu đề trang ra console. Đơn giản - nhưng đây là nền của mọi automation test phức tạp hơn sau này.
Giải thích từng dòng quan trọng:
By.id("user-name")- tìm element theo thuộc tínhid. Đây là cách phổ biến và ổn định nhất.sendKeys("standard_user")- mô phỏng gõ bàn phím.driver.quit()- đóng hoàn toàn. Khác vớidriver.close()chỉ đóng tab hiện tại.
Bước tiếp theo sau khi chạy được test này: thêm assertion bằng TestNG hoặc JUnit để tự động pass/fail thay vì chỉ in ra console. Nhưng đó là bài sau - giờ cứ chạy được test đăng nhập đơn giản là thành công rồi.
Thấy khó ở phần tìm element? Chuột phải vào element trên Chrome, chọn "Inspect", xem thuộc tính id/name/class. Mình từng cần 20 phút mới quen cái bước này - bình thường, đừng lo.
Lộ trình 3 tháng chuyển từ manual sang automation cơ bản
Bạn đã có 3 tháng manual - tức là bạn biết viết test case, biết bug report, hiểu user flow. Đó là nền tảng quan trọng. Giờ 3 tháng tiếp theo, mình chia như sau:
3 tháng không phải để thành thạo - mà để đủ tự tin xin việc có yêu cầu automation cơ bản
Tháng 1: Java cơ bản + Selenium WebDriver
Tuần 1-2: Java đủ dùng cho automation. Không cần học Java nâng cao - chỉ cần: biến, vòng lặp, hàm, class, xử lý exception. Đây là lượng vừa đủ để hiểu và sửa code test.
Tuần 3-4: Selenium WebDriver. Thực hành trên SauceDemo hoặc The Internet - Trang luyện automation miễn phí (trang luyện automation miễn phí). Mục tiêu: tự viết được test cho login, form, navigation.
Tháng 2: Locators + TestNG + Page Object Model
Locators (cách tìm element) là kỹ năng quan trọng nhất của automation tester. Học đủ 5 loại: id, name, xpath, css selector, linkText. Trong đó xpath và css selector là linh hoạt nhất.
Page Object Model (POM) - pattern tổ chức code giúp test dễ maintain. Đây là thứ các JD hay nhắc đến. Học POM là học cách viết code automation "đúng chuẩn".
TestNG: framework chạy và report test. Thêm annotation @Test, @BeforeMethod, @AfterMethod để tổ chức test có structure.
Tháng 3: Viết project thực tế + Appium nếu apply mobile
Viết 1 project automation nhỏ: test toàn bộ luồng đăng nhập - mua hàng - checkout trên SauceDemo. Đủ 15-20 test case. Đưa lên GitHub. Đây là thứ bạn demo trong buổi phỏng vấn.
Nếu vị trí apply test mobile: dành 2 tuần cuối setup Appium và viết 3-5 test case đơn giản trên Android emulator.
Tải checklist lộ trình chi tiết: Tải checklist lộ trình 3 tháng
Khi nào nên học - phân tích JD tuyển dụng thực tế Việt Nam 2026
Mình đã xem qua hàng trăm tin tuyển dụng tester trên ITviec và TopDev trong Q1/2026. Một số pattern rõ ràng:
Fresher tester (0-1 năm kinh nghiệm):
- Phần lớn JD: "Ưu tiên biết Selenium/automation" - không bắt buộc.
- Một số JD tại startup hoặc outsource: yêu cầu rõ "có kinh nghiệm automation".
- Kết luận: học automation TRƯỚC KHI apply sẽ mở thêm 30-40% cơ hội.
Junior tester (1-2 năm):
- Automation không còn là ưu tiên - là yêu cầu bắt buộc ở hầu hết JD tốt.
- Selenium WebDriver + TestNG là combo được nhắc nhiều nhất.
- Appium xuất hiện nhiều hơn ở các công ty fintech và e-commerce có app.
Automation bắt đầu được yêu cầu từ level junior - học sớm hơn thì lợi thế càng lớn
Dấu hiệu bạn đã sẵn sàng học automation:
- Viết test case không cần nhìn template, tự nghĩ được edge case
- Hiểu rõ user flow của ít nhất 1 tính năng từ đầu đến cuối
- Đã biết viết bug report rõ ràng, reproducible
- Không còn bị bối rối khi nghe "regression testing" hay "smoke test"
Nếu bạn tick được 3/4 điều trên sau 3 tháng manual - học automation ngay đi. Đừng đợi "vững hơn" vì không có điểm dừng rõ ràng.
Một lời thật: mình gặp nhiều bạn 25-30 tuổi chuyển từ kế toán, marketing sang tester, sợ học automation vì "mình không biết code". Thật ra code trong automation không giống code backend - không cần tư duy giải thuật phức tạp. Bạn chủ yếu đọc hiểu, copy-modify, và debug lỗi đơn giản. Nếu bạn biết dùng Excel với hàm IF lồng nhau, bạn có đủ tư duy để học automation.
Câu hỏi thường gặp khi mới bắt đầu
Mình tổng hợp các câu hỏi nhận được nhiều nhất từ các bạn đang ở giai đoạn này.
Học Python hay Java cho Selenium?
Nếu bạn không có định hướng rõ: chọn Java. Phần lớn dự án Việt Nam (ngân hàng, enterprise, outsource sang Nhật/Hàn) dùng Java stack. Python phổ biến hơn ở startup và dự án AI/data. Chọn theo loại công ty bạn nhắm tới.
Cần biết code bao nhiêu mới học automation được?
Java đủ dùng cho automation không đòi hỏi nhiều. Bạn cần: khai báo biến, if/else, for loop, hàm (method), class cơ bản, và đọc hiểu exception. Không cần algorithm, không cần data structure phức tạp. 2-3 tuần tự học Java cơ bản là đủ.
Java đủ dùng cho automation khác với Java để làm backend - phạm vi hẹp hơn nhiều
Nên dùng Selenium 4 hay vẫn còn project dùng Selenium 3?
Học Selenium 4 ngay - đây là phiên bản hiện tại và cải thiện nhiều về relative locators, Chrome DevTools Protocol. Selenium 3 vẫn còn ở một số dự án cũ, nhưng migration sang 4 không khó, học 4 trước sẽ dễ hơn.
Appium 1.x hay Appium 2.x?
Appium 2.x - kiến trúc plugin-based, cài đặt khác hoàn toàn so với 1.x. Nhiều tài liệu cũ trên Google vẫn hướng dẫn 1.x, gây nhầm lẫn. Khi search tài liệu, luôn thêm "Appium 2" vào query.
Học automation xong có bị AI thay không?
Câu hỏi này mình nghe nhiều. Thực tế: AI đang hỗ trợ tester viết test nhanh hơn, nhưng vẫn cần người hiểu context để verify kết quả. Tester biết automation + biết dùng AI tool đang là profile được săn đón nhất. Không phải bị thay - mà cần upgrade thêm.
Tóm lại: sau 3 tháng manual vững, 3 tháng tiếp theo là đủ để bạn có profile automation đủ tự tin apply. Test kỹ từng bước setup, đừng bỏ qua viết project thực tế lên GitHub, và đừng so sánh progress của bạn với người khác. Ai cũng mất thời gian riêng để hiểu cách debug và locator element. Comment bên dưới nếu bạn đang stuck ở bước nào - mình đọc và trả lời từng bạn.
