หน่วย
1. ข้อมูลเบื้องต้นเกี่ยวกับ AI ในการพัฒนาอุปกรณ์พกพา: บทบาท ขอบเขต การรับรองความถูกต้อง และความปลอดภัย 2. การสร้างโค้ดบนมือถือด้วยปัญญาประดิษฐ์: การพัฒนา Kotlin, Swift และข้ามแพลตฟอร์ม 3. การออกแบบส่วนต่อประสานและการสร้างโค้ด UI ด้วยปัญญาประดิษฐ์ 4. AI บนอุปกรณ์: Core ML, TensorFlow Lite และ ML Kit 5. การรวม Cloud AI และ LLM API: แชท โฟลว์ และความปลอดภัย 6. การสร้างการทดสอบด้วยปัญญาประดิษฐ์: การทดสอบหน่วย อินเทอร์เฟซ และระบบอัตโนมัติ 7. การดีบักและการวิเคราะห์ข้อขัดข้องด้วยปัญญาประดิษฐ์ 8. ประสิทธิภาพและการเพิ่มประสิทธิภาพแบตเตอรี่: แอปพลิเคชันที่รวดเร็วและมีประสิทธิภาพด้วยปัญญาประดิษฐ์ 9. ความเป็นส่วนตัว การอนุญาต และการใช้งานอย่างปลอดภัย 10. การเปิดตัวร้านค้า: App Store, Google Play และความเข้ากันได้ของ AI 11. โครงการแบบครบวงจร การใช้ปัญญาประดิษฐ์และแผนงานอย่างมีความรับผิดชอบในวิชาชีพ
หน่วย 7 / 11

การดีบักและการวิเคราะห์ข้อขัดข้องด้วยปัญญาประดิษฐ์

กำไร:

  • ความสามารถในการจำกัดสาเหตุที่เป็นไปได้ให้แคบลงอย่างรวดเร็วโดยมอบบันทึกข้อขัดข้อง (สแต็กเทรซ) ให้กับปัญญาประดิษฐ์ด้วยโค้ดที่เกี่ยวข้องและบริบทของสถานการณ์
  • ความสามารถในการแก้ไขสาเหตุที่แท้จริงอย่างถาวร แทนที่จะตรวจสอบการวินิจฉัยของ AI เพื่อเป็นสมมติฐานในการเขียนโค้ดและการทดสอบและการปิดเสียงอาการ
  • ปกป้องความเป็นส่วนตัวขณะแก้ไขข้อบกพร่องด้วยการปกปิดข้อมูลส่วนบุคคลในบันทึกข้อขัดข้องและบันทึก

ทุกแอปพลิเคชันมีข้อผิดพลาด สิ่งที่ทำให้นักพัฒนาที่ดีแตกต่างก็คือความรวดเร็วในการค้นหาและแก้ไขจุดบกพร่อง การแก้ไขจุดบกพร่องบนมือถือ — การค้นหาและแก้ไขสาเหตุของปัญหา — เป็นเรื่องยากอย่างยิ่งเนื่องจากข้อผิดพลาดเกิดขึ้นบนอุปกรณ์ของผู้ใช้ ในสภาพแวดล้อมที่คุณไม่สามารถมองเห็นได้ โดยส่วนใหญ่แล้ว สิ่งที่คุณมีก็แค่บันทึกข้อขัดข้อง (บันทึกข้อขัดข้อง / การติดตามสแต็ก — รายละเอียดทางเทคนิคว่าแอปพลิเคชันไปอยู่ที่ไหนเมื่อเกิดข้อขัดข้อง) AI มีประสิทธิภาพอย่างมากในการอ่านบันทึกที่เป็นความลับเหล่านี้ ระบุสาเหตุที่เป็นไปได้ และเสนอแนวทางแก้ไข ในหน่วยนี้ เราจะได้เรียนรู้วิธีใช้ AI เป็น "การตรวจจับจุดบกพร่อง" แต่ให้คุณมีหน้าที่ตรวจสอบการวินิจฉัยและแก้ไขขั้นสุดท้าย

