Firebase Test Lab คือบริการคลาวด์ของ Google สำหรับการทดสอบแอปพลิเคชันมือถือแบบอัตโนมัติบนอุปกรณ์จริงที่อยู่ในศูนย์ข้อมูลของ Google Test Lab ช่วยให้คุณเรียกใช้การทดสอบเครื่องมือ การทดสอบภาพหน้าจอ และการทดสอบหุ่นยนต์บนการกำหนดค่าอุปกรณ์หลายร้อยแบบกับ Android และ iOS เวอร์ชันต่างๆ โดยไม่ต้องดูแลฟาร์มอุปกรณ์ของคุณเอง ตาม Firebase Documentation, 2026 การทดสอบหุ่นยนต์ของ Firebase จะผ่านหน้าจอทั้งหมดของแอปพลิเคชันโดยอัตโนมัติ ตรวจจับการขัดข้อง ANR และปัญหาส่วนติดต่อผู้ใช้โดยไม่ต้องเขียนโค้ดทดสอบแม้แต่บรรทัดเดียว บริการนี้รองรับการรวมเข้ากับระบบ CI/CD และให้รายงานโดยละเอียดพร้อมวิดีโอและบันทึก
ประเด็นสำคัญ
Firebase Test Lab คือโครงสร้างพื้นฐานคลาวด์ของ Google สำหรับการทดสอบแอปพลิเคชันมือถือแบบอัตโนมัติบนอุปกรณ์จริงที่อยู่ในศูนย์ข้อมูลทั่วโลกของ Google ต่างจากโปรแกรมจำลองบนเครื่องท้องถิ่น Test Lab จะเรียกใช้การทดสอบบนอุปกรณ์ Android จริงและอุปกรณ์ iOS จริงด้วยระบบปฏิบัติการเวอร์ชันต่างๆ ความละเอียดหน้าจอ ขนาด RAM และระดับ API ที่แตกต่างกัน บริการจะประมวลผลผลการทดสอบโดยอัตโนมัติ ให้วิดีโอการดำเนินการ ภาพหน้าจอขั้นตอน และบันทึกโดยละเอียด
การดูแลฟาร์มอุปกรณ์ของคุณเองต้องใช้เงินลงทุนจำนวนมากในการซื้อและบำรุงรักษาอุปกรณ์จริง Firebase Test Lab ให้การเข้าถึงอุปกรณ์นับพันเครื่องแบบจ่ายตามการใช้งาน ด้วยขีดจำกัดฟรีในแผน Spark Test Lab จะอัปเดตกลุ่มอุปกรณ์เป็นรุ่นปัจจุบันโดยอัตโนมัติ รวมถึงรุ่นเรือธงล่าสุด Google Pixel, Samsung Galaxy, Xiaomi และ iPhone การทดสอบจะทำงานแบบขนานบนอุปกรณ์หลายเครื่อง ซึ่งช่วยลดเวลาในการตรวจสอบแอปพลิเคชันโดยรวม
สำหรับ Android Test Lab รองรับการทดสอบบนอุปกรณ์ที่มีระดับ API ตั้งแต่ 21 ถึงเวอร์ชัน Android เสถียรล่าสุด การรองรับ iOS รวมถึงอุปกรณ์ iPhone และ iPad จริงที่มีเวอร์ชัน iOS ตั้งแต่ 15 ถึงเวอร์ชันเสถียรล่าสุด การทดสอบหุ่นยนต์และ XCTest พร้อมใช้งานสำหรับ iOS การทดสอบแต่ละครั้งสามารถเรียกใช้บนอุปกรณ์จริงหรือโปรแกรมจำลอง — เพื่อผลลัพธ์ที่แม่นยำที่สุด Google แนะนำให้ใช้อุปกรณ์จริงเนื่องจากเผยให้เห็นปัญหาที่เกี่ยวข้องกับเซ็นเซอร์ กล้อง และอินเทอร์เฟซเครือข่าย
Firebase Test Lab รองรับการทดสอบหลายประเภท ซึ่งแต่ละประเภทแก้ปัญหาเฉพาะในวงจรการพัฒนา: การทดสอบหุ่นยนต์สำหรับตรวจสอบความเสถียรอย่างรวดเร็ว การทดสอบเครื่องมือสำหรับการตรวจสอบการทำงาน และการทดสอบภาพหน้าจอสำหรับตรวจจับการถดถอยทางภาพ การเลือกประเภทการทดสอบขึ้นอยู่กับขั้นตอนการพัฒนาและเป้าหมายของการเรียกใช้เฉพาะนั้น
การทดสอบหุ่นยนต์คือคุณสมบัติพิเศษของ Firebase Test Lab ที่ไม่ต้องเขียนโค้ดทดสอบ Firebase Crawler จะสำรวจแอปพลิเคชันโดยอัตโนมัติ: ค้นหาองค์ประกอบส่วนติดต่อผู้ใช้แบบโต้ตอบทั้งหมด คลิกที่องค์ประกอบเหล่านั้น กรอกแบบฟอร์มด้วยข้อมูลทดสอบ นำทางระหว่างหน้าจอ และบันทึกความล้มเหลวใดๆ (การขัดข้อง, ANR, ข้อยกเว้น) การทดสอบหุ่นยนต์ตรวจจับข้อบกพร่องร้ายแรงได้ถึง 80% โดยไม่ต้องเขียนโค้ดทดสอบแม้แต่บรรทัดเดียว ทำให้เป็นเครื่องมือที่เหมาะสำหรับการประเมินความเสถียรพื้นฐานของแอปพลิเคชันในขั้นตอนแรกของการพัฒนา
การทดสอบเครื่องมือคือการทดสอบที่นักพัฒนเขียนขึ้นโดยใช้เฟรมเวิร์ก Espresso (Android) หรือ XCTest (iOS) Test Lab จะเรียกใช้ APK พร้อมการทดสอบบนอุปกรณ์เป้าหมายและรวบรวมผลการดำเนินการ การทดสอบอาจเป็นแบบง่าย (ตรวจสอบการแสดงผลขององค์ประกอบ) หรือซับซ้อน (สถานการณ์ตั้งแต่ต้นจนจบ: เข้าสู่ระบบ เพิ่มในรถเข็น ชำระเงิน) Firebase Test Lab รองรับ Android Test Orchestrator สำหรับแยกการทดสอบออกจากกัน ป้องกันไม่ให้การทดสอบที่ล้มเหลวหนึ่งรายการส่งผลกระทบต่อรายการอื่น
การทดสอบภาพหน้าจอใช้สำหรับตรวจจับการถดถอยทางภาพในแอปพลิเคชัน Game loop คือประเภทการทดสอบพิเศษที่ส่งรายการสถานการณ์ไปยังแอปพลิเคชันผ่าน intent และแอปพลิเคชันต้องดำเนินการตามสถานการณ์เหล่านี้และถ่ายภาพหน้าจอของหน้าจอสำคัญ Test Lab จะรวบรวมภาพหน้าจอจากอุปกรณ์ทั้งหมดในเมทริกซ์และอนุญาตให้เปรียบเทียบกับภาพอ้างอิงเพื่อตรวจจับความแตกต่าง การทดสอบประเภทนี้ได้รับความนิยมเป็นพิเศษในแอปพลิเคชันเกมสำหรับตรวจสอบการเรนเดอร์บน GPU ที่แตกต่างกัน
| ประเภทการทดสอบ | โค้ด | สิ่งที่ตรวจสอบ | เมื่อใดควรใช้ |
|---|---|---|---|
| การทดสอบหุ่นยนต์ | ไม่จำเป็น | การขัดข้อง, ANR, ข้อยกเว้น | ตรวจสอบความเสถียรอย่างรวดเร็ว |
| เครื่องมือ | Espresso / XCTest | ฟังก์ชันการทำงานของสถานการณ์ | การทดสอบการถดถอย |
| ภาพหน้าจอ | Game loop | การถดถอยทางภาพ | ตรวจสอบส่วนติดต่อผู้ใช้บนอุปกรณ์ต่างๆ |
เมทริกซ์การทดสอบ ใน Firebase Test Lab คือชุดของการกำหนดค่าอุปกรณ์ที่ใช้ในการดำเนินการทดสอบที่เลือก แต่ละการกำหนดค่าประกอบด้วยรุ่นอุปกรณ์ เวอร์ชันระบบปฏิบัติการ การวางแนวหน้าจอ (แนวตั้ง/แนวนอน) และการตั้งค่าภูมิภาค (locale, ภาษา) การทดสอบจะทำงานแบบขนานบนการกำหนดค่าที่เลือกทั้งหมด ซึ่งช่วยลดเวลาในการดำเนินการโดยรวมเมื่อเทียบกับการทำงานตามลำดับบนแต่ละอุปกรณ์
Google แนะนำให้รวมอุปกรณ์ที่มีคุณลักษณะแตกต่างกันในเมทริกซ์: รุ่นเรือธง (Google Pixel, Samsung Galaxy S) อุปกรณ์ประหยัด (Moto G, Xiaomi Redmi) อุปกรณ์ที่มีเวอร์ชัน API ขั้นต่ำที่แอปพลิเคชันรองรับ เมทริกซ์ที่เหมาะสมที่สุด ประกอบด้วยการกำหนดค่า 5–10 รายการที่ครอบคลุมเวอร์ชันระบบปฏิบัติการทั้งหมดที่แอปพลิเคชันรองรับ สำหรับ iOS จะเลือกรุ่น iPhone และ iPad จากรุ่นต่างๆ (เช่น iPhone SE, iPhone 14, iPad Air) ด้วยเวอร์ชัน iOS ที่แตกต่างกัน
Test Lab จะกระจายการทดสอบไปยังอุปกรณ์ที่เลือกโดยอัตโนมัติ โดยเรียกใช้การทดสอบแต่ละครั้งบนการกำหนดค่าแต่ละรายการ เวลาในการดำเนินการของเมทริกซ์ทั้งหมดเท่ากับเวลาในการดำเนินการของการทดสอบที่ช้าที่สุดบนอุปกรณ์ที่ช้าที่สุด — ส่วนที่เหลือทั้งหมดทำงานแบบขนาน หากการทดสอบหนึ่งล้มเหลวบนอุปกรณ์ทั้งหมด Test Lab จะหยุดการดำเนินการบนการกำหนดค่าที่เหลือเพื่อประหยัดทรัพยากร ผลลัพธ์จะถูกจัดกลุ่มตามการทดสอบและตามอุปกรณ์ ช่วยให้ระบุได้อย่างรวดเร็วว่าข้อผิดพลาดนั้นเฉพาะเจาะจงกับการกำหนดค่าใดการกำหนดค่าหนึ่งหรือไม่
การทดสอบหุ่นยนต์ คือคุณสมบัติเรือธงของ Firebase Test Lab ที่ช่วยให้คุณสำรวจแอปพลิเคชันโดยอัตโนมัติโดยไม่ต้องเขียนการทดสอบแม้แต่ครั้งเดียว Firebase Crawler (หุ่นยนต์) จะวิเคราะห์ลำดับชั้นส่วนติดต่อผู้ใช้ของแอปพลิเคชัน ค้นหาองค์ประกอบแบบโต้ตอบทั้งหมด (ปุ่ม, ฟิลด์ข้อความ, รายการ, เมนู) และโต้ตอบกับองค์ประกอบเหล่านั้น โดยจำลองพฤติกรรมของผู้ใช้จริง การทดสอบหุ่นยนต์มีประสิทธิภาพโดยเฉพาะอย่างยิ่งในขั้นตอนแรกของการพัฒนา เมื่อการทดสอบยังไม่ได้ถูกเขียนขึ้น หรือสำหรับการตรวจสอบโค้ดเก่า
ในการเรียกใช้การทดสอบหุ่นยนต์ เพียงอัปโหลด APK หรือ IPA ไปยัง Firebase Console และเลือกตัวเลือก Robo test หุ่นยนต์สามารถเข้าสู่ระบบแอปพลิเคชันโดยอัตโนมัติผ่านข้อมูลประจำตัวที่กำหนดไว้ล่วงหน้า (ชื่อผู้ใช้/รหัสผ่าน) เพื่อเข้าถึงหน้าจอที่ซ่อนอยู่หลังการรับรองความถูกต้อง คุณยังสามารถกำหนดความลึกในการสำรวจ (max depth) เพื่อจำกัดจำนวนขั้นตอนของหุ่นยนต์ หรือระบุองค์ประกอบเฉพาะที่หุ่นยนต์ควรคลิกเป็นลำดับความสำคัญ
<!-- res/xml/robo_directives.xml -->
<!-- หุ่นยนต์จะกรอกฟิลด์ชื่อผู้ใช้และรหัสผ่าน -->
<?xml version="1.0" encoding="utf-8"?>
<robo-directives
xmlns:android="http://schemas.android.com/apk/res/android">
<directive
android:resourceName="@id/et_email"
android:inputValue="test@example.com" />
<directive
android:resourceName="@id/et_password"
android:inputValue="password123" />
<directive
android:resourceName="@id/btn_login"
android:clickAction="CLICK" />
</robo-directives>
การทดสอบหุ่นยนต์ไม่ได้แทนที่การทดสอบด้วยตนเองและการทดสอบเครื่องมือที่เขียนขึ้นสำหรับสถานการณ์ที่ซับซ้อน หุ่นยนต์ไม่สามารถตรวจสอบตรรกะทางธุรกิจ: มันคลิกที่องค์ประกอบทั้งหมดตามลำดับ แต่ไม่ทราบว่าผลลัพธ์ถูกต้องหรือไม่ นอกจากนี้ หุ่นยนต์ไม่สามารถโต้ตอบกับมุมมองที่กำหนดเองซึ่งไม่สืบทอดจาก ViewGroup มาตรฐาน และไม่สามารถจัดการ WebView ได้ สำหรับกรณีเหล่านี้ ต้องใช้การทดสอบเครื่องมือหรือ Game loop
การรวม Firebase Test Lab กับระบบ CI/CD ช่วยให้คุณเรียกใช้การทดสอบโดยอัตโนมัติทุกครั้งที่มีการพุชไปยังที่เก็บโค้ด Test Lab รองรับงาน Gradle สำหรับ Android และ Fastlane สำหรับทั้งสองแพลตฟอร์ม การตั้งค่าไปป์ไลน์ CI/CD รวมถึงการสร้างแอปพลิเคชัน การอัปโหลด APK/IPA ไปยัง Google Cloud Storage การเรียกใช้การทดสอบผ่าน Firebase CLI และการรับรายงานกลับไปยังระบบ CI เพื่อแสดงสถานะการสร้าง
Google มีปลั๊กอิน gcloud-test-lab สำหรับ Gradle ซึ่งจะทำให้การอัปโหลดและเรียกใช้การทดสอบเป็นอัตโนมัติ งาน assembleAndroidTest จะสร้าง APK พร้อมการทดสอบ และงาน gcloud จะอัปโหลดไปยัง Test Lab และเรียกใช้เมทริกซ์ ผลการทดสอบจะถูกส่งกลับไปยัง Gradle เป็น pass/fail ซึ่งช่วยให้รวม Test Lab เข้ากับไปป์ไลน์ CI ใดๆ ที่รองรับ Gradle บัญชีบริการ Firebase ที่มีสิทธิ์ Test Lab ใช้สำหรับการอนุญาต
// build.gradle (module: app)
task runTestLab() {
exec {
commandLine "gcloud", "firebase", "test", "android", "run",
"--type", "robo",
"--app", "build/outputs/apk/debug/app-debug.apk",
"--device", "model=Pixel7,version=33",
"--device", "model=GalaxyS23,version=34",
"--device", "model=RedmiNote12,version=31",
"--timeout", "15m",
"--results-dir", "firebase/test-lab/robo"
}
}
Fastlane มีปลั๊กอิน firebase_test_lab สำหรับรวมกับการทดสอบ iOS และ Android เลน Fastlaneจะดำเนินการสร้าง เรียกใช้การทดสอบ และประมวลผลผลลัพธ์ สำหรับ XCTest บน iOS Test Lab ต้องการไฟล์ xctestrun ซึ่งจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อสร้างเป้าหมายการทดสอบ Fastlane ยังสามารถอัปโหลดผลการทดสอบไปยัง Slack หรือแอปส่งข้อความอื่นๆ เพื่อแจ้งให้ทีมทราบเกี่ยวกับสถานะการทดสอบหลังจากแต่ละการเรียกใช้
หลังจากการทดสอบเสร็จสิ้น Firebase Test Lab จะให้รายงานที่ครอบคลุมซึ่งพร้อมใช้งานใน Firebase Console และผ่าน gcloud CLI รายงานประกอบด้วยสรุปโดยย่อ (จำนวนการทดสอบที่ผ่าน ล้มเหลว และข้ามไป) ข้อมูลโดยละเอียดสำหรับการทดสอบแต่ละครั้งบนอุปกรณ์แต่ละเครื่อง วิดีโอการดำเนินการ ภาพหน้าจอของขั้นตอนสำคัญ และบันทึกของอุปกรณ์ (logcat สำหรับ Android, บันทึกระบบสำหรับ iOS) สำหรับการทดสอบที่ล้มเหลว มีสแต็กเทรซพร้อมตำแหน่งที่แน่นอนของข้อผิดพลาด
สำหรับการทดสอบหุ่นยนต์ รายงานจะแตกต่างจากการทดสอบเครื่องมือ: แทนที่จะเป็น pass/fail ต่อกรณีทดสอบ รายงานจะแสดงสถิติการสำรวจ เมตริกสำคัญ — จำนวนหน้าจอที่พบและเยี่ยมชม จำนวนการโต้ตอบของหุ่นยนต์ (การคลิก การปัด การป้อนข้อความ) การขัดข้องและ ANR ที่ตรวจพบ และเส้นทางที่เดินทางผ่านแอปพลิเคชัน วิดีโอการดำเนินการของหุ่นยนต์ช่วยให้คุณประเมินด้วยภาพว่าหน้าจอใดได้รับการทดสอบและหน้าจอใดยังไม่ได้รับการครอบคลุม
ผลการทดสอบจะถูกเก็บไว้ใน Google Cloud Storage ในบักเก็ตที่เชื่อมโยงกับโปรเจกต์ ข้อมูลพร้อมใช้งานสำหรับการส่งออกและการรวมเข้ากับระบบวิเคราะห์ภายนอก สำหรับการจัดเก็บระยะยาวและการเปรียบเทียบผลลัพธ์ระหว่างการเรียกใช้ ขอแนะนำให้ตั้งค่าการส่งออก BigQuery หรือใช้ Firebase Test Lab API สำหรับการรับผลลัพธ์ด้วยโปรแกรม Google ให้ความสามารถในการดาวน์โหลดไฟล์ ZIP ที่มีชุดผลลัพธ์ที่สมบูรณ์สำหรับการเรียกใช้การทดสอบแต่ละครั้ง
คำถามที่พบบ่อย
แผน Spark รวมการทดสอบ Robo 10 ครั้งต่อวันและการทดสอบเครื่องมือ 5 ชั่วโมงต่อเดือนฟรี แผน Blaze คิดค่าบริการตามเวลา: ~1 USD ต่อชั่วโมงอุปกรณ์สำหรับการทดสอบ Robo และ ~5 USD สำหรับการทดสอบเครื่องมือ ค่าใช้จ่ายที่แน่นอนขึ้นอยู่กับภูมิภาคและประเภทอุปกรณ์
อุปกรณ์จริงให้ผลลัพธ์ที่แม่นยำกว่า รวมถึงปัญหาที่เกี่ยวกับเซ็นเซอร์ กล้อง GPS บลูทูธ และประสิทธิภาพจริง โปรแกรมจำลองเริ่มต้นเร็วกว่าและถูกกว่า แต่ไม่เปิดเผยปัญหาที่เกี่ยวข้องกับคุณสมบัติของฮาร์ดแวร์ Google แนะนำให้ใช้อุปกรณ์จริงสำหรับการทดสอบก่อนวางจำหน่าย
สร้างไฟล์ XML robo_directives.xml พร้อมฟิลด์ป้อนข้อมูล (ชื่อผู้ใช้ รหัสผ่าน) และปุ่มสำหรับคลิก อัปโหลดไฟล์พร้อมกับ APK เมื่อเริ่มการทดสอบผ่าน Firebase Console หรือ CLI หุ่นยนต์จะดำเนินการตามที่ระบุก่อนเริ่มการสำรวจ
ได้ Firebase Test Lab รองรับ iOS ตั้งแต่ปี 2024 การทดสอบ Robo (การสำรวจอัตโนมัติ) และ XCTest (การทดสอบเครื่องมือ) พร้อมใช้งานบนอุปกรณ์ iPhone และ iPad จริง ไฟล์ IPA พร้อมเป้าหมายการทดสอบจำเป็นสำหรับการอัปโหลด
ใช้ Firebase CLI ใน GitHub Actions: ตั้งค่าการรับรองความถูกต้องผ่าน Service Account JSON ติดตั้ง gcloud SDK เรียกใช้คำสั่ง firebase test android run พร้อม APK และการกำหนดค่า ผลการทดสอบพร้อมใช้งานผ่าน Firebase Console หรือ gcloud CLI
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม