سؤال

أنا أعمل على مشاريع صغيرة ممتعة لبناء الروبوت.نحن كمبرمجين نعمل بالتوازي مع الأشخاص الذين يقومون ببناء الروبوت.لذلك غالبًا ما نحاول تشغيل برامج تم تغييرها وقام المنشئون بتغيير الأجهزة.إذا لم تكن اختبارات البرامج قيد التشغيل، فمن الصعب دائمًا معرفة ما إذا كان البرنامج أو الجهاز قد فشل أو ما هو أسوأ من ذلك إذا فشل التكامل.هناك بعض الأجزاء الصلبة مع اختبار تلقائي لهذه المشكلات.

لقد اكتشفنا بعض الطرق لتفكيك الأشياء بحيث يكون لدينا تحكم RC للسماح للروبوت بالقيام ببعض الحركات دون وجود برنامج يضمن أنه لا يزال يعمل.ثم نبدأ ببعض الاختبارات البرمجية التي تجعل الروبوت يتحرك ببعض الأرقام المحددة لإظهار أن البرنامج يتصرف بنفس الطريقة كما كان من قبل.ولكن هذا دائمًا ما يكون مهمة تستغرق وقتًا طويلاً جدًا لأنه لا يمكنك تشغيلها تلقائيًا ويجب على شخص ما أن يبدأ الاختبار ويشاهد الاختبار ويحاول معرفة ما إذا كان الروبوت قد فعل ما يجب عليه فعله.

هناك مشكلة أخرى وهي أن الاختبار المستمر باستخدام أجهزتنا الحقيقية يؤدي إلى تآكل أجزاء من أجهزتنا والمفاصل والمحركات وعجلات التروس وما إلى ذلك.

ولكن ثبت أن عدم الاختبار يسبب الكثير من المتاعب ويستهلك الكثير من الوقت لدرجة أنني أرغب في معرفة نوع التقنيات المستخدمة في المشاريع الأخرى التي تتعامل مع تفاعل برامج الأجهزة وما إذا كانت هناك أدوات يمكن استخدامها.

هل كانت مفيدة؟

المحلول

ويجب تعريف التفاعل بين الروبوت والبرنامج أولا. ليس بالضرورة بشكل شامل، وهذا يمكن أن يتم ذلك تدريجيا. تبدأ صغيرة، على سبيل المثال مع التحركات الأساسية (إلى الأمام، الى الوراء)، ثم، بعد أن يكون قد تم اختبارها بشكل كامل، سواء في العزلة ومتكاملة، وإضافة بعض السلوك (مثل يسارا، يمينا)، إعادة الاختبار. بهذه الطريقة، يمكن أن الفريق بأكمله استخدام ما تعلمه على طول مشروع لتوسيع واجهة، reworks ربما التقليل من واجهة.

التقدم قبل الأجهزة توضح هذه المقالة هذه العملية في المزيد من التفاصيل، مع التركيز على للتنمية يحركها اختبار (TDD) الجانب.

وانظر أيضا يجيب على كيفية القيام TDD مع الأجهزة السؤال.

نصائح أخرى

أعتقد أن هذا وضع مثير للاهتمام للغاية.

أعتقد أنه لا توجد مشكلة في عملية الاختبار الخاصة بك.إذا سخرت من الروبوت الخاص بك واختبرت هذه المحاكاة، فهذا جيد.
إذا كان الروبوت الآلي يتصرف بشكل مختلف عن الروبوت الذي سخرت منه، فهناك مشكلة كبيرة أخرى: الاتصالات.

الواجهة بين البرنامج والأجهزة هي مواصفات "البروتوكول".وفي رأيي أنه لا يجب تغييره دون مناقشة.قد لا يغيره رجال الأجهزة، وأنتم لا تفعلون ذلك أيضًا!لا يجوز لك تغييره إلا معًا.في حالتك، كل شخص يغيره من تلقاء نفسه.

في حالتك، يبدو أن فرقك تعمل ضد بعضها البعض.لذا حاول تركيز جهودك على الواجهة الخاصة بك وخاصةً اتصالاتك، وليس في اختبار التكامل الذي لن ينجح على أي حال.

سيكون اقتراحي هو استخدام برنامج محاكاة للروبوت الواحد و الوحيد تخصيص.لذلك يمكنك الاعتماد على صورتك الوهمية وهناك نقطة مركزية تحدد الاتصال بين الأجهزة والبرمجيات.
عندما يريد رجال البرمجيات تغييره، حسنًا.يجب عليهم مناقشة الأمر معك وسوف تقوم بتغيير نموذج البرنامج.إذا تم تغيير الأجهزة ولم يتم تغييرها، فلديك اعتذار، لأنك تقوم بتطويرها وفقًا لمواصفاتك.

حظ سعيد!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top