การอ่านบันทึกข้อขัดข้อง: ตำแหน่งที่ AI ส่องสว่างที่สุด

บันทึกข้อขัดข้องเป็นข้อความที่ยาวและน่ากลัว นักพัฒนาที่ไม่มีประสบการณ์จะไม่รู้ว่าจะต้องดูที่ไหน AI แยกวิเคราะห์ข้อความนี้ในไม่กี่วินาที: บรรทัดไหนที่ข้อความขัดข้อง มีข้อยกเว้นใดเกิดขึ้น สาเหตุที่เป็นไปได้คืออะไร ข้อผิดพลาดมือถือทั่วไปนั้นชัดเจนและ AI จดจำได้อย่างรวดเร็ว: NullPointerException (พยายามเข้าถึงค่า null), IndexOutOfBoundsException (เข้าถึงองค์ประกอบรายการที่ไม่มีอยู่จริง) บน Android, EXC_BAD_ACCESS (เข้าถึงหน่วยความจำที่ว่าง) บน iOS, พบศูนย์โดยไม่คาดคิด (บังคับให้ไม่มีตัวเลือก)

ประเภทของการขัดข้องบนมือถือที่พบบ่อยที่สุดและสาเหตุทั่วไปมีดังนี้:

ข้อผิดพลาด (ข้อยกเว้น)

แพลตฟอร์ม

สาเหตุทั่วไป

NullPointerException

หุ่นยนต์

การเข้าถึงค่าว่าง

IndexOutOfBoundsException

หุ่นยนต์

การเข้าถึงองค์ประกอบรายการที่ไม่มีอยู่จริง

ไม่พบโดยไม่คาดคิด

ไอโอเอส

บังคับให้แกะตัวเลือกที่ไม่มีเลย (!)

EXC_BAD_ACCESS

ไอโอเอส

การเข้าถึงหน่วยความจำที่ว่าง

ANR/หยุด

หุ่นยนต์

การประมวลผลแบบยาว/หนักบนเธรดหลัก

ขั้นตอนการแก้ไขข้อบกพร่องทีละขั้นตอน:

  1. รวบรวมบันทึก รวบรวมบันทึกข้อขัดข้อง ข้อความแสดงข้อผิดพลาด และขั้นตอนในการทำซ้ำหากเป็นไปได้
  2. ให้บริบท AI บอกฉันไม่ใช่แค่ข้อผิดพลาด แต่รวมถึงโค้ดที่เกี่ยวข้องและสิ่งที่ทำให้เกิดปัญหา
  3. ถามถึงสาเหตุที่เป็นไปได้. “บอกสาเหตุที่เป็นไปได้สูงสุด 3 ประการให้ฉันทราบ และวิธีตรวจสอบแต่ละรายการ”
  4. ตรวจสอบ. ยืนยันเหตุผลที่เสนอในโค้ดและการทดสอบ อย่าแก้ไขด้วยการคาดเดา
  5. แก้ไขและทดสอบอีกครั้ง ตรวจสอบว่าข้อผิดพลาดหายไปแล้วจริง ๆ และไม่มีการสร้างข้อผิดพลาดใหม่
เคล็ดลับ: เมื่อมอบบันทึกข้อขัดข้องให้กับ AI ให้รวมข้อมูลโค้ดที่เกี่ยวข้องด้วย AI จะทำการคาดการณ์ทั่วไปด้วยการติดตามสแต็กเท่านั้น เมื่อคุณเห็นโค้ด ความน่าจะเป็นในการค้นหาบรรทัดที่แน่นอนและสาเหตุที่แท้จริงจะเพิ่มขึ้นอย่างมาก บริบทเป็นตัวกำหนดคุณภาพของการวินิจฉัย

กับดักข้อมูลส่วนบุคคล

