یکی از چالش برانگیزترین انتظارات در تست نرمافزار طراحی یک مورد آزمون خوب است که یک هنر پیچیدهای بهحساب میآید. در پست قبلی دلایل طراحی موارد آزمون گفته شد. در ادامه به مفاهیم اولیه موارد آزمون میپردازیم.
موارد آزمون (Test Case) یکی از مباحث مهم در مهندسی نرمافزار میباشد که تعریفهای متعددی از آن آمده است:
• بر طبق تعریف استاندارد IEEE ، موارد آزمون مجموعهای از ورودیها ، شرایط اجرا و نتایج مورد انتظار میباشد. از موارد آزمون به منظور تست یک هدف خاص مثلا اجرای یک برنامه بخصوص و یا بررسی انطباق یک برنامه با یکسری نیازهای خاص استفاده میشود.
• یک مورد آزمون (Test Case) یک خلاصه وضعیت از مواردیست که باید تست شوند. به عنوان مثال اگر شما در حال تست یک فیلد عددی هستید، یک ایده برای این تست ” ورود کاراکترهای حرفی در فیلد” خواهد بود. در واقع ایدهای برای بررسی اینکه آیا یک دسته کد یک مورد خطا ایجاد میکنند یا نه؟
• موارد آزمون شامل ورودیهایی خاص یا روشهایی هستند که شما برای تست یک نرمافزار بهکار میبرید.
ساختار معمولی یک مورد آزمون:
ساختار معمولی یک مورد آزمون را میتوان به سه بخش زیر تقسیم کرد:
۱- اطلاعات:
شامل اطلاعات کلی مانند یک شناسه مورد کاربرد (Use Case)، اطلاعات ساخته شده، شماره، نام، هدف یا توضیح مختصری درباره مورد آزمون و وابستگی آن به مورد آزمونهای دیگر است. همچنین شامل اطلاعاتی از سخت افزار یا نرمافزارهای مورد نیاز میباشد. البته در موارد خاص و در صورت وجود، جهت راهاندازی و تنظیمات آنها، توضیحاتی ذکر میگردد.
۲- فعالیتها:
این بخش شامل فعالیتهای واقعی مورد آزمون است. از جمله محیطی که بایستی در طول تست وجود داشته باشد، فعالیتهایی که در اول تست انجام میشوند و فعالیتهایی که بایستی پس از تست انجام شوند. فعالیتها بایستی مرحله به مرحله به هنگام انجام تست صورت گیرد و دادههای ورودی برای انجام تست آماده شود.
۳- نتایج:
نتایج شامل یکسری اطلاعات مورد انتظارند که برای پاس شدن تستها لازم است. به عبارتی نتایج همان خروجی از اجرای موارد آزمون میباشند.
چگونگی کسب اطلاعات مورد نیاز برای طراحی مورد آزمون:
موارد آزمون اطلاعات مهمی به مشتری در مورد کیفیت محصول ارائه میکند. رویکرد طراحی مورد آزمون، بایستی به گونهای باشد که به منظور تسهیل در جمع آوری اطلاعات نوشته شود. اما سوالاتی دراین باب برای هر چه بهتر طراحی کردن موارد آزمون میتوان مطرح کرد:
– کدام ویژگیها باید تست شوند؟ کدام ویژگیها در نهایت مورد تست قرار خواهند گرفت؟
– چه تعداد سناریوهای کاربری یا موارد کاربرد اجرا شدهاند؟
– چه تعداد ویژگیها در سیستم به حالت پایدار دیده شدهاند؟
– کدام ویژگیها کار بیشتری انجام میدهند؟
– آیا ترکیب دادههای ورودی کافی است؟
– هنگامی که کاربر کارهایی بر خلاف روند برنامه انجام دهد، آیا برنامه پیام خطاهای درستی به کاربر نشان میدهد؟
– آیا برنامه به انواع مرورگر با نسخههای متفاوت پاسخ مناسبی میدهد؟
– آیا UI برنامه مطابق با مشخصات مورد نیاز است؟
– آیا ویژگیهای قابل ردیابی، به تنظیمات نیاز دارند؟ آیا همه این تنظیمات در نظرگرفته شده است؟
– آیا میتوانید این تستهای طراحی شده را به عنوان ورودی در تست اتوماتیک استفاده کنید؟
– آیا تستها به اندازه کافی خوب طراحی شده اند؟ آیا آنها قادر به تشخیص نقص برنامه هستند؟
– آیا نرمافزار آماده تست میباشد؟ آیا تست به اندازه کافی صورت میگیرد؟
– معیارهای کیفیت نرمافزار چیست؟
– و…
اهداف اطلاعات:
این اطلاعاتی که در تلاش برای یادگیری و آموختن آن هستید چه زمانی برای تست مورد استفاده قرار میگیرند؟ دراینجا چند نمونه را نام میبریم:
پیدا کردن نقص: هدف اصلی تست پیدا کردن نقص میباشد. یک تست در جهت اجرا و پیدا کردن یک نقص به کار میرود. به طور کلی ما برای پیدا کردن نقص تمامی نقاط نرمافزار را مورد بررسی قرار میدهیم.
جلوگیری از انتشار سریع هر نسخه از محصول: تستر انتشار سریع هر نسخه از محصول را با پیدا کردن باگها متوقف میکند. بنابراین این بخش آنقدر جدی و مهم است که تا زمانیکه محصول به حالت ثابتی نرسد از انتشار آن جلوگیری میشود. برای انتشار هر نسخه از محصول، ابتدا اهداف تستر از نشان دادن نقصهای آن نسخه مشخص شده سپس برای انتشار آن، تصمیم گیری میشود.
کمک به مدیران برای تصمیم گیری: معمولا مدیران نگران ریسکهای برنامه هستند. آنها میخواهند در مورد سطح پوشش تست از برنامه بدانند و اطلاع پیدا کنند که تا چه اندازهای مشکلات شناخته شدهاند. مشکلاتی که در آینده به نارضایتی مشتری منجر شود بسیار به تصمیم گیری مدیران کمک خواهد کرد.
به حداقل رساندن هزینههای پشتیبانی: همکاری گروه پشتیبانی فنی و گروه تست باعث شناسایی هر چه بهتر مشکلات برنامه شده و به حداقل رسانی هزینهها کمک میکند.
منبع ( + )