اولویت بندی کارآمد موارد تست نرم افزار به کمک شبکه های بیزی- قسمت ۱۱ |
۲-۱۴- متدولوژی های مربوط به تست رگرسیون
در این بخش چهار روشی را که به تست رگرسیون مربوط اند بررسی میکنیم و هر یک را جداگانه شرح میدهیم. این روشها عبارتند از :
۱- Retest all اجرای مجدد همهی تست ها
انتخاب تست رگرسیون Regression Test Selection2-
کاهش مجموعه تست Test Suite Reduction3-
اولویت بندی موارد تستTest Case Prioritization4-
۲-۱۴-۱- اجرای مجدد همهی تست ها (Retest all)
در این روش آندسته از موارد تستی که دیگر برای نسخه اصلاح شده برنامه کاربرد ندارند دور انداخته میشوند، و تمام مجموعهی موارد تست باقیمانده برای تست برنامهی تغییر یافته استفاده میشوند.
۲-۱۴-۲- انتخاب تست رگرسیون (Regression Test Selection)
روش اجرای همهی موارد تست هم زمان زیادی طول میکشد و هم تلاش زیادی باید صرف انجام آن شود برای تست دوبارهی برنامه، بدین صورت ممکن است خیلی گران شود هزینهی این روش. این روش بهتر است به همراه اطلاعات در مورد برنامه، تغییر برنامه و موارد تست استفاده بشود برای انتخاب زیر مجموعه ای از موارد تست جهت تست کردن.
۲-۱۴-۳- کاهش مجموعه تست (Test Suite Reduction)
این روش با استفاده از اطلاعات مربوط به برنامه و مجموعه تست برای حذف موارد تست به عنوان قابلیت جدید اظافه شد و با گذشت زمان کنار گذاشته شد. این روش با روش انتخاب تست رگرسیون تفاوت دارد، در روش قبلی به طور دائم موارد تست را حذف میکردید، اما انتخاب شدهها مورد نیازند. مزیت این روش این است که هزینهی اعتبار سنجی ، اجرا، مدیریت مجموعههای تست روی نسخههای جدید نرم افزار را در آینده کاهش میدهد، این حرکت نزولی است که ممکن است تشخیص خطا را کاهش دهد با قابلیت کاهش اندازه مجموعه تست.
۲-۱۴-۴- اولویت بندی موارد تست (Test Case Prioritization)
در این تکنیک به هر کدام از موارد تست یک اولویت اختصاص داده میشود. برای مثال معیار برای اولویت بندی میتواند پوشش کد سریع موارد تست باشد که بالاترین اولویت را داراست. مزیت این تکنیک نسبت به تکنیک های قبلی این است که موارد تست را دور نمی اندازید و یا دائم موارد تست را از مجموعهی تست حذف نمی کنید. یکی دیگر از معیارهای ممکن برای اختصاص اولویت به موارد تست میتواند نرخ تشخیص خطا باشد.
۲-۱۵- اولویت بندی
۲-۱۵-۱- مقدمه ای بر اولویت بندی
کلمه “اولویت بندی” به معنی قرار دادن وظایف به بهترین نحو به طوریکه انجام بهتر و کامل وظیفه و به موقع آن پیش از نیاز واقعی میسر باشد. یکی از جنبههای مهم تست رگرسیون اولویت بندی موارد آزمون است که نیاز دارد به اجرای دستورات بر اساس معیارهای خاص. اولویت بندی موارد آزمون با اهدف گوناگون در فرایند تست در مطالعات بکار رفته است. برخی از این اهداف عبارتند از: افزایش میزان یا نرخ تشخیص خطا، تست رگرسیون مقرون به صرفه از طریق چینش موارد تست به طوری که آنهایی که از اولویت بالاتری برخوردارند در فرآیند تست زودتر انجام شوند و کم کردن زمان و هزینه لازم برای انجام فرایند مهم تست نرم افزار به منظور شناسایی و کشف خطا در کمترین زمان و صرف هزینه کمتر برای رفع آن. مطالعات انجام شده و نتایج بدست آمده از آنها نشان میدهند که با بهره گیری از تکنیک های اولویت بندی میتوانیم تست رگرسیون را بهبود دهیم. در این راستا هم تکنیک های اولویت بندی پیشنهاد شدهاند و شواهد و نتایج حاصل نشان میدهند که بکار گیری این تکنیک ها در تست رگرسیون مفید است.
اما نکته مهم اینکه بیشتر تکنیک های اولویت بندی که تا کنون پیشنهاد شدهاند برای خطاهای کشف شده شدت یکسان و برابری را در عمل در نظر میگیرند. به دلیل اینکه بیشتر تکنیک های اولویت بندی تکیه دارند بروی اطلاعات جمع آوری شده از اجرای موارد تست های قبلی نرم افزار یا تغییر کد منبع. به ندرت تکنیک هایی پیشنهاد شدهاند که بتوانند استفاده شوند برای تست غیر رگرسیون.این تکنیک ها کمک میکنند به مهندسان با نشان دادن خطاها دراوایل تست کردن، همچنین این تکنیک ها به آنها اجازه میدهد که شروع کنند به اشکال زدایی زودتر از زمان ممکن. در این مورد، کل مجموعه آزمون هنوز هم ممکن است اجرا شود، اجتناب از اشکالات بالقوه در ارتباط با حذف موارد آزمون، و صرفه جویی در هزینه از رسیدن به موازی بیشتر از اشکال زدایی و فعالیتهای آزمایش. تست رگرسیون یک فرآیندگران قیمت است که برای اعتبار سنجی نرم افزار اصلاح شده یا تغییر یافته استفاده میشود.تکنیکهای اولویت بندی موارد تست، بهبود مقرون به صرفه ای از تست رگرسیون با مرتب سازی موارد آزمون به طوری که آنهاییکه از اهمیت بیشتری برخوردار هستند پیش از دیگر موارد تست با اهمیت کمتر در فرایند تست اجرا شوند. با این حال، این محدودیت های زمانی هستند که می توانند بر تست رگرسیون تحمیل شوند و توسط فرآیندهای توسعه نرم افزار به شدت بر رفتار تکنیک های اولویت بندی تاثیر بگذارند. اگر این درست باشد درک بهتر از اثرات محدودیت های زمانی میتواند منجر به بهبود تکنیکهای اولویت بندی، و تعمیر و نگهداری و بهبود فرآیندهای تست نرم افزار شود. تکنیکهای اولویت بندی موارد تست نشان دادهاند که برای بهبود فعالیت تست رگرسیون مفید هستند. با اولویت بندی موارد تست، نرخ تشخیص خطا بهبود یافته است، در نتیجه اجازه می دهد به آزمایش کنندگان برای شناسایی خطاها پیش از انجام مرحله تست سیستم. بسیاری از تکنیک های اولویت بندی قدیمی بر پوشش کد مبتنیاند، و لذا ممکن است این تکنیک ها با تمام خطاها به طور مساوی و یکسان رفتار کنند ولی در واقع نباید بدین صورت باشد.
۲-۱۵-۲- معیارهای اولویت دهی
معیارهای اولویت دهی در رویکرد ما بر اساس ساختار برنامه است و باعث این میشود که مانند برخی دیگر از روشهای پیشنهاد شده برای خطاهای شناسایی شده شدت یکسانی درنظر نگیریم و همچنین تکیه بر اطلاعات قبلی از اجراهای موارد تست نداشته باشیم، که اینها از برتریهای رویکرد ما در مقایسه با دیگر رویکردهایی است که فقط برای تست رگرسیون بکار میروند به حساب میآید و ما میتوانیم آن را هم برای تست توسعه نرم افزار و هم تست رگرسیون بکار ببریم.
۲-۱۵-۳- اولویت بندی موارد تست
تکنیک های اولویت بندی موارد تست شامل برنامه ریزی بروی موارد تست با یک نظمی است که باعث بهبود عملکرد تست رگرسیون میگردد. و زمانی تست رگرسیون نا کارآمد خواهد بود که اجرای هر مورد تست برای هر تابع از برنامه در صورت رخ دادن هر تغییری بخواهد اجرا گردد. در این مواقع است که ضرورت استفاده از اولویت بندی موارد تست احساس میشود. تکنیک های اولویت بندی موارد تست، سازماندهی موارد تست درون یک مجموعه تست با مرتب سازی است به گونه ای که با اولین اجرا نرخ تشخیص خطا را به طور اثربخشی بهبود دهد.
۲-۱۶- متریک
۲-۱۶-۱- مقدمه ای برای متریک
تست نرم افزار فرآیندی است که طی آن خطاهای یک برنامه ی کاربردی کشف و رفع میشود. اما روند تست نرم افزار تنها محدود به یافتن خطاهای برنامه نمی شود، تست برای تعیین میزان کیفیت برنامه و همچنین میزان سازگاری و پاسخگویی آن به نیازهای کاربران و مشتریان است. متریک های تست نرم افزار نا محدودند بنابر این تست کننده باید با ویژگیها و کاربرد هر یک به درستی آشنا باشد تا بتواند متریک های مناسب با کاربرد خود را انتخاب نماید .
خودکارسازی تست ها نسبت به تست دستی برتریهای زیادی دارد. خودکارسازی تست ها باعث می شود که توسعه دهندگان زمان بیشتری برای تمرکز بر روی دیگر جنبهها داشته باشند و بتوانند خطاهای نرم افزار را به صورت مؤثرتری رفع نمایند. علاوه بر این، از آنجاییکه تست ها را می توان در هر زمان و به هر تعداد دفعاتی اجرا کرد، می توان از تست های قبلی استفادهی مجدد نمود. و به این ترتیب کارایی تست را افزایش و زمان تست را کاهش داد. خودکارسازی تست نرم افزار زحمت و پیچیدگی انجام تست را کاهش می دهد. برای بررسی کیفیت و چگونگی روند انجام تست معیارها یا متریک هایی وجود دارد؛ که بر اساس آنها میتوان تصمیم گیریهایی در مورد وضعیت نرم افزار تحت تست، زمان مناسب برای انتشار نرم افزار، میزان ریسک در انتشار نرم افزار انجام داد. متریک های تست بسیار مختلف و متنوع هستند و تعداد آنها بسیار زیاد و نا محدود است. برای انتخاب متریک های مناسب با کاربرد خاص مورد نظر ما باید اطلاعاتی در مورد متریک های مختلف و موارد استفاده ی آنها داشته باشیم.
۲-۱۷- متریک های تست نرم افزار
متریک ها با عنوان استانداردهایی برای اندازه گیری تعریف می شوند. و مدتی طولانی است که در صنعتIT برای نشان دادن روشی برای اندازه گیری میزان سودمندی و کارایی یک فعالیت مشخص در یک پروژه، استفاده می شوند. متریک ها راه هایی برای پاسخ به سؤالات هستند. بدون دانستن سؤالاتی که باید پاسخ داده شوند، تلاش برای پاسخ دادن وقت تلف کردن است. برای مشخص کردن متریک هایی که برای هر پروژه نیاز دارید، از روش بالا به پایین عمل نمایید. از آنجاییکه تعداد نا محدودی از متریک های ممکن وجود دارد، برنامه نویسان باید معیارهایی برای انتخاب متریک هاییکه باید روی یک پروژهی مشخص اعمال شوند، داشته باشند. به طور ایده آل یک متریک باید خواص زیر را داشته باشد.
۲-۱۷-۱- خواص متریک ها در شرایط ایده آل
ساده و قابل محاسبه باشند.
از نظر تجربی و شهودی ترغیب کننده باشند.
سازگاری و دست یافتنی
[جمعه 1399-09-21] [ 11:34:00 ق.ظ ]
|