راهنمای کارفرما به‌روزرسانی ۱۴۰۵/۰۵/۲۷ ۱۲ دقیقه

تدوین و انتشار توسط

گزارش تست خودکار در پروژه .NET؛ کارفرما چه مدرکی باید تحویل بگیرد؟

قبول‌شدن چند تست به‌تنهایی کیفیت پروژه را اثبات نمی‌کند. گزارش معتبر باید مشخص کند چه نسخه‌ای از کد، در کدام محیط و با چه مجموعه تستی اجرا شده، چه مواردی شکست خورده یا نادیده گرفته شده و لاگ و Artifact هر اجرا کجاست.

تصویر راهنمای گزارش تست خودکار در پروژه .NET؛ کارفرما چه مدرکی باید تحویل بگیرد؟

پاسخ کوتاه

کارفرما باید علاوه بر کد تست‌ها، دستور اجرای محلی، تنظیمات CI، نتیجه هر Build با وضعیت Pass/Fail/Skipped، مدت اجرا، خطا و Stack Trace، شناسه Commit و محیط اجرا، Artifactهای لازم، سیاست نگهداری نتایج و فهرست تست‌های ناپایدار یا بدهی‌های شناخته‌شده را تحویل بگیرد. گزارش تست مدرک قابل پیگیری است؛ تضمین نبود خطا یا جایگزین UAT و بررسی امنیتی نیست.

نتیجه تست بدون شناسه Commit، محیط اجرا و نسخه وابستگی‌ها قابل بازتولید نیست.
تست ناپایدار نباید بی‌صدا Ignore شود؛ باید مالک، علت، وضعیت و مهلت اصلاح داشته باشد.
گزارش فنی تست و پذیرش کسب‌وکار دو مدرک مکمل با هدف‌های متفاوت‌اند.

بسته شواهد تست باید چه چیزهایی داشته باشد؟

گزارش اجرای تست

حداقل اطلاعات
Pass، Fail، Skip، مدت و پیام خطا
کاربرد برای کارفرما
تشخیص وضعیت واقعی Build

شناسه اجرا

حداقل اطلاعات
Commit، Branch، Build و زمان
کاربرد برای کارفرما
اتصال نتیجه به نسخه تحویلی

زمینه اجرا

حداقل اطلاعات
سیستم‌عامل، Runtime، تنظیمات و محیط
کاربرد برای کارفرما
بازتولید خطا و مقایسه اجراها

Artifact و Log

حداقل اطلاعات
TRX، خروجی کنسول، Dump یا Screenshot لازم
کاربرد برای کارفرما
تحلیل ریشه شکست

کد و دستور اجرا

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

تعداد تست کافی نیست؛ پوشش ریسک مهم است

عدد کل تست بدون دانستن ریسک‌های پوشش‌داده‌شده می‌تواند گمراه‌کننده باشد. برای هر جریان حیاتی مشخص کنید کدام لایه آن را کنترل می‌کند و اگر تست خودکار مناسب نیست، چه کنترل دستی یا مانیتورینگی جای آن را می‌گیرد.

  • Unit Test برای منطق کوچک و سریع با وابستگی محدود
  • Integration Test برای دیتابیس، صف، فایل، API و قرارداد بین سرویس‌ها
  • API یا Contract Test برای ورودی، خروجی، خطا و سازگاری نسخه‌ها
  • UI یا End-to-End Test فقط برای جریان‌های ارزشمند و پرریسک
  • UAT برای اثبات تناسب رفتار سامانه با سناریوی کسب‌وکار

Quality Gate را قابل اندازه‌گیری و استثناها را شفاف کنید

تست شکست‌خورده

قاعده نمونه
Build یا انتشار متوقف شود
نکته تصمیم
استثنا فقط با تأیید و دلیل ثبت‌شده

تست Skip شده

قاعده نمونه
تعداد و علت در گزارش دیده شود
نکته تصمیم
Skip دائمی بدهی پنهان ایجاد می‌کند

تست ناپایدار

قاعده نمونه
مالک، Issue و تاریخ بازبینی داشته باشد
نکته تصمیم
تکرار خودکار نباید شکست واقعی را پنهان کند

زمان اجرا

قاعده نمونه
افزایش غیرعادی هشدار بدهد
نکته تصمیم
کندشدن تست بازخورد تیم را عقب می‌اندازد

پوشش کد

قاعده نمونه
روند و نواحی پرریسک بررسی شود
نکته تصمیم
یک درصد ثابت به‌تنهایی کیفیت را ثابت نمی‌کند

نکته: آستانه‌ها باید متناسب با نوع سامانه و ریسک قرارداد تعریف شوند. این اعداد را از پروژه دیگر کپی نکنید.

Microsoft Testing Platform چه کمکی به گزارش‌دهی می‌کند؟

Microsoft Testing Platform امکان تولید و انتشار گزارش را با افزونه‌ها و تنظیمات مشخص فراهم می‌کند. در نسخه ۲.۳، گزارش TRX هنگام اجرا روی دیسک Stream می‌شود تا در صورت Crash شدن Test Host نیز نتایج ثبت‌شده حفظ شوند.

نمایش نتیجه در GitHub Actions یا Azure Pipelines خودکار و پیش‌فرض نیست؛ بسته و پیکربندی مربوط باید در پروژه و Pipeline وجود داشته باشد. بنابراین نسخه Platform، بسته‌ها و پارامترهای اجرا باید جزو مستند تحویل باشند.

چک‌لیست تحویل تست به کارفرما یا تیم بعدی

  • کد تست‌ها و تاریخچه آن در مخزن تحت مالکیت کارفرما
  • دستور اجرای محلی و CI برای هر مجموعه تست
  • تعریف داده آزمایشی، Secretهای لازم و روش امن تزریق آن‌ها
  • تنظیمات Pipeline، Quality Gate و دسترسی مشاهده نتایج
  • سیاست نگهداری گزارش‌ها، Logها و Artifactها
  • فهرست تست‌های ناپایدار، موارد Skip و بدهی‌های شناخته‌شده
  • گزارش آخرین اجرای موفق روی Commit نسخه تحویلی
  • مرزبندی روشن میان تست خودکار، UAT، تست کارایی و بررسی امنیتی

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

آیا ۱۰۰ درصد Coverage یعنی نرم‌افزار بدون خطاست؟

خیر. Coverage فقط نشان می‌دهد چه بخش‌هایی هنگام تست اجرا شده‌اند و کیفیت Assertها، سناریوهای مرزی، یکپارچگی و نیاز کسب‌وکار را تضمین نمی‌کند.

فایل TRX برای تحویل کافی است؟

TRX مفید است، اما بدون Commit، محیط، فرمان اجرا، Logها، تنظیمات Pipeline و کد تست امکان بازتولید و نگهداری محدود می‌شود.

تست ناپایدار را می‌توان دوباره اجرا کرد تا سبز شود؟

تکرار می‌تواند برای تشخیص موقت مفید باشد، اما نباید شکست را پنهان کند. تست باید به‌عنوان Flaky ثبت شود، مالک و Issue داشته باشد و اثر آن بر انتشار روشن باشد.

گزارش تست جای UAT را می‌گیرد؟

خیر. تست فنی رفتار قابل برنامه‌ریزی را بررسی می‌کند؛ UAT تأیید می‌کند نسخه تحویلی سناریو و معیار پذیرش کسب‌وکار را برآورده کرده است.

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

منابع و مبنای تدوین

این راهنما با استفاده از مستندات فنی و منابع تخصصی زیر تدوین شده است. تصمیم نهایی هر پروژه باید با داده‌ها، قرارداد و شرایط واقعی همان سازمان تطبیق داده شود.

کیفیت نسخه تحویلی را با شواهد قابل بازتولید بررسی کنید

مخزن، Pipeline و گزارش‌های فعلی را توضیح دهید تا شکاف‌های تست، تحویل و Quality Gate مشخص شود.

درخواست بررسی کیفیت پروژه