Đ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 và automation testing: Khi nào fresher nên học tự động hóa

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

3 tháng trước · 10 phút đọc

Manual testing là gì và tại sao fresher phải bắt đầu từ đây?

Mình nhớ ngày đầu tiên vào nghề, mentor hỏi một câu đơn giản: "Em đã dùng app đó chưa? Dùng đúng theo cách người dùng thật dùng chưa?" Lúc đó mình mới hiểu: manual testing không chỉ là "bấm bấm xem có lỗi không".

Manual testing là quá trình tester tự tay thực hiện từng test case, mô phỏng hành vi người dùng thật để tìm lỗi. Không script, không tool tự động, chỉ có bạn, ứng dụng, và bộ test case đã viết sẵn.

Tại sao fresher bắt buộc phải bắt đầu từ manual? Vì automation không tự nghĩ được. Nó chạy đúng những gì bạn bảo nó chạy. Nếu bạn không hiểu "test cái gì", "test thế nào", "lỗi trông như thế nào" thì code automation của bạn cũng sẽ bỏ sót lỗi tương tự.

344774 Manual testing đòi hỏi tư duy, không phải chỉ bấm theo kịch bản

Nói cụ thể hơn: một fresher học automation ngay từ tháng đầu giống như học lái xe tự động mà chưa hiểu luật giao thông. Xe có thể chạy nhưng bạn không biết khi nào cần nhường đường, khi nào nên dừng.

Manual testing dạy bạn 3 thứ không tool nào thay thế được:

  • Tư duy tìm lỗi: hiểu ứng dụng hoạt động như thế nào, người dùng sẽ làm gì
  • Viết test case: kỹ năng nền tảng để sau này chuyển thành automation script
  • Đọc bug: phân biệt lỗi thật với behavior không mong đợi, reproduce được lỗi cho dev fix

Automation testing là gì và nó giải quyết vấn đề gì?

Bạn đang test một app thương mại điện tử. Mỗi sprint dev push code mới, bạn phải test lại toàn bộ tính năng cũ để đảm bảo không có gì bị phá vỡ. Tính ra, mỗi lần regression testing mất 2-3 ngày. Và bạn làm điều đó đi làm lại mỗi 2 tuần.

Đây là vấn đề automation sinh ra để giải quyết.

Automation testing là dùng code/script (Selenium, Cypress, Playwright...) để tự động chạy các test case. Thay vì bạn bấm tay, máy tính bấm thay bạn, nhanh hơn, không mỏi, không bỏ sót bước nào.

344775 Automation phù hợp nhất với những test lặp đi lặp lại theo chu kỳ

Nhưng automation không phải magic. Nó có giới hạn rõ ràng:

Manual testing Automation testing
Tốc độ Chậm hơn Nhanh hơn (sau khi setup)
Chi phí ban đầu Thấp Cao (thời gian viết script)
Phát hiện lỗi UI/UX Tốt Khó (máy không "cảm nhận" được)
Phù hợp với Exploratory, ad-hoc Regression, smoke test
Thay đổi requirement Linh hoạt Phải cập nhật lại script

Một điều nhiều fresher hay nhầm: automation không thay thế manual. Nó bổ sung cho manual. Team tốt dùng cả hai đúng chỗ. Automation chạy những test lặp đi lặp lại, manual tập trung vào những tình huống cần tư duy con người.


Kỹ năng nền tảng fresher cần nắm vững trước khi nghĩ đến automation

Thẳng thắn mà nói: nếu bạn chưa làm được những điều dưới đây, học automation lúc này sẽ khiến bạn bị loạn nhiều hơn là tiến lên.

Mình không nói để làm nản. Mình nói để bạn biết mình đang đứng ở đâu.

Viết test case độc lập là kỹ năng đầu tiên. Test case tốt nghĩa là người khác đọc vào là làm theo được, không cần hỏi thêm. Nếu test case của bạn còn mơ hồ, automation script sau này cũng sẽ mơ hồ theo.

Viết bug report rõ ràng là kỹ năng thứ hai. Dev không fix được bug mà không reproduce được. Bug report cần: steps to reproduce, expected result, actual result, environment, screenshot/log. Thiếu một trong những thứ này, bug sẽ bị trả về.

344776 Bug report rõ ràng giúp dev fix nhanh, không mất thêm thời gian hỏi lại

Hiểu application under test là kỹ năng thứ ba. Bạn cần biết app hoạt động theo flow nào, dữ liệu đi từ đâu đến đâu, khi nào gọi API, khi nào validate phía client. Không cần biết code, nhưng cần hiểu hành vi.

Hiểu cơ bản về SQL giúp ích rất nhiều. Không cần viết query phức tạp, nhưng biết SELECT, WHERE, JOIN để verify dữ liệu trong database là cần thiết.

Thêm một điều: nếu bạn đang ở tháng 1-6, đừng lo về automation. Tập trung học manual thật kỹ. Mình từng thấy nhiều bạn nhảy vào Selenium sau 2 tháng mà còn không biết viết test case đúng. Kết quả là script chạy được nhưng không bắt được lỗi thật.


Dấu hiệu bạn đã sẵn sàng học automation

Câu hỏi mình hay nhận được nhất: "Mình 8 tháng kinh nghiệm, học automation được chưa?"

Câu trả lời không phải số tháng. Là những dấu hiệu này.

