</>پیشگامان خلاقآکادمی و استودیو دیجیتال
دوره‌های برنامه‌نویسی

درس ۷ برنامه‌نویسی: خطایابی و تست با یک روش قابل تکرار

به‌جای حدس‌زدن، خطا را بازتولید، کوچک و با شواهد برطرف کنیم.

دراهنمای مرحله‌ای
به‌جای حدس‌زدن، خطا را بازتولید، کوچک و با شواهد برطرف کنیم.
دوره برنامه‌نویسی از صفر — درس ۷

درس ۷ برنامه‌نویسی: خطایابی و تست با یک روش قابل تکرار

به‌جای حدس‌زدن، خطا را بازتولید، کوچک و با شواهد برطرف کنیم.

راهنمای کاربردی • نوشتهٔ مجتبی خدابخشی
خطا نشانه شکست نیست؛ اطلاعاتی درباره فاصله رفتار واقعی و رفتار مورد انتظار است. برنامه‌نویس حرفه‌ای به‌جای تغییر تصادفی کد، یک فرایند منظم برای پیدا کردن علت دارد.

خطا را دقیق بازتولید کن

ورودی، مراحل انجام کار، نتیجه مورد انتظار و نتیجه واقعی را ثبت کن. اگر خطا هر بار تکرار نمی‌شود، زمان، دستگاه و وضعیت داده را نیز یادداشت کن.

مسئله را کوچک کن

بخش‌های نامرتبط را موقت کنار بگذار و مقدار متغیرها را در نقاط کلیدی ببین. اولین نقطه‌ای که داده از انتظار منحرف می‌شود معمولاً نزدیک علت اصلی است.

  • پیام خطا را کامل بخوان.
  • آخرین تغییر را بررسی کن.
  • فرضیه را با یک آزمایش بسنج.
  • پس از اصلاح، تست بازگشتی انجام بده.

تمرین این درس

در پروژه هزینه، عمداً یک ورودی صفر، مقدار منفی و متن وارد کن. رفتار مورد انتظار را تعریف و برای هرکدام یک تست کوچک بساز تا برنامه بدون پیام مبهم شکست نخورد.

پرسش‌های متداول

چرا با تغییر چند خط هم‌زمان خطا سخت‌تر می‌شود؟

نمی‌دانی کدام تغییر نتیجه را عوض کرده است؛ هر فرضیه را با کمترین تغییر ممکن آزمایش کن.

تست دستی کافی است؟

برای شروع مفید است، اما تست خودکار رفتار مهم را در تغییرات بعدی سریع و تکرارپذیر کنترل می‌کند.

جمع‌بندی

بازتولید، کوچک‌سازی، ساخت فرضیه و آزمایش چهار قدم خطایابی‌اند. اصلاح خوب همراه تستی است که جلوی بازگشت همان مشکل را بگیرد.

</>
بخش عملی این مطلب

از مفهوم تا استفاده واقعی

Programming basics
به زبان ساده

برنامه‌نویسی یعنی تبدیل یک مسئله مبهم به ورودی، چند تصمیم روشن و یک خروجی قابل بررسی. زبان مهم است، اما روش حل مسئله مهارتی است که میان همه زبان‌ها مشترک می‌ماند.

یک مثال از دنیای واقعی

یک فروشگاه محلی می‌خواهد سفارش‌های بالاتر از ۵۰۰ هزار تومان را رایگان ارسال کند. مسئله واقعی را می‌توان به دریافت مبلغ سفارش، بررسی شرط و نمایش هزینه ارسال تقسیم کرد.

function shippingCost(orderTotal) {
  if (orderTotal >= 500000) return 0;
  return 45000;
}

const total = 620000;
console.log(`هزینه ارسال: ${shippingCost(total)} تومان`);
تمرین ۲۰ دقیقه‌ای

حالا نوبت توست

شرط دیگری اضافه کن تا سفارش‌های کمتر از ۱۰۰ هزار تومان پذیرفته نشوند و یک پیام روشن نمایش داده شود.

  1. نمونه را یک‌بار اجرا یا بازنویسی کن.
  2. تغییر خواسته‌شده را بدون کپی کامل انجام بده.
  3. خروجی را با انتظار خودت مقایسه کن.
  4. در یک جمله توضیح بده چرا راه‌حل کار کرد.
سه نکته‌ای که باید یادت بماند
۱

اول مسئله و خروجی مورد انتظار را روشن کن؛ بعد ابزار را انتخاب کن.

۲

نمونه کوچکِ کامل از پروژه بزرگِ نیمه‌تمام بیشتر به یادگیری کمک می‌کند.

۳

کد را فقط نخوان؛ تغییرش بده، خطا بساز و دلیل نتیجه را توضیح بده.

این مسیر را ادامه بده

تمرین این صفحه را انجام بده، نتیجه را برای خودت توضیح بده و بعد سراغ درس مرتبط بعدی برو.

انتخاب مسیر بعدی ←