ডিবাগিং কী?
ডিবাগিং শব্দের ব্যাবহার শুরু হয় ১৯৪০ সালে হার্ভার্ড বিশ্ববিদ্যালয়ের একটি মার্ক ২ ( Mark ||) কম্পিউটার সফটওয়্যার এর ত্রুটি দেখা দেয়ার মাধ্যমে। এরপর থেকে ডিবাগিংকে প্রোগ্রামাররা ঢালাওভাবে ব্যাবহার করতে শুরু করে এবং তা এখনও চলমান।
Tanvir Hossain
Writer
PUBLISHED ONMar 14, 2024
ডিবাগিং কী?
ডিবাগিং বলতে বুঝানো হয় এমন একটি ব্যাবস্থাকে যার মাধ্যমে কোন একটি সিস্টেম এর কোড এ থাকা কোন ভুল বা বাগ-কে খুজে বের করে তা ঠিক করা হয়ে থাকে। একে সফটওয়্যার ইঞ্জিনিয়ারিং এর সাথে ওতপ্রতভাবেভাবে জড়িত একটি পদ্ধতি। কারন সফটওয়্যার সিস্টেমে কোন ভূল থাকলে এর কারনে ব্যাবহারকারী যে সুবিধা পাওয়ার কথা তা থেকে বঞ্চিত হবে। ডিবাগিং একটি সময়সাপেক্ষ এবং কঠিন ব্যাপার কিন্ত তা প্রয়োজনীয়ও বটে।
ডিবাগিং শব্দের ব্যাবহার শুরু হয় ১৯৪০ সালে হার্ভার্ড বিশ্ববিদ্যালয়ের একটি মার্ক ২ ( Mark ||) কম্পিউটার সফটওয়্যার এর ত্রুটি দেখা দেয়ার মাধ্যমে। এরপর থেকে ডিবাগিংকে প্রোগ্রামাররা ঢালাওভাবে ব্যাবহার করতে শুরু করে এবং তা এখনও চলমান।
ডিবাগিং করার পদ্ধতি
ডিবাগিং করার জন্য বিভিন্ন পদ্ধতি ব্যাবহার হয়, যেমন-
- কোড পূন:পরীক্ষনঃ ম্যানুয়ালি প্রতিটি লাইন কোডের পরিক্ষা করার মাধ্যমে কোন একটি সিস্টেমের ভুল খুজে বের করে তা সমাধান করা হয়।
- ডিবাগিং টুলস এর ব্যাবহারঃ ডিবাগিং সহজভাবে করার জন্য এখন বিভিন্ন ধরনের সফটওয়্যার যেমন- ডিবাগারস,ট্রেস টুলস, প্রোফাইলারস ইত্যাদি রয়েছে যা ব্যাবহার করা হয়।
- ইউনিট টেস্টঃ কোন সফটওয়্যার সিস্টেমের প্রতিটি ইউনিট বা অংশ পরীক্ষন করা হয় এ পদ্ধতিতে।
- ইন্টিগ্রেশন টেস্টিংঃ কোন সফটওয়্যার সিস্টেমের প্রতিটি অংশের সম্পর্কের উপর ভিত্তি করে এ পদ্ধতি ব্যাবহার করে ডিবাগিং করা হয়।
- সিস্টেম টেস্টিংঃ সম্পুর্ন সিস্টেমের পরিক্ষন করে ভুল শুধরানো এর পদ্ধতিতেও ডিবাগিং করা হয়ে থাকে।
- মনিটরিংঃ কোন সফটওয়্যার সিস্টেমের কোডিং করার পর আউটপুট এর অস্বাভাবিক আচরনের উপর ভিত্তি করে মনিটরিং পদ্ধতিতে ডিবাগিং করা হয়।
যেহেতু ডিবাগিং একটি সময়সাপেক্ষ এবং কঠিন কাজ তাই কোন একটি সফটওয়্যার সিস্টেমের ডিবাগিং করার জন্য একের অধিকবার একাধিক পদ্ধতি অনুসরন করতে হয়। নির্দিষ্টভাবে সমস্যা খুজে বের করতে না পারলে ডিবাগিং আরো কঠিন এবং সময়সাপেক্ষ হয়ে উঠে।
ডিবাগিং সফটওয়্যারে কিভাবে কাজ করে
সফটওয়্যার ইঞ্জিনিয়ারিং এর ভাষায় ডিবাগিং করা বলতে বুঝানো হয়ে থাকে কোন কোড এ থাকা বাগ বা ভুল কে খুজে বের করে তার সমাধান করা। এ ক্ষেত্রে সমস্যা খুজে বের করা, এর নীরিক্ষা করা এবিং সব শেষ তার সমধান করাকে বুঝানো হয়ে থাকে। এই কাজগুলো মানুষ ম্যানুয়ালি ততখনি করে যখন ডিবাগিং কম্পিউটার প্রোগ্রাম বা সফটওয়্যার করতে ব্যার্থ হয়। এই কাজে কোড এর প্রতিটি অংশের ভুল খোজা এবং তার সমাধান করা সময়সাপেক্ষ। কিন্ত সফটওয়্যার কে একাধিকবার ইনপুট দেয়ার মাধ্যমে ডিবাগিং এর কাজ সম্পাদন করা যায়। এক্ষেত্রে ডিবাগাররা কাজ করার সময় প্রদত্ত সেই কোড এর প্রতিটি ব্রেকপয়েন্ট পরীক্ষা করে। অনেকধরনের IDE যেমন C++, C প্রোগ্রাম বিল্ডার এ আগে থেকেই ডিবাগিং সফটওয়্যার যুক্ত ক্ক্রা থাকে।
ডিবাগিং করার সময় পাওয়া যায় এমন কিছু ম্যাসেজ
- Syntax error
- Logical error
- Runtime error
- Stack overflow
- Index Out of Bound Errors
- Infinite loops
- Concurrency Issues
- I/O errors
- Environment Dependencies
- Integration Errors
- Reference error
- Type error
ডিবাগিং করার জন্য কিছু কম্পিউটার প্রোগ্রাম
ডিবাগিং কে সহজ করার জন্য কিছু কম্পিউটার প্রোগ্রাম ব্যাবহার করা হয় যার মাধ্যমে কোন কোডকে পরীক্ষা করা যায়। এরকম কিছু বহুল ব্যাবহৃত ডিবাগিং প্রোগ্রাম হলো-
টেস্টিং এবং ডিবাগিং এর পার্থক্য
এদের পার্থক্য জানার আগে জানা প্রয়োজন টেস্টিং ও ডিবাগিং কি? ডিবাগিং বলতে বুঝানো হয় কোন সফটওয়্যার এর বাগ বা ভুল খুজে বের করার পর তার সমাধান করা, অন্যদিকে টেস্টিং বলতে বুঝানো হয় কোন সফটওয়্যার সিস্টেমে থাকা ভুল, বাগ ইত্যাদি খুজে বের করাকে। টেস্টিং এর মাধ্যমে মূলত কোন কোড করা প্রোগ্রাম সঠিকভাবে সম্পন্ন হয়েছে কি না বা যে কাজ এর জন্য কোড করা হয়েছে তা সঠিকভাবে করতে পারছে কি না তা পরীক্ষা করা হয়। টেস্টিং পুরোপুরো ম্যানুয়াল বা অটোমেশন প্রোগ্রামের মাধ্যমেও করা যায়।
ডিবাগিং করার জন্য কোডের প্রতিটি লাইনকে বুঝতে হয়। যাতে করা বুঝা যায় কোডগুলো সঠিক হয়েছে কি না। যদিও ডিবাগিং অটোমেশন প্রোগ্রাম দিয়েও করা যায়, তবে ম্যানুয়ালি ডিবাগিং করা বেশি ফলপ্রসূ। এ কাজের জন্য যেমন ধৈর্য প্রয়াওজন তেমনি স্কিল ও প্রয়োজন।
ডিবাগিং করার সুবিধা
ডিবাগিং সঠিকভাবে করতে পারলে
- সিস্টেমের গুনমান বৃদ্ধি হয়: কোডে থাকা প্রতিটি ভুল, বাগ ইত্যাদি ঠিক করলে সফটওয়্যার সিস্টেম আরো বেশি কার্যকরী এবং ব্যাবহারকারীর জন্য সুবিধাজনক হয় ফলে সার্বিকভাবে গুনমান বৃদ্ধি পায়।
- ব্যাবহারকারীর সময় বাচায়: ডিবাগিং করার ফলে সিস্টেম এর কার্যক্ষমতা বৃদ্ধি পায় ও দ্রুত কাজ করতে পারে, ফলে সময় বেচে যায়।
- সিস্টেমের নিরাপত্তা বৃদ্ধি পায়: কোন হ্যাকার মূলত সিস্টেম এর ভুলকে খুজে বের করে সেই সিস্টেমের প্রোগ্রামে এট্যাক করে। ডিবাগিং যেহেতু সিস্টেমের ক্ষুত কমানোর কাজ করে তাই সিস্টেমের নিরাপত্তাও বৃদ্ধি পায়
- ডেভেলপমেন্ট এর খরচ কমে: ডিবাগিং করার মাধ্যমে কোন প্রোগ্রাম করার শুরুতেই সকল সমস্যার সমাধান করা হয়। পূর্নাঙ্গ সিস্টেম তৈরি করার সময় আস্তে আস্তে সমস্যা গুলো সমাধান করলে পরে সমস্যা গুলো থেকে যায় না এবং আবার কোন ডেভলপার এর পিছনে খরচ করতে হয় না সমস্যা সমাধান করার জন্য।
ডিবাগিং এর সমস্যা
ডিবাগিং যদিও একটি প্রয়োজনীয় কাজ কোন প্রোগ্রামিং সিস্টেম এর জন্য, কিন্ত এর কিছু অসুবিধা ও রয়েছে।
- সময়সাপেক্ষঃ ডিবাগিং করতে প্রতিটি কোড এর সমস্যাকে সমাধান করতে হয়। এক্ষত্রে কোন একটি সমস্যা যদি খুজে পেতে বেশি সময় প্রয়োজন হয় তবে তা সমাধানেও বেশি সময় প্রয়োজন হবে। ফলে কোন প্রোগ্রাম সঠিকভাবে রান করাতে সময় অনেক বেশি লেগে যেতে পারে।
- অভিজ্ঞতা প্রয়োজন হয়ঃ “ডিবাগিং ইজ নট ফর বিগিনার্স”। ডিবাগিং করার জন্য প্রয়োজন হয় কোডিং নিয়ে সঠিক এবং পরিষ্কার ধারনার। ডিবাগিং করার জন্য অভিজ্ঞ ডেভলপার থাকা প্রথম শর্ত।
- খরচ বেশি হয়ঃ যেহেতু অভিজ্ঞ ডেভলপার প্রয়োজন হয় এবং একইসাথে সময়সাপেক্ষ ব্যাপার তাই খরচ অনেক বেশি হয় এই প্রসেসে।
Share
More Blog Articles
Mar 04, 2024
রোবট এবং রোবটিক্স : বিস্ময়কর এক যান্ত্রিক রাজ্য
রোবটিক্স যদিও একটি শব্দ, কিন্ত কখনো কি চিন্তা করেছেন ছোট একটি শব্দে কত বিশাল একটি যান্ত্রিক পৃথিবী লুকিয়ে আছে! রোবটিক্স শব্দটি শোনলেই আমাদের মনের ভেতর একটা অন্য রকম অনুভূতি তৈরি হয়।
READ MORE
Mar 03, 2024
মডেম এর আদ্যোপান্ত
মডেম এর প্রধান কাজ তথ্য কে ডিজিটাল ও এনালগ সিগনাল এ রুপান্তর করা। এরা একই সাথে মডুলেশন এবং ডিমডুলেশন করতে পারে। মডেম মূলত একই সাথে বিভিন্ন চ্যানেল এ যুক্ত ডিভাইস সমূহে তথ্য প্রেরন করতে পারে।
READ MORE
Mar 05, 2024
ডায়োড : ডিজিটাল প্রযুক্তির ভিত্তি
ডায়োড মূলত ছোট আকারের বৈদ্যুতিক একটি যন্ত্র। এদের ব্যাবহার করা হয় বিপরীতমুখী তড়িৎ প্রবাহ রোধ এর জন্য। ডায়োড এর একপ্রান্ত নিম্ন রোধ ও অন্য প্রান্ত উচ্চ রোধ বিশিষ্ট হয়।
READ MORE