در جامعه امروزی پروژههای نرمافزاری پیچیده شدهاند و برای حل مسائل پیچیده طراحی میشوند. شرکتهای نرمافزاری هزینههای زیادی را در تحلیل و تست صرف میکنند. خودکارسازی تستها باعث میشود که توسعهدهندگان زمان بیشتری بر جنبههای دیگر داشته باشند. همچنین میتوان تستها را به دفعات و در هر زمانی تکرار کرد. به این ترتیب کارایی تست افزایش و زمان آن کاهش مییابد. در پست قبلی به تست عملکرد و تست استرس اشاره شده و نرم افزار مرتبط با آنها معرفی شد. در این پست نیز به تست اکتشافی و تست رگرسیون میپردازیم.
تست اکتشافی (Exploratory Testing):
در تست اکتشافی فرض میشود شخصی که هیچگونه دانشی در خصوص نرمافزار ندارد در حال کار با سیستم است و به روشهای غیر معمول نرمافزار را مورد تست قرار میدهد. روشی جالب و قوی برای تست نرمافزار است. سوالی که در این جا مطرح میشود این است که تستر چگونه میتواند این تست را انجام دهد؟ تستر میبایستی مهارتهایی را برای کشف خطا داشته باشد که عبارتند از:
- پرسش
- مشاهده
- تفکر انتقادی
- تفکر جانبی
- آموزش سریع
- ارتباطات شفاهی و کتبی
- شکار اشکالات و بررسی اشکالات
این تست را میتوان از همان ابتدای طراحی تا مرحله اجرای برنامه به صورت موازی انجام داد که تاثیر زیادی در طراحی، اجرای تست و آموزش آن دارد. میتوان گفت تست اکتشافی مانند بازی شطرنج است. بازیکن هر چقدر که مهارت داشته باشد و خوب بازی کند حرکت بعدی او بسته به حرکت حریف میباشد. بنابراین تستر میبایستی در هر مرحله، تستهای قبلی را مطالعه کرده و نتایج را در تست بعدی به کار بندد تا خطایی کشف شود. برای کشف بهتر از ابزار، اسناد و اسکریپتها میتوان استفاده کرد.
تست رگرسیون (Regression testing):
بعد از تغییر نرمافزار تست رگرسیون انجام میشود. تست رگرسیون تمام تستهایی که قبلا نرمافزار آنها را با موفقیت انجام داده را دوباره اجرا میکند تا اطمینان حاصل کند که نرمافزار تصادفا در عملکردهای قبلی دچار خطا نشده است. بنابراین قبل از اینکه یک نسخه جدید از محصول نرمافزاری منتشر شود، تستهای قدیمی را در برابر نسخه جدید اجرا کنید تا مطمئن شوید که تمام قابلیت های قدیمی هنوز هم کار میکنند.این تست میتواند در هیچ یا همه سطوح قبلی صورت گیرد و همچنین روی تست مجدد بعد از اعمال تغییرات تمرکز دارد.
هدف تست رگرسیون کاهش دو ریسک میباشد:
- تغییری که میباید یک خطا را از بین ببرد، شکست میخورد.
- بعضی تغییرات اثرات جانبی دارند اگر تصحیح نشود خطای قبلی باقی میماند و اگر تصحیح شود خطای جدید ایجاد میشود.
معرفی ابزار:
در این بخش ابزار سلنیوم را معرفی میکنیم.
این ابزار به صورت متن باز ( Open source) بوده که برای برنامههای تحت وب خودکار استفاده میشود. این ابزار به صورت گسترده بر روی مرورگرها، سیستم عاملها، زبانهای برنامه نویسی محبوب مانند جاوا، سی شارپ، جاوا اسکریپت و … و فریم ورکها اجرا میشود. تست خودکار سلنیوم مجموعهای از ابزار است که توسط بسیاری از سازمانها در سراسر جهان مورد استفاده قرار میگیرد. این مجموعه میتواند تستهای زیادی مانند تست خودکار فانکشنال، تست خودکار رگرسیون، تست خودکار سازگاری با مرورگر و … را انجام دهد. این ابزار را میتوانید از این آدرس دریافت کنید.
به صورت منظم تست رگرسیون را انجام دهید. تست رگرسیون در مواقع تغییر کد، رفع خطا، افزودن قابلیت جدید به برنامه انجام میشود. همچنین با خودکار کردن تست رگرسیون در هزینه و زمان صرفه جویی کنید. با تغییر برنامه و توسعه آن، تست هم با این تغییرات به روز شده و دوباره اجرا میشود.
بسیار ممنون از مطالبتون و از اینکه داشته هاتون رو با بقسه به اشتراک گذاشتین
خیلی استفاده کردم و بسیار مفید بود برام
موفق باشین
چه زیبا نگاه کردید و نظر دادید. درود بر شما.
تشکر بابت نوشتار سخاوتمندانه شما
خیلی خیلی چرط بود ممنون
برای توضیحات فنی تر می توانید در مورد تفاوت بین reggression و retest یا confirmation تست جستجو کنید
بیشتر وقتا این دو نوع تست اشتباه گرفته میشود
در واقع regression تست قابلت اتوماتیک شدن دارد و تست کیس های run میشه که لزوماً به دلیل بررسی رفع شدن defect خاصی نیست و می تواند به صورت پریودیک انجام بشه
ولی restes برای تست هایی هست که قبلاً Fail شده اند و قابلیت اتوماتیک شدن ندارند و حتماً بعد از رفع شدن Defect ها نیاز است که انجام شود
نکات کلیدی و ارزشمندی را بیان کردین
بسیار ممنون
مطالبتون در مقایسه با منابع اینگلیسی هم پربار و روان بود …آفرین