ইউনিট টেস্টিং AVR সমাবেশ ভাষা


11

আপনি কীভাবে আপনার সমাবেশ কোডটি পরীক্ষা করবেন?

আমি একটি হেক্সাপড রোবট প্রকল্পের অংশ হিসাবে সিরিয়াল সার্ভো কন্ট্রোলারে কাজ করছি এবং কোডটি জটিল হয়ে উঠছে এমন জায়গায় পৌঁছেছে;) যাইহোক, আমি আমার দিনের চাকরিতে সি ++ সার্ভার বিকাশকারী হিসাবে ইউনিট পরীক্ষার ব্যবহার করতে অভ্যস্ত এবং সুতরাং আমার এভিআর সমাবেশ কোডটিতে একই ধরণের পরীক্ষার প্রয়োগ করার চেষ্টা করা হয়েছে। আমি এমন এক উপায় নিয়ে কাজ করেছি যা আমার জন্য ঠিক আছে ( এখানে দেখুন ) তবে আমি যদি আগ্রহী না এমন কোনও মানক সরঞ্জাম বা কৌশল রয়েছে তবে আমি আগ্রহী।

আপডেট করা: আপনারা যারা সার্ডো কন্ট্রোলারের সম্পূর্ণ উত্স এবং ইউনিট পরীক্ষাগুলির আগ্রহী তাদের জন্য এখন এখানে উপলব্ধ ।

উত্তর:


3

আমি এটিকে মার্জিত হিসাবে বর্ণনাও করব, তবে সমস্যাটি যুক্ত করতে চাই, যদি আপনি আমার অনুপ্রবেশ ক্ষমা করেন।

আমি জানি যে এইরকম পরিস্থিতিতে কাজ করার জন্য খুব দামি সফ্টওয়্যার প্যাকেজ রয়েছে, তবে আমি যে সংস্থায় কাজ করি সেখানে আমরা আমাদের খরচটি বহন করতে পারি না যদি না আমাদের নিশ্চিত হয় যে এটি আমাদের যা প্রয়োজন তা করে।

টেস্ট ড্রাইভেন ডেভলপমেন্ট (টিডিডি) হ'ল উন্নয়নের জন্য আমি যে আরও ভাল সিস্টেমগুলি শুনেছি সেগুলির মধ্যে একটি, এবং আমি এটি উপভোগ করি তবে আমার যে সমস্যাগুলি দেখা যায় তা সাধারণত জটিল বাধা এবং হার্ডওয়্যার ইভেন্টগুলির দ্বারা ঘটে থাকে যা অনেকেই বিভ্রান্তি বলে। নক্ষত্রগুলি সারিবদ্ধ হয়ে যাওয়ার সময় প্রতি 2 ঘন্টার মধ্যে সমস্যা হওয়া খুব ছোট বিষয় বলে মনে হয়, তবে যদি আপনার ফোনটি সপ্তাহে একবার হিমায়িত হয়, আপনি ইঞ্জিনিয়ারদের নামটি অভিশাপ দেবেন। আমাদের ক্ষেত্রে, যখন জিনিসগুলি সত্যই ভেঙে যায় তখন আমাদের ফিড লটে প্রবেশ করতে হবে, যা আপনি কল্পনা করতে পারেন, আমি এড়াতে পছন্দ করি।

আমি সাবসিস্টেমগুলির কার্যকারিতা পরীক্ষা করার জন্য খুব বুদ্ধিমান সমাধান দেখেছি, যা যদি সঠিকভাবে প্রয়োগ করা হয় তবে সম্ভবত 50 ঘন্টা কাজের সপ্তাহের মধ্যে 3 ঘন্টা বাঁচাতে পারে, তবে যদি কোনও সমস্যা দেখা দেওয়ার কোনও বুদ্ধিমান উপায় থাকে তবে এটি আমার কয়েক সপ্তাহের কাজ বাঁচাতে পারে "বাগ" সন্ধান করুন যা মাঠে মাঝেমধ্যে ভারী বোঝার মধ্যে পড়ে।

এই পোস্টটি সম্ভবত প্রচুর পরিমাণে সহায়তা করে না, তবে আমি খুঁজে পেলাম যে সমস্ত কিছুকে আলোকিত করে আনা সবকিছুকে সমাধান করা সহজ করে দেয়। যদি সমস্যাগুলির সন্ধানের জন্য কোনও টিডিডি পদ্ধতি থাকে তবে আমি এর জন্য অর্থ প্রদানের জন্য বরাদ্দ করা হাজার হাজার লোককে পেতে পারি। -Max


