Automation Testing Là Gì? Nền Tảng Selenium Và Appium Cho Người Mới

6 tháng trước · 13 phút đọc
Automation testing là gì và tại sao bạn cần biết?
Mình nhớ lần đầu nghe từ "automation testing", cứ nghĩ đây là thứ gì đó phức tạp, cần biết code sâu mới đụng vào được. Kết quả? Mình mất gần 6 tháng làm manual trước khi nhận ra: không phải vậy.
Nói đơn giản, automation testing là dùng tool/script để tự động chạy test case thay cho tay người. Thay vì mỗi lần release bạn phải ngồi click từng màn hình kiểm tra - script làm thay, nhanh hơn, không mỏi tay, không bỏ sót.
Automation không thay thế tester - nó giải phóng thời gian để test những thứ thú vị hơn
Nhưng tự động hóa không có nghĩa "làm thay tất cả". Có những thứ automation làm tốt hơn người:
- Chạy đi chạy lại 500 test case regression sau mỗi deploy mà không phàn nàn
- Test cùng lúc trên nhiều browser, thiết bị khác nhau
- Báo kết quả ngay lập tức, không cần chờ tester ngồi gõ
Và có những thứ automation không thay được: kiểm tra UX tổng thể, exploratory testing, hay phán đoán "trông cái này kỳ dù pass hết test case".
Điểm mấu chốt: Automation là công cụ, không phải mục tiêu. Biết khi nào dùng mới là kỹ năng thật sự.
Manual testing vs automation testing: Cái nào phù hợp hơn?
Câu hỏi mình hay nhận được: "Học automation luôn cho nhanh, manual còn cần không?"
Cần. Rất cần. Và đây là lý do:
Manual và automation không đối lập - chúng bổ sung cho nhau trong vòng đời kiểm thử
| Tiêu chí | Manual Testing | Automation Testing |
|---|---|---|
| Thời gian học | Nhanh hơn | Cần nền tảng hơn |
| Chi phí setup | Gần như 0 | Cần đầu tư tool/code |
| Phù hợp khi nào | Test mới, khám phá, UX | Regression, load test, lặp lại |
| Khi app thay đổi liên tục | Linh hoạt dễ điều chỉnh | Script hay bị "gãy" phải update |
| Tốc độ chạy | Chậm nếu nhiều case | Nhanh hơn nhiều lần |
Thực tế ở Việt Nam, phần lớn công ty vừa và nhỏ vẫn dùng manual testing là chính - đặc biệt với startup hoặc dự án ngắn hạn. Automation có giá trị rõ nhất khi project chạy dài, release thường xuyên, và có đủ budget để duy trì script.
Vậy fresher nên bắt đầu từ đâu? Manual trước, automation sau. Không phải vì automation khó hơn, mà vì bạn cần hiểu app hoạt động ra sao, hiểu flow người dùng thế nào, trước khi viết script tự động hóa. Viết automation mà không hiểu business logic - script chạy xanh hết mà bug vẫn tồn tại.
Selenium là gì và làm được gì?
Selenium là framework open-source phổ biến nhất để automation testing cho web application. Ra đời từ 2004, đến giờ vẫn là lựa chọn số 1 của đa số team QA khi cần tự động hóa test trên browser.
Selenium hoạt động bằng cách điều khiển trực tiếp browser (Chrome, Firefox, Edge...) qua WebDriver - hiểu nôm na là "con rối" giúp script của bạn mô phỏng thao tác người dùng: click, nhập text, scroll, chờ element xuất hiện.
Selenium WebDriver điều khiển browser y như người dùng thật ngồi thao tác
Bạn có thể viết script Selenium bằng nhiều ngôn ngữ: Python, Java, C#, JavaScript. Trong cộng đồng tester Việt Nam, Python + Selenium là combo được học nhiều nhất vì Python dễ đọc, dễ debug.
Một đoạn script đơn giản dùng Python để test đăng nhập trông như thế này:
Nhìn vào đây, bạn thấy không? Không có gì quá phức tạp. Đây là lý do tại sao tester trái ngành vẫn học được - logic giống như viết test case, chỉ là dùng code thay vì ngôn ngữ tự nhiên.
Selenium phù hợp khi:
- Cần test web application trên nhiều browser
- Dự án release thường xuyên, cần chạy regression nhanh
- Team đã có nền tảng manual testing tốt
Giới hạn của Selenium: không test được mobile app native, không tốt với app có nhiều element động phức tạp (SPA với nhiều AJAX), và cần setup khá nhiều bước so với một số tool thương mại.
Appium là gì và khác Selenium ở điểm nào?
Nếu Selenium là "vua" test web, thì Appium là lựa chọn hàng đầu để automation testing cho mobile app - cả Android lẫn iOS.
Appium hoạt động theo nguyên tắc tương tự Selenium: mô phỏng thao tác người dùng trên app. Điểm khác biệt là thay vì điều khiển browser, Appium kết nối với thiết bị thật hoặc emulator/simulator để tương tác với native app, hybrid app, hay mobile web.
Một codebase Appium, test được cả Android lẫn iOS - tiết kiệm đáng kể công sức
Điểm mạnh của Appium:
- Dùng chung API với Selenium - nếu đã biết Selenium, học Appium nhanh hơn nhiều
- Hỗ trợ nhiều ngôn ngữ: Python, Java, JavaScript...
- Test được native app (ứng dụng cài từ store), hybrid app (app có webview bên trong), và mobile browser
- Không cần sửa source code của app để test
Điểm cần lưu ý: Setup Appium phức tạp hơn Selenium khá nhiều. Bạn cần cài Android Studio (cho Android), Xcode (cho iOS, chỉ trên Mac), configure emulator... Mình thường mất cả buổi sáng setup môi trường lần đầu.
| Selenium | Appium | |
|---|---|---|
| Đối tượng test | Web browser | Mobile app (Android/iOS) |
| Độ khó setup | Trung bình | Khó hơn, nhiều dependency |
| Ngôn ngữ script | Python, Java, JS... | Python, Java, JS... |
| Nền tảng học trước | Không bắt buộc | Nên biết Selenium trước |
| Thị trường VN | Rất phổ biến | Phổ biến, đặc biệt app mobile |
Ở Việt Nam hiện tại, 298 việc làm automation test mới nhất 03/2026 (CareerViet) - xu hướng tuyển dụng QA automation đang tăng mạnh, đặc biệt với yêu cầu biết cả Selenium và Appium. Fintech, e-commerce, và super app là những domain cần automation mobile nhiều nhất.
Fresher nên học automation khi nào?
Đây là câu hỏi thực tế hơn nhiều so với "nên học không".
Mình từng thấy không ít bạn mới vào nghề, chưa viết được test case đăng nhập đủ kỹ, đã vội vàng mở Selenium lên học. Kết quả? Script chạy được, nhưng không hiểu đang test cái gì, bỏ sót edge case cơ bản nhất.
Dấu hiệu bạn sẵn sàng học automation:
- Đã viết test case độc lập, cover được happy path + negative case + edge case
- Hiểu được cách đọc requirement và phân tích test scenarios
- Đã từng làm regression testing thủ công ít nhất 1-2 sprint - và cảm thấy "làm mãi cái này mỏi tay quá"
- Biết cơ bản về HTML/CSS (để tìm element trên trang web)
- Không nhất thiết biết lập trình, nhưng không sợ nhìn vào code
Nền tảng manual vững sẽ giúp bạn viết automation script có ý nghĩa, không chỉ chạy xanh
Nếu bạn đang băn khoăn về lộ trình tổng thể từ số 0 đến có việc, khóa Kiểm thử phần mềm cover đủ từ kiến thức nền đến thực hành - có cả phần automation - phù hợp để tham khảo lộ trình.
Với những bạn 28, 30, hay 32 tuổi đang chuyển ngành: không cần lo về tuổi. Mình từng hướng dẫn một bạn từ ngành kế toán, 31 tuổi, mất 4 tháng để thành thạo manual và thêm 3 tháng học Selenium cơ bản - đủ để pass vòng technical interview. Điều quan trọng là nền tảng logic, không phải tuổi tác.
Project mẫu đơn giản để bắt đầu với Selenium
Lý thuyết đủ rồi. Bắt đầu với project thực tế mới thấm.
Dưới đây là project mẫu phù hợp cho người mới: tự động hóa test case đăng nhập cho trang web demo. Chỉ cần Python và Selenium, không cần framework phức tạp.
Chuẩn bị:
- Python 3.8+ đã cài
- Selenium:
pip install selenium - ChromeDriver (phiên bản khớp với Chrome của máy bạn)
- Trang demo:
https://the-internet.herokuapp.com/login(trang test công khai, ai cũng dùng được)
File cấu trúc project đơn giản - không cần phức tạp khi mới bắt đầu
Cấu trúc project:
auto-test-demo/
│
├── test_login.py # File test chính
├── config.py # Cấu hình URL, timeout
└── requirements.txt # Danh sách thư viện
File test_login.py:
Chạy thử bằng lệnh: python test_login.py
Bạn sẽ thấy Chrome tự mở, tự nhập thông tin, tự click - xong báo kết quả. Lần đầu nhìn thấy điều này, hầu hết mọi người đều thấy khá thú vị.
Tải về template project đầy đủ với hướng dẫn setup: Tải checklist lộ trình automation testing
Lộ trình thực tế từ manual lên automation tại Việt Nam
Bao nhiêu thời gian để chuyển từ manual sang automation? Không có con số cố định - nhưng mình có thể đưa ra khung tham khảo thực tế.
Lộ trình không tuyến tính hoàn toàn - bạn sẽ quay lại manual khi cần, và đó là bình thường
Giai đoạn 1 - Nền tảng manual (3-6 tháng đầu): Tập trung hoàn toàn vào viết test case tốt, bug report rõ ràng, hiểu SDLC và quy trình Agile. Đây không phải thời gian "lãng phí" - đây là lúc bạn xây nền móng để automation sau này có ý nghĩa.
Giai đoạn 2 - Kỹ thuật nền tảng (1-2 tháng): Học HTML/CSS cơ bản để biết cách inspect element, tìm selector. Học Python cơ bản (biến, vòng lặp, hàm, xử lý file). Không cần giỏi lập trình - cần đủ để đọc hiểu và chỉnh sửa script.
Giai đoạn 3 - Selenium thực hành (2-3 tháng): Bắt đầu với project nhỏ như ví dụ ở trên. Dần dần học thêm: chờ dynamic element, xử lý popup/iframe, chạy test song song. Học pytest để tổ chức test suite chuyên nghiệp hơn.
Giai đoạn 4 - Mở rộng (khi đã vững Selenium): Nếu team có app mobile, học Appium. Nếu cần test API song song, học Postman automation hoặc requests (Python). Nếu muốn tích hợp CI/CD, tìm hiểu GitHub Actions hoặc Jenkins.
Một lưu ý thực tế: Đa số job description tại VN yêu cầu Experience in working with test automation frameworks (e.g. JUnit, TestNG, Selenium WebDriver); Understanding of web technologies (HTML, CSS,...); Thành thạo ngôn ngữ lập trình như Java, Python; Kiến thức về Selenium, Appium (ITviec) - không cần phải biết tất cả mọi thứ trước khi apply. Biết 1 tool tốt, hiểu nguyên lý, còn lại học được sau khi vào việc.
Nếu bạn đang tìm nơi học bài bản từ đầu, khóa Kiểm thử phần mềm xây dựng đúng theo lộ trình này - từ manual cơ bản đến automation - mục tiêu rõ ràng là có việc sau 2 tháng học.
Bài tiếp theo mình sẽ hướng dẫn setup môi trường Selenium từ A đến Z trên Windows và macOS - bao gồm cả xử lý các lỗi thường gặp nhất. Bookmark lại nhé!