บันทึกข้อขัดข้องและบันทึกมักจะมีข้อมูลผู้ใช้ เช่น อีเมล ID ผู้ใช้ สถานที่ แม้แต่เนื้อหาในแบบฟอร์ม การวางบันทึกนี้ลงใน AI เช่นเดียวกับที่เป็นอยู่เป็นการรั่วไหลของข้อมูลส่วนบุคคลไปยังบุคคลที่สามและเป็นการละเมิด KVKK / GDPR ล้าง (ปกปิด) พื้นที่ส่วนบุคคลก่อนส่งการบันทึก นอกจากนี้ โปรดระวังอย่าเขียนข้อมูลส่วนบุคคลลงในบันทึกของแอปพลิเคชันของคุณตั้งแต่ต้น บันทึกที่ดีจะอธิบายถึงปัญหาแต่ไม่ได้เปิดเผยตัวตน

ข้อควรระวัง: การแก้ไขที่แนะนำโดย AI อาจ “ปิดเสียงข้อบกพร่อง” แต่อาจไม่สามารถแก้ไขสาเหตุที่แท้จริงได้ ตัวอย่างเช่น การล้อม NullPointerException ด้วยการตรวจสอบค่า null จะหยุดความผิดพลาด แต่หากคุณไม่ทราบว่าเหตุใดค่าจึงเป็น null ข้อผิดพลาดตรรกะที่แท้จริงจะดำเนินต่อไป รักษาโรคไม่ใช่อาการ

การวิเคราะห์สาเหตุที่แท้จริง

จุดมุ่งหมายของการแก้ไขข้อบกพร่องอย่างมืออาชีพไม่ใช่การปิดบังข้อผิดพลาด แต่เพื่อค้นหาสาเหตุที่แท้จริง ฉันถาม AI ว่า "ทำไมสิ่งนี้ถึงเป็นโมฆะ มันจะหายไปตรงไหนในกระแสข้อมูล" ถามว่า “ฉันจะปิดเรื่องนี้ได้อย่างไร” มันมีค่ามากกว่าการถามมาก เมื่อพบสาเหตุที่แท้จริงแล้ว ข้อผิดพลาดเดียวกันหลายสิบรูปแบบจะได้รับการแก้ไขในคราวเดียว AI เชี่ยวชาญในการใช้เหตุผลลูกโซ่นี้: ติดตามข้อมูลจากอินพุตไปยังเอาต์พุต และขอให้คิดว่ามันพังตรงไหน

มินิเคสสามอัน

กรณีที่ 1 — ทำงาน 2 ชั่วโมงใน 10 นาที นักพัฒนาใช้เวลา 2 ชั่วโมงในการค้นหาจุดบกพร่องที่เกิดกับ Samsung รุ่นใดรุ่นหนึ่งเท่านั้น มอบบันทึกข้อขัดข้อง (การล้างพื้นที่ส่วนบุคคล) ให้กับ AI YZ กล่าวว่าข้อผิดพลาดชี้ไปที่หน่วยความจำล้นซึ่งเกิดขึ้นกับความละเอียดกล้องที่แตกต่างกันของอุปกรณ์นั้น พร้อมเบาะแสก็พบสาเหตุใน 10 นาที AI เร่งการค้นหา โดยมนุษย์ยืนยันวิธีแก้ปัญหา

กรณีที่ 2 — จุดบกพร่องที่ถูกเงียบกลับมาแล้ว ทีมหนึ่งปิดปากการชนที่เกิดซ้ำโดยใช้คำแนะนำของ AI เพื่อลองจับมัน การขัดข้องหยุดลง แต่ผู้ใช้เริ่มบ่นว่า "ข้อมูลไม่บันทึก"; เพราะปัญหาที่แท้จริง (การเชื่อมต่อฐานข้อมูล) ยังคงมีอยู่ มันจึงกลายเป็นสิ่งที่มองไม่เห็น เมื่อพบสาเหตุที่แท้จริงแล้ว ทั้งข้อขัดข้องและการสูญหายของข้อมูลก็ได้รับการแก้ไข บทเรียน: ความเงียบไม่ได้ช่วยแก้ปัญหา

