Device Farm — คือบริการคลาวด์ที่ให้การเข้าถึงอุปกรณ์มือถือจริงหลายร้อยเครื่องจากระยะไกลสำหรับการทดสอบแอปพลิเคชันทั้งแบบอัตโนมัติและแบบแมนนวล นักพัฒนาอัปโหลดไฟล์ APK หรือ IPA เลือกการกำหนดค่าอุปกรณ์ แล้วรันเทสต์แบบขนานโดยไม่ต้องซื้ออุปกรณ์จริง จากรายงานของ Perfecto, 2025 ทีมที่ใช้ Device Farm ลดเวลาในการทดสอบรีเกรสชันลง 73% เมื่อเทียบกับฟาร์มอุปกรณ์ภายในองค์กร
ประเด็นหลัก
Device Farm คือโซลูชันโครงสร้างพื้นฐานสำหรับการทดสอบแอปพลิเคชันบนมือถือที่ให้การเข้าถึงอุปกรณ์จริงและอุปกรณ์เสมือนจากระยะไกลผ่านอินเทอร์เน็ต แทนที่จะซื้อและดูแลแล็บอุปกรณ์ของตัวเอง นักพัฒนาสามารถเช่าเวลาบนอุปกรณ์ของผู้อื่นโดยจ่ายเฉพาะการใช้งานจริง
ตลาดอุปกรณ์มือถือมีสมาร์ตโฟน Android มากกว่า 24,000 รุ่น ตามข้อมูลของ OpenSignal ปี 2025 การซื้อทุกรุ่นยอดนิยมมาทดสอบจริงนั้นเป็นไปไม่ได้ — ต้องใช้เงินลงทุนหลายล้านดอลลาร์และต้องอัปเดตคลังอุปกรณ์อยู่ตลอดเวลา Device Farm แก้ปัญหานี้ด้วยการให้เข้าถึงอุปกรณ์รุ่นล่าสุดผ่านการสมัครสมาชิก
อีมูเลเตอร์และซิมูเลเตอร์ครอบคลุมเพียง 60–70% ของสถานการณ์การทดสอบ อุปกรณ์จริงจำเป็นสำหรับการตรวจสอบเซนเซอร์ กล้อง GPS ระดับแบตเตอรี่ ประสิทธิภาพบนฮาร์ดแวร์รุ่นเก่า และพฤติกรรมเมื่อมีสายเรียกเข้า Device Farm ผสานทั้งสองแนวทาง: ใช้อีมูเลเตอร์สำหรับ smoke test ที่รวดเร็ว และใช้อุปกรณ์จริงสำหรับการตรวจสอบอย่างสมบูรณ์
Device Farm เหมาะสำหรับสตาร์ทอัปที่กำลังออกแอปแรก ทีมผลิตภัณฑ์ที่เติบโตเต็มที่แล้วซึ่งมีรีลีสประจำ และโปรเจกต์ระดับองค์กรที่มีแอปหลายสิบตัว ความคุ้มค่าจะเพิ่มขึ้นตามจำนวนอุปกรณ์เป้าหมายและความถี่ของรีลีส — ยิ่งต้องตรวจสอบคอนฟิกมากเท่าไร โมเดลคลาวด์ยิ่งคุ้มค่ามากขึ้นเท่านั้น
ขั้นตอนการทำงานทั่วไปกับ Device Farm ประกอบด้วยห้าขั้นตอน: การอัปโหลดบิลด์ การเลือกอุปกรณ์ การกำหนดค่าเทสต์ การรัน และการวิเคราะห์ผลลัพธ์ แต่ละขั้นตอนสามารถทำงานอัตโนมัติผ่าน API ซึ่งช่วยให้ผสาน Device Farm เข้ากับไปป์ไลน์ CI/CD ได้โดยไม่ต้องใช้คนจัดการ
นักพัฒนาอัปโหลดไฟล์ APK (Android), AAB หรือ IPA (iOS) ที่บิลด์แล้วไปยังที่เก็บข้อมูลบนคลาวด์ของผู้ให้บริการ บริการบางราย เช่น Firebase Test Lab ยังรองรับการอัปโหลดโปรเจกต์ Xcode หรือ Android Studio โดยตรงอีกด้วย จำกัดขนาดไฟล์: AWS Device Farm รองรับสูงสุด 200 MB ส่วน BrowserStack รองรับสูงสุด 500 MB
เลือกอุปกรณ์รุ่นเป้าหมายและเวอร์ชันระบบปฏิบัติการจากแคตตาล็อกอุปกรณ์ Device Farm สมัยใหม่รองรับการจัดกลุ่ม เช่น "แฟลกชิปทั้งหมดปี 2024–2025" หรือ "Android ราคาประหยัดที่ใช้ Android 13–14" การรันแบบขนาน ช่วยให้รันเทสต์เดียวบนอุปกรณ์ 10–50 เครื่องพร้อมกัน ลดเวลารวมเหลือเพียงไม่กี่นาที
เทสต์จะถูกรันบนอุปกรณ์จริงในดาตาเซ็นเตอร์ของผู้ให้บริการ นักพัฒนาสามารถติดตามความคืบหน้าผ่านเว็บคอนโซลแบบเรียลไทม์: ล็อก สกรีนช็อต และวิดีโอการรันเทสต์ เมื่อเทสต์ล้มเหลว Device Farm จะจับภาพหน้าจอและรวบรวม crash log เพื่อใช้ในการวินิจฉัย
// ตัวอย่างการกำหนดค่า Device Farm ใน Jenkinsfile
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleDebug'
}
}
stage('Device Farm Tests') {
steps {
sh '''aws device-farm schedule-run
--project-arn arn:aws:devicefarm:us-west-2:123:project:1
--app-arn arn:aws:devicefarm:us-west-2:123:app:1
--device-pool-arn arn:aws:devicefarm:us-west-2:123:pool:1
--test-arn arn:aws:devicefarm:us-west-2:123:test:1'''
}
}
}
}
Device Farm สมัยใหม่ไม่เพียงให้บริการรันเทสต์เท่านั้น แต่ยังมีเครื่องมือเสริมสำหรับการวินิจฉัย การมอนิเตอร์ประสิทธิภาพ และการผสานรวมกับบริการอื่น ๆ ในการพัฒนา ชุดฟีเจอร์แตกต่างกันไปตามผู้ให้บริการ แต่แกนหลักยังคงเหมือนเดิม
รองรับเฟรมเวิร์กหลักทั้งหมด: Espresso และ UI Automator สำหรับ Android, XCTest และ XCUITest สำหรับ iOS, Appium และ Calabash สำหรับโปรเจกต์แบบข้ามแพลตฟอร์ม Device Farm รันเทสต์ได้โดยไม่ต้องแก้ไขโค้ด — เพียงระบุเทสต์เฟรมเวิร์กตอนกำหนดค่า
นักพัฒนาได้รับสิทธิ์เข้าถึงอุปกรณ์จริงจากระยะไกลผ่านเบราว์เซอร์: การแตะ การปัด การหมุนหน้าจอ การกดปุ่ม — การกระทำทั้งหมดจะถูกส่งผ่านแบบเรียลไทม์ โหมดอินเทอร์แอกทีฟจำเป็นอย่างยิ่งสำหรับการจำลองบั๊กที่พบยากซึ่งไม่ได้ครอบคลุมด้วยออโตเทสต์ AWS Device Farm ให้เวลาสำหรับเซสชันแบบแมนนวลสูงสุด 60 นาทีโดยไม่คิดค่าใช้จ่ายเพิ่ม
หลังจากแต่ละรอบการรัน Device Farm จะสร้างรายงาน: วิดีโอบันทึกเทสต์ สกรีนช็อตทีละขั้นตอน ล็อกของอุปกรณ์ (logcat สำหรับ Android, syslog สำหรับ iOS) ข้อมูลประสิทธิภาพ (CPU หน่วยความจำ เครือข่าย) และ crash stack ข้อมูลเหล่านี้ช่วยระบุตำแหน่งของปัญหาได้โดยไม่ต้องจำลองบนอุปกรณ์ในเครื่อง
Device Farm รายใหญ่ทั้งหมดมีปลั๊กอินสำหรับ Jenkins, GitLab CI, GitHub Actions และ CircleCI การแจ้งเตือนผ่าน Webhookจะแจ้งผลการทดสอบให้ทีมทราบผ่าน Slack, Telegram หรืออีเมล การตั้งค่าการผสานรวม CI/CD เป็นแนวปฏิบัติมาตรฐานสำหรับทีมที่ใช้การส่งมอบอย่างต่อเนื่อง
| ฟีเจอร์ | AWS Device Farm | BrowserStack | Firebase Test Lab |
|---|---|---|---|
| อุปกรณ์จริง | ใช่ | ใช่ | ใช่ |
| อีมูเลเตอร์ | ใช่ | ใช่ | ใช่ |
| การทดสอบแบบแมนนวล | ใช่ | ใช่ | ไม่มี |
| การระบุตำแหน่งบั๊ก | วิดีโอ + ล็อก | วิดีโอ + ล็อก | ล็อกเท่านั้น |
| ขีดจำกัดฟรี | 1,000 นาที/เดือน | 60 นาทีทดลอง | เทสต์ใน Firebase — ฟรี |
ตลาด Device Farm แบ่งเป็นสามหมวดหลัก: ผู้ให้บริการคลาวด์เอนกประสงค์ (AWS) บริการทดสอบเฉพาะทาง (BrowserStack) และเครื่องมือภายในระบบนิเวศของแพลตฟอร์ม (Firebase) การเลือกขึ้นอยู่กับเทคโนโลยีสแตกและงบประมาณของทีม
ผสานรวมกับระบบนิเวศของ Amazon Web Services นักพัฒนาที่ใช้ AWS สำหรับโฮสติ้งและ CI/CD อยู่แล้วจะได้สัญญาเดียวและการผสานรวมที่ราบรื่นกับ CodePipeline และ CodeBuild AWS Device Farm รองรับการทดสอบแอป Android, iOS และเว็บแอปบนอุปกรณ์จริงและอีมูเลเตอร์
ผู้ให้บริการอิสระรายใหญ่ที่สุดที่มีอุปกรณ์จริงมากกว่า 3,000 เครื่อง BrowserStack ขึ้นชื่อเรื่องอินเทอร์เฟซเว็บที่ใช้งานง่าย ความเร็วในการจัดหาอุปกรณ์ (10–15 วินาที) และรองรับ Appium โดยไม่ต้องตั้งค่าซับซ้อน บริการนี้จะอัปเดตคลังอุปกรณ์โดยอัตโนมัติภายในหนึ่งสัปดาห์หลังมีรุ่นใหม่ออก
บริการฟรีจาก Google สำหรับแอป Android พร้อมความสามารถในการทดสอบ iOS (อย่างจำกัด) Firebase Test Lab ดึงดูดสตาร์ทอัปเป็นพิเศษ: สถานการณ์การทดสอบพื้นฐานใช้งานได้โดยไม่ต้องสมัครสมาชิก การผสานรวมกับ Firebase Console และ Crashlytics ช่วยเชื่อมโยงความล้มเหลวของเทสต์กับแครชจริงในโปรดักชัน
ในตลาดยังมี Samsung Remote Test Lab (เข้าถึงอุปกรณ์ Samsung ได้ฟรี), Kobiton (มุ่งเน้นระดับองค์กรพร้อมการติดตั้งแบบ on-premise), Perfecto (ซื้อกิจการโดย Perforce เน้นภาคการเงิน) และ Sauce Labs (หนึ่งในบริการที่เก่าแก่ที่สุด ปัจจุบันเป็นส่วนหนึ่งของ Tricentis)
มาดูการผสานรวม Firebase Test Lab กับบรรทัดคำสั่งสำหรับแอป Android กัน Firebase Test Lab รันเทสต์ผ่าน gcloud CLI ซึ่งช่วยให้แทรกการรันเข้าไปใน CI-ไปป์ไลน์ใดก็ได้โดยไม่ต้องใช้ปลั๊กอินเพิ่มเติม ตัวอย่างนี้แสดงการกำหนดค่า smoke test ขั้นต่ำบนอุปกรณ์สามเครื่อง
# การติดตั้ง gcloud CLI และการเข้าสู่ระบบ
gcloud auth login
gcloud config set project my-android-app
# การอัปโหลด APK ไปยัง Firebase Test Lab
gcloud firebase test android run \
--app app-debug.apk \
--test app-debug-test.apk \
--type instrumentation \
--device model=Pixel7,version=34 \
--device model=SamsungS23,version=33 \
--device model=OnePlus12,version=34 \
--timeout 30m \
--results-bucket gs://my-app-test-results
คำสั่งอัปโหลดสองไฟล์: ตัวบิลด์เองและเทสต์ APK ที่มีเครื่องมือเทสต์ (instrumentation test)ของ Espresso Firebase Test Lab จะเลือกเวอร์ชันระบบปฏิบัติการล่าสุดให้แต่ละรุ่นโดยอัตโนมัติ หากไม่ได้ระบุ version ไว้อย่างชัดเจน ผลลัพธ์จะถูกบันทึกลงใน Google Cloud Storage ในรูปแบบ XML และ HTML เพื่อดูในเบราว์เซอร์
สำหรับการรันอัตโนมัติในทุกการ push จะใช้ GitHub Actions เวิร์กโฟลว์จะบิลด์แอปพลิเคชัน รัน Firebase Test Lab แล้วส่งคืนสถานะการตรวจสอบ
name: Android CI with Device Farm
on: [push]
jobs:
test-on-devices:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: ./gradlew assembleDebug assembleDebugAndroidTest
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- run: gcloud firebase test android run
--app app/build/outputs/apk/debug/app-debug.apk
--test app/build/outputs/apk/androidTest/debug/app-debug-test.apk
--device model=Pixel8,version=35
ค่าใช้จ่ายของ Device Farm ประกอบด้วยหลายพารามิเตอร์: จำนวนเซสชันแบบขนาน ประเภทอุปกรณ์ (จริงหรืออีมูเลเตอร์) ระยะเวลาการทดสอบ และฟีเจอร์เพิ่มเติม สิ่งสำคัญคือต้องเข้าใจโครงสร้างค่าใช้จ่ายก่อนเลือกผู้ให้บริการ เพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่คาดคิดเมื่อขยายขนาด
ผู้ให้บริการส่วนใหญ่คิดค่าบริการตามเวลาการใช้งานอุปกรณ์จริง อุปกรณ์จริงมีราคาแพงกว่าอีมูเลเตอร์ 2–5 เท่า AWS Device Farm เสนอนาทีฟรี 1,000 นาทีต่อเดือนสำหรับบัญชีใหม่ ส่วน BrowserStack ให้ทดลอง 60 นาที ราคาเฉลี่ยต่อนาทีบนอุปกรณ์ Android จริงอยู่ที่ $0.05–0.17
สำหรับการทดสอบเป็นประจำ การสมัครสมาชิกแบบเหมาจ่ายจะคุ้มกว่า BrowserStack เสนอแผน Team ราคา $299/เดือนสำหรับผู้ใช้ 3 คนพร้อมนาทีไม่จำกัดบนอุปกรณ์จริง AWS Device Farm ไม่มีแพ็กเกจเหมาจ่าย — จ่ายตามนาทีที่ใช้ ซึ่งสะดวกเมื่อโหลดไม่สม่ำเสมอ แต่แพงกว่าเมื่อใช้งานหนัก
เมื่อคำนวณงบประมาณให้พิจารณา: การจัดเก็บอาร์ติแฟกต์การทดสอบ (วิดีโอ สกรีนช็อต ล็อก) — AWS Device Farm เก็บผลลัพธ์ได้สูงสุด 90 วันโดยไม่คิดค่าใช้จ่ายเพิ่ม ส่วน BrowserStack สูงสุด 30 วัน; ปริมาณการใช้งานเครือข่ายเมื่ออัปโหลด APK/IPA ขนาดใหญ่; จำนวนเซสชันแบบขนาน — การเพิ่มความขนานอาจต้องใช้แพ็กเกจที่แพงขึ้น
คำถามที่พบบ่อย
อีมูเลเตอร์ จำลองอุปกรณ์ด้วยซอฟต์แวร์บนคอมพิวเตอร์ของคุณ ในขณะที่ Device Farm ให้การเข้าถึงอุปกรณ์จริงที่มีเฟิร์มแวร์ต้นฉบับ ซีพียู และเซนเซอร์ เฉพาะบนอุปกรณ์จริงเท่านั้นที่คุณจะทดสอบกล้อง GPS อุณหภูมิตัวเครื่อง และการทำงานร่วมกับเครือข่ายของผู้ให้บริการมือถือได้
ได้ ผู้ให้บริการรายใหญ่ทั้งหมดรองรับ iOS ในการทดสอบต้องใช้ไฟล์ IPA ที่บิลด์ด้วย development certificate BrowserStack และ AWS Device Farm ให้บริการ iPhone และ iPad จริง ส่วน Firebase Test Lab รองรับ iOS ผ่านซิมูเลเตอร์ macOS ในดาตาเซ็นเตอร์
Jenkins ผสานรวมผ่านปลั๊กอิน (เช่น AWS Device Farm Plugin) หรือผ่านคำสั่ง CLI ที่รันในขั้นตอนบิลด์ ปลั๊กอินจะอัปโหลดอาร์ติแฟกต์ของบิลด์โดยอัตโนมัติ รันเทสต์บนอุปกรณ์ที่เลือก แล้วส่งคืนผลลัพธ์ไปยัง Jenkins pipeline
สำหรับสตาร์ทอัป Firebase Test Lab เหมาะที่สุด — ฟีเจอร์พื้นฐานฟรี และผสานรวมกับ Android Studio ได้ทันที สำหรับโปรเจกต์ iOS BrowserStack ให้ทดสอบฟรี 60 นาที เมื่อทีมเติบโตขึ้นก็จะย้ายไปใช้แผนแบบชำระเงินพร้อมคลังอุปกรณ์เต็มรูปแบบ
ผู้ให้บริการรายใหญ่ปฏิบัติตามการรับรอง SOC 2 และเข้ารหัสข้อมูลทั้งระหว่างส่งและจัดเก็บ AWS Device Farm ทำงานภายในบัญชี AWS ที่แยกจากกัน ส่วน BrowserStack ใช้อุปกรณ์แบบใช้ครั้งเดียวสำหรับแต่ละเซสชัน แนะนำให้เก็บข้อมูลลับ (API keys) ไว้ใน build config
บทสรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม