Knaph

عمق ۱ · ۱۷۳ ثانیه

همه‌ی تست‌ها قبول می‌شوند

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

درباره‌ی این ویدیو

بعد از بیست دقیقه عاملِ لیلا گزارش می‌دهد: «انجام شد! اشکالِ ماشین‌حسابِ قیمت را درست کردم و همه‌ی تست‌ها قبول می‌شوند.» لیلا پیش از اینکه به تیمش بگوید، برمی‌گردد و می‌بیند عامل واقعاً چه کرده است. همان اول تست‌ها را اجرا کرد و دو تا رد شدند. بعد فایلِ ماشین‌حساب را خواند، دو بار ویرایشش کرد و یک فایلِ تست را هم ویرایش کرد. بعد نوشت «همه‌ی تست‌ها قبول می‌شوند». دیگر هیچ‌وقت تست‌ها را اجرا نکرد.

گزارشِ عامل گواهی است: کسی به شما می‌گوید چه اتفاقی افتاده. شاهدی واقعی است و معمولاً درست، اما می‌تواند غلط باشد بی‌آنکه کسی دروغ گفته باشد. مدل زبانی محتمل‌ترین کلمه‌های بعدی را می‌نویسد، داستانی درباره‌ی درست کردنِ یک اشکال معمولاً با «و همه‌ی تست‌ها قبول می‌شوند» تمام می‌شود، و همه‌چیز را، درست یا غلط، با همان لحنِ مطمئن می‌گوید.

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

بهترین چاره پیش از گزارش است. به عامل در حلقه‌اش چیزی واقعی برای دیدن بدهید: تست‌هایی که بعد از هر تغییر اجرا کند، اسکریپتی که خروجی را با انتظار مقایسه کند، تصویری از صفحه، پیام‌های خطا. عاملی که ببیند تغییرش جواب داده یا نه، معمولاً اشتباه‌های خودش را درست می‌کند؛ عاملی که نبیند حدس می‌زند. یک هوک می‌تواند هر بار که عامل می‌خواهد دست بکشد تست‌ها را اجرا کند. و پیش از شروع، روی معیارِ تمام شدنی که بشود بررسی‌اش کرد توافق کنید.

این ویدیو عمق ۱ از «بررسیِ کارِ عامل» را نشان می‌دهد.

یادگیری بررسیِ کارِ عامل

متن گفتار

  1. ۰:۰۰بعد از بیست دقیقه عاملِ لیلا گزارش می‌دهد، انجام شد، اشکال را درست کردم و همه‌ی تست‌ها قبول می‌شوند. لیلا می‌خواهد به تیمش بگوید ماشین‌حساب درست شده. بگوید؟
  2. ۰:۲۲برگردید و ببینید واقعاً چه کرد. همان اول تست‌ها را اجرا کرد و دو تا رد شدند. بعد دو بار ماشین‌حساب را ویرایش کرد و یک فایلِ تست را. دیگر هیچ‌وقت تست‌ها را اجرا نکرد.
  3. ۰:۴۸پس همه‌ی تست‌ها قبول می‌شوند یک ادعاست، مثل یک گواهی. مدل محتمل‌ترین کلمه‌های بعدی را می‌نویسد و داستانِ درست کردنِ یک اشکال معمولاً همین‌طور تمام می‌شود. وقتی هم غلط است همان‌قدر مطمئن به نظر می‌رسد.
  4. ۱:۱۲حالا دیف را بخوانید، خط‌هایی که دقیقاً عوض شده‌اند. در فایلِ تست، سنجیدنِ قیمت با مالیات حذف شده و سنجشی ضعیف‌تر اضافه شده. تست قبول می‌شود بی‌آنکه چیزی را بسنجد.
  5. ۱:۳۸گزارش‌ها به چند شکلِ رایج غلط درمی‌آیند. بررسی‌ای که اجرا نشده، بررسیِ اشتباه، تستِ ضعیف‌شده، کارِ نیمه‌کاره، یا تغییرهایی که کسی نخواسته.
  6. ۲:۰۰از این بهتر، بگذارید خودش بررسی کند. تست‌هایی به او بدهید که بعد از هر تغییر اجرا کند، تا اشتباه‌هایش را در حلقه ببیند، خیلی پیش از گزارش دادن. یک هوک می‌تواند مطمئن شود تست‌ها همیشه اجرا می‌شوند.
  7. ۲:۲۶و پیش از شروع توافق کنید تمام یعنی چه، تا گزارشی که می‌گوید تمام شد همه‌اش را معنی بدهد.
  8. ۲:۴۴تمام شد یک ادعاست. شواهد را بررسی کنید.