ก่อนที่จะเรียกใช้การทดสอบ CTS อัตโนมัติได้ ให้เตรียมสภาพแวดล้อมจริง ตั้งค่าเวิร์กสเตชัน และกำหนดค่าอุปกรณ์ที่คุณกำลังทดสอบ
ตั้งค่าสภาพแวดล้อมจริง
การทดสอบ CTS บางอย่างกำหนดให้ต้องใช้อุปกรณ์ภายนอกที่ตั้งอยู่ใกล้กับ DUT วิธีตั้งค่าสภาพแวดล้อมจริง
- (ไม่บังคับ) หาก DUT รองรับ Bluetooth LE ให้วางบีคอน Bluetooth LE อย่างน้อย 3 ตัวภายใน 5 เมตรจาก DUT เพื่อทดสอบการสแกน Bluetooth LE นอกจากนี้ - คุณไม่จำเป็นต้องกำหนดค่าหรือปล่อยสัญญาณใดๆ ที่เฉพาะเจาะจง
- โดยบีคอนจะเป็นประเภทใดก็ได้ รวมถึง iBeacon, Eddystone หรือแม้แต่อุปกรณ์ที่จำลองบีคอน BLE
 
- วางโทรศัพท์ไว้หน้าฉาก เช่น ผนังหรือเพดาน โดยมี ระยะห่างเท่ากับระยะโฟกัสต่ำสุดของ DUT นอกจากนี้ - ฉากต้องมีแสงสว่างเพียงพอเพื่อให้เซ็นเซอร์ภายใต้การทดสอบสามารถ
เข้าถึงและคงค่าเฟรมเป้าหมายสูงสุดต่อวินาที (FPS) ที่กำหนดค่าไว้ตามที่ระบุใน
CONTROL_AE_TARGET_FPS_RANGE
- การตั้งค่านี้ใช้กับเซ็นเซอร์กล้องทั้งหมดที่รายงานโดย
getCameraIdListเนื่องจากการทดสอบจะวนซ้ำในอุปกรณ์ที่ระบุและวัดประสิทธิภาพ ทีละรายการ
- หาก DUT รองรับกล้องภายนอก เช่น เว็บแคม USB ให้เสียบกล้องภายนอกเมื่อเรียกใช้ CTS มิฉะนั้นการทดสอบ CTS จะล้มเหลว
 
- ฉากต้องมีแสงสว่างเพียงพอเพื่อให้เซ็นเซอร์ภายใต้การทดสอบสามารถ
เข้าถึงและคงค่าเฟรมเป้าหมายสูงสุดต่อวินาที (FPS) ที่กำหนดค่าไว้ตามที่ระบุใน
- (ไม่บังคับ) หาก DUT รองรับระบบกำหนดตำแหน่งบนโลก (GPS) หรือระบบดาวเทียมนำทางทั่วโลก (GNSS) อื่นๆ ให้ส่งสัญญาณ GNSS ไปยัง DUT ที่ระดับสัญญาณที่เหมาะสมสำหรับการรับและการคำนวณตำแหน่ง นอกจากนี้ - GPS ต้องเป็นไปตาม ICD-GPS-200C
- สัญญาณ GNSS อาจเป็นประเภทใดก็ได้ รวมถึงเครื่องจำลองดาวเทียมหรือเครื่องทวนสัญญาณกลางแจ้ง
- คุณวาง DUT ไว้ใกล้หน้าต่างเพื่อให้รับสัญญาณ GNSS จากดาวเทียมได้โดยตรง
 
- ตรวจสอบว่าเครือข่าย Wi-Fi รองรับ IPv4 และ IPv6 มีการเชื่อมต่ออินเทอร์เน็ต ที่มี DNS สำหรับ IPv4 และ IPv6 รองรับ IP มัลติแคสต์ และสามารถ ถือว่า DUT เป็นไคลเอ็นต์ที่แยกต่างหาก - หากคุณไม่มีสิทธิ์เข้าถึงเครือข่าย IPv6 แบบเนทีฟ เครือข่ายผู้ให้บริการ IPv6 หรือ VPN เพื่อผ่านการทดสอบ IPv6 ให้ใช้ Wi-Fi AP และอุโมงค์ IPv6 
- ตรวจสอบว่า DUT มีการตั้งค่าสถานะ - UP,- BROADCASTและ- MULTICASTในอินเทอร์เฟซ Wi-Fi
- ตรวจสอบว่าอินเทอร์เฟซ Wi-Fi มีการกำหนดที่อยู่ IPv4 และ IPv6 หากต้องการตรวจสอบพร็อพเพอร์ตี้ของอินเทอร์เฟซ Wi-Fi ให้เรียกใช้ - adb shell ifconfig
- (ไม่บังคับ) หาก DUT รองรับ Wi-Fi STA หรือการทำงานพร้อมกันของ STA ให้ตั้งค่าเครือข่าย Wi-Fi อย่างน้อย 2 เครือข่าย เครือข่าย Wi-Fi เหล่านี้ต้องทำงานในย่านความถี่ที่แตกต่างกันโดยมี SSID ที่แตกต่างกัน หรือใน SSID เดียวกันโดยมี BSSID ที่แตกต่างกัน 
- (ไม่บังคับ) หาก DUT รองรับระยะเวลารับส่งข้อมูล (RTT) ของ Wi-Fi ให้ตั้งค่าอุปกรณ์ที่รองรับ RTT ของ Wi-Fi ดังนี้ - วางอุปกรณ์ RTT ของ Wi-Fi ให้อยู่ภายในระยะ 40 ฟุตจาก DUT
- เปิดอุปกรณ์ RTT ของ Wi-Fi
 - อุปกรณ์ 2 รุ่นที่แนะนำซึ่งรองรับ Wi-Fi RTT มีดังนี้ - Google Wifi - จุดเข้าใช้งาน fitlet2 ของ Compulab (ตั้งค่าแบนด์วิดท์เป็น 40 MHz ที่ 5 GHz) 
ตั้งค่าเครื่องเดสก์ท็อป
ก่อนเรียกใช้การทดสอบอัตโนมัติของ CTS โปรดตรวจสอบว่าเครื่องเดสก์ท็อปของคุณมีคุณสมบัติตรงตามข้อกำหนดด้านฮาร์ดแวร์และระบบปฏิบัติการ และได้ติดตั้งซอฟต์แวร์ที่เหมาะสมตามที่อธิบายไว้ในส่วนต่อไปนี้
ข้อกำหนดของฮาร์ดแวร์ของ Meet
เครื่องเดสก์ท็อป CTS ควรเป็นไปตามหรือเกินกว่าข้อกำหนดด้านฮาร์ดแวร์ต่อไปนี้
- ระบบ x86 64 บิต 
- พื้นที่ว่างในดิสก์อย่างน้อย 256 GB เพื่อรองรับจำนวนเคสทดสอบ CTS ที่เพิ่มขึ้นและการเพิ่มการจองพื้นที่ฮีปของ Java ใน Tradefed 
- RAM อย่างน้อย 32 GB 
มีคุณสมบัติตรงตามข้อกำหนดของระบบปฏิบัติการ
- เครื่องที่ใช้พัฒนาต้องใช้การกระจาย Linux แบบ 64 บิตที่มี GNU C Library (glibc) 2.17 ขึ้นไป 
- ควรตั้งค่าภาษาของระบบปฏิบัติการเป็น "ภาษาอังกฤษ" เพื่อให้ CTS แก้ไขเส้นทางได้อย่างถูกต้อง 
ติดตั้งซอฟต์แวร์บนเดสก์ท็อป
วิธีติดตั้งซอฟต์แวร์เดสก์ท็อปที่เหมาะสมสำหรับ CTS
- ติดตั้งเวอร์ชันล่าสุดของ Android Debug Bridge (adb) และ Android Asset Packaging Tool (AAPT2) แล้วเพิ่มตำแหน่งของเครื่องมือเหล่านั้นลงในเส้นทางของระบบในเครื่องของคุณ - ทำตามวิธีการที่จุดเริ่มต้นของเอกสารประกอบ SDK Manager เพื่อติดตั้งเครื่องมือบรรทัดคำสั่ง sdkmanagerลิงก์สำหรับดาวน์โหลดเครื่องมือบรรทัดคำสั่งอยู่ในส่วนเครื่องมือบรรทัดคำสั่งเท่านั้นที่ด้านล่างของหน้าดาวน์โหลด Android Studio
- อัปเดตเส้นทางระบบให้มีตำแหน่งของ sdkmanagerที่เพิ่งติดตั้งใหม่
- ใช้ sdkmanagerเพื่อติดตั้งแพ็กเกจplatform-toolsและbuild-toolsล่าสุด ซึ่งแพ็กเกจเหล่านี้มี adb และ AAPT2 โปรดดูข้อมูลเกี่ยวกับการติดตั้งแพ็กเกจที่หัวข้อติดตั้งแพ็กเกจ
- อัปเดตเส้นทางให้รวมตำแหน่งของเครื่องมือ adb และ AAPT2 ที่เพิ่งติดตั้งใหม่
- ตรวจสอบว่า adb และ AAPT2 อยู่ในเส้นทางของคุณ
 
- ทำตามวิธีการที่จุดเริ่มต้นของเอกสารประกอบ SDK Manager เพื่อติดตั้งเครื่องมือบรรทัดคำสั่ง 
- ติดตั้ง ชุดพัฒนาซอฟต์แวร์ Java (JDK) เวอร์ชันที่เหมาะสม - สำหรับ Android 11 ขึ้นไป ให้ติดตั้ง JDK 11
- สำหรับ Android 10 หรือต่ำกว่า โปรดดูตั้งค่า CTS (AOSP 10 หรือต่ำกว่า)
 
- (ไม่บังคับ) สำหรับ Android 13 และ 14 ให้ติดตั้ง virtualenv ต้องใช้เครื่องมือ virtualenv สำหรับการทดสอบแบบหลายอุปกรณ์ 
- หากต้องการตรวจสอบว่าได้ติดตั้ง Python แล้ว ให้พิมพ์ - python3เวอร์ชัน Python และวันที่ควรปรากฏขึ้นเพื่อระบุว่าได้ติดตั้ง Python อย่างถูกต้องแล้ว
- ดาวน์โหลดและเปิดแพ็กเกจ CTS จาก การดาวน์โหลดชุดเครื่องมือทดสอบความเข้ากันได้ ที่ตรงกับเวอร์ชัน Android ของอุปกรณ์และอินเทอร์เฟซไบนารีของแอปพลิเคชัน (ABI) ทั้งหมดที่อุปกรณ์รองรับ 
- ดาวน์โหลดและเปิดไฟล์สื่อ CTS เวอร์ชันล่าสุด ไฟล์สื่อประกอบด้วยวิดีโอคลิปจาก Big Buck Bunny ซึ่งมีลิขสิทธิ์ ของ Blender Foundation ภายใต้ สัญญาอนุญาตครีเอทีฟคอมมอนส์แบบระบุแหล่งที่มา 3.0 
- (ไม่บังคับ) เมื่อเรียกใช้ CTS เป็นครั้งแรก ระบบจะดาวน์โหลดไฟล์ CTS บางไฟล์ที่เกี่ยวข้องกับ Mainline แบบไดนามิก การดาวน์โหลดนี้จะเพิ่มเวลาในการรัน CTS อีก 10 นาทีขึ้นไป ทั้งนี้ขึ้นอยู่กับความเร็วของเครือข่าย - หากไม่ต้องการให้ CTS ใช้เวลานานขึ้น คุณสามารถดาวน์โหลดไฟล์ CTS ที่เกี่ยวข้องกับ Mainline ก่อนเรียกใช้ CTS ดูข้อมูลเกี่ยวกับการดาวน์โหลดไฟล์ CTS ที่เกี่ยวข้องกับ Mainline ได้ที่ดาวน์โหลดไฟล์ CTS ที่เกี่ยวข้องกับ Mainline 
เตรียม DUT
หลังจากตั้งค่าเครื่องเดสก์ท็อปแล้ว คุณต้องตั้งค่าและกำหนดค่า DUT
ตั้งค่า DUT
วิธีตั้งค่า DUT
- ตรวจสอบว่า DUT ใช้รูปภาพระบบที่อิงตามบิลด์ของผู้ใช้ที่ทราบว่าเข้ากันได้ (Android 4.0 ขึ้นไป) จาก ชื่อรหัส แท็ก และหมายเลขบิลด์ และ ใช้ตัวแปรบิลด์ - userดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรบิลด์ได้ที่เลือกเป้าหมาย
- หาก DUT ใช้ Android 13 ขึ้นไป โปรดตรวจสอบว่าบิลด์มี - ro.product.first_api_levelตั้งค่าเป็นระดับ API ที่อุปกรณ์เปิดตัวในเชิงพาณิชย์ หากต้องการตั้งค่านี้ ให้ทำการเปลี่ยนแปลงต่อไปนี้ในไฟล์- device.mk- PRODUCT_SHIPPING_API_LEVEL := 21- ข้อกำหนด CTS บางอย่างขึ้นอยู่กับบิลด์ที่อุปกรณ์จัดส่งมาตั้งแต่แรก ตัวอย่างเช่น อุปกรณ์ที่จัดส่งพร้อมบิลด์เวอร์ชันก่อนหน้า อาจได้รับการยกเว้นจากข้อกำหนดของระบบที่ใช้กับอุปกรณ์ที่จัดส่ง พร้อมบิลด์เวอร์ชันใหม่กว่า ดูค่าระดับ API ที่ถูกต้องได้ที่ ชื่อเวอร์ชัน แท็ก และหมายเลขบิลด์ ดูข้อมูลเพิ่มเติมเกี่ยวกับ - ro.product.first_api_levelได้ที่ ระดับ API ของผู้ให้บริการ- สำหรับ Android 10 หรือต่ำกว่า โปรดดูตั้งค่า CTS (AOSP 10 หรือต่ำกว่า) 
- หากอุปกรณ์รองรับการจัดการแพ็กเกจ APEX ให้ทำดังนี้ - ดาวน์โหลดแพ็กเกจ APEX Shim สำหรับ Android เวอร์ชันและ สถาปัตยกรรมฮาร์ดแวร์ที่เฉพาะเจาะจง 2 คอลัมน์ด้านซ้ายในตารางแพ็กเกจ Shim มีลิงก์ไปยังแพ็กเกจสำหรับ ดาวน์โหลด
- คัดลอกแพ็กเกจที่ดาวน์โหลดไปยัง /system/apex
- เปลี่ยนชื่อไฟล์เป็น com.android.apex.cts.shim.apex
 