กรณีที่ 3 — ข้อมูลรั่วไหลในบันทึก การตรวจสอบพบว่าชื่อเต็มและหมายเลขโทรศัพท์ของผู้ใช้ถูกเขียนลงในบันทึกข้อขัดข้องของแอป นักพัฒนามักจะวางบันทึกเหล่านี้ลงใน AI และแก้ไขข้อบกพร่อง ข้อมูลส่วนบุคคลจึงถูกเผยแพร่เป็นเวลาหลายเดือน บันทึกถูกปกปิดและกระบวนการได้รับการแก้ไขแล้ว บทเรียน: การรักษาความลับมีผลแม้ในขณะที่ทำการดีบัก

พรอมต์อ่อน / พรอมต์แข็งแกร่ง

พรอมต์ที่ไม่ดี: "เหตุใดข้อผิดพลาดนี้จึงเกิดขึ้น [การติดตามสแต็ก]"

ข้อความแจ้งที่รัดกุม: "ข้อขัดข้องนี้เกิดขึ้นในแอป Android ของฉัน บริบท:- ขณะทำ: ผู้ใช้เพิ่มลงในรถเข็นจากรายละเอียดผลิตภัณฑ์- เฉพาะในอุปกรณ์บางรุ่น รุ่น RAM ต่ำ- รหัสที่เกี่ยวข้อง: [ViewModel และส่วนพื้นที่เก็บข้อมูล]- บันทึกข้อขัดข้อง (ข้อมูลส่วนบุคคลถูกล้าง): [ติดตามสแต็ก]แสดงรายการสาเหตุที่แท้จริง 3 ประการที่เป็นไปได้มากที่สุด สำหรับแต่ละ:1) ฉันจะตรวจสอบได้อย่างไร 2) การแก้ไขถาวร (ไม่ปิดเสียง) ระบุสมมติฐานของคุณในกรณีที่คุณไม่แน่ใจ"

เทมเพลตที่คัดลอกได้

เทมเพลตการวิเคราะห์ข้อขัดข้อง:"วิเคราะห์ข้อขัดข้องต่อไปนี้ บริบท: [คุณกำลังทำอะไร อุปกรณ์/เวอร์ชันใด] รหัสที่เกี่ยวข้อง: [รหัส] บันทึกข้อขัดข้อง (ล้างข้อมูลส่วนบุคคลแล้ว): [ติดตาม] ให้สาเหตุที่เป็นไปได้มากที่สุด 3 ข้อและการยืนยัน + การแก้ไขถาวรสำหรับแต่ละข้อ นอกจากนี้ ทำเครื่องหมายวิธีแก้ไขปัญหาเฉพาะหน้าที่ทำให้อาการเงียบลง"

เทมเพลตสาเหตุหลัก: "ค่านี้มา [null/false] โดยไม่คาดคิด ติดตามกระแสข้อมูลจากอินพุตไปยังจุดนี้: ข้อมูลสูญหายหรือเสียหายได้ที่ไหน บอกฉันว่าฉันควรตรวจสอบที่ไหนในแต่ละขั้นตอน [รหัส]"

เทมเพลตการอ่านบันทึก: "ตีความผลลัพธ์ของบันทึกนี้: เหตุการณ์ใดที่เกิดขึ้นตามลำดับ ความผิดปกติอยู่ที่ไหน ขั้นตอนสุดท้ายที่ดีต่อสุขภาพก่อนเกิดข้อผิดพลาดคืออะไร [บันทึก — ข้อมูลส่วนบุคคลถูกล้าง]"

เทมเพลตการทำซ้ำ: "ฉันควรพยายามขั้นตอน สถานะอุปกรณ์ และข้อมูลใดเพื่อสร้างข้อผิดพลาดนี้ซ้ำอย่างน่าเชื่อถือ แสดงรายการเงื่อนไขที่อาจทำให้เกิดข้อผิดพลาดตามลำดับความน่าจะเป็น [คำอธิบาย]"

