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

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

در این مطلب در نظر دارم نگاه مختصری به یک محیط آزمون برای نرم‌افزار داشته باشیم:

محیط آزمون نرم‌افزار چیست؟

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

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

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

پس همیشه به هنگام آغاز یه پروژه نرم‌افزاری از همان ابتدا حواستون به آزمون درست و حسابی محصول نهایی باشه