আমি ইউনিট টেস্টিং এবং পরীক্ষা চালিত উন্নয়ন সম্পর্কে পরের সপ্তাহে আমার বিভাগে একটি বক্তৃতা দিতে যাচ্ছি। এর অংশ হিসাবে, আমি সম্প্রতি লিখেছি এমন কিছু কোড থেকে কিছু বাস্তব-জগতের উদাহরণগুলি প্রদর্শন করতে যাচ্ছি, তবে আমি কিছু খুব সাধারণ উদাহরণও প্রদর্শন করতে চাই যা আমি আলাপে লিখব।
আমি ভাল উদাহরণগুলির জন্য ওয়েবে অনুসন্ধান করছি, তবে আমি আমাদের বিকাশের ক্ষেত্রে বিশেষত প্রযোজ্য এমন কোনও সন্ধানের জন্য সংগ্রাম করছি। আমরা যে সফ্টওয়্যারটি লিখি তার প্রায় সবগুলিই ছোট মাইক্রোকন্ট্রোলারগুলিতে গভীরভাবে এম্বেড করা নিয়ন্ত্রণ ব্যবস্থা। অনেকগুলি সি কোড রয়েছে যা ইউনিট টেস্টিংয়ের জন্য সহজেই প্রযোজ্য (যতক্ষণ না আপনি 'নীচে' স্তরটি পরিষ্কার রাখবেন) যতক্ষণ না আপনি সরাসরি নীচে কথা বলছেন: যতক্ষণ না আপনি 'নীচে' স্তরটি পরিষ্কার করেন: মাইক্রোকন্ট্রোলার পেরিফেরিয়ালগুলিতে। তবে, বেশিরভাগ উদাহরণ আমি পেয়েছি স্ট্রিং-প্রসেসিংয়ের উপর ভিত্তি করে (যেমন পাইথন রোমান সংখ্যার উদাহরণে দুর্দান্ত ডাইভ) এবং যেহেতু আমরা খুব কমই স্ট্রিং ব্যবহার করি তা সত্যিই উপযুক্ত নয় (কেবলমাত্র আমাদের কোডটি ব্যবহার করে এমন একমাত্র গ্রন্থাগারের ফাংশন সম্পর্কে) হয় memcpy
, memcmp
এবং memset
,strcat
বা নিয়মিত এক্সপ্রেশন সঠিকভাবে নয়)।
সুতরাং, প্রশ্নটিতে: দয়া করে কেউ লাইভ সেশনে ইউনিট টেস্টিং প্রদর্শনের জন্য যে ফাংশনগুলি ব্যবহার করতে পারেন তার কয়েকটি ভাল উদাহরণ উপস্থাপন করতে পারেন? আমার (পরিবর্তনের সাপেক্ষে) মতামতের একটি উত্তরের উত্তর সম্ভবত:
- একটি ফাংশন যা যথেষ্ট সহজ যে কেউ (এমনকি যারা কেবল মাঝে মধ্যে কোড লিখেন) তারা বুঝতে পারে;
- একটি ফাংশন যা অর্থহীন প্রদর্শিত হয় না (অর্থাত প্যারিটি বা সিআরসি কাজ করা এমন ফাংশনের চেয়ে সম্ভবত আরও ভাল যা দুটি সংখ্যাকে একত্রে গুণিত করে এবং এলোমেলো ধ্রুবক যুক্ত করে);
- এমন একটি ফাংশন যা লোকের ঘরের সামনে লিখতে যথেষ্ট সংক্ষিপ্ত (আমি ত্রুটি হ্রাস করার জন্য ভিমের অনেকগুলি ক্লিপবোর্ডের সুবিধা নিতে পারি ...);
- একটি ফাংশন যা সংখ্যা, অ্যারে, পয়েন্টার বা কাঠামোকে পরামিতি হিসাবে গ্রহণ করে এবং স্ট্রিং পরিচালনা করার পরিবর্তে অনুরূপ কিছু প্রদান করে;
- একটি ফাংশন যাতে একটি সাধারণ ত্রুটি থাকে (উদাহরণস্বরূপ
>
পরিবর্তে>=
) যে এটি রাখা সহজ যে এখনও বেশিরভাগ ক্ষেত্রে কাজ করতে পারে তবে কোনও নির্দিষ্ট প্রান্তের ক্ষেত্রে এটি ভেঙে যায়: ইউনিট পরীক্ষার সাথে সনাক্তকরণ এবং ঠিক করা সহজ।
কোন চিন্তা?
যদিও এটি সম্ভবত প্রাসঙ্গিক নয়, গুগল টেস্ট ফ্রেমওয়ার্ক ব্যবহার করে পরীক্ষাগুলি নিজেরাই সম্ভবত সি ++ তে লেখা থাকবে: আমাদের সমস্ত শিরোনামের ইতিমধ্যে #ifdef __cplusplus extern "C" {
তাদের চারপাশে মোড়ক রয়েছে; আমি এখন পর্যন্ত যে পরীক্ষাগুলি করেছি তার সাথে এটি ভাল কাজ করেছে।