কোনও উত্তরাধিকার, প্লেইন সি প্রকল্পে ইউনিট পরীক্ষা যুক্ত করা


12

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

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

সংক্ষেপ:

  • রিফ্যাক্টরিংয়ের আগে আপনি কীভাবে বিদ্যমান জোড়াতালি কোডে ইউনিট পরীক্ষাগুলি যুক্ত করবেন?
  • আপনি কি সরঞ্জামের পরামর্শ দিচ্ছেন? (কম গুরুত্বপূর্ণ, তবে এখনও জেনে ভাল লাগছে)

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

উত্তর:


7

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

দেখে মনে হচ্ছে এটির কিছু অংশ (বা একটি প্রাথমিক খসড়া নিবন্ধ) এমনকি এখানে বিনামূল্যে পাওয়া যায় ।


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

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

এই বইটি একটি ভাল পরামর্শ এবং এটি ওও ভাষার সাথে সি অন্তর্ভুক্ত covers
টমাসডাব্লু

7

কৌশল জন্য, সম্ভবত মাইকেল পালক বুক মধ্যে পিটার Török এর উত্তর চমত্কার ব্যাপক হবে। আপনি যদি বইটিতে যেতে না চান, তবে আমি তিন-পদক্ষেপের প্রক্রিয়াটির পরামর্শ দিচ্ছি:

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

এই প্রক্রিয়াটি কয়েকবার পুনরাবৃত্তি করুন এবং আপনার খুঁজে পাওয়া উচিত লিগ্যাসি কোড বেসের গুণমান উল্লেখযোগ্যভাবে বৃদ্ধি পেয়েছে।

সরঞ্জাম যতদূর যায়, নোট করুন যে সি ++ সিটিতে কল করতে পারে, সুতরাং যে কোনও সি ++ ইউনিট-পরীক্ষার কাঠামো সি কোড পরীক্ষা করতে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আমরা আমাদের প্রকল্পের সি কোডের একগুচ্ছ ইউনিট-পরীক্ষার জন্য সিপিপিউনিট ব্যবহার করছি ।


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