1
আমি বাধাপ্রাপ্ত কোড এবং নন-ইন্টারপ্যান্ট কোডের মধ্যে মিথস্ক্রিয়াটি পরীক্ষা করার বিষয়ে সত্যিই ভাবি না। এটি একটি ভাল পয়েন্ট। আমি আমার পিডাব্লুএম প্রজন্মের টাইমার বিঘ্নিত কোডের সাথে একটি বিঘ্নিত পরিস্থিতির বাইরে একইভাবে আমার মূল লাইন সিরিয়াল কোডটি যাচাই করে নেওয়ার পরিকল্পনা করছি। আমার মনে হয় এমনকি একবারে আমার কাছে কভারেজ হয়ে গেলেও আমি ইন্টারঅ্যাকশনটি অনুপস্থিত। আমি মনে করি যে আমি পরীক্ষার মধ্যে থেকে বাধাগুলি ট্রিগার করতে পারি (টাইমার বিঘ্নের সাথে এটি সহজ তবে সমস্ত বিঘ্নিত কোডটি পরীক্ষার জোয়ারের মধ্যে টাইমার বিঘ্নিত হওয়ার জন্য সেট করা যেতে পারে)। তুচ্ছ যদিও না।
লেন হলগেট

1
আমি আপনাকে ভুল বুঝে উঠতে পারি, তবে আমি অ-বিঘ্নিত এবং বিঘ্নিত কোড ইন্টারঅ্যাকশন সম্পর্কে বেশ যত্নবান হওয়ার চেষ্টা করি। পারমাণবিক ক্রিয়াকলাপগুলি ব্যবহার করার ক্ষেত্রে আমার সম্ভবত আরও দুর্বল হওয়া উচিত, তবে আমাদের অপটিমাইজারের পর্যায়ে এটি কখনও ক্ষতি করতে দেখায়নি। সমস্যাগুলি যখন উত্থাপিত হয় যখন অন্য একটি বাধা অন্যটিকে বিলম্বিত করে, একটি সাধারণ যা আমি শিক্ষার্থীদের সহায়তা করি তা হ'ল পিডাব্লুএম উত্পাদন বাধাগ্রস্ত হয়। আপনার যদি চূড়ান্তভাবে নির্ভুল গতির প্রয়োজন হয়, উদাহরণস্বরূপ আপনার চিপটিতে তুলনা মডিউল ব্যবহার করা এবং অন্য একটি বাধা দেওয়া অন্য কোনও কিছুর জন্য ব্যয় করতে ব্যস্ত এবং আপনাকে 50uS দ্বারা বিলম্বিত করে যা বিশ্বের শেষ হতে পারে।
কর্টুক

1
কিছু ক্ষেত্রে আপনি অগ্রাধিকার পেতে পারেন, বা এমনকি আপনি একটি বাধা নিজেই অক্ষম করতে পারেন এবং বৈশ্বিক বাধা অভ্যন্তরীণভাবে প্ল্যাটফর্ম নির্ভর করে আবার সক্ষম করতে পারেন, তবে আমার নিজের বিকাশের সহজতম পথটি হ'ল বিযুক্তিতে সময়কে সীমাবদ্ধ করে একেবারে প্রয়োজনীয় জিনিসগুলিতে এবং সাধারণ কোডটি করতে পারে কাজ বাকি।
কর্টুক

1
আমার বর্তমান নকশাটি আমার ব্লগে ব্যাখ্যা করা হয়েছে, যেমন প্রস্তাবিত নতুন ডিজাইন। এই মুহূর্তে আমার কাছে পিডাব্লুএম এর 64৪ টি চ্যানেল টাইমার বিঘ্নিত এবং অন্য কোনও বাধা দ্বারা উত্পন্ন হয়েছে; সিরিয়ালটি পোলিংয়ের মাধ্যমে করা হয়। এর অর্থ পিডব্লিউএম রক শক্ত তবে সিরিয়ালে সমস্যা থাকতে পারে। আমার নতুন নকশাটি ইউআরটি-র জন্য বাধা যেমন পিডাব্লুএম প্রজন্মের জন্য টাইমার এবং সাবধানতার সাথে পুনর্নবীকরণ এবং বাধা রোধ করা অবরুদ্ধ ফ্রি পিডাব্লুএম এবং গ্লিট ফ্রি ইউআরটি প্রক্রিয়াজাতকরণ নিশ্চিত করতে ...
লেন হলগেট

