নিম্ন স্তরের উপাদানগুলিতে টিডিডি করা কি ভাল ধারণা?


10

আমি নিম্ন স্তরের ড্রাইভার বা ওএস উপাদান / কার্নেল লেখার বিষয়ে বিবেচনা করছি।

Osdev.org ভাবেন ভাবতে যে গুরুত্বপূর্ণ বিট অর্থপূর্ণ এই ভাবে testable নেই বলে মনে হচ্ছে, কিন্তু আমি কিছু আলোচনা যেখানে লোকেরা ভিন্নভাবে চিন্তা পড়েছেন। আমি চারপাশে দেখেছি, তবে নিম্ন-স্তরের উপাদানগুলিতে টিডিডির কোনও বাস্তব জীবনের উদাহরণ খুঁজে পেতে ব্যর্থ হয়েছি।

বাস্তবে এটি করার কোনও ভাল উপায় না থাকায় এটি কি লোকেরা আসলে কিছু করে বা লোকেরা তত্ত্বের বিষয়ে কিছু কথা বলে?


আমি যদি মনে করি যে এমএস কেবল কার্নেল বিকাশকারীকে যথাযথ "কর্নেল মকস" (বা যা কিছু হতে পারে) সরবরাহ করেছিলেন, তবে প্রশ্নে অনুশীলনটি "কল্পনাপ্রসূক" নয়, আমি মনে করি।
mlvljr

হাই @ বিল - আমি আপনার প্রশ্নটি কিছুটা পুনরায় চাপিয়ে দিয়েছি এবং এটি আবার খোলার পক্ষে ভোট দিয়েছি। যদি আমি এটি আপনার আসল অভিপ্রায় থেকে খুব বেশি পরিবর্তন করেছি তবে দয়া করে আরও সম্পাদনা করতে বা প্রশ্নটি উল্টে দিতে নির্দ্বিধায় :)
রাচেল

আমার দৃষ্টিকোণ থেকে একই কথা বলেছেন - কোনও উদ্বেগ নেই
বিল

উত্তর:


3

আপনি যদি হার্ডওয়্যারটির সাথে ইন্টারঅ্যাক্ট করছেন বা নিয়ন্ত্রণ করছেন তবে তা ছাড়া এটি পরীক্ষা করা কঠিন difficult আপনি হার্ডওয়্যার অনুকরণ করার চেষ্টা করতে পারেন, তবে ড্রাইভারটি প্রথম স্থানে লেখার চেয়ে প্রায়শই কঠিন, তাই আপনার ড্রাইভারটি বা আপনার এমুলেটরটিতে বাগটি রয়েছে কিনা তা আপনি জানেন না।


1
এবং কেন এমুলেটর পরীক্ষা না? ;)
mlvljr

@ এমএলভিএলজিআর: কারণ অনুকরণকারীরা আসল জিনিস নয়। আসল হার্ডওয়্যারের বিকল্প নেই is
পল নাথান

@ এমএলভিএলজিআর আপনাকে আসল হার্ডওয়্যারের বিপরীতে এমুলেটরটি পরীক্ষা করার দরকারও ছিল, পরীক্ষার স্যুটগুলি ব্যবহার করে মূল পরীক্ষাগুলি পরীক্ষা করার জন্য তৈরি করা হয়েছে ... অপেক্ষা করুন, আমি আবার কোথায় আছি?
স্বরে নোট করুন - একটি নাম ভাবেন

তাহলে, ভিএমওয়্যার এবং অ্যালকস পরীক্ষা করা যাবে না?
mlvljr

1
@ এমএলভিএলজেআর: এটি একটি বৈধ পয়েন্ট, তবে আমি মনে করি এটি "টিডিডি" এর বাইরে চলে যায় falls স্ক্রিপ্টযোগ্য, চালিত সিস্টেম-স্তরের এমুলেটরটিতে অনেক বিকাশকারীদের অ্যাক্সেস নেই। চার চ্যানেলের সুযোগ পেয়ে আমি নিজেকে ভাগ্যবান মনে করেছি!
টিএমএন

3

