เหตุใดอุปกรณ์การพัฒนาจึงให้ทรัพยากรมากกว่าอุปกรณ์ทั่วไป


9

ฉันได้สร้างแอพที่ทำงานบน iPod Touch รุ่นที่ 4 และ iPod touch รุ่นที่ 5 ของ บริษัท ของฉัน

เรากำลังจะเปิดตัวเมื่อเราพบว่ามีข้อผิดพลาดเกิดขึ้นหลังจากอุปกรณ์ที่ไม่ใช่นักพัฒนาซอฟต์แวร์ใดทำงานแอพ *

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

อย่างไรก็ตามนั่นเป็นการกระตุ้นการสนทนา ทำไมอุปกรณ์เช่นชุดพัฒนาเกมคอนโซลอุปกรณ์ที่มีความสามารถมากกว่าแพลตฟอร์มเป้าหมายจึงมีอยู่ตั้งแต่แรก? แน่นอนว่าเป็นเรื่องดีที่จะทดสอบโปรแกรม แต่จะเป็นการแสดงที่แม่นยำกว่าของแพลตฟอร์มเป้าหมายหรือไม่

TL; DR - ทำไมชุดการพัฒนาจึงมีทรัพยากรมากกว่าแพลตฟอร์มเป้าหมาย?

* ด้วยอุปกรณ์ที่ไม่ใช่นักพัฒนาที่เป็นแบบ> รุ่นที่ 3 อุปกรณ์ iOS ที่ดาวน์โหลดแอปจากเซิร์ฟเวอร์ของเราไม่ใช่โดยตรงจากคอมพิวเตอร์ที่ติดตั้งแอป & xcode

โปรดทราบว่ามีคำถามอื่นที่อ่านคล้ายกัน แต่จริง ๆ แล้วแตกต่างกันเนื่องจากคำถามอื่นถามเกี่ยวกับเครื่องจำลองและฉันเข้าใจว่ามีความแตกต่างอย่างมากระหว่างการใช้เครื่องจำลองและอุปกรณ์จริง


7
@gnat - โพสต์นี้ไม่ได้เป็นซ้ำทำไมมันจึงเป็นสิ่งจำเป็นที่จะทดสอบแอป iPhone ของฉัน ฉันเข้าใจว่ามีความแตกต่างอย่างมากระหว่างการใช้อุปกรณ์จำลองและอุปกรณ์จริง ...
Katamaritaco

คำตอบ:


8

สภาพแวดล้อมการพัฒนา (สำหรับทุกสิ่ง - ไม่ว่าจะเป็นแอปพลิเคชันแบบสแตนด์อโลนหรือสภาพแวดล้อมแบบเคลื่อนที่หรืออุปกรณ์ฝังตัว) โดยทั่วไปมีความสามารถในการทำการดีบักแบบรีโมทการเพิ่มประสิทธิภาพการบันทึกและการวิปัสสนาชนิดอื่น ๆ เพื่อเพิ่ม hooks ทั้งหมดสำหรับเครื่องวิเคราะห์ตรรกะบนอุปกรณ์ฝังการผลิต)

สิ่งเพิ่มเติมเหล่านี้ใช้ทรัพยากรเพิ่มเติม การเปิดดีบักเกอร์ระยะไกลกับ vm หรือสภาพแวดล้อมระยะไกลอื่นใช้ทรัพยากรบางอย่างที่ปลายอีกด้าน ในขอบเขตของมือถือที่ จำกัด อย่างรุนแรงเป็นไปได้ว่าทรัพยากรเพิ่มเติมเหล่านี้จะทำให้เกินขีด จำกัด ที่ให้กับแอปพลิเคชันมาตรฐาน ดังนั้นจึงมีการมอบทรัพยากรเพิ่มเติมให้กับสภาพแวดล้อมการพัฒนาเพื่อที่จะไม่ให้เกิดขีด ​​จำกัด ของทรัพยากรเมื่อเริ่มทำการบันทึกเพิ่มเติมหรือการดีบัก

นี้ไปต่อไปยังจุดที่คุณมักจะต้องมีอะไรบางอย่างในการทดสอบกระจกของสภาพแวดล้อมการผลิตที่ การไว้วางใจว่ามันทำงานบนเครื่องของนักพัฒนาซอฟต์แวร์ที่มีการปรับแต่งและตัวแปรต่าง ๆ ไม่เพียงพอที่จะตรวจสอบว่ามันทำงานอย่างถูกต้องในการผลิต


1
ใช่ QA ต้องทดสอบในสภาพแวดล้อมของผู้ใช้ปลายทางไม่ใช่สภาพแวดล้อมการพัฒนา
17 ของ 26

