نان مرموز

هدف یک تیم QA، انجام تست‌های خوب نیست.

همچنین هدف، تست کردن موارد درست به روش درست نیست.

هدف واقعی، کمک به تیم‌ها برای ساخت نرم‌افزاری است که کار می‌کند. تست کردن یکی از ابزارهای رسیدن به این هدف است؛ اما تنها ابزار نیست و اغلب بهترین ابزار هم نیست.

بسیاری از شرکت‌ها فقط بر تست و پوشش (coverage) تمرکز می‌کنند. این یک اشتباه است.

تست کاربردهای خاصی دارد:

  • تست‌های خودکار، بازخورد سریعی درباره عملکردهای مهم ارائه می‌دهند.
  • تست اکتشافی (Exploratory testing) به شما کمک می‌کند بفهمید نرم‌افزار چگونه رفتار می‌کند.

با این حال، بسیاری از تیم‌ها از تست برای اصلاح همه چیز استفاده می‌کنند. آن‌ها از آن برای پر کردن شکاف‌های ناشی از برنامه‌ریزی ضعیف استفاده می‌کنند. آن‌ها از آن برای جایگزینی مانیتورینگ (monitoring) و مشاهده‌پذیری (observability) استفاده می‌کنند.

تکیه بر پوشش تست (test coverage) به عنوان سیگنال اصلی کیفیت، مانند تلاش برای شکل دادن به نان پس از خارج شدن از فر است.

نرم‌افزار خود را مانند نان تصور کنید. مواد اولیه چیزهایی هستند که قبل از نوشتن کد به آن‌ها نیاز دارید:

  • تعریف دقیق از آنچه نرم‌افزار باید انجام دهد.
  • توافق بر سر اینکه کیفیت چگونه باید باشد.
  • درک ریسک‌ها و محدودیت‌ها.

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

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

پوشش تست به شما می‌گوید کجا را بررسی کرده‌اید، اما به شما نمی‌گوید که آیا آنچه بررسی کرده‌اید اهمیت دارد یا خیر. عدد ۸۰٪ پوشش به این معنا نیست که نرم‌افزار شما باکیفیت است؛ بلکه ممکن است فقط به این معنا باشد که تست‌های بی‌فایده زیادی دارید.

دست از دنبال کردن اعداد پوشش بردارید. در عوض، این سوالات را بپرسید:

  • رفتار نرم‌افزار ما در کجا ناشناخته است؟
  • سریع‌ترین راه برای فهمیدن آن چیست؟

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

اکثر نرم‌افزارها در نهایت دچار خطا می‌شوند. وقتی این اتفاق می‌افتد، باید سریع متوجه شوید. مانیتورینگ محیط عملیات (Production monitoring) قبل از کاربران، به شما می‌گوید که مشکلی وجود دارد. تست کردن نمی‌تواند این کار را با هزینه کم انجام دهد.

هوش مصنوعی این موضوع را حتی دشوارتر می‌کند. اکنون می‌توانید بدون هیچ درک واقعی، کد و تست تولید کنید. اعداد پوشش بالا می‌روند، اما کیفیت پایین می‌ماند. شما مرحله خمیر را نادیده می‌گیرید و مستقیماً به سراغ فر می‌روید.

تست کردن وسیله‌ای برای رسیدن به هدف است. پوشش فقط یک معیار جایگزین (proxy) است. کار واقعی در مرحله خمیر انجام می‌شود. آن مرحله را نادیده نگیرید.

Source: https://dev.to/susanne_abdelrahman/mystery-bread-2526

Optional learning community: https://t.me/GyaanSetuAi