ข้อผิดพลาดทั่วไป

  • ให้การติดตามสแต็กแบบไม่มีบริบท หากไม่มีรหัสและสถานการณ์ที่เกี่ยวข้อง AI จะทำการคาดการณ์ทั่วไป
  • วางข้อมูลส่วนบุคคลลงใน AI พร้อมกับบันทึก การละเมิดการรักษาความลับ; หน้ากากก่อน
  • ระงับอาการ. การซ่อนข้อขัดข้องด้วย try-catch จะทำให้เกิดปัญหาที่ต้นตอและสร้างปัญหาใหม่ขึ้นมา
  • ใช้ข้อเสนอแนะแรกโดยไม่ตรวจสอบ การวินิจฉัยโรค AI เป็นเพียงสมมติฐานเท่านั้น ยืนยันในรหัส
  • กำลังพยายามทำซ้ำในโปรแกรมจำลอง ข้อผิดพลาดบางอย่างจะปรากฏบนอุปกรณ์/สภาพจริงเท่านั้น
  • ไม่ทดสอบซ้ำหลังแก้ไข การแก้ไขอาจทำให้สิ่งอื่นเสียหาย ตรวจสอบการถดถอย

โดยสรุป

หนึ่งในด้านที่ AI เป็นเลิศคือการอ่านบันทึกข้อขัดข้องและแยกแยะสาเหตุที่เป็นไปได้ คุณภาพของการวินิจฉัยจะดีขึ้นอย่างมากเมื่อมีการให้บริบท แต่การวินิจฉัยและการแก้ไขขั้นสุดท้ายเป็นของมนุษย์ คำแนะนำของ AI เป็นเพียงสมมติฐานที่ได้รับการตรวจสอบในโค้ดและการทดสอบ จุดมุ่งหมายไม่ใช่เพื่อระงับอาการแต่เพื่อแก้ไขที่ต้นเหตุ ข้อผิดพลาดที่ถูกปิดเสียงมักจะส่งคืนในรูปแบบอื่น บันทึกข้อขัดข้องอาจมีข้อมูลส่วนบุคคล ปิดบังก่อนที่จะมอบให้กับ AI และอย่าเขียนข้อมูลส่วนบุคคลในบันทึกของคุณตั้งแต่ต้น

งานสมัคร

จดบันทึกข้อขัดข้องที่คุณมี (หรือตัวอย่างที่คุณสร้างจาก AI) ปิดบังข้อมูลส่วนบุคคล/ข้อมูลที่โดดเด่นในนั้น และมอบให้กับ AI ด้วย "เทมเพลตการวิเคราะห์ข้อขัดข้อง" แยกแยะว่าสาเหตุหลักประการใดที่รายการ AI เป็นการแก้ไขจริง และสาเหตุใดเป็นเพียงการปิดเสียง ใช้การแก้ไขถาวรที่คุณเลือก และตรวจสอบว่าข้อผิดพลาดหายไปและไม่มีปัญหาใหม่เกิดขึ้น

รายการตรวจสอบ

  • [ ] ฉันได้ให้บันทึกข้อขัดข้องพร้อมโค้ดที่เกี่ยวข้องและบริบทของสถานการณ์แล้ว
  • [ ] ฉันปกปิดข้อมูลส่วนบุคคล/ข้อมูลเฉพาะในบันทึก
  • [ ] ฉันถาม AI เกี่ยวกับสาเหตุที่แท้จริงและการแก้ไขอย่างถาวร ไม่ใช่การปิดเสียง
  • [ ] ฉันตรวจสอบการวินิจฉัยด้วยโค้ดและการทดสอบ ฉันไม่ได้ใช้มันแบบสุ่มสี่สุ่มห้า
  • [ ] หลังจากแก้ไข ฉันทดสอบแล้วว่าข้อผิดพลาดหายไปและไม่มีการถดถอย
  • [ ] ฉันตรวจสอบว่าแอปพลิเคชันของฉันไม่ได้เขียนข้อมูลส่วนบุคคลลงในบันทึก