در این مقاله قصد داریم به اصول و مبانی تست نرم افزار بپردازیم، شامل: تست نرمافزار چیست و چرا نرمافزار باید تست شود، هدف از تست نرم افزار چیست خواهیم پرداخت.
تست نرم افزار چیست؟
همانطور که میدانید، نرمافزار در تمام جنبههای زندگی انسان تأثیرگذار بوده است؛ از گوشیهای همراه و ماشینهای هوشمند گرفته تا دستگاههای موجود در بیمارستانها و خدمات درمانی. همهی ما تجربهی کار با نرمافزارهایی با کاربری راحت را داریم تا نرمافزارهایی که دائماً دچار مشکل میشوند و تجربهی کاربری خوبی ارائه نمیدهند. بسیاری از سازمانها و شرکتها به همین دلیل ضررهای مالی زیادی را متحمل شدهاند و برخی از این سازمانها و شرکتها به همین دلایل حذف شدهاند. در برخی موارد نیز این نرمافزارهای مشکلدار باعث خسارتهای جانی شدهاند.
اصول و مبانی تست نرم | تست نرم افزار فقط شامل اجرای تست نمی شود
یکی از دیدگاههای اشتباه نسبت به تست نرمافزار این است که زمانی که یک نرمافزار تست شود، فرآیند تست به اتمام رسیده است. با اینکه اجرای موارد تست یکی از مهمترین گامهای فرآیند تست نرمافزار است، اما در فرآیند تست نرمافزار گامهای بیشتری جهت پیشبرد تست نرمافزار وجود دارد که شامل برنامهریزی تست نرمافزار، تولید و ارائهی گزارش تست و فرآیندهای دیگری میشود که در آینده به بررسی این موارد بهصورت دقیقتر خواهیم پرداخت.
صحت سنجی و اعتبار سنجی نرم افزار (verification در مقابل validation)
یکی دیگر از دیدگاههای اشتباه در حوزهی تست نرمافزار این است که در صورتی که یک محصول نرمافزاری بهدرستی تولید و تست شود، این محصول نرمافزاری قابل ارائه خواهد بود. در صورتی که هرچند نرمافزار تولید شده مطابق ویژگیهای طراحی شده پیادهسازی شده باشد و نسبت به این ویژگیها تست شده باشد، الزامی بر پاسخگویی به نیازهای کاربران نیست. بهطور دقیقتر، در صورتی که نرمافزار تولید شده بهدرستی عمل کند اما نیازهای کاربر نهایی را پاسخگو نباشد، در نهایت این نرمافزار یک نرمافزار بیکیفیت خواهد بود.
اعتبارسنجی نرمافزار (Verification) در واقع تست نرمافزار بر اساس ویژگیها و مشخصات (Specifications) تولید شده از فاز تحلیل توسعهی نرمافزار است و صحتسنجی (Validation) مطابقت نرمافزار پیادهسازی شده با نیازمندیهای نرمافزار است.
اهداف اصلی تست نرم افزار
در واقع اهداف تست نرم افزار را می توان به دسته های زیر تقسیم بندی نمود:
- ارزیابی خروجیهای تولید شده در زمان توسعهی نرمافزار که این خروجیها شامل نیازمندیها، User Storyها، طراحی انجام شده و کیفیت کد تولید شده است که با استفاده از روشهای ایستا تست نرمافزار مثل روش بررسی خروجیها (Reviews) این خروجیها مورد تست قرار میگیرند.
- تأیید اینکه آیا تمامی نیازمندیها پاسخ داده شده است یا خیر
- اعتبارسنجی پاسخگویی تست به نیازهای ذینفعان پروژه.
- بهبود اطمینان از کیفیت محصول تولید شده، بهعنوان مثال تستهای High Risk پاسخ داده شوند و Pass شوند و تستهایی که Pass نمیشوند مورد تأیید ذینفعان پروژه قرار گیرد.
- جلوگیری از Defectهای نرمافزاری، بهعنوان مثال اگر خطایی در جمعآوری نیازمندیها و یا مستندات طراحی وجود داشته باشد، با شروع زودهنگام فرآیند تست و با استفاده از Review کردن خروجیها زودتر میتوان از توسعهی خطاها در فرآیند توسعهی کد نرمافزار جلوگیری کرد.
- یافتن Failureها و Defectهای نرمافزاری، معمولاً تمرکز اصلی تست نرمافزار این هدف است.
- ارائهی اطلاعات کافی به ذینفعان تا بتوانند تصمیمات آگاهانهتری اتخاذ کنند، مخصوصاً در حوزهی میزان کیفیت محصول تولید شده. بهعنوان مثال با پاسخگویی به سنجههای ورود و خروج از تست
- کاهش ریسک نرمافزار بیکیفیت (بهعنوان مثال پیدا شدن خطاها در محیط عملیاتی).
- مطابقت داشتن محصول تولید شده با قوانین کشوری، قوانین رگولاتوری و بندهای قرارداد یا استانداردهای مورد نظر
این اهداف در تمامی فرآیندهای تست یکسان نیستند و تست نرمافزار نسبت به پروژهی خود میتواند اهداف متفاوتی داشته باشد، اما عموماً اهداف تست نرمافزار در بسیاری از نرمافزارها اهداف فوق را مد نظر قرار دادهاند.
تست نرم افزار و debug کردن نرم افزار
یکی دیگر از باورهای غلط دربارهی تست نرمافزار این است که تست نرمافزار همان Debug کردن کد نرمافزار است، در صورتی که این فرضیه به هیچ عنوان صحیح نیست. هرچند در فرآیند تست پویا ممکن است مکان وقوع خطا بهصورت حدودی مشخص شود، اما در فرآیند تست، حل خطاها هیچ ارتباطی با فرد تستکنندهی نرمافزار ندارد و این کار باید در فرآیند Debugging اتفاق افتد. بهطور دقیقتر، در صورتی که در فرآیند تست خطایی یافت شد، این خطا توسط تستر نرمافزار گزارش میشود و توسعهدهندگان کد با بررسی این گزارش نسبت به نحوهی رسیدن به خطا اطلاع مییابند و باید طی فرآیند Debugging مکان دقیق خطا یافته و مشکل حل و فصل شود.
حال که با اصول و مبانی تست نرم افزار آشنا شدید، می توانید از دیگر مقالات سایت Evolearn | ایوولرن دیدن کنید.