Debug code
ডিবাগ কোড হল ত্রুটিগুলি পরীক্ষা করার জন্য বা ত্রুটির কারণ নির্ধারণ করতে সহায়তা করার জন্য একটি কম্পিউটার প্রোগ্রামে প্রবর্তিত কম্পিউটার কোড। এটি একটি প্রোগ্রামের নির্দিষ্ট বিন্দুতে একটি পরিবর্তনশীলের মান মুদ্রণ করার জন্য একটি ইকো কমান্ডের মতো সহজ হতে পারে। আধুনিক সমন্বিত উন্নয়ন পরিবেশ কখনও কখনও প্রোগ্রামের নির্দিষ্ট জায়গায় স্টপ পয়েন্ট বসানোর অনুমতি দিয়ে এবং প্রোগ্রাম আউটপুটের পরিবর্তে আইডিই-এর মাধ্যমে ভেরিয়েবলের মান দেখার ক্ষমতা প্রদান করে এটিকে অপ্রয়োজনীয় করে তোলে। ডিবাগ কোডের ব্যবহার ডিবাগ কোডের প্রধান কাজ হল ডিবাগ কোডকে সহায়তা করা। এটি বিভিন্ন উপায়ে করা যেতে পারে, যেমন মুদ্রণ বিবৃতি ব্যবহার করা, কমান্ডগুলি দাবি করা এবং একক পরীক্ষা করা। কোডিং-এ ব্যবহার করুন একটি প্রোগ্রামের মধ্যে বাগের উপস্থিতি এবং অবস্থান খুঁজে বের করার জন্য কোডে ছোট বিবৃতি যুক্ত করা যেতে পারে। এটি সম্ভাব্য ব্যবহারের ক্ষেত্রে অনুকরণ করার জন্য পরীক্ষার ইনপুট সরবরাহ করতেও ব্যবহার করা যেতে পারে যা কোনও প্রোগ্রামকে গ্রহণ করতে সক্ষম হতে পারে। এটি কোডের জন্য একটি স্থান ধারক হিসাবেও ব্যবহার করা যেতে পারে যা এখনও বিকাশে রয়েছে। ভিডিও গেমে ব্যবহার করুন অনেক ভিডিও গেমিং মোড, চিট কোড, যেমন লেভেল চিট কোড, অপরাজেয়তা ইত্যাদি। মূলত ডিবাগ কোড হিসাবে চালু করা হয়েছিল যাতে প্রোগ্রামার এবং/অথবা পরীক্ষকরা এমন বাধাগুলি এড়িয়ে যেতে পারে যা তাদের পরীক্ষার প্রয়োজন এমন খেলার অংশগুলিতে দ্রুত পৌঁছাতে বাধা দেয়; এবং এই ক্ষেত্রে প্রতারণা মোডগুলিকে প্রায়শই ডিবাগিং মোড হিসাবে উল্লেখ করা হয়। এটি একটি সর্বোত্তম অনুশীলন হিসাবে সুপারিশ করা হয় যে ডিবাগিং কোড অ্যাপ্লিকেশনগুলির উৎপাদন সংস্করণ থেকে সরানো উচিত, কারণ এটি তাদের ধীর করতে পারে। তবে কিছু গেম খেলোয়াড়দের তাদের খেলার অভিজ্ঞতা বাড়ানোর উপায় হিসাবে ব্যবহার করার জন্য এই কমান্ড এবং চিটগুলি উপলব্ধ রাখে। উদাহরণস্বরূপ, দ্য এল্ডার স্ক্রোলস ভিঃ স্কাইরিমের পিসি সংস্করণ খেলোয়াড়দের কমান্ড কনসোলে প্রবেশাধিকার দেয়, যা তাদের খেলার কিছু দিক পরিবর্তন করার ক্ষমতা দেয়। এই আদেশগুলির মধ্যে রয়েছে খেলোয়াড়কে অপরাজেয়তা, টেলিপোর্টেশন এবং সীমাহীন স্বর্ণ প্রদান করা। ডিবাগ কোডের উদাহরণ প্রিন্ট ডিবাগিং প্রিন্ট ডিবাগিং হল কোনও প্রোগ্রামে বাগ খুঁজে বের করতে এবং আলাদা করার জন্য প্রিন্ট স্টেটমেন্ট ব্যবহার করা। এটি একটি কোডের ডেটা মানগুলির প্রবাহ ট্র্যাক করতে ব্যবহার করা যেতে পারে। এই ধরনের ডিবাগ কোডের কিছু স্বতন্ত্র অসুবিধা রয়েছে। এটি অস্থায়ী এবং সাধারণত বাগ সমাধান করা হলে অপসারণ করা হয়। অনেক মুদ্রণ বিবৃতির ব্যবহার একটি প্রোগ্রামের প্রকৃত আউটপুটকে প্রভাবিত করতে পারে এবং মুদ্রণ বিবৃতিগুলিকে কত ঘন ঘন বলা হয় তার উপর নির্ভর করে রান-টাইমকে ধীর করে দিতে পারে। কিছু ক্ষেত্রে মুদ্রণ বিবৃতি সমস্যাটি খুঁজে পেতে সহায়তা করে না, উদাহরণস্বরূপ সি + + স্টডাউটের একটি বাফার আউটপুট থাকে এবং কখনও কখনও বাফারের বিষয়বস্তু হারিয়ে যায় যার ফলে ভুল ডিবাগিং তথ্য পাওয়া যায়। সি + + উদাহরণ অকার্যকর টেস্ট ফাংশন (ইন্টি টাইমস টু রান) {cout <<"অ্যালগরিদমটি চালানো উচিত" <<টাইমস টু রান <<"টাইমস" <<std:: এন্ডল; এর জন্য (ইন্টি আই = 0; আই <= টাইমস টু রান; আই + +) {// রান অ্যালগরিদম অ্যালগরিদম ();// প্রিন্ট স্টেটমেন্ট cout <<"অ্যালগরিদম রান" <<আই + + <<"টাইমস" ডিবাগ করুন। <<std::endl;}} উপরের কোডে একটি বাগ রয়েছে। 5-এর একটি ইনপুটে প্রোগ্রামটিকে কনসোলে নিম্নলিখিতগুলি মুদ্রণ করতে হবে। অ্যালগরিদমটি 5 বার চালাতে হবে অ্যালগরিদম 1 বার চালাতে হবে। অ্যালগরিদম 2 বার চলে। অ্যালগরিদম 3 বার চলে। অ্যালগরিদম 4 বার চলে। অ্যালগরিদম 5 বার চলে। প্রকৃত আউটপুট নিম্নরূপ, যা ভুল। অ্যালগরিদমটি 5 বার চালাতে হবে অ্যালগরিদম 1 বার চালাতে হবে। অ্যালগরিদম 2 বার চলে। অ্যালগরিদম 3 বার চলে। অ্যালগরিদম 4 বার চলে। অ্যালগরিদম 5 বার চলে। অ্যালগরিদম 6 বার চলে। আমাদের ফাংশন অ্যালগরিদমের মাধ্যমে অতিরিক্ত সময় চলছে, এবং ঘনিষ্ঠ পরিদর্শনের পরে এটি স্পষ্ট যে আমাদের লুপটি ভুল কোড করা হয়েছে। বিবৃতি স্থির করুন সাধারণত কোনও বাগ ঠিক করার সর্বোত্তম সময় হল প্রোগ্রামটি চালানোর আগে। কোডে দাবি সন্নিবেশ করে এটি করা যেতে পারে। সি-তে এটি অ্যাস্টের্ট () কমান্ড ব্যবহার করে করা যেতে পারে। একটি অ্যাস্টের্ট কমান্ড পরীক্ষা করে দেখতে পারে যে প্রোগ্রামটি প্রোগ্রামের এই পর্যায়ে সঠিক শর্তগুলি চালাচ্ছে কিনা। সি উদাহরণ int i, a [10]; এর জন্য (i = 0; i <10; + + i) {a [i] = 10-i;} এর জন্য (i = 0; i <10; + + i) {a [a [i]] = a [i];} উপরের কোডটি একটি সীমাহীন ত্রুটি সৃষ্টি করবে যা কিছু অপ্রত্যাশিত ফলাফলের দিকে নিয়ে যেতে পারে। নিচে যেমন দেখানো হয়েছে, দাবিগুলি ব্যবহার করে কোডটি নিরাপদ উপায়ে লেখা যেতে পারে। #include <assert.h> int i, a [10]; এর জন্য (i = 0; i <10; + + i) {assert (0 <= i & & i <10); a [i] = 10-i;} এর জন্য (i = 0; i <10; + + i) {assert (0 <= i & & i <10); assert (0 <= a [i] & & & a [i] <10); a [a [i] = a [i];} JUnit JUnit একটি সহজ কাঠামো যা জাভার জন্য উপলব্ধ পুনরাবৃত্তিযোগ্য পরীক্ষা লিখতে ব্যবহৃত হয় এবং প্রোগ্রামারদের তাদের নিজস্ব একক পরীক্ষা তৈরি করার অনুমতি দেয়। একটি একক পরীক্ষা হল কোড যা পরীক্ষার জন্য কোডে একটি নির্দিষ্ট ফাংশন কার্যকর করার জন্য লেখা হয় এবং সাধারণত কোডের একটি ছোট ইউনিটকে লক্ষ্য করে, যেমন একটি একক পদ্ধতি বা শ্রেণী। দাবি বিবৃতি এবং অন্যান্য পরীক্ষার বিবৃতিগুলির সংমিশ্রণ ব্যবহার করে, প্রোগ্রামাররা কোনও পদ্ধতি বা ফাংশন সঠিকভাবে কার্যকর করা হচ্ছে কিনা তা বলার জন্য পরীক্ষার কেসগুলির স্যুট তৈরি করতে পারেন। তথ্যসূত্র সফ্টওয়্যার রক্ষণাবেক্ষণ