توضیحات
عنوان فارسی: تولید خودکار داده های تست نرمافزار مبتنی بر آزمون مسیر
- چکیده
- فصل 1 مقدمه
- تولید داده آزمون
- روشهای تولید اتوماتیک داده آزمون
- تولید تصادفی آزمون
- تولید نمادین داده آزمون
- تولید داده آزمون بر اساس روشهای مبتنی بر جستجو
- فصل 2 تست نرم افزار
- چه کسی تست میکند
- چه زمانی تست شروع میشود
- چه زمانی تست پایان می یابد
- اهداف تست نرم افزار
- تفاوت تست پذیری نرم افزار با اشکال زدایی نرم افزار
- اصول تست نرم افزار
- چرخه تست نرم افزار
- سطوح مختلف تست نرم افزار
- تست واحد
- تست سطح یکپارچگی
- تست سیستم
- تست پذیرش
- روش های تست نرم افزار
- جعبه سیاه
- جعبه سفید
- جعبه خاکستری
- انواع تست
- ۲۱۰۱Unit Testing
- ۲۱۰۲Integration Testing
- ۲۱۰۳Functional Testing
- ۲۱۰۴System Testing
- ۲۱۰۵Stress Testing
- ۲۱۰۶Performance Testing
- ۲۱۰۷Usability Testing
- ۲۱۰۸Acceptance Testing
- ۲۱۰۹Regression Testing
- ۲۱۰۱۰Beta Testing
- فصل 3 تست خودکار نرم افزار
- ابزارهای تست خودکار نرم افزار
- xUnit
- iMacros
- HP LoadRunner
- HP WinRunner
- Selenium
- NUnit
- تولید داده آزمون مبتنی بر جهش
- فصل4 آزمون مسیر پایه
- علایم گراف جریان
- پیچیدگی چرخشی(سیکلوماتیک)
- مجموعه پایه
- دستیابی به موارد آزمون
- ماتریس های گراف
- تست با روش مسیر پایه
- مراحل انجام تست مسير پايه
- ساختارهای برنامه
- نمودار جريان کنترل
- مسیرهای مستقل
- مثال
- مدل های ارائه شده ی تست خودکار مبتنی بر آزمون مسیر پایه
- فصل 5 مقایسه روش های ارایه شده
- روشی برای تولید خودکار داده آزمون برای تست مسیر در برنامههای جنبه گرا با استفاده از الگوریتم ژنتیک
- تولید داده آزمون خودکار برای اتصال براساس ادغام برنامه های شی گرا با استفاده از روش تکاملی
- تولید داده مبتنی بر مسیر با استفاده از اجرای نمادین و تکنیک حل محدودیت
- تولید خودکار داده آزمون برای نرم افزار آزمون مسیر با استفاده از الگوریتمهای تکاملی
- فصل 6 نتیجه گیری و پیشنهادات
- منابع
چکیده
امروزه سازمانهاي نرمافزاري زمان و منابع زیادی را در تحلیل و تست نرمافزار صـرف مـیکننـد. از نظـر مهندسان نرمافزار نوشتن کدهاي تست، به خودي خود، مثل توسعه خود محصول وقت گیر و گران است. بنابراین راهحلی براي خودکار کردن تست نرمافزار غیرقابل اجتناب است. خودکارسازي تستها نسبت به تست دستی برتریهاي زیادی دارد. در جامعه امروزي پروژههاي نرمافزاري پیچیده هستند و بـراي حـل مسائل پیچیده طراحی میشوند. خودکارسازي تستها باعث میشود که توسعهدهندگان زمان بیـشتري براي تمرکز برروي دیگر جنبهها داشته باشند و بتوانند خطاهاي نـرمافـزار را بـه صـورت مـؤثرتري رفـع نمایند. علاوه براین، ازآنجایی که تستها را میتوان در هر زمان و به هر تعداد دفعاتی اجرا کرد، میتـوان از تستهاي قبلی استفادهي مجدد نمود. و به این ترتیب کارایی تست را افزایش و زمان تـست را کـاهش داد. خودکارسازي تست نرمافزار زحمت و پیچیدگی انجام تست را کاهش میدهد.
پس از ارائهي مقدماتی در مورد تست نرمافزار و اهمیـت خودکارسـازي تـست نـرمافـزار، بـه معرفی و بررسی آزمون مسیر پایه و مدلهایی که در این زمینه ارائه شدهاند پرداخته شده است.
کلیدواژهها : نرمافزار- تست- خودکارسازی- کارایی- آزمون مسیر
فصل 1- مقدمه
1-1- تولید داده آزمون[1]
آزمون نرمافزار کاری زمانبر است که بطور متوسط ۵۰ درصد منابع تخصیص داده شده جهت توسعه هر سامانه نرمافزاری صرف آن میشود. بطور کلی هدف از آزمودن نرمافزار طراحی مجموعه محدودی از موارد آزمون است که بتواند حداکثر خطای ممکن از نرمافزار را شناسایی کند.در آزمون نرمافزار، اغلب میخواهیم ورودیهایی را پیدا کنیم که خصوصیات مشخصی از برنامه را آزمون کنند تا خطاهای بیشتری از برنامه آشکار شود. البته مشخص کردن همه خطاها به علت تنوع خطاها و عدم وجود تعریفی رسمی برای خطا امری مشکل به نظر میرسد. برای تشخیص مجموعه آزمونهایی که قابلیت تشخیص خطاهای بیشتری را دارند، مفهوم معیار کیفیت آزمون پیش میآید. چون ایجاد داده آزمون که معیار مناسبی را ارضا کند، به صورت دستی خیلی مشکل است، از تولید اتوماتیک داده آزمون استفاده میشود[6].
یک روش خودکار آزمون نرمافزار[2]، بطور چشمگیری میتواند هزینه توسعه نرمافزار را کاهش دهد. مزایای دیگر این کار میتواند امکان طراحی آزمونهای پیشرفتهتر، اجرای سریعتر و دقیقتر آزمونها و امکان ادامه آزمون در هر شبانهروز و حتی راه دور را امکانپذیر کند. در هر حال امکان انجام خودکار آزمون نرمافزار فرایند سهل و راحتی نیست. طی سالهای اخیر محققان راههای متفاوتی برای تولید داده آزمون به صورت خودکار ابداع کرده اند. به طور کلی جستجو برای یافتن یک ورودی در دریایی از دادههای ورودی ممکن، ما را به سمت یک مسئله بهینهسازی سوق میدهد. در سالهای اولیه ابداع روش خودکار آزمون نرمافزار، اکثر روشهای تولید خودکار آزمون نرمافزار از روش گرادیان کاهشی استفاده میکردند. در کل این الگوریتم کارایی و سرعت کافی را فراهم نمیکند و امکان فرار از مینیمم محلی در فضای جستجوی دادههای ورودی امکان ندارد. در تولید اتوماتیک داده آزمون به طور عمده از روشهای تولید تصادفی، اجرای نمادین و الگوریتمهای مبتنی بر جستجو[3] (الگوریتمهای اکتشافی) برای پیدا کردن ورودی مناسب استفاده میشود.
در گذشته، تولید اتوماتیک داده آزمون بر روی برنامههای ساده با استفاده از معیار آزمون سادهای بصورت تصادفی انجام میشد. اما روش تصادفی بر روی برنامههای بزرگ و پیچیده کارایی خوبی نشان نمیدهد و نمیتوان تأثیر پیچیدگی برنامه را بر فرایند تولید داده آزمون مشاهده کرد. با بکارگیری الگوریتمهای اکتشافی، علاوه بر مزایای دیگر این روش، میتوان تأثیر پیچیدگی بر تولید داده آزمون را ملاحظه کرد.
1-2- روشهای تولید اتوماتیک داده آزمون
همان طور که به طور خلاصه ذکر شد روشهای تولید اتوماتیک داده آزمون عبارتند از:
تولید تصادفی[4]
اجرای نمادین[5]
الگوریتمهای مبتنی بر جستجو
1-2-1- تولید تصادفی آزمون
این روش تولید ورودیهای تصادفی تا زمان دستیابی به ورودی مفید است و مشکل آن این است که در برنامههای بزرگ و یا دارای معیار کفایت پیچیده، این روش کارایی خوبی از خود نشان نمیدهد. در برخورد با برنامههای پیچیده داده آزمون مناسب، تعداد خیلی کم ورودیهای مناسب در مقایسه با کل ورودیها بسیار ناچیز است و احتمال انتخاب یک ورودی مناسب به روش تصادفی بسیار پایین است.
1-2-2- تولید نمادین داده آزمون
روشهای تولید داده آزمون، از اجرای نمادین برای یافتن ورودیها جهت پوشش نیاز آزمون استفاده میکنند. اجرای نمادین یک برنامه شامل مقداردهی نمادین به متغیرهاست تا آنچه را که برنامه روی ورودی انجام میدهد، به صورت عبارتی جبری بدست آید. در این روش تولید داده آزمون به مسأله حل یک عبارت جبری منجر میشود که مشکلات این روش عبارتند از:
روبروشدن با حلقههای بینهایت که ممکن است زمان اجرای برنامه به بینهایت میل کند.
ارجاع غیرمستقیم: مثلا در عبارت X=[Y+Z]تا زمانی که Yو Zبه مقادیر مشخصی مقید نشوند، معلوم نیست که کدامین عضو آرایه aمورد درخواست است.
اشارهگرها: مثلا اگر *N=60 ,*M=61و H=*N تا زمانی که Mو Nبه مقادیر عددی معینی مقید نشوند، مقدار دقیق Hمشخص نمیشود. زیرا ممکن است که بعد از مقداردهی Mو Nهر دو به یک مکان حافظه اشاره کنند.
1-2-3- تولید داده آزمون بر اساس روشهای مبتنی بر جستجو
تولید داده آزمون به روش مبتنی بر جستجو علاوه بر اینکه پیادهسازی راحتتری دارد در تولید خودکار آزمون هم موفق بوده است. الگوریتمهای استفاده شده در این حیطه عبارتند از: ذوبکاوی شبیهسازی شده، الگوریتم ژنتیک[6]، الگوریتم تراکم ذرات و روش بهینهسازی کلونی مورچهها که در عمل به علت سادهتر بودن نسبت به اجرای نمادین، راهکار مناسبتری برای استفاده در ایجاد تولید ابزار تولید داده آزمون بشمار میروند.
فصل 2- تست نرم افزار
تست نرم افزار[7] به فرایند ارزیابی نرمافزار به منظور اطمینان از عملکرد صحیح آن در رویدادهای مختلفی که ممکن است در دوره استفاده از نرمافزار با آن مواجه شود میباشد و به عبارت دیگر پیدا کردن خطاهایی احتمالی یک نرمافزار برای عملکرد درست ، صحیح و بهینه آن در طول استفاده از آن است. هر چقدر نرم افزار بتواند با رویدادهای مختلف به صورت مطلوبتر و قابل پذیرشتری چه از نظر عملکرد و چه از راحتی کاربر داشته باشد میتوان انتظار داشت نرم افزار دارای عملکرد بهتری میباشد. تست خوب: احتمال پیدا کردن خطاهای کشف نشده توسط ارزیابی زیاد است. تست موفق: که حداقل یک خطای کشف نشده را بیابد تست فقط وجود خطا را نشان میدهد و نه عدم وجود آن را. پیدا نشدن خطا در تست به معنای بدون خطا بودن برنامه نیست. اصول تست با توجه به نیازمندیهای کاربر برنامهریزی قبل از اجرا [8] نوشتن برنامه تست قانون پارتو %۸۰ خطاهای کشف نشده در ۲۰٪ کد است تست باید از اجزای کوچک شروع شود ممکن نیست (exhaustive) تست کامل برای مؤثر بودن باید توسط شخص ثالث بی طرف انجام شود.
سازمانها یا شرکتهای نرمافزاری در نهایت محصولی به نام نرم افزار تولید مینمایند و یا آن را توسعه میدهند. مانند همه کسب و کارها که رقابت بر سر ارائه محصولات وجود دارد در حوزه نرم افزار نیز این رقابت بسیار جدی میباشد. در این بازار رقابتی چه عواملی باعث میشوند که یک نرم افزار از نرم افزار مشابه دیگر متمایز و برجسته باشد عوامل متعددی را میتوان نام برد که باعث این برتری و تمایز میشود اما یکی از این عوامل میتواند کیفیت محصول نهایی باشد که به بازار عرضه خواهد شد.
برای رسیدن به این نقطه تمایز و برتری باید چگونه عمل کرد و چه کارهایی انجام داد یکی از کارهای مهم به این پاسخ میتواند تست نرم افزار و نحوه انجام آن باشد که در نهایت باعث افزایش کیفیت نرم افزار میشود.
تست را میتوان یکی از زیرمجموعههای مبحث کیفیت نرم افزار با نام “تضمین کیفیت” درنظر گرفت. تست نرمافزار به دنبال خطایابی و عیبیابی محصول نرم افزاری قبل از تحویل به مشتری است.
تست نرمافزار را میتوان به صورتهای زیر معنا کرد:
– تلاشهایی در جهت عیبیابی و رفع آن، نه تلاش در جهت اثبات کامل صحت نرم افزار، زیرا این قضیه با ماهیت تست تفاوت دارد.
– تست نرمافزار یا آزمایش نرمافزار، تحقیق برروی کیفیت یک محصول یا سرویس نرمافزاری و ارایه اطلاعات ناشی از آن به مشتریها است. این تحقیق جستجوی نرمافزار مزبور برای یافتن خطاها را نیز دربرمیگیرد ولی به آن محدود نمیشود.
– تستها همیشه شامل سوال و جوابهایی هستند که نرمافزار را با آن امتحان میکنیم در حالی که از برنامه انتظار داریم با توجه به ورودیهایی که با استفاده از سوالات وارد میکنیم، جوابهای صحیحی را به عنوان خروجی به دست دهد.
– تست نرمافزار از وظایف توسعه دهندگان نرمافزار است و نه از وظایف تحویل گیرندگان آن.
– دایکسترا [9] در تعریف تست می گوید: تست فقط میتواند وجود خطاها را نشان دهد نه عدم وجود آنها را !
– تست نرم افزار به طور رسمی جزئی از بازبینی و اعتبارسنجی[10] نرم افزار میباشد، که این دو واژه به صورت زیر تعریف و با هم مقایسه میشوند.
وارسی: آیا محصول را به درستی میسازیم
اعتبارسنجی: آیا محصول درستی را میسازیم
وارسی بررسی میکند که آیا نرم افزار از مشخصاتش پیروی میکند یا خیر. اعتبارسنجی باید تضمین کند که نرمافزار انتظارات مشتری را برآورده میسازد یا نه. توجه کنید که آنچه در مشخصات میآید ممکن است دقیقا خواستههای مشتری را برآورده نسازد.
در واقع هدف فرآیند تست در یک جمله ” ایجاد اعتماد نسبت به سیستم ” است. اما چطور میتوان نسبت به سیستم ایجاد اعتماد نمود عوامل مختلفی در این امر دخیل هستند اما نقش تست پررنگتر میباشد. به همین دلیل تست دو هدف اصلی را دنبال میکند:
۱- تست اعتبارسنجی: موفقیت آن در درست کارکردن سیستم است.
۲- تست نقص: موفقیت آن در نمایانسازی خطاهایی است که موجب کارکرد نادرست سیستم میشود.
2-1- چه کسی تست میکند
در صنعت IT، شرکتهای بزرگ، تیمی برای بررسی نرم افزارهای تولیدی در چارچوب الزامات و فعالیتهای شرکت دارند که این تیم، تیم تست میباشد.
در اغلب موارد تستر در یکی از بخشهای زیر قرار میگیرد:
– بخش تست نرم افزار
– بخش توسعه نرم افزار
شرکتها طراحیهای متفاوت و وظایف و نقشهای متفاوتی برای اشخاصی که تست نرم افزار انجام میدهند، قائل میشوند. این نقشها عبارتند از : تستر نرم افزار، تضمین کیفیت نرم افزار( QA) ، تحلیلگر و …
2-2- چه زمانی تست شروع میشود
در طول چرخه عمر توسعه نرم افزار [11] که به آن SDLC گفته میشود، تست آغاز شده و تا استقرار نرم افزار به طول میانجامد. با این حال تمامی این تستها بستگی به مدل توسعهای دارد که شرکتها انجام میدهند. به طور مثال در مدل آبشاری[12]، تست در مرحله تولید نرم افزار انجام میشود اما در مدل افزایشی[13]، تست در پایان هر افزایش یا تغییر، تکرار میشود و در پایان تولید نرم افزار هم دوباره تست انجام میشود.
در هر مرحله از SDLC ، تجزیه و تحلیل و تاییدیههای مورد نیاز نیز برای تست در نظر گرفته میشود. بررسی طراحی در مرحله طراحی محصول نیز به قصد بهبود طراحی در حوزه تست نیز در نظر گرفته میشود. انجام تست توسط یک توسعه دهنده پس از اتمام کد نیز به عنوان تست واحد [14]طبقه بندی میشود.
انجام تست در طول SDLC مزایای زیر را در بر دارد:
۱- کاهش زمان تولید
۲- کاهش هزینه ها
۳- کاهش زمان دوباره کاریها
۴- کاهش خطاهای نرم افزاری
۵- افزایش بازدهی
۶- افزایش کیفیت نرم افزار
۷- تحویل به موقع پروژه به کارفرما
۸- افزایش رضایت مشتری
2-3- چه زمانی تست پایان می یابد
بر خلاف آنکه میدانیم چه زمانی تست را آغاز کنیم، تعیین زمان پایان تست بسیار دشوار است. تست فرآیندی بی پایان میباشد و تعیین زمانی برای توقف آن بسیار دشوار است و نمیتوان با اطمینان گفت که نرم افزار تولیدی ۱۰۰% تست شده است.
مواردی که نبایستی برای تست درنظر گرفته شود:
۱- تعیین مهلت تست
۲- اطمینان از کامل بودن تست
۳- پس از اتمام تست فانکشنال[15] و تست پوشش کد، نبایستی نتیجه را به نقطه خاصی سوق دهیم.
۴- اگر در سطح خاصی نرخ خطا کمتر بوده و بدون باگ[16] باشد این سطح از اولویت بالاتری شناخته شود.
محصولات نرم افزاری برای کشف و رفع باگها وهمچنین تعیین کیفیت نیاز به تست دارند. روند تست نرم افزار گاهی میتواند به اندازه توسعه نرم افزار انرژی برده و بااهمیت باشد. تست نرم افزار شامل فرآیند اجراهای متعدد برنامه با هدف یافتن باگهای نرم افزاری است اما محدود به آن نمیباشد، تضمین اینکه تاچه حد نیازمندیهای موجود را برآورده میکند و آیا با انتظارات مشتری سازگار است یا خیر نیز توسط فرآیند تست مشخص میشود.
توجه:
- برای دانلود فایل word کامل ترجمه از گزینه افزودن به سبد خرید بالا استفاده فرمایید.
- لینک دانلود فایل بلافاصله پس از خرید بصورت اتوماتیک برای شما ایمیل می گردد.
به منظور سفارش تحقیق مرتبط با رشته تخصصی خود بر روی کلید زیر کلیک نمایید.
سفارش تحقیق
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.