QA & Testing

Bài 34 — Tổng kết lộ trình và hướng đi tiếp theo
Nhìn lại toàn bộ hành trình từ số 0 tới bộ test hoàn chỉnh, hệ thống hóa kiến thức đã học, và vạch các hướng phát triển nghề tiếp theo: chuyên sâu testing, …

Bài 33 — Hoàn thiện CI pipeline và đưa project lên GitHub làm portfolio
Hoàn thiện project: cấu hình CI chạy tự động, viết README chuyên nghiệp, công bố HTML report, và trình bày repo sao cho nhà tuyển dụng thấy được năng lực …

Bài 32 — Project thực chiến: xây dựng test suite hoàn chỉnh cho website thương mại điện tử
Áp dụng toàn bộ series vào một project thật: chọn website demo, thiết kế cấu trúc dự án và POM, viết test cho các luồng cốt lõi (tìm kiếm, giỏ hàng, thanh toán) …

Bài 31 — Giới thiệu Visual Regression Testing
Phát hiện thay đổi giao diện ngoài ý muốn bằng so sánh ảnh chụp: toHaveScreenshot, baseline và diff, xử lý phần động, và khi nào visual testing thực sự đáng …

Bài 30 — Tích hợp CI/CD cơ bản với GitHub Actions
Chạy Playwright test tự động trên GitHub Actions mỗi khi push hoặc mở pull request: hiểu CI/CD, viết workflow YAML, và lưu HTML report làm artifact để xem kết …

Bài 29 — Xử lý API Testing
Test API trực tiếp bằng request fixture của Playwright: gửi GET/POST, kiểm tra status và response body, và kết hợp API với UI test để setup dữ liệu nhanh.

Bài 28 — Chạy test song song, đọc report và debug với Trace Viewer
Tăng tốc bằng chạy song song và sharding, cấu hình retries, đọc HTML report, và điều tra test fail bằng Trace Viewer, screenshot, video — bộ công cụ debug mạnh …

Bài 27 — API mocking và intercept network request trong Playwright
Chặn và can thiệp network request với page.route: mock response API để kiểm soát dữ liệu, giả lập lỗi/trạng thái rỗng, và làm test nhanh, ổn định, độc lập với …

Bài 26 — Lưu trạng thái đăng nhập (authentication state)
Đăng nhập một lần rồi tái sử dụng cho mọi test bằng storageState và setup project. Tăng tốc bộ test đáng kể và giữ các test vẫn độc lập.

Bài 25 — Xử lý multiple tabs, popup, iframe và dialog
Thao tác với các tình huống giao diện phức tạp: tab/popup mới mở, iframe lồng trong trang, và hộp thoại dialog (alert/confirm). Các kỹ thuật cần khi test ứng …

Bài 24 — Quản lý test data và biến môi trường với .env
Tách dữ liệu test khỏi code, dùng biến môi trường với file .env cho thông tin nhạy cảm và cấu hình theo môi trường, và kỹ thuật data-driven test chạy cùng logic …

Bài 23 — Fixtures trong Playwright: tái sử dụng setup giữa các test
Fixtures cung cấp môi trường cô lập và tái sử dụng setup/teardown giữa các test. Hiểu fixtures built-in (page, context), beforeEach/afterEach vs …

Bài 22 — Page Object Model: tổ chức test dễ bảo trì
Page Object Model (POM) tách locator và thao tác của mỗi trang vào một class riêng, giúp test sạch, dễ đọc, dễ bảo trì. Cách xây dựng POM và các nguyên tắc …

Bài 21 — Codegen: sinh code test nhanh và giới hạn của công cụ
Dùng Codegen để tự sinh code test bằng cách thao tác trên trình duyệt: cách chạy, đọc code sinh ra, và quan trọng nhất — vì sao không nên phụ thuộc hoàn toàn …

Bài 20 — Assertion với expect: kiểm tra nội dung và trạng thái phần tử
Viết assertion bằng expect: web-first assertions tự chờ, kiểm tra hiển thị/text/giá trị/trạng thái, phủ định với not, và vì sao web-first assertion loại bỏ test …

Bài 19 — Các hành động cơ bản trong Playwright: click, fill, check, select, upload
Thực hiện thao tác trên phần tử: click, điền text (fill), tick checkbox, chọn dropdown, upload file, nhấn phím. Hiểu cơ chế auto-wait giúp thao tác ổn định.

Bài 18 — Locator trong Playwright: getByRole, getByText, getByLabel
Locator là cách Playwright định vị phần tử. Vì sao ưu tiên các locator theo vai trò/ngữ nghĩa (getByRole, getByText, getByLabel) hơn CSS selector, và cách xử lý …

Bài 17 — Đọc lỗi và tư duy debug cho người mới
Cách đọc thông báo lỗi Playwright không hoảng, phân loại các lỗi thường gặp, và quy trình debug có hệ thống. Đặt sớm để bạn không nản khi gặp màn hình đỏ.

