Thử nghiệm Chrome Finch là gì?

Ngày phát hành: 3 tháng 4 năm 2025

Khi đến thời điểm ra mắt một tính năng mới trong Chrome, chúng tôi sẽ kiểm tra và cân bằng nhiều yếu tố để đảm bảo tính năng đó hoạt động, tuân thủ và đáng tin cậy. Một trong những yếu tố cân bằng đó là các thử nghiệm Finch. Đừng để phần "thử nghiệm" trong tên của phiên bản này đánh lừa bạn khiến bạn nghĩ rằng phiên bản này không an toàn. Thực tế thì ngược lại. Việc triển khai Finch giúp chúng tôi thêm các tính năng có thể gây ra vấn đề về khả năng tương thích một cách an toàn, vì chúng cho phép chúng tôi nhanh chóng tắt một tính năng nếu gặp phải vấn đề ngoài dự kiến. Bài viết này giải thích cách thức và lý do chúng tôi sử dụng Finch cho một số bản phát hành tính năng trong Chrome.

Nói chung, để bật một tính năng trong Chrome, bạn chỉ cần bật/tắt boolean bên trong Chrome. Khi một tính năng mới "ra mắt", điều này chỉ có nghĩa là boolean này đã thay đổi trạng thái mặc định thành "bật" cho tất cả người dùng. Có một số cách để thực hiện việc này:

  • Bật tính năng "trong mã": nghĩa là chính tệp thực thi của Chrome có một chế độ cài đặt được bật theo mặc định.
  • Bật tính năng "Thử nghiệm theo nguồn gốc": Hệ thống thử nghiệm theo nguồn gốc là một cách để một trang web cụ thể chọn tất cả người dùng Chrome tham gia một thử nghiệm, trong đó chỉ bật một tính năng cụ thể trên trang web đó.
  • Bật tính năng "sử dụng Finch": Chrome định kỳ tìm nạp tệp cấu hình từ máy chủ và tệp này có thể chứa hướng dẫn để bật hoặc tắt một tính năng.
  • "Công tắc tắt Finch": là hành động ngược lại với việc bật "sử dụng Finch". Trong trường hợp này, tính năng được bật "trong mã" nhưng sau đó bị tắt bằng hệ thống Finch, thường là do các vấn đề phát hiện được sau khi khởi chạy

Các trường hợp sử dụng Finch

Chủ đề của bài đăng trên blog này là Finch, vì vậy, chúng tôi sẽ không thảo luận thêm về việc bật "trong mã" hoặc "thử nghiệm nguồn gốc". Tuy nhiên, Finch có nhiều trường hợp sử dụng thú vị.

Thử nghiệm trên một nhóm nhỏ người dùng (Thử nghiệm A/B)

Thường thì Finch được dùng để "thử nghiệm A/B" một tính năng hoặc hoạt động tối ưu hoá. Trong trường hợp này, một tính năng sẽ được bật cho một tỷ lệ nhỏ người dùng để có thể thu thập dữ liệu về sự khác biệt về hiệu suất, hành vi hoặc mức sử dụng khi tính năng được bật so với khi tắt.

Ví dụ về thử nghiệm A/B là khi chúng tôi ra mắt tính năng Giải mã hình ảnh suy đoán. Đây là một điểm cải tiến về hiệu suất mà nhà phát triển hoặc người dùng không nhận thấy được, ngoài việc giúp Chrome tải trang nhanh hơn. Tuy nhiên, để đảm bảo không có gì xảy ra ngoài dự kiến và cũng để có thể đo lường chính xác mức tác động đến hiệu suất, chúng tôi đã sử dụng Finch để thử nghiệm A/B.

Tắt tính năng có vấn đề

Để đảm bảo an toàn cho sản phẩm và trải nghiệm người dùng, Chrome có thể sử dụng hệ thống Finch để vô hiệu hoá từ xa các tính năng có vấn đề đã được bật "trong mã". Ví dụ: nếu một tính năng được bật theo mặc định nhưng sự cố chỉ xuất hiện sau khi Chrome đạt trạng thái Ổn định, thì chúng ta cần có cách để nhanh chóng tắt tính năng đó nhằm đưa người dùng và doanh nghiệp trở lại trạng thái an toàn. Điều này có thể cần thiết khi có lỗi chưa phát hiện được trong tính năng hoặc khi một tính năng vô tình làm hỏng các trang web hiện có vì lý do không lường trước được.

Bật các tính năng có rủi ro theo cách an toàn hơn

Đối với hầu hết các tính năng mà Chrome ra mắt, rủi ro là rất thấp vì chúng tôi có thể kiểm thử và xác minh rằng mã mới hoạt động trên tất cả các trang web.

Tuy nhiên, đôi khi, việc ra mắt các tính năng có thể khá rủi ro do các vấn đề về khả năng tương thích không xác định hoặc các hoạt động tương tác khó khăn khác. Trong trường hợp này, bạn có thể sử dụng hệ thống Finch để thực sự bật tính năng này, thay vì chỉ giữ lại tính năng này dưới dạng nút tắt.

Ví dụ: "Tính năng thư giãn" của trình phân tích cú pháp HTML là một thay đổi liên quan đến tính năng chọn tuỳ chỉnh mới, cho phép đặt nhiều nội dung hơn trước đây bên trong phần tử <select>. Vì thay đổi này có thể làm hỏng các trang web hiện có, nên chúng tôi cần triển khai thay đổi này một cách thận trọng.

Việc bật các tính năng bằng Finch có thể an toàn hơn so với việc sử dụng Finch để xoá các tính năng đó, vì Finch không tiếp cận được 100% người dùng vì nhiều lý do. Ví dụ: một số người dùng doanh nghiệp có chính sách nghiêm cấm hoàn toàn việc định cấu hình Finch. Những người dùng đó vẫn sẽ gặp rủi ro trong trường hợp một tính năng được bật trong mã, sau đó bị tắt bằng Finch, vì những người dùng đó sẽ không nhận được chế độ cài đặt Finch và sẽ tiếp tục bật tính năng đó. Bằng cách bật tính năng này bằng Finch, chúng tôi có thể đảm bảo khả năng tắt tính năng này cho tất cả người dùng trong trường hợp khẩn cấp.

Làm cách nào để kiểm tra xem bạn có đang tham gia thử nghiệm Finch hay không?

Người dùng khó có thể thực hiện việc này trực tiếp. Bạn nên liên hệ với một kỹ sư Chrome (thường là trong bối cảnh lỗi Chromium) và gửi cho họ "danh sách biến thể". Đây là danh sách các phiên bản được mã hoá đặc biệt của tất cả chế độ cài đặt Finch cho một trình duyệt nhất định. Bạn có thể dễ dàng truy xuất thông tin này:

  1. Chuyển đến chrome://version.
  2. Sao chép toàn bộ danh sách văn bản (có thể khá dài) bên cạnh "Biến thể đang hoạt động".
  3. Dán văn bản đó vào một tệp văn bản (ví dụ: variations.txt) rồi đính kèm vào lỗi.

Với danh sách biến thể này, các kỹ sư của Chrome có thể giải mã danh sách và xem những tính năng nào đang bật hoặc tắt trên trình duyệt của bạn.

Điều gì sẽ xảy ra khi thử nghiệm Finch đạt 100% và sẵn sàng hoạt động?

Sau khi chắc chắn rằng thử nghiệm của chúng tôi "thành công" và tính năng có liên quan không gây rủi ro cho nhà phát triển hoặc người dùng, chúng tôi luôn bật tính năng "trong mã". Tại thời điểm này, bạn có thể an toàn kết thúc ngày cấu hình Finch để cấu hình này không còn ảnh hưởng đến trình duyệt sau phiên bản mà tính năng này được bật trong mã.