Phone farm là gì? Device lab, ứng dụng thật và lạm dụng
Phone farm là gì, cách các đội dùng dàn điện thoại Android để test ứng dụng hợp pháp, những kiểu dùng vi phạm luật và quy định nền tảng, và quan điểm của ADBKit.
Phone farm là một nhóm điện thoại thật, thường từ vài chục đến vài trăm máy, được nối với máy tính và điều khiển cùng lúc. Khi dùng để test ứng dụng, cùng một bộ phần cứng như vậy được gọi là device lab (phòng thiết bị test) hoặc device farm. Một hệ thống tốt hay xấu không nằm ở giá đỡ đầy điện thoại. Điều quyết định là bạn bắt những chiếc điện thoại đó làm gì.
Phone farm hoạt động như thế nào
Phần lớn phone farm Android được ghép từ cùng một số thành phần:
- Điện thoại đặt trên giá hoặc kệ, thường để màn hình luôn sáng
- Hub USB có nguồn riêng hoặc kết nối mạng, để một máy tính có thể với tới nhiều điện thoại
- ADB để cài ứng dụng, gửi thao tác chạm và phím bấm, đọc log và chụp màn hình
- Phần mềm chạy bên trên để thực hiện cùng một chuỗi bước trên mọi điện thoại, từ script đơn giản đến các framework test như Espresso, UI Automator, Appium hay Maestro
Vì ADB hoạt động giống nhau trên mọi thiết bị Android, một máy tính có thể điều khiển nhiều điện thoại cùng lúc. Nếu bạn mới làm quen với ADB, hãy bắt đầu với bài ADB là gì.
Những cách dùng hợp pháp
Đây là lý do các đội phát triển ứng dụng, công ty QA và hãng sản xuất thiết bị dựng device lab:
- Test tương thích. Một ứng dụng chạy tốt trên Pixel có thể lỗi trên điện thoại giá rẻ chạy Android cũ, có tỉ lệ màn hình khác hoặc chế độ tiết kiệm pin quá gắt. Một lab có đủ hãng và phiên bản sẽ tìm ra những lỗi này trước người dùng.
- Test hồi quy tự động. Chạy cùng một bộ test trên mỗi bản build, trên phần cứng thật, giúp bắt được những lỗi crash mà emulator bỏ sót, chẳng hạn lỗi liên quan đến camera, Bluetooth, GPU hay lỗi riêng của từng hãng.
- Kiểm tra hiệu năng và pin. Đo thời gian khởi động, bộ nhớ và mức hao pin cần thiết bị thật, không dùng emulator được.
- Bản địa hóa và ảnh chụp cho cửa hàng. Chụp cùng các màn hình ở nhiều ngôn ngữ và kích thước màn hình để review hoặc đưa lên trang ứng dụng trên store.
- Test thủ công quy mô lớn. Tester làm theo checklist trên nhiều thiết bị đặt cạnh nhau.
- Kiosk, màn hình quảng cáo và thiết lập thiết bị hàng loạt. Chuẩn bị nhiều thiết bị của công ty với cùng ứng dụng và cài đặt, hoặc theo dõi màn hình ở cửa hàng và văn phòng.
- Hỗ trợ khách hàng và demo. Tái hiện lỗi của khách hàng trên đúng mẫu máy đó, hoặc trình diễn ứng dụng trên nhiều thiết bị cùng lúc.
Các dịch vụ đám mây như Firebase Test Lab và AWS Device Farm cho thuê loại lab này theo phút. Các đội tự dựng lab riêng khi cần mẫu máy cụ thể, cần tiếp cận thiết bị trực tiếp, cần mạng nội bộ riêng hoặc muốn giảm chi phí về lâu dài. Hướng dẫn thực tế có trong bài cách dựng một device lab Android.
Những cách dùng sai trái
Cụm từ "phone farm" cũng gắn với những hoạt động vi phạm quy định của các nền tảng và ở nhiều quốc gia là vi phạm pháp luật:
- Tương tác ảo: thổi phồng lượt xem, lượt thích, lượt theo dõi, đánh giá, lượt cài đặt hoặc lượt nghe
- Gian lận quảng cáo và click: tạo lượt hiển thị hoặc lượt click quảng cáo giả để nhận tiền
- Tài khoản ảo, tài khoản clone: tạo hoặc vận hành số lượng lớn tài khoản để spam, lừa đảo, né lệnh cấm hoặc thao túng thứ hạng
- Thao túng bình chọn và khảo sát, dàn dựng hàng loạt tài khoản để thao túng dư luận, và các chiến dịch quấy rối
- Lách giới hạn: né các chương trình khuyến mãi mỗi người một lần, giới hạn tần suất hoặc các lớp kiểm tra chống gian lận
Những việc này gây hại cho người dùng thật, nhà quảng cáo và người sáng tạo nội dung. Các kho ứng dụng, mạng xã hội và mạng quảng cáo đều chủ động phát hiện và khóa những tài khoản, thiết bị liên quan, còn gian lận quảng cáo có thể dẫn đến kiện tụng.
Quan điểm của ADBKit
ADBKit là không gian làm việc trên trình duyệt để điều khiển thiết bị Android qua USB và qua mạng. Hiện tại bạn có thể kết nối tối đa sáu thiết bị trong một tab trình duyệt, mỗi thiết bị có màn hình trực tiếp, logcat, shell và trình quản lý tệp riêng. Như vậy đã đủ cho các device lab nhỏ và bàn làm việc của đội QA.
Chúng tôi thường được hỏi về các hệ thống lớn hơn và về tự động hóa, và chúng tôi muốn hỗ trợ tốt các device lab thật sự. Nhưng công cụ điều khiển nhiều điện thoại cùng lúc cũng chính là thứ các phone farm lạm dụng muốn có. Vì vậy chúng tôi giữ nghiêm một nguyên tắc: chúng tôi chỉ làm tính năng đa thiết bị và tự động hóa khi đã hiểu rõ quy trình mà tính năng đó phục vụ. Chúng tôi trao đổi với đội của bạn, tìm hiểu họ test gì và vì sao, rồi thiết kế tính năng xoay quanh đúng công việc đó. Chúng tôi không làm những công cụ chung chung mà công dụng chính là tạo tương tác ảo, gian lận hay nuôi tài khoản, và chúng tôi từ chối những yêu cầu nhắm vào mục đích đó.
Cách tiếp cận này được nói rõ hơn trong bài ADBKit đang hướng tới đâu.
Bạn đang dựng phone farm hoặc device lab?
Nếu bạn đang vận hành hoặc định dựng một device lab để test, làm QA, chạy kiosk hay quản lý thiết bị hàng loạt, chúng tôi rất muốn nghe từ bạn. Hãy cho chúng tôi biết bạn dùng những thiết bị nào, một ngày test của bạn diễn ra thế nào và điều gì làm bạn chậm lại: cellhubsapp@gmail.com. Chúng tôi xây tính năng từ những quy trình rõ ràng.