Bohrbug: یہ کیا ہے، اسباب اور مرمت کے طریقے

مصنف: IT Sectr اشاعت: 2026-07-29 مطالعے کا وقت: 8 منٹ

Bohrbug ایک سافٹویئر غلطی ہے جو تعینی طور پر کام کرتی ہے: ایک جیسے انپٹ ڈیٹا کے ساتھ، یہ ہر بار بغیر کسی مستثنای کے دوبارہ پیدا ہوتی ہے۔ یہ نام نیلز بور کے ایٹم ماڈل سے ماکھوا گیا ہے، جہاں ایلیکٹران ایک سختی سے متعین مدار پر چلتا ہے — اتنا ہی پیش قیاس پذیر جتنا یہ بگ۔ انسائیکلوپیڈیا (2026) کے مطابق، کے مطابق، Bohrbug ان عیوب کے زمرے میں آتا ہے جن کی تشخیص سب سے آسان ہے، کیونکہ انہیں دوبارہ پیدا کرنے کے لیے خاص ضرورتات کی ضرورت نہیں ہی۔

اہم نکات

  • Bohrbug — ایک مستقل غلطی جو ایک جیسے انپٹ ڈیٹا کے ساتھ ہر رن پر دوبارہ پیدا ہوتی ہے۔
  • نام بور کے سیارہ ایٹم ماڈل سے متعلق ہے — بگ مدار میں ایلیکٹران کی طرح پیش قیاس پذیر طور پر کام کرتا ہے۔
  • تشخیص ان بگز کی سب سے آسان ہے: صرف انپٹ کی ضرورتات کو ریکارڈ کریں اور ڈبگ کریں۔
  • اسباب میں منطقی غلطیاں، غلط حد کی ضرورتات اور کوڈ میں ہجا کی غلطیاں شامل ہیں۔
  • یونٹ ٹیسٹ ڈیولپمنٹ کے مرحلے پر Bohrbug کو روکنے کا بنیادی ذریعہ ہے۔

Bohrbug کیا ہے؟

Bohrbug ایک قسم کی سافٹویئر غلطی ہے جو تعینی طور پر ظاہر ہوتی ہے: ایک جیسے انپٹ ڈیٹا کے ساتھ، یہ ہمیشہ ایک ہی ناکامی کا نتیجہ دیتی ہے۔ یہ مصطلح محققین جیم گرے اور آنڈریاس رویٹر نے کتاب «Transaction Processing: Concepts and Techniques» (1993) میں متعارف کروایا تھا۔

Mandelbug کے برعکس، جو افراطی طور پر اپنا رویہ بدلتا ہے، Bohrbug مستقل ہے: ایک ڈیولپر سسٹم کو ایک جیسے پارامیٹرز دے کر آنکھیں بند کر بھی اسے دوبارہ پیدا کر سکتا ہے۔ یہ اسے IDE میں مرحلہ وار ڈبگنگ کے لیے ایک بہترین امیدوار بناتا ہے۔

Bohrbug سافٹویئر لائف سایکل کے تمام مراحل پر پایا جاتا ہے — ترقیات سے لے کر آپریشن تک۔ یہ اکثر ٹیسٹنگ کے دوران دریافت ہوتا ہے، کیونکہ QA انجینیئر دوہرائے جانے والے مناظر چلاتے ہیں جو یقینی طور پر ناکامی کا سبب بنتے ہیں۔

گرے اور رویٹر کے مطابق تعریف

گرے اور رویٹر کی درجہ بندی کے مطابق، Bohrbug ایک ایسا عیب ہے جو تین شرائط کو پورا کرتا ہے: انپٹ ڈیٹا کا ایک مقررہ سیٹ، سیسٹم کی ایک جیسی حالت، اور ناکامی کا ایک جیسا نتیجہ۔ اگر کم سے کم ایک شرط کی خلاف ورزی ہوتی ہے، تو بگ «بور» نہیں رہتا۔

مصنف اس بات پر زور دیتے ہیں کہ Bohrbug ضروری نہیں کہ ایک سادہ غلطی ہو۔ یہ منطق میں من مانہ پچیدہ ہو سکتا ہے، لیکن اس کی تعینیت اسے درجہ بندی میں دیگر تمام اقسام کی ناکامیوں سے ممیز کرتی ہے۔

Bohrbug نام کی اصل

Bohrbug کا نام ڈینش ماہر طبیعیات نیلز بور سے آیا ہے، جو ایٹم کے سیارہ ماڈل کے خالق ہیں۔ مشابہت سادہ ہے: جیسے بور کے ماڈل میں ایلیکٹران ایک سختی سے مقرر مدار پر چلتا ہے، اسی طرح یہ بگ ہر رن پر ایک جیسا رویہ دوہراتا ہے۔

گرے اور رویٹر نے تعینی غلطیوں کو افراطی غلطیوں سے ممیز کرنے کے لیے یہ نام چونا، جنہیں انہوں نے Mandelbug کا نام دیا — ریاضی دان بینوا مینڈلبروٹ کے اعزاز میں، جو فراکٹل تھیوری اور افراطی تھیوری کے بانی ہیں۔

دلچسپ بات یہ ہے کہ انگریزی ادب میں، Bohrbug کی مصطلح اکسر «تعینی غلطی» کے مترادف کے طور پر استعمال ہوتی ہے، حالانکہ یہ اردو دان ماحول میں کم عام ہے۔ اکثر ڈیولپر ان بگز کو صرف «دوبارہ پیدا کرنے والی غلطیاں» کۇہتے ہیں۔

Bohrbug کی اہم خصوصیات

Bohrbug میں ممایز خواص کا ایک سیٹ ہے جو اسے دیگر اقسام کے سافٹویئر عیوب کے درمیان پہچاننے میں مدد کرتا ہے۔ آئیے ہر خصوصیت کا مفصل جائزہ لیتے ہیں۔

تعینیت

Bohrbug کی اہم خصوصیت مکمل پیش قیاس پذیری ہے۔ اگر ایپلیکیشن ڈیولپر کے کمپیوٹر پر مخصوص انپٹ ڈیٹا کے ساتھ کریش ہوا، تو یہ ٹیسٹر کے کمپیوٹر اور پروڈکشن میں بھی ایسے ہی کریش ہوگا۔ کئی بھی تصادفی عوامل نہیں ہیں۔

دوبارہ پیدا کرنے کی صلاحیت

Bohrbug 100% کوششوں میں دوبارہ پیدا ہوتا ہے۔ اس کا مطلب ہے کہ ڈبگنگ کے لیے خاص اوزار کی ضرورت نہیں ہے — ایک معیاری IDE اور ڈبگر کافی ہے۔ ڈیولپر ایک بریک پوائنٹ لگاتا ہے، ایپلیکیشن شروع کرتا ہے، انپٹ ڈیٹا فراہم کرتا ہے، اور کوڈ کو مرحلہ وار گزرتا ہے۔

وقت کے ساتھ استحکام

اگر Bohrbug کو ٹھیک نہیں کیا جاتا، تو یہ ٹھیک ہونے تک پروگرام کے کسی بھی ورژن میں دوبارہ پیدا ہوتا رہے۔ وقتی عوامل — CPU لوڈ، چاند کا مرحلہ، دن کا وقت — اس کے ظاہر ہونے پر کئی اثر نہیں ڈالتے۔

Bohrbug کے اہم اسباب

Bohrbug کے اسباب کو کئی زمروں میں تقسیم کیا جا سکتا ہے۔ ان زمروں کو سمجھنا مسئلے کی جڑ کو تیزی سے کھوجنے میں مدد کرتا ہے۔

منطقی غلطیاں

غلط طریقے سے تعمیر کی گئی شرط Bohrbug کی سب سے عام وجہ ہے۔ مثال کے طور پر، ایک ڈیولپر نے `&&` کے بجائے `||` آپریٹر استعمال کیا، جس کی وجہ سے فنکشن کو مخصوص ارگومنٹس کے ساتھ کل کرنے پر کوڈ کی ایک شاخ گلط طریقے سے چلتی تھی۔

حد کی ضرورتات کی غلطیاں

`<=` کے بجائے `<` آپریٹر کا استعمال کرنا یا الٹ عکس صورت حال Bohrbug کا ایک کلاسیکی مخذ ہے۔ اگر ایک لوپ کو 10 مرتبہ چلنا چاہیے لیکن غلط شرط کی وجہ سے 11 مرتبہ چلتا ہے، تو یہ ایک تعینی غلطی ہے جو ہر رن پر ظاہر ہوگی۔

غلط مساتبت اور جادوئی اعداد

سخت کوڈ کی گئی مساتبت جو کاروبار منطق سے مطابقت نہیں کرتیں، مستقل ناکامیاں پیدا کرتی ہیں۔ مثال کے طور پر، سرور کنکشن ٹائم آؤٹ 5000 کے بجائے 100 ملی سیکنڈ پر مقرر کیا گیا — کنکشن ہر درخواست پر ٹوٹ جائے گا۔

کوڈ میں Bohrbug کا پتا کیسے لگایں