আমি ব্যক্তিগতভাবে বিশ্বাস করি যে কেউ টিডিডির অনেকগুলি সুবিধা পেতে পারে (আসলে টিডিডি মেনে চলেন না), এর মাধ্যমে:

  • কলার এবং কলি কোড উভয়কে একই সময়ে লেখা (অবশ্যই ২৪ ঘন্টার বেশি নয়)।
    • এবং ইন্টারফেসের নকশাকে প্রভাবিত করতে এটি ব্যবহার করুন (অবজেক্টস, মেথড কল এবং পরামিতি)।
  • জটিল অ্যালগরিদম / কোডের প্রয়োজনের একটি উপাদানটির জন্য, প্রথমে একটি সহজ তবে সঠিক অ্যালগরিদম প্রয়োগের জন্য দৃ strongly়তার সাথে বিবেচনা করুন, যদিও এটি কম দক্ষ (বা বোকা, বা কেবল সংকীর্ণ পরিস্থিতিতে কাজ করে)।
    • একটি খুব সাধারণ পরীক্ষার পদ্ধতিতে উভয়ই অ্যালগরিদম চলছে এবং তাদের ফলাফলের তুলনা করা হবে।
  • কোডের একটি অংশে একবার কোনও বাগ (কোনও উপায়ে) আবিষ্কৃত হয়, কোডের সেই অংশটি আরও বেশি আগ্রাসীভাবে পরীক্ষা করার দাবি রাখে। এর অর্থ টিডিডি কল করার চেয়ে আরও পরিশীলিত পরীক্ষা করা। (যুক্তিগুলি ক্লাস্টারগুলিতে ঘটে এর ভিত্তিতে )

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

সম্পাদিত:

পৃষ্ঠাটি আরও মনোযোগ সহকারে পড়ার পরে,

"টেস্টবেড" টেস্ট ড্রাইভারের বেশিরভাগ কার্নেল ফাংশন পরীক্ষা করা সম্ভব হওয়া সত্ত্বেও, সত্যই "রসালো" স্টাফ বাধা হ্যান্ডলিং, প্রক্রিয়া প্রেরণ বা মেমরি পরিচালনার মতো সম্ভবত একক-পরীক্ষামূলক নয়। --- http://wiki.osdev.org/Unit_Testing থেকে

তারা স্পষ্টভাবে বলছে যে বেশিরভাগ অংশ টেস্টযোগ্য এবং কিছু অংশের জন্য বিভিন্ন ধরণের টেস্টিং প্রয়োজন: স্ট্রেস টেস্টিং


এটিও বোঝাচ্ছে যে গুরুত্বপূর্ণ অংশগুলি এমন অংশ যা বিভিন্ন পরীক্ষার জন্য প্রয়োজন require
বিল

কি দুর্দান্ত উত্তর! কিছু স্তরে চিয়ার্স!
ম্যানুয়েলবিটানকার্ট

1

আমি না। আমার মাস্টারের এম্বেড কোডে আমি কেবল কোডটি লিখি এবং এটি কী করে (এবং না) সম্পর্কে আমার সময় ব্যয় করে। আমি নিশ্চিত না যাইহোক আমার ক্ষেত্রে এটি করা যেতে পারে, আমি পরীক্ষার কোডটি ইনজেকশন না দিয়ে মেমরির শারীরিক সীমাতে বিরক্ত হয়ে পড়ছি getting

আমি মনে করি যে যে সিস্টেমে যথেষ্ট বড় (যেমন মেমরির এমবি রয়েছে, কেবি নয়), আপনার কাছে পর্যাপ্ত সময় এবং প্রচেষ্টা থাকলে কিছু উপাদানগুলির জন্য এটি করা যেতে পারে। পিনগুলি উপহাস করে পিন-রিডিং কোড পরীক্ষা করা হচ্ছে ... এর ... খুব অর্থবহ নয়। আপনি যদি নিজের যুক্তিটিকে যথেষ্ট পরিমাণে আলাদা করে থাকেন তবে আপনি যুক্তিটি অন্য কোথাও পরীক্ষা করতে পারেন।

এফডাব্লুআইডাব্লু, আমি সাধারণ ক্ষেত্রে টিডিডি কিনি না - এটি সিস্টেম স্ট্যাকের জন্য কাজ করে যা যথেষ্ট পরিমাণে যথেষ্ট পরিমাণে নির্ধারিত আচরণের সাথে যথেষ্ট সংস্থানযুক্ত, এর বাইরে এটি যুক্তিসঙ্গত অনুশীলন বলে মনে হয় না।

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