หลายปีก่อนฉันมีส่วนเกี่ยวข้องกับโครงการที่ต้องพัฒนาแผง CPU ที่แตกต่างกันสองแผง วิศวกรฮาร์ดแวร์ที่ทำบอร์ดที่ผมมีส่วนเกี่ยวข้องอย่างมากกับการเชื่อมต่อการทดสอบมากมายบนบอร์ดของเขา, ทำประกันสำหรับขั้นตอนการตรวจแก้จุดบกพร่อง, เพื่อให้แน่ใจว่าเราสามารถตรวจสอบอะไรก็ได้ เขาใช้เวลามากในการกำจัดอสังหาริมทรัพย์และเงิน คนอื่นไม่เสียเงินและอสังหาริมทรัพย์เช่นนี้เลย สิ่งที่ตลก: เราไม่เคยต้องการตัวเชื่อมต่อบนบอร์ดของเรา การรวมบอร์ดอื่นเข้าด้วยกันนั้นเป็นฝันร้ายที่แน่นอนเพราะไม่มีอะไรสามารถพิสูจน์ได้ คิดว่า "ประกัน"
John R. Strohm

@ JohnR.Strohm สำหรับการพัฒนาการตรวจสอบเป็นสิ่งที่ดี ทั้งหมดที่ฉันพยายามจะบอกว่าถ้ามันถูกออกแบบมาให้มีบอร์ดการผลิตที่แตกต่างจากบอร์ดการพัฒนาแล้วก็จะต้องทดสอบอีกครั้งกับการผลิตหลังจากประสบความสำเร็จในการพัฒนา (และการตรวจสอบหากจำเป็น)

สิ่งนี้มีเหตุผลมากมายสำหรับ 'dev kit' ทั่วไป จากความอยากรู้อยากเห็นในกรณีของ iOS ใด ๆ iDevice สามารถใช้เป็น 'นักพัฒนาอุปกรณ์' จะมีความแตกต่างกับฮาร์ดแวร์สองชิ้นได้อย่างไร
Katamaritaco

1
@Katamaritaco เพียงเพราะเป็นอุปกรณ์ทางกายภาพเดียวกันไม่ได้หมายความว่าแอปพลิเคชันมีสิทธิ์เหมือนกันใน iOS ความสามารถในการทำสิ่งต่าง ๆ เช่นการดีบักแบบรีโมทอาจเปลี่ยนแปลงทรัพยากรที่แอปพลิเคชันสามารถเข้าถึงได้

5

ช่วยให้คุณสามารถสร้างแนวคิดการพิสูจน์ความโลภซึ่งคุณสามารถปรับให้เหมาะสมในภายหลัง

มันไม่มีความหมายในการทำงานล้มเหลวของแอพเพราะมันมีขนาดเกิน 5 ไบต์เกินขีด จำกัด หน่วยความจำ (ซึ่งสามารถแก้ไขได้โดยการตั้งค่าเครื่องมือเพิ่มประสิทธิภาพเพื่อประหยัดเนื้อที่ในการเปิดตัว แต่คุณกำลังเรียกใช้รุ่น debug)

มีคำเตือนปรากฏขึ้นในบันทึกเมื่อคุณไปเกินขีด จำกัด ผู้บริโภคในขณะที่การทดสอบจะดีที่นี่


1

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

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

นี่ไม่ใช่ความคิดใหม่จริงๆ ฉันมีสองเครื่องในที่ทำงาน ในเครื่องนักพัฒนาซอฟต์แวร์ของฉันฉันมีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบ แต่แยกได้จากอินเทอร์เน็ต เครื่องอื่น ๆ ของฉันซึ่งฉันใช้สำหรับการเข้าถึงอีเมล Office และอินเทอร์เน็ตไม่ได้ให้ความสามารถในการติดตั้งโปรแกรม

นี่คือเหตุผลที่คุณต้องทดสอบแอปพลิเคชันของคุณบนอุปกรณ์ที่ไม่ใช่นักพัฒนาซอฟต์แวร์ก่อนที่คุณจะนำไปใช้งานเพื่อให้แน่ใจว่ามันทำงานได้ดี :)


0

ด้วย iOS อุปกรณ์ที่เปิดใช้งานเพื่อการพัฒนาจะช่วยให้คุณสามารถรัน Debug builds ได้โดยตรงซึ่งอาจมีชุดคอมไพเลอร์บั๊กที่แตกต่างจาก Release build รวมถึงเรียกใช้แอพภายใต้ debug nub ซึ่งอาจเปลี่ยนการกำหนดเวลาเธรดและการใช้หน่วยความจำ ซึ่งยังสามารถแสดง / ซ่อนข้อบกพร่องหน่วยความจำเธรดและการรั่วไหลต่างๆ

อุปกรณ์การพัฒนาจะไม่ถูกใช้งานอย่างมากหากไม่มีความสามารถในการตรวจแก้จุดบกพร่องและอุปกรณ์ผู้ใช้ที่มีความสามารถในการตรวจแก้จุดบกพร่องจะนำเสนอปัญหาความปลอดภัยของข้อมูลแอปและแอปที่รุนแรงมากขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.