دیگر اقسام کے بگز کے مقابلے میں Bohrbug کا پتا لگانا ایک ڈیولپر کے لیے سب سے آسان کام ہے۔ تعینی فطرت معیاری ڈبگنگ کے طریقوں کو استعمال کرنے کی اجازت دیتی ہے۔

java
public class DiscountCalculator {
    public double calculate(double amount, boolean isPremium) {
        // بگ: پریمیم صارفین کو 10% کے بجائے 5% چھوٹ ملتی ہے
        if (isPremium) {
            return amount * 0.95;
        }
        return amount * 0.90;
    }
}

اس مثال میں، Bohrbug واضح ہے: `calculate(1000, true)` کو کل کرنے پر، طریقہ ہمیشہ 900 کے بجائے 950 واپس کرتا ہے۔ مقرر انپٹ ڈیٹا کے ساتھ ایک سادہ یونٹ ٹیسٹ فوراں مسئلے کو ظاہر کر دے گا۔

بنیادی طریقے کے طور پر یونٹ ٹیسٹنگ

Bohrbug کا پتا لگانے کے لیے، یونٹ ٹیسٹ سب سے مؤثر ذریعہ ہے۔ مختلف حد کی قیمتوں کے ساتھ ٹیسٹوں کے ایک سیٹ کے ساتھ فنکشن کو کور کرنا کافی ہے، اور تعینی غلطی پہلی ہی رن میں ظاہر ہو جائے گی۔

مرحلہ وار ڈبگنگ

جب Bohrbug کا پتا چل جاتا ہے، IDE میں مرحلہ وار ڈبگنگ جڑ کو تلاش کرنے کا سب سے بہترین طریقہ ہے۔ ڈیولپر فنکشن کے داخل پر ایک بریک پوائنٹ لگاتا ہے اور متغیرات کی قیمتوں کا مشاہدہ کرتے ہوئے ہر سطر سے گزرتا ہے۔

Bohrbug اور دیگر اقسام کے بگز میں فرق

Bohrbug ایک اہم خصوصیت — تعینیت کے ذریعہ دیگر اقسام کی سافٹویئر غلطیوں سے مختلف ہوتا ہے۔ آئیے ایک جدول میں موازنہ کرتے ہیں۔

بگ کی قسمدوبارہ پیدا کرنے کی صلاحیتوجہڈبگنگ کی پیچیدگی
Bohrbugایک جیسے انپٹ پر 100%منطقی غلطیکم
Mandelbugحالت پر منحصرتھریڈ ریس، ٹائمنگزیادہ
Schrödinbugکوڈ پڑھنے تک 0%غلطی کا احساسنفسیاتی
Hindenbugایک بارسلسلہ وار ناکامیانتہائی
Heisenbugڈبگ کرتے وقت بدلتا ہےکامپائلر اپٹیمائزیشندرمیانہ

Bohrbug واحد ایسا غلطی کی قسم ہے جسے قابو شدہ ضرورتات میں قابل اعتماد طور پر دوبارہ پیدا کیا جا سکتا ہے۔ یہ اسے تشخیص کے نقطہ نظر سے سب سے محفوظ بناتا ہے، لیکن صرف کرنے والے کے لیے کم خطرناک نہیں۔

Bohrbug اور Heisenbug کیوں خلط ہوتے ہیں

Heisenbug ایک ایسا بگ ہے جو اسے ڈبگ کرنے کی کوشش کرنے پر غائب ہو جاتا ہے۔ Bohrbug کے برعکس، Heisenbug کوڈ کے عمل کرنے کے اوقات میں تبدیلی کی وجہ سے ڈبگر میں دوبارہ پیدا نہیں ہو سکتا۔ نئے ڈیولپر اکسر ان دو قسموں کو خلط کر دیتے ہیں۔

کوڈ میں Bohrbug کی مثال

ایک ای کامرس ایپلیکیشن میں Bohrbug کی ایک حقیقی مثال دیکھیں۔ فنکشن ٹیکس سمیت آرڈر کی کل لاگت کا حساب لگاتا ہے۔

java
public double calculateTotal(double subtotal, double taxRate) {
    // بگ: ڈیولپر نے taxRate کو فیصد کے طور پر مقرر کیا
    // لیکن 100 سے تقسیم کرنا بھول گیا
    return subtotal + (subtotal * taxRate);
}

`calculateTotal(1000, 20)` کو کل کرنے پر، فنکشن متوقعہ 1200 کے بجائے 21000 واپس کرتا ہے۔ یہ ایک کلاسیکی Bohrbug ہے: ایک جیسے انپٹ ڈیٹا ہمیشہ ایک جیسے غلط نتیجے کی طرف لے جاتا ہے۔ اصلاح بہت سادہ ہے — 100 سے تقسیم شامل کریں۔

درست کردہ ورژن

اصلاح کے بعد، فنکشن ٹیکس کی شرح کو صحیح طور پر پروسیس کرتا ہے:

java
public double calculateTotal(double subtotal, double taxRatePercent) {
    return subtotal + (subtotal * taxRatePercent / 100.0);
}

یہ مثال واضح طور پر دیکھاتا ہے کہ Bohrbug ایک سادہ ریاضی غلطی کے نتیجے میں بھی ہو سکتا ہے۔ اسی لیے کوڈ کا جائزہ اور یونٹ ٹیسٹ اس قسم کے عیوب کی روکتھام کے اہم اوزار ہیں۔

اکثر پوچھے جانے والے سوالات

Bohrbug عام بگ سے کیسے مختلف ہے؟

Bohrbug عام بگ کی ایک قسم ہے جو سخت تعینیت سے متعین ہوتی ہے۔ ہر Bohrbug ایک بگ ہے، لیکن ہر بگ Bohrbug نہیں ہے۔ عام بگ غیر مستقل طور پر دوبارہ پیدا ہو سکتا ہے یا بیرونی عوامل پر منحصر ہو سکتا ہے۔

Bohrbug کو مستقل بگ کیوں کہا جاتا ہے؟

Bohrbug کو مستقل اس لیے کہا جاتا ہے کیونکہ یہ ایک جیسے انپٹ ڈیٹا کے ساتھ ہر رن پر دوبارہ پیدا ہو سکتا ہے۔ یہ خوبی اسے Mandelbug یا Heisenbug کے برعکس، پیش قیاس پذیر اور ڈبگنگ کے لیے آسان بناتی ہے۔

Bohrbug کی مصطلح کس نے ایجاد کی؟

Bohrbug کی مصطلح جیم گرے اور آنڈریاس رویٹر نے 1993 میں کتاب «Transaction Processing: Concepts and Techniques» میں ایجاد کی تھی۔ انہوں نے ماہرانه و طبیعی سائنس سے مشابہتیں استعمال کرتے ہوئے، تعینیت کی درجہ کے مطابق سافٹویئر غلطیوں کی درجہ بندی کی۔

Bohrbug کو جلدی کیسے ٹھیک کیا جائے؟

Bohrbug کو جلدی ٹھیک کرنے کے لیے: ٹیسٹ ماحول میں بگ کو دوبارہ پیدا کریں، ڈبگر میں کوڈ کو مرحلہ وار دیکھیں، غلط منطق والی سطر تلاش کریں، اور ایک یونٹ ٹیسٹ لکھیں جو صحیح رویہ کی تصدیق کرتا ہو۔

کیا Bohrbug پیچیدہ ہو سکتا ہے؟

ہاں، Bohrbug اپنے منطق میں من مانہ پیچیدہ ہو سکتا ہے۔ تعینیت کا مطلب سادگی نہیں ہے۔ بگ میں بہت سے شرائط اور انڈر کالز شامل ہو سکتے ہیں، لیکن اگر یہ مستقل طور پر دوبارہ پیدا ہوتا ہے — تو یہ Bohrbug ہے۔

خلاصہ

  • Bohrbug ایک تعینی سافٹویئر غلطی ہے جو ایک جیسے انپٹ ڈیٹا کے ساتھ 100% معاملات میں دوبارہ پیدا ہوتی ہے۔
  • نام ماہر طبیعیات نیلز بور سے آیا ہے، جس کا ایٹم ماڈل سخت مداروں پر مبنی ہے — بگ کے پیش قیاس پذیر رویہ کی ایک مشابہت۔
  • Bohrbug کے اہم اسباب: منطقی غلطیاں، غلط حد کی ضرورتات، ہجا کی غلطیاں اور غلط مساتبت۔
  • Bohrbug کی تشخیص اپنی تعینی فطرت کی وجہ سے تمام اقسام کے بگز میں سب سے آسان ہے۔
  • یونٹ ٹیسٹ اور کوڈ کا جائزہ ڈیولپمنٹ کے مرحلے پر Bohrbugs کو روکنے کے اہم اوزار ہیں۔
  • Mandelbug سے فرق: Bohrbug مستقل اور پیش قیاس پذیر ہے، Mandelbug افراطی اور نظام کی حالت پر منحصر ہے۔
  • سفارش: ایک مستقل بگ ملنے پر، ہمیشہ ایک ٹیسٹ لکھ کر شروع کریں جو اسے دوبارہ پیدا کرتا ہو۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں