Internal Testing คือแทร็กการทดสอบแบบปิดในร้านค้าแอปพลิเคชัน ที่เข้าถึงได้เฉพาะทีมพัฒนาภายในและวิศวกร QA เท่านั้น ใน Google Play และ App Store Internal Testing อนุญาตให้เผยแพร่บิลด์โดยไม่ต้องผ่านการตรวจสอบ และแจกจ่ายทันทีให้กับกลุ่มผู้เข้าร่วมที่จำกัด ตามข้อมูลจาก Google Android Developers, 2024 60% ของทีมใช้ Internal Testing เป็นขั้นตอนแรกก่อนที่จะเผยแพร่ไปยังแทร็กเบตาและโปรดักชัน นี่คือเกณฑ์ขั้นต่ำสำหรับการทดสอบฟีเจอร์ใหม่
ประเด็นสำคัญ
Internal Testing คือแทร็กการทดสอบใน Google Play Console และ TestFlight ที่ออกแบบมาเพื่อแจกจ่ายบิลด์ระหว่างสมาชิกทีมพัฒนา แตกต่างจากการทดสอบเบตาแบบเปิด การเข้าถึง Internal Testing ถูกจำกัดเฉพาะรายการที่อยู่อีเมลที่ได้รับการอนุมัติจากเจ้าของบัญชีผู้พัฒนา
ข้อได้เปรียบหลักคือ เวลาในการส่งบิลด์ถึงผู้ทดสอบน้อยที่สุด ใน Google Play Internal Testing ไม่ต้องผ่านการตรวจสอบ — บิลด์จะปรากฏแก่ผู้เข้าร่วมภายใน 5–15 นาทีหลังจากอัปโหลด ใน App Store ผ่าน TestFlight บิลด์ก็ถูกส่งโดยไม่ต้องผ่าน App Review ล่วงหน้าเช่นกัน แต่ต้องผ่านการตรวจสอบอัตโนมัติสำหรับข้อกำหนดด้านความปลอดภัยพื้นฐาน
Google Play มีแทร็กการทดสอบสามแบบ: Internal Testing, Closed Beta (Open Beta) และ Production Internal Testing เป็นแทร็กที่เร็วที่สุดและมีข้อจำกัดด้านจำนวนผู้เข้าร่วมมากที่สุด (สูงสุด 100 คน) Closed Beta อนุญาตให้มีผู้เข้าร่วมสูงสุด 10,000 คนและต้องตั้งค่าหน้าทดสอบ Production เป็นขั้นตอนสุดท้ายที่มีการตรวจสอบอย่างสมบูรณ์
Internal Testing ใช้สำหรับการตรวจสอบบิลด์เบื้องต้นก่อนส่งต่อไปยังแทร็กเบตา นักพัฒนาอัปโหลด บิลด์ประจำวัน สำหรับทีม QA ตรวจสอบการรวม SDK ใหม่ ทดสอบความเข้ากันได้กับระบบปฏิบัติการเวอร์ชันต่างๆ และระบุข้อผิดพลาดที่เกิดจากการถดถอยก่อนที่ผู้ทดสอบภายนอกจะเห็นบิลด์
ใน Google Play Console Internal Testing เป็นแทร็กแยกต่างหากที่อยู่ในส่วน Release → Testing ในการเพิ่มผู้ทดสอบ เพียงป้อนที่อยู่อีเมลของพวกเขา — ผู้เข้าร่วมจะได้รับคำเชิญและลิงก์เพื่อเข้าร่วมผ่าน Google Play บิลด์จะถูกอัปโหลดผ่านอินเทอร์เฟซเดียวกับรุ่นโปรดักชัน
นักพัฒนาอัปโหลด App Bundle หรือ APK ในส่วน Internal Testing ของ Google Play Console ระบบตรวจสอบข้อกำหนดพื้นฐาน: ลายเซ็น เวอร์ชันโค้ด และความเข้ากันได้ของ API หลังจากประมวลผล 5–15 นาที บิลด์จะพร้อมใช้งานสำหรับผู้ทดสอบ สถานะจะถูกติดตามในคอนโซล: ร่าง กำลังตรวจสอบ พร้อมทดสอบ
// Fastlane — การเผยแพร่ในแทร็ก Internal Testing
lane :internal_testing do
gradle(task: ":app:assembleRelease")
upload_to_play_store(
track: "internal",
release_status: "completed",
rollout: 1.0
)
slack(
message: "Build uploaded to Internal Testing"
)
end
การเพิ่มผู้เข้าร่วมทำผ่านส่วน Testers ใน Google Play Console รองรับการอัปโหลดกลุ่มผ่านไฟล์ CSV ผู้ทดสอบแต่ละคนจะได้รับอีเมลพร้อมคำเชิญและคำแนะนำในการติดตั้ง หากต้องการเพิกถอนการเข้าถึง เพียงลบผู้เข้าร่วมออกจากกลุ่ม — แอปที่ติดตั้งไว้ยังคงทำงานได้ แต่จะไม่ได้รับการอัปเดตใหม่
ในระบบนิเวศของ Apple บทบาทของ Internal Testing ดำเนินการโดย TestFlight — แพลตฟอร์มสำหรับแจกจ่ายเวอร์ชันเบตา TestFlight รองรับผู้ทดสอบภายในสูงสุด 100 คน ซึ่งถูกเพิ่มทางอีเมลผ่าน App Store Connect การเผยแพร่บิลด์ไม่ต้องผ่าน App Review แบบสมบูรณ์ แต่บิลด์จะถูกตรวจสอบโดยอัตโนมัติสำหรับข้อกำหนดขั้นต่ำ
แตกต่างจาก Google Play ที่ Internal Testing ไม่ต้องการการตรวจสอบใดๆ Apple ดำเนินการ การตรวจสอบพื้นฐานอัตโนมัติ การตรวจสอบใช้เวลา 30–60 นาที และรวมถึงการสแกนโค้ดไบนารีเพื่อหา API ที่เป็นอันตรายและการปฏิบัติตามข้อกำหนดพื้นฐาน หลังจากการตรวจสอบสำเร็จ บิลด์จะพร้อมใช้งานสำหรับผู้ทดสอบภายใน 24 ชั่วโมง บิลด์มีอายุ 90 วัน
ใน App Store Connect Internal Testing ถูกกำหนดค่าในส่วน TestFlight → Internal Testing เจ้าของบัญชีเพิ่มผู้ทดสอบทางอีเมลและกำหนดบทบาท หลังจากอัปโหลดบิลด์ผ่าน Xcode หรือ Transporter ระบบจะแจ้งให้ผู้เข้าร่วมทราบเกี่ยวกับความพร้อมใช้งานของเวอร์ชันใหม่ ผู้ทดสอบติดตั้งแอปผ่านแอป TestFlight บนอุปกรณ์ของพวกเขา
การตั้งค่า Internal Testing สำหรับทั้งสองแพลตฟอร์มใช้เวลา 10 ถึง 30 นาที ด้านล่างเป็นคำแนะนำทีละขั้นตอนสำหรับ Google Play และ App Store กระบวนการไม่ต้องการการเปลี่ยนแปลงโค้ดแอป — เพียงตั้งค่าคอนโซลนักพัฒนาครั้งเดียวก็เพียงพอ
| ขั้นตอน | Google Play | App Store (TestFlight) |
|---|---|---|
| 1 | Google Play Console → Testing → Internal | App Store Connect → TestFlight → Internal Testing |
| 2 | สร้างกลุ่มผู้ทดสอบ | เพิ่มอีเมลผู้ทดสอบ |
| 3 | อัปโหลด App Bundle / APK | อัปโหลด IPA ผ่าน Xcode / Transporter |
| 4 | รอการประมวลผล 5–15 นาที | รอการตรวจสอบพื้นฐาน 30–60 นาที |
| 5 | แจ้งทีมเกี่ยวกับความพร้อมใช้งาน | TestFlight แจ้งผู้เข้าร่วม |
ร้านค้าทั้งสองแห่งรองรับการเผยแพร่ใน Internal Testing ผ่าน API สำหรับระบบอัตโนมัติ ใช้ Gradle Play Publisher (Google Play) และ Fastlane (ทั้งสองแพลตฟอร์ม) ไปป์ไลน์ CI/CD สามารถอัปโหลดบิลด์ไปยังแทร็กภายในหลังจากแต่ละการรันการทดสอบหน่วยและการทดสอบ UI ที่สำเร็จ
สำหรับแอปที่ต้องมีการยืนยันตัวตน จำเป็นต้องเตรียม บัญชีทดสอบ และส่งมอบให้ทีม QA บัญชีควรเข้าถึงสภาพแวดล้อมการทดสอบ (staging/development) และไม่ส่งผลกระทบต่อข้อมูลโปรดักชัน ขอแนะนำให้สร้างการกำหนดค่า Firebase ทดสอบแยกต่างหากสำหรับแทร็กภายใน
Internal Testing ถูกรวมเข้ากับ ไปป์ไลน์ QA หลังจากผ่านการตรวจสอบอัตโนมัติใน CI นักพัฒนาหรือวิศวกร DevOps อัปโหลดบิลด์ไปยังแทร็กภายใน หลังจากนั้นวิศวกร QA ได้รับการแจ้งเตือนและติดตั้งอัปเดตบนอุปกรณ์ทดสอบผ่านร้านค้าแอปพลิเคชัน
ขอแนะนำให้เผยแพร่บิลด์ใน Internal Testing ทุกวันหรือหลังจากการเปลี่ยนแปลงที่สำคัญแต่ละครั้งในโค้ดเบส ทีม QA ทดสอบสถานการณ์ที่สำคัญ: การยืนยันตัวตน กระแสผู้ใช้หลัก การรวม API และการทำงานกับพื้นที่จัดเก็บในเครื่อง การทดสอบการถดถอยจะดำเนินการทุกๆ บิลด์ที่สามหรือสี่
สำหรับการรวบรวมรายงานข้อบกพร่อง ให้ใช้การรวมกับ ระบบติดตาม: Jira, YouTrack, Trello หรือ GitHub Issues ผู้ทดสอบส่งภาพหน้าจอ บันทึก และขั้นตอนการจำลอง TestFlight รองรับการรวบรวมภาพหน้าจอและบันทึกของอุปกรณ์เมื่อเขย่า — ข้อมูลจะถูกส่งไปยังนักพัฒนาผ่าน App Store Connect
เพื่อเผยแพร่บิลด์ไปยังแทร็ก Internal Testing โดยอัตโนมัติ ให้ตั้งค่า ไปป์ไลน์ CI/CD หลังจากผ่านการทดสอบหน่วยและการทดสอบ UI สคริปต์จะอัปโหลดบิลด์ไปยังแทร็กภายในและส่งการแจ้งเตือนไปยังทีม QA Fastlane มีการดำเนินการ upload_to_play_store พร้อมใช้งานกับพารามิเตอร์ track: internal สำหรับ iOS ให้ใช้ Fastlane Pilot เพื่ออัปโหลดไปยัง TestFlight
Internal Testing มีข้อจำกัดที่เข้มงวดเกี่ยวกับจำนวนผู้เข้าร่วม: สูงสุด 100 คนใน Google Play และสูงสุด 100 ผู้ทดสอบภายในใน TestFlight Google Play ยังจำกัดจำนวนกลุ่ม — สูงสุด 1 กลุ่มสำหรับแทร็กภายใน App Store ไม่จำกัดจำนวนบิลด์ แต่บิลด์แต่ละอันมีอายุ 90 วัน
Google Play ไม่จำกัดจำนวนบิลด์ที่อัปโหลดในแทร็กภายใน แต่หลังจากไม่มีการเคลื่อนไหว 90 วัน แทร็กอาจถูกระงับโดยอัตโนมัติ TestFlight มีข้อจำกัดที่เข้มงวดกว่า: สูงสุด 30 บิลด์ที่ทำงานพร้อมกัน สูงสุด 10,000 ผู้ทดสอบภายนอก (ไม่ใช่ภายใน) การยกเลิกข้อจำกัดต้องเข้าร่วมในโปรแกรม Apple Developer Enterprise
หลังจากทำให้บิลด์มีเสถียรภาพในแทร็กภายในแล้ว บิลด์จะถูกย้ายไปยัง Closed หรือ Open Beta เพื่อทดสอบกับผู้ชมภายนอก Google Play อนุญาตให้คัดลอกการตั้งค่าแทร็กและโอนย้ายบิลด์โดยไม่ต้องอัปโหลดซ้ำ TestFlight ต้องสร้างแทร็กภายนอกแยกต่างหากพร้อมกลุ่มผู้ทดสอบใหม่
บิลด์ในแทร็กภายในได้รับการปกป้องจากการเข้าถึงจากภายนอก: เฉพาะผู้เข้าร่วมที่ได้รับอนุญาตผ่าน Google Play Console หรือ App Store Connect เท่านั้นที่สามารถดาวน์โหลดแอปได้ แม้ว่าจะมีใครทราบลิงก์แอป ผู้ใช้ที่ไม่ได้รับอนุญาตก็ไม่สามารถติดตั้งบิลด์ได้ สิ่งนี้รับประกันความลับของฟีเจอร์ใหม่และปกป้องทรัพย์สินทางปัญญาในช่วงการพัฒนา
คำถามที่พบบ่อย
ใน Google Play — สูงสุด 100 คน ใน TestFlight — สูงสุด 100 ผู้ทดสอบภายในเช่นกัน หากต้องการขยายกลุ่มผู้ใช้ ต้องเปลี่ยนไปใช้ Closed Beta (สูงสุด 10,000 ใน Google Play) หรือ External Testing (สูงสุด 10,000 ใน TestFlight)
ใน Google Play การตรวจสอบ ไม่จำเป็น — บิลด์พร้อมใช้งานภายใน 5–15 นาทีหลังจากอัปโหลด ใน TestFlight จะมีการตรวจสอบพื้นฐานอัตโนมัติ (30–60 นาที) ซึ่งทำให้การเผยแพร่ล่าช้าเล็กน้อย ไม่จำเป็นต้องมีการตรวจสอบแอปแบบสมบูรณ์
ไม่ Internal Testing มีไว้สำหรับ ทีมพัฒนาภายใน เท่านั้น สำหรับลูกค้าและผู้ทดสอบภายนอก ให้ใช้ Closed Beta (Google Play) หรือ External Testing (TestFlight) แทร็กเหล่านี้รองรับจำนวนผู้เข้าร่วมที่มากขึ้นและหน้าทดสอบสาธารณะ
ใน Google Play ไม่มีข้อจำกัดด้านความถี่ — สามารถเผยแพร่บิลด์ได้ทุกวันหรือหลายครั้งต่อวัน TestFlight จำกัดอายุของบิลด์ไว้ที่ 90 วัน แต่จำนวนบิลด์ใหม่ไม่ถูกจำกัด ขอแนะนำให้อัปเดตไม่เกิน 1–2 ครั้งต่อวันเพื่อความเสถียรของการทดสอบ
Internal Testing ถูกจำกัดที่ 100 ผู้เข้าร่วม ไม่ต้องตรวจสอบ และไม่มีหน้าสาธารณะ Closed Beta รองรับสูงสุด 10,000 ผู้เข้าร่วม มีลิงก์สาธารณะสำหรับเข้าร่วม และสามารถกำหนดค่าตามประเทศหรือภูมิภาคได้ Closed Beta ยังปรากฏในการค้นหาของ Google Play ด้วย
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม