
تست پذیرش کاربر یا UAT باید نشان دهد کاربران واقعی میتوانند کار مورد توافق را با نرمافزار انجام دهند؛ نه اینکه فقط صفحهها باز میشوند یا برنامه بدون خطای فنی ساخته شده است. پیش از راهاندازی، محدوده نسخه، سناریوهای کاری، داده آزمون، مسئول تأیید و شرایط توقف را مشخص کنید. خروجی این مرحله باید یک تصمیم مستند باشد: آماده بهرهبرداری، آماده با محدودیت پذیرفتهشده، یا نیازمند اصلاح و آزمون مجدد.
این راهنما برای مدیرانی است که نرمافزار سفارشی سفارش دادهاند و نمیخواهند تأیید نهایی به یک جلسه نمایش محصول محدود شود. چکلیست زیر الگوی پیشنهادی برای پروژه سازمانی است، نه استاندارد اجباری یا جایگزین مفاد قرارداد. جزئیات آن باید با ریسک، کاربران و فرایند واقعی شما تنظیم شود.
UAT با تست فنی و نمایش محصول فرق دارد
تیم فنی بررسی میکند اجزای سیستم مطابق طراحی کار کنند؛ کاربران کسبوکار بررسی میکنند نتیجه برای کار واقعی قابل استفاده باشد. ممکن است ثبت سفارش از نظر فنی موفق باشد، اما مسئول فروش نتواند سفارش برگشتی را اصلاح کند یا مدیر شعبه گزارش مربوط به شعبه خودش را پیدا نکند. چنین محصولی لزوماً آماده استفاده روزمره نیست.
در یک جلسه دمو، ارائهدهنده معمولاً مسیر آماده و داده تمیز را انتخاب میکند. در پذیرش، کاربر با نقش خودش، سناریوی مشخص و نتیجه قابل مقایسه کار میکند. معرفی رسمی حوزه آزمون پذیرش در ISTQB نیز بر همکاری مالک محصول، تحلیلگر کسبوکار و آزمونگر تأکید دارد. این مقاله از آن برای توضیح جایگاه پذیرش استفاده میکند؛ چکلیست اجرایی ادامه، پیشنهاد مستقل برای مدیریت پروژه است.
۱. معلوم کنید دقیقاً چه نسخهای را تحویل میگیرید
پیش از شروع، نام نسخه، تاریخ آمادهسازی، قابلیتهای داخل محدوده و موارد خارج از آن را ثبت کنید. اگر تیم هنگام آزمون مرتب قابلیت تازه اضافه کند، نتیجهها به نسخههای متفاوت مربوط میشوند و تأیید نهایی مبهم خواهد شد. تغییر ضروری ممکن است، اما باید مشخص باشد کدام سناریو بعد از آن دوباره اجرا میشود.
مبنای پذیرش، نیازمندی و توافق روشن است. جمله «سیستم باید کامل باشد» معیار قابل سنجش نیست. بهتر است بگویید کاربر مجاز میتواند سفارش را ثبت کند، مسئول مربوط آن را تأیید کند و گزارش، وضعیت نهایی را درست نشان دهد. برای آمادهکردن این مبنا، چکلیست RFP نرمافزار کمک میکند انتظارها پیش از انتخاب پیمانکار قابل مقایسه شوند.
۲. نماینده هر نقش کاری را وارد آزمون کنید
تأیید یک مدیر بهتنهایی لزوماً به معنی قابل استفادهبودن نرمافزار برای همه واحدها نیست. کسی که سفارش ثبت میکند، کسی که تأیید میکند و کسی که گزارش میگیرد، تجربههای متفاوت دارند. نماینده هر نقش باید سناریوهای مرتبط خودش را اجرا کند؛ حساب مدیر سیستم جای این نقشها را نمیگیرد.
همچنین مسئول تصمیم نهایی را از مسئول ثبت نتیجه جدا کنید. آزمونگر میتواند ایراد را ثبت کند، اما پذیرش ریسک باقیمانده باید توسط فرد دارای اختیار کسبوکار انجام شود. زمان حضور کاربران، جانشین آنها و مسیر رفع ابهام را از قبل هماهنگ کنید تا آزمون در پایان پروژه به کاری بدون صاحب تبدیل نشود.
۳. شرایط ورود به آزمون را تعریف کنید
کاربران نباید اولین کسانی باشند که خطای ورود یا خرابی ابتدایی فرم را کشف میکنند. پیش از دعوت آنها، مسیرهای اصلی باید توسط تیم تحویل بررسی شده باشد، حسابهای آزمون آماده باشند و راهنمای کوتاه استفاده وجود داشته باشد. موارد شناختهشده را نیز اعلام کنید؛ پنهانکردن ایراد فقط زمان کاربران را هدر میدهد.
محیط آزمون باید از نظر تنظیمات مؤثر بر رفتار، به محیط هدف نزدیک باشد. در عین حال، پرداخت واقعی، پیامک مشتری یا تغییر اطلاعات عملیاتی نباید ناخواسته اجرا شود. اگر یک اتصال شبیهسازی شده است، این محدودیت را در گزارش بنویسید. عبور از آزمون با سرویس شبیهسازیشده، اثبات کارکرد اتصال واقعی نیست.
۴. سناریو را از کار واقعی بسازید، نه از فهرست دکمهها
«روی دکمه ذخیره کلیک کن» بهتنهایی سناریوی پذیرش نیست. سناریو باید هدف داشته باشد؛ مثلاً «درخواست خرید ثبتشده توسط شعبه، پس از رد اولیه اصلاح و دوباره برای تأیید ارسال شود». پیششرط، نقش، داده، مراحل و نتیجه مورد انتظار را بنویسید تا فرد دیگری هم بتواند آن را تکرار کند.
برای هر فرایند مهم، مسیر عادی و چند استثنای معنادار در نظر بگیرید: داده ناقص، رد درخواست، لغو، دوبار کلیککردن، قطع ارتباط و بازگشت به کار نیمهتمام. هدف تولید صدها مورد مشابه نیست؛ هدف پوشش موقعیتهایی است که توقف یا اشتباه در آنها برای کسبوکار هزینه دارد.
نمونه برگه سناریوی قابل استفاده
شناسه سناریو: خرید شعبه. نقشها: درخواستکننده و تأییدکننده. پیششرط: هر دو حساب فعالاند و به همان شعبه تعلق دارند. اقدام: ثبت درخواست، رد با توضیح، اصلاح مقدار و ارسال دوباره. انتظار: تاریخچه رد حفظ شود، مقدار جدید نمایش داده شود و فقط تأییدکننده مجاز بتواند تصمیم نهایی بگیرد.
در بخش نتیجه، وضعیت اجرا، نسخه نرمافزار، تاریخ، مدرک و شناسه ایراد را ثبت کنید. اگر سناریو به دلیل آمادهنبودن داده اجرا نشده، آن را «اجرانشده» بنویسید، نه موفق. جداکردن موفق، ناموفق، مسدود و اجرانشده، تصویری واقعیتر از آمادگی میدهد.
۵. داده آزمون باید نماینده مسئله باشد
دادههای کوتاه و مرتب بسیاری از ایرادها را پنهان میکنند. نام طولانی، توضیح فارسی همراه عدد و عبارت انگلیسی، مقدار مرزی و رکورد مرتبط با چند واحد را هم در نمونهها بیاورید. از اطلاعات ساختگی یا بینامشده استفاده کنید و دسترسی به داده آزمون را متناسب با حساسیت آن محدود نگه دارید.
اگر پروژه شامل انتقال داده است، پذیرش رفتار نرمافزار را با صحت مهاجرت یکی ندانید. ممکن است فرم درست کار کند اما ماندهها یا ارتباط رکوردهای منتقلشده اشتباه باشند. راهنمای اعتبارسنجی مهاجرت داده به این بررسی مستقل میپردازد؛ نتیجه آن باید یکی از ورودیهای تصمیم راهاندازی باشد.
۶. خروجی نهایی و دسترسیها را هم کنترل کنید
پایان سناریو فقط پیام «با موفقیت ذخیره شد» نیست. بررسی کنید رکورد در جستوجو پیدا میشود، گزارش مربوط آن را نشان میدهد و وضعیت برای نقش بعدی درست است. اگر سیستم خروجی فایل یا چاپ دارد، نتیجه را با داده ورودی مقایسه کنید؛ ظاهر مناسب گزارش، تضمین صحت جمع یا فیلتر نیست.
آزمون منفی دسترسی را فراموش نکنید: کاربر شعبه دیگر نباید فقط به دلیل دانستن آدرس صفحه، اطلاعات را ببیند یا تغییر دهد. بررسی نقشها در UAT جای ارزیابی امنیت تخصصی را نمیگیرد، اما میتواند مغایرت مهم با انتظار کسبوکار را نشان دهد. هر دو نوع بررسی باید جای مشخص خود را داشته باشند.
۷. شدت ایراد را از اولویت اصلاح جدا کنید
شدت، اثر ایراد را توصیف میکند؛ اولویت، ترتیب رسیدگی را. ازکارافتادن مسیر اصلی، نمایش داده برای نقش نامجاز و خرابشدن اطلاعات با ناهماهنگی کوچک در فاصله متن همسطح نیستند. طبقهبندی باید پیش از جلسه نهایی توافق شود تا نزدیک موعد انتشار، تعریف ایراد مهم بهدلخواه تغییر نکند.
برای هر ایراد، مراحل تکرار، انتظار، نتیجه واقعی، نسخه و شواهد کافی ثبت کنید. اگر راهحل موقت وجود دارد، مشخص کنید چه کسی و با چه محدودیتی آن را اجرا میکند. عبارت «فعلاً دستی انجام میدهیم» بدون مسئول، حجم کار و زمان پایان، برنامه قابل اتکایی نیست.
۸. اصلاح را با آزمون مجدد ببندید
وضعیت «توسعهدهنده اصلاح کرد» با «کاربر دوباره آزمود و تأیید کرد» فرق دارد. بعد از اصلاح، همان سناریو را روی نسخه جدید اجرا و نتیجه را ثبت کنید. اگر تغییر روی قسمت مشترکی مانند محاسبه، ورود یا سطح دسترسی اثر دارد، مسیرهای مرتبط هم باید در دامنه بازآزمون قرار گیرند.
نسخه قبلی نتیجهها را پاک نکنید. سابقه نشان میدهد چه مسئلهای پیدا شده، چه تغییری داده شده و چه کسی رفع آن را پذیرفته است. این ردگیری هنگام اختلاف یا بازگشت خطا مفید است و از تکرار بحثهایی که قبلاً حل شدهاند جلوگیری میکند.
۹. معیار خروج را قبل از پایان زمان بنویسید
«مهلت تمام شده» معیار موفقیت نیست. برای نسخه خود مشخص کنید کدام سناریوها باید حتماً موفق باشند، چه نوع ایرادی مانع انتشار است و چه محدودیتی فقط با پذیرش مسئول مربوط قابل باقیماندن است. عدد عمومی مانند موفقیت درصد مشخصی از آزمونها، بدون توجه به اهمیت سناریوها گمراهکننده است.
یک مسیر اصلی ناموفق ممکن است از دهها اصلاح ظاهری مهمتر باشد. گزارش جمعبندی باید پوشش نقشها، سناریوهای حیاتی، موارد اجرانشده و ریسکهای باز را نشان دهد. اگر انتشار تدریجی انتخاب شده، معیار خروج باید برای همان دامنه تعریف شود؛ راهنمای تحویل مرحلهای نرمافزار به انتخاب دامنه هر مرحله کمک میکند.
۱۰. پذیرش کاربر را با آمادگی بهرهبرداری جمعبندی کنید
موفقیت کاربران در محیط آزمون، بهتنهایی آمادهبودن انتشار را ثابت نمیکند. آموزش، پاسخگویی پشتیبانی، کنترل اتصالهای واقعی، مسئولیت راهاندازی و روش بازگشت در صورت مشکل نیز باید روشن باشد. اینها بررسیهای عملیاتی مکمل هستند، نه اینکه همه را زیر عنوان UAT پنهان کنیم.
صورتجلسه نهایی بهتر است نسخه، محدوده پذیرفتهشده، نتیجه آزمونهای حیاتی، محدودیتها، صاحب هر اقدام باز و تصمیم انتشار را ثبت کند. اگر تصمیم مشروط است، شرط باید قابل بررسی باشد. اثر این صورتجلسه بر پرداخت یا تعهدات قراردادی را بر اساس قرارداد خود بررسی کنید؛ این الگو توصیه حقوقی نیست.
مثال: پذیرش نرمافزار درخواست خدمات داخلی
فرض کنید کارکنان خرابی تجهیزات را ثبت میکنند، سرپرست اولویت میدهد و کارشناس نتیجه رسیدگی را مینویسد. سناریوی عادی از ثبت تا بستهشدن درخواست اجرا میشود. سپس رد، بازگشایی، تغییر مسئول و تلاش کاربر غیرمجاز نیز بررسی میشوند. گزارش نهایی باید وضعیتهای مختلف را درست بشمارد، نه اینکه صرفاً تعداد رکوردها برابر باشد.
در آزمون مشخص میشود درخواست بازگشاییشده در کارتابل کارشناس ظاهر نمیشود. این مشکل برای این سازمان مانع استفاده از یک مسیر ضروری است؛ بنابراین نباید با عنوان «ایراد گزارش» کماهمیت ثبت شود. پس از اصلاح، مسیر بازگشایی و فیلتر کارتابل دوباره اجرا میشوند. این مثال فرضی است و نتیجه یک پروژه واقعی را ادعا نمیکند.
پرسشهای رایج پیش از تأیید نهایی
آیا همه کاربران باید آزمون کنند؟
لزوماً نه؛ اما نقشها و شرایط کاری مهم باید نماینده مناسب داشته باشند. انتخاب فقط کاربران مسلط یا فقط مدیران ممکن است مسئلههای روزمره را پنهان کند. نمونه کاربران را بر اساس فرایند و ریسک انتخاب کنید، نه صرفاً در دسترسبودن افراد.
اگر ایراد کوچک باقی مانده باشد، انتشار ممنوع است؟
تصمیم به اثر ایراد، محدوده انتشار و معیارهای توافقشده بستگی دارد. ایراد باقیمانده را ثبت کنید و برای آن مسئول و برنامه روشن داشته باشید. نباید پذیرش مشروط، راهی برای نادیدهگرفتن مسیر حیاتی ناموفق باشد.
جمعبندی: تأیید را به شواهد متصل کنید
چکلیست پذیرش نرمافزار زمانی ارزش دارد که کاربر واقعی، نسخه معلوم و نتیجه قابل مشاهده به هم متصل باشند. سناریوهای حیاتی را پیش از جلسه نهایی بنویسید، ایرادها را با اثر کسبوکار بسنجید و پس از اصلاح بازآزمون کنید. در پایان، تصمیم و محدودیتها باید برای همه طرفها روشن باشد.
اگر در آستانه سفارش یا تحویل سامانه هستید، درباره روش پذیرش همانقدر زود صحبت کنید که درباره قابلیتها و زمانبندی صحبت میکنید. در خدمات توسعه نرمافزار سفارشی ایزیساز، میتوانید نیاز پروژه را همراه با سناریوهای کاری و معیار تحویل مطرح کنید تا نتیجه مورد انتظار از ابتدا قابل بررسی باشد.