- หากอุปกรณ์ไม่รองรับการจัดการแพ็กเกจ APEX ให้ทำดังนี้ - ดาวน์โหลดแพ็กเกจ APEX Shim สำหรับ Android เวอร์ชันและสถาปัตยกรรมฮาร์ดแวร์ที่เฉพาะเจาะจง 2 คอลัมน์ทางด้านขวาในตารางแพ็กเกจ Shim มีลิงก์ไปยังแพ็กเกจสำหรับ ดาวน์โหลด
- คัดลอก CtsShim.apkไปยัง/system/app/
- เปลี่ยนชื่อ CtsShim.apkเป็นCtsShimPrebuilt.apk
- คัดลอก CtsShimPriv.apkไปยัง/system/priv-app/
- เปลี่ยนชื่อ CtsShimPriv.apkเป็นCtsShimPrivPrebuilt.apk
 
- หากอุปกรณ์รายงานองค์ประกอบที่ปลอดภัยมากกว่า 1 รายการ ให้ทำดังนี้ - ดาวน์โหลด google-cardlet.cap
- คัดลอกไฟล์ที่ดาวน์โหลดไปยัง /data/uicc/cardlets/
 
- ดาวน์โหลด 
- หากอุปกรณ์รายงานองค์ประกอบที่ปลอดภัยมากกว่า 1 รายการ ให้ติดตั้ง แอปเพล็ตตัวอย่างลงในองค์ประกอบที่ปลอดภัยแบบฝัง (eSE) ของ DUT หรือลงในซิม การ์ดที่ DUT ใช้ ดูข้อมูลเพิ่มเติมได้ที่การทดสอบ CTS สำหรับ Secure Element 
- หากอุปกรณ์ไม่มีหน้าจอในตัว ให้เชื่อมต่อ หน้าจอกับอุปกรณ์ 
- หากอุปกรณ์มีช่องเสียบการ์ดหน่วยความจำ ให้เสียบการ์ด SD ที่ว่างเปล่า ใช้การ์ด SD ที่รองรับบัสความเร็วสูงพิเศษ (UHS) ที่มีความจุ SDHC หรือ SDXC หรือการ์ดที่มีคลาสความเร็ว 10 ขึ้นไปเพื่อให้แน่ใจว่าการ์ดจะ ผ่าน CTS 
- หากอุปกรณ์มีช่องใส่ซิมการ์ด ให้เสียบซิมการ์ดที่เปิดใช้งานแล้ว ลงในแต่ละช่อง หากอุปกรณ์รองรับ SMS ซิมการ์ดแต่ละใบต้องมี ฟิลด์หมายเลขของตัวเอง สำหรับอุปกรณ์ที่ใช้ Android 12 ขึ้นไป ซิมการ์ดทั้งหมด ต้องรองรับการจัดเก็บหมายเลขโทรด่วน (ADN) ซิม GSM และ USIM ที่มีไฟล์เฉพาะของโทรคมนาคม (DFTelecom) เป็นไปตามข้อกำหนดนี้ 
- ตรวจสอบว่าอุปกรณ์มีซิมที่มีสิทธิ์ของผู้ให้บริการ CTS ซึ่งเป็นไปตามข้อกำหนดที่ระบุไว้ในเตรียม UICC 
กำหนดค่า DUT
ทำตามขั้นตอนต่อไปนี้เพื่อกำหนดค่า DUT สำหรับใช้กับ CTS
ใน DUT
- รีเซ็ตข้อมูลอุปกรณ์เป็นค่าเริ่มต้น 
- ตั้งค่าภาษาของอุปกรณ์เป็นอังกฤษ (สหรัฐอเมริกา) 
- หากอุปกรณ์รองรับการปรับแต่งแบบอักษรเริ่มต้น ให้ตรวจสอบว่าได้ตั้งค่าชุดแบบอักษรเริ่มต้น sans-serif เป็น Roboto 
- หากอุปกรณ์มีฟีเจอร์ GPS, Wi-Fi หรือเครือข่ายมือถือ ให้เปิดการตั้งค่าตำแหน่ง 
- เชื่อมต่อเครือข่าย Wi-Fi ที่รองรับ IPv6, สามารถถือว่า DUT เป็น ไคลเอ็นต์ที่แยกต่างหาก และมีการเชื่อมต่ออินเทอร์เน็ต ดูคำอธิบาย ของไคลเอ็นต์ที่แยกกันได้ที่ตั้งค่าสภาพแวดล้อมจริง 
- ตรวจสอบว่าไม่ได้ตั้งรูปแบบการล็อกหรือรหัสผ่าน 
- เปิดใช้การแก้ไขข้อบกพร่อง USB - ไปที่การตั้งค่า > เกี่ยวกับโทรศัพท์ แล้วแตะหมายเลขบิลด์ 7 ครั้ง ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์จะปรากฏในหมวดหมู่การตั้งค่าระบบ 
- แตะการแก้ไขข้อบกพร่อง USB 
 - หากต้องการเปิดใช้การแก้ไขข้อบกพร่องผ่าน USB ใน Android 10 หรือต่ำกว่า โปรดดูตั้งค่า CTS (AOSP 10 หรือต่ำกว่า) 
- ตั้งเวลาเป็นรูปแบบ 12 ชั่วโมง 
- เปิดใช้ตัวเลือกสำหรับนักพัฒนาแอป > เปิดหน้าจอค้างไว้ 
- วิธีปิดใช้การยืนยันแอปผ่าน USB - ไปที่ตัวเลือกสำหรับนักพัฒนาแอป 
- แตะยืนยันแอปผ่าน USB 
 
- ใน Android 13 ขึ้นไป ให้เปิดใช้โมเด็มจำลองโดยทำดังนี้ - ไปที่ตัวเลือกสำหรับนักพัฒนาแอป 
- แตะอนุญาต Mock Modem 
 - การตั้งค่านี้จำเป็นสำหรับการทดสอบการโทรบางอย่าง 
ในเครื่องเดสก์ท็อป ให้ทำดังนี้
- เปิดเบราว์เซอร์และปิดหน้าจอเริ่มต้นหรือหน้าจอการตั้งค่า 
- เชื่อมต่อ DUT กับเครื่องเดสก์ท็อปโดยใช้สาย USB 
- หากระบบแจ้งให้คุณยอมรับคีย์ RSA ที่อนุญาตการแก้ไขข้อบกพร่องผ่านคอมพิวเตอร์เครื่องนี้ ให้คลิกอนุญาตการแก้ไขข้อบกพร่องผ่าน USB 
- ตั้งค่า Roboto2 เป็นแบบอักษร Sans-Serif โดยใช้การตั้งค่าที่ผู้ใช้เข้าถึงได้ (ไม่ซ่อน) 
- คัดลอกไฟล์สื่อ CTS ไปยัง DUT โดยทำดังนี้ - ไปยัง (cd) เส้นทางที่ดาวน์โหลดและ คลายซิปไฟล์สื่อ
- เปลี่ยนสิทธิ์ของไฟล์ - chmod u+x copy_media.sh
- คัดลอกไฟล์โดยทำดังนี้ - หากต้องการคัดลอกคลิปที่มีความละเอียดสูงสุด 720x480 ให้เรียกใช้คำสั่งต่อไปนี้ - ./copy_media.sh 720x480
- หากไม่แน่ใจเกี่ยวกับความละเอียดสูงสุด ให้คัดลอกไฟล์ทั้งหมดโดยทำดังนี้ - ./copy_media.sh all
- หากมี DUT หลายเครื่อง ให้เพิ่มตัวเลือกหมายเลขซีเรียล ( - -s) ของอุปกรณ์ที่เฉพาะเจาะจงต่อท้าย ตัวอย่างเช่น หากต้องการคัดลอกไฟล์ขนาดสูงสุด 720x480 ไปยังอุปกรณ์ที่มีหมายเลขซีเรียล 1234567 ให้เรียกใช้คำสั่งต่อไปนี้- ./copy_media.sh 720x480 -s 1234567
 
 
- ไปยัง (
ดาวน์โหลดไฟล์ CTS ที่เกี่ยวข้องกับ Mainline
วิธีดาวน์โหลดไฟล์ CTS ที่เกี่ยวข้องกับ Mainline
- รับระดับ Android API ในอุปกรณ์โดยเรียกใช้คำสั่งต่อไปนี้ - adb shell getprop ro.build.version.sdk
- ทำตามวิธีการในสคริปต์ - download_mcts.shเพื่อดาวน์โหลดไฟล์ CTS หลัก- การดาวน์โหลดจะใช้เวลาอย่างน้อย 10 นาที ทั้งนี้ขึ้นอยู่กับความเร็วของเครือข่าย 
แพ็กเกจซิม
ตารางต่อไปนี้แสดงแพ็กเกจที่พร้อมใช้งานสำหรับอุปกรณ์แต่ละเวอร์ชันและสถาปัตยกรรม
| เวอร์ชันอุปกรณ์ | แพ็กเกจ (หากรองรับ APEX) | แพ็กเกจ (หากไม่รองรับ APEX) | ||
|---|---|---|---|---|
| เปิดระบบ | x86 | เปิดระบบ | x86 | |
| Android 16 | 16-arm-release | 
   android16-x86-release | 
   android16-arm-CtsShim.apk | 
   android16-x86-CtsShim.apk | 
| Android 15 | 15-arm-release | 
   android15-x86-release | 
   android15-arm-CtsShim.apk | 
   android15-x86-CtsShim.apk | 
| Android 14 | 
   android14-arm-release | 
   android14-x86-release | 
   android14-arm-CtsShim.apk | 
   android14-x86-CtsShim.apk | 
| Android 13 | 
   android13-arm-release | 
   android13-x86-release | 
   android13-arm-CtsShim.apk | 
   android13-x86-CtsShim.apk | 
| Android 12 | 
   android12-arm-release | 
   android12-x86-release | 
   android12-arm-CtsShim.apk | 
   android12-x86-CtsShim.apk | 
| Android 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | 
   android11-x86-CtsShim.apk | 
| Android 10 | 
   android10-release | 
   android10-arm-CtsShim.apk | 
   android10-x86-CtsShim.apk | |
| Android 9, O และ O-MR1 | ไม่มี | ไม่มี | 
   arm-CtsShim.apk | 
   x86-CtsShim.apk | 
สิ่งต่อไปที่ควรทำ
หลังจากอ่านเอกสารนี้แล้ว ให้ไปที่เรียกใช้การทดสอบ CTS อัตโนมัติ