Bài 16 — Cấu trúc project Playwright: file config, thư mục tests và HTML report
Hiểu playwright.config.js (baseURL, projects/trình duyệt, retries, timeout, reporter), tổ chức thư mục tests, và cách đọc HTML report. Nắm môi trường trước khi …

Bài 15 — Cài đặt Playwright và viết test đầu tiên
Khởi tạo Playwright bằng npm init playwright, hiểu các file được sinh ra, viết và chạy test tự động đầu tiên, rồi xem báo cáo HTML. Bước đầu tiên vào automation …

Bài 14 — Thiết kế test case tốt: pattern AAA và nguyên tắc test độc lập
Cách viết test case chất lượng: cấu trúc Arrange–Act–Assert, đặt tên test rõ ràng, giữ test độc lập, và xác định test cái gì / không test cái gì. Phần phân biệt …

Bài 13 — Testing là gì? Manual vs automation, các loại test và khi nào tự động hóa
Nền tảng tư duy kiểm thử: phân biệt manual và automation test, hiểu test pyramid (unit/integration/E2E), và tiêu chí quyết định khi nào nên — và không nên — tự …

Bài 12 — Làm quen DevTools: inspect phần tử và đọc cấu trúc trang
Dùng Chrome DevTools để inspect phần tử, đọc HTML/DOM trực tiếp trên trang, thử CSS selector trong Console, và quan sát network request. Công cụ điều tra không …

Bài 11 — HTML và CSS selector cơ bản cho automation test
Đọc hiểu cấu trúc HTML (thẻ, thuộc tính, id, class) và viết CSS selector để định vị phần tử. Kiến thức nền để hiểu locator của Playwright ở Bài 18.

Bài 10 — Bất đồng bộ trong JavaScript: Promise và async/await
Bài quan trọng nhất của giai đoạn JavaScript: hiểu bất đồng bộ (asynchronous), Promise, và cú pháp async/await cùng await. Đây là nền tảng để hiểu vì sao mọi …

Bài 9 — Làm việc với Object trong JavaScript
Biểu diễn dữ liệu có cấu trúc bằng object: truy cập, thêm/sửa thuộc tính, object lồng nhau, mảng object và destructuring cơ bản. Nền tảng để hiểu config và dữ …

Bài 8 — Làm việc với Array và String trong JavaScript
Array và các phương thức hay dùng trong automation test (map, filter, find, includes), cùng các thao tác chuỗi thiết yếu (includes, trim, split, template …

Bài 7 — Hàm (function) và arrow function
Đóng gói code thành hàm tái sử dụng: khai báo, tham số, giá trị trả về, và cú pháp arrow function. Hiểu vì sao hàm là đơn vị tổ chức nền tảng của mọi test.

Bài 6 — Vòng lặp: for, for...of và khi nào dùng loại nào
Lặp lại một khối lệnh nhiều lần với vòng lặp for cổ điển và for…of. Phân biệt khi nào dùng loại nào, kèm break/continue và liên hệ với thao tác lặp trong …

Bài 5 — Câu lệnh điều kiện if/else và toán tử so sánh
Cho chương trình ra quyết định với if/else/else if, nắm các toán tử so sánh và logic, và hiểu vì sao luôn dùng === thay vì ==. Nền tảng logic cho mọi assertion …

Bài 4 — Biến và kiểu dữ liệu trong JavaScript
Khai báo biến với let và const, phân biệt các kiểu dữ liệu cơ bản (string, number, boolean, null, undefined) và cách kiểm tra kiểu bằng typeof. Nền tảng cho mọi …

Bài 3 — Git & GitHub cơ bản: commit, push, pull request và .gitignore
Thiết lập Git, nắm vòng đời thay đổi (working directory → staging → commit), đẩy code lên GitHub, dùng .gitignore và pull request. Nền tảng quản lý phiên bản …

Bài 2 — Cài đặt môi trường: VS Code, Node.js và chạy file JavaScript đầu tiên
Cài đặt Node.js và VS Code, nắm các thao tác terminal cơ bản, và chạy file JavaScript đầu tiên bằng Node. Kèm cách xác minh cài đặt và xử lý các lỗi thường gặp.

Bài 1 — Lập trình là gì? Tư duy giải quyết vấn đề bằng code
Dành cho người chưa từng viết một dòng code: hiểu lập trình thực ra là gì bằng ví dụ đời thường, và làm quen với “tư duy lập trình” — cách chẻ nhỏ …

Bài 0 — Automation Test là gì? Vì sao chọn Playwright và lộ trình của series
Bài mở đầu: hiểu automation test là gì bằng ngôn ngữ đời thường, vì sao mình chọn Playwright cho người mới, và toàn cảnh 35 bài bạn sẽ đi qua để từ số 0 thành …
Không tìm thấy bài viết phù hợp