2
আমি পিডব্লিউএমকে উদাহরণ হিসাবে ব্যবহার করছিলাম, যে সিস্টেমে আমার এই সমস্যাটি হয়েছে তার 3 টি এসপিআই ইন্টারফেস রয়েছে যার সাথে আমরা এসপিআই সংযোগের সাথে 3 টি চিপ ব্যবহার করি। বহিরাগত চিপগুলির স্থিতির পরিবর্তনের এবং আরও কিছু জিনিস চলার বিষয়ে অবহিত করে 4 টি পৃথক বন্দর বাধা রয়েছে। আপনার আরও ইন্টারফেসের সমস্যা আরও খারাপ হয়ে যায়।
কর্টুক

2

মজাদার. ক্রিসমাসের পরে আমি ছবিগুলির সাথে কিছু এসেম্ব্লার করার বিষয়ে পরিকল্পনা করছিলাম, যখন আমি আরও কিছুটা সময় পেয়েছি তখন আপনার সিস্টেমে আমার নজর পড়বে।

আমি দেখতে পাবার একটি উপায় হ'ল মক অবজেক্টস ইত্যাদি তৈরি করতে এবং ছিঁড়ে ফেলার জন্য বিভিন্ন ভাষায় কিছু ধরণের ফ্রেমওয়ার্ক স্ক্রিপ্ট করা, তবে আপনি কীভাবে এই চিপ / সিমুলেশনের সাথে ইন্টারফেস করবেন তা সমস্যা হবে।

যদি এটি খুব কঠোর হয়ে ওঠে তবে এটি ইউনিট পরীক্ষার সুবিধাগুলি ছাড়িয়ে যাবে এবং এটি ব্যবহারে আপনাকে কম আগ্রহী করবে।


সিমুলেটারের ভিতরে এটি কাজ করা আমার প্রাথমিক বাধা ছিল যতক্ষণ না আমি কীভাবে আলাদা ফাইলগুলিতে কোডটি ভাঙতে পারি এবং আমি যে লেবেলের আসল কোডটিতে ঝাঁপিয়ে পড়েছিলাম কেবল তা "মক" করি না। আমার কাজ শেষ হয়ে গেলে আমি পুরো জিনিসটি পোস্ট করব। কোডটিতে ইউনিট পরীক্ষাগুলি পুনঃনির্মাণ করা কিছুটা সময় নিচ্ছে তবে এটির পক্ষে এটি যথেষ্ট ভাল।
লেন হলগেট

আপনার পদ্ধতিটি দেখার জন্য এখন আমার কাছে উপযুক্ত সুযোগ রয়েছে বলে আমি মনে করি এটি বেশ মার্জিত। সম্ভবত আমি ক্রিসমাসের পরে অ্যাভার্সের দিকে নজর রাখব, কারণ মনে হয় ছবিগুলির তুলনায় তাদের জন্য আরও অনেকগুলি সম্প্রদায় ভিত্তিক স্টাফ রয়েছে। এভিআর এসেমব্লার প্রোগ্রামিংয়ের জন্য কোনও শালীন লিনাক্স আইডিই কোনও ধারণা ideas
আমোস

1
এখানে একটি জিএনইউ সরঞ্জাম চেইন রয়েছে যা আপনি এভিআর স্টুডিওর (যা আতমের ফ্রি টুলসেটের জায়গায়) ব্যবহার করতে পারেন। এটি সম্ভবত লিনাক্সে চালানো সম্ভব তবে আমার প্রয়োজন হয় নি।
লেন হলগেট

লিনাক্সের অধীনে AVR এর বিকাশ সম্পর্কিত একটি লিনাক্স জার্নাল নিবন্ধের এই লিঙ্কটি সবেমাত্র পাওয়া গেছে
লেন

এই নিবন্ধটি সম্পর্কে আমার প্রধান উদ্বেগ হ'ল এটি 2005 সালের এবং তাই এটি পুরানো।
আমোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.