Dấu hiệu 1: Bạn thấy mình lặp đi lặp lại cùng một test case. Mỗi sprint bạn test lại chức năng đăng nhập, giỏ hàng, thanh toán - y chang tuần trước. Bạn bắt đầu làm theo quán tính thay vì tư duy. Đây là signal mạnh nhất.

Dấu hiệu 2: Bạn viết test case mà người khác đọc vào là hiểu ngay. Không cần giải thích thêm. Test case của bạn có đủ precondition, step rõ, expected result cụ thể.

Dấu hiệu 3: Bạn có thể mô tả flow của app từ góc độ kỹ thuật nhẹ. Không cần biết code, nhưng biết: "Bấm Login gọi API /auth/login, trả về token, lưu vào localStorage, redirect sang dashboard."

344777 Ba dấu hiệu này quan trọng hơn số tháng kinh nghiệm

Dấu hiệu 4: Bạn không còn sợ terminal. Chạy một lệnh npm install hay python script không khiến bạn hoảng. Không cần biết code sâu, nhưng không sợ dòng lệnh.

Dấu hiệu 5: Team bạn bắt đầu nói đến automation. Nếu senior trong team nhắc đến Playwright, Cypress, Selenium thì đây là lúc lắng nghe, hỏi thêm, và bắt đầu nghiên cứu song song.

Nếu bạn tick được 3 trong 5 dấu hiệu trên, bạn có thể bắt đầu học automation. Nếu chưa được 3, không phải không được học - nhưng hãy chắc chắn nền manual vững trước.


Lộ trình thực tế từ manual đến automation cho tester 0-2 năm

Mình sẽ không nói "học trong 3 tháng là xong". Mỗi người tốc độ khác nhau, môi trường làm việc khác nhau. Nhưng đây là framework mình thấy hiệu quả với hầu hết người mới.

Giai đoạn 1 - Tháng 1 đến tháng 6: Manual all-in

Học và thực hành viết test case, bug report, kiểm thử hồi quy (regression testing) tay, kiểm thử thăm dò (exploratory testing). Tìm một project thật - dù là intern hay dự án nhỏ của bạn bè - để practice. Mục tiêu cuối giai đoạn: viết được test case mà không cần nhờ senior review từng dòng.

Giai đoạn 2 - Tháng 6 đến tháng 12: Mở rộng sang API testing và SQL

Học Postman để test API thủ công. Học SQL cơ bản để verify database. Đây là bước cầu nối quan trọng. API testing vừa là manual vừa chuẩn bị tư duy cho automation. Người biết test API thủ công sẽ học automation API (như Rest Assured, Pytest) dễ hơn nhiều.

344778 API testing là bước cầu nối tự nhiên giữa manual và automation

Giai đoạn 3 - Năm thứ 2: Bắt đầu automation có chọn lọc

Chọn 1 tool phù hợp với stack của team (Selenium nếu team dùng Java, Playwright/Cypress nếu dùng JavaScript). Không cần học tất cả. Bắt đầu bằng cách automate những test case bạn đã viết tay - bạn đã hiểu logic, giờ chỉ cần dịch sang code.

Lưu ý quan trọng: học automation không có nghĩa là bỏ manual. Ngay cả senior automation engineer vẫn làm manual khi cần. Mục tiêu là biết dùng đúng công cụ đúng lúc.

Tải checklist lộ trình dưới đây để tự track tiến độ: Tải checklist lộ trình tester


Tool nào để bắt đầu học automation và học từ đâu?

Mình hay thấy fresher bị overwhelm vì list tool quá dài: Selenium, Cypress, Playwright, Appium, Rest Assured, JMeter... Thật ra chỉ cần chọn 1 để bắt đầu.

Nếu team dùng Java: Selenium WebDriver + TestNG là combo phổ biến nhất ở Việt Nam, nhiều job description yêu cầu, nhiều tài liệu tiếng Việt.

Nếu team dùng JavaScript/TypeScript: Playwright là lựa chọn mình khuyên hơn Cypress hiện tại vì support tốt hơn, chạy được nhiều browser, và đang được dùng rộng rãi hơn.

Nếu chưa biết team dùng gì: Học Playwright với JavaScript. Lý do thực tế: JavaScript là ngôn ngữ phổ biến nhất JavaScript - 62.3% usage (Stack Overflow Developer Survey 2024) (Stack Overflow Developer Survey / summary citing 2024 results), và nếu bạn muốn hiểu cơ bản về code, học JS dễ tiếp cận hơn Java cho người mới.

344779 Chọn một tool và đi sâu, đừng học nông nhiều tool

Về tài nguyên học: documentation chính thức của Playwright (tài liệu chính thức Playwright) khá dễ đọc và có nhiều ví dụ thực tế. Thêm vào đó, các khóa học online trên Udemy có nhiều lựa chọn phù hợp cho người mới.

Một lưu ý từ kinh nghiệm: khi bắt đầu học automation, đừng cố viết framework phức tạp ngay. Bắt đầu bằng cách automate đúng 3 test case bạn đã viết tay và chạy được thành công. Cảm giác nhìn script tự chạy lần đầu tiên rất addictive - nó sẽ tự motivate bạn học tiếp.

Cuối cùng, đừng lo nếu bạn 28, 30 hay 33 tuổi mới bắt đầu. Lớp mình đã đào tạo nhiều bạn trái ngành chuyển qua tester ở độ tuổi đó. Kỹ năng tư duy tỉ mỉ từ công việc cũ thường là lợi thế lớn, không phải bất lợi.