فصل اول: مقدمه و کلیات تحقیق
1-1- مقدمه 2
1-2- بیان مسئله. 3
1-3- مشکل طراحی زبان خاص دامنه برای آزمون بار. 3
1-4- روش مقابله با مشکل طراحی.. 4
1-5- حوزه پیشنهادی مسئله. 4
1-6- ساختار پایاننامه. 4
فصل دوم: ادبیات و پیشینه تحقیق
2-1 مقدمه. 7
2-2 روند تحول زبانها 8
2-2-1 زبانهای همه منظوره 8
2-2-2 صفحه گستردهها و زبانهای نسل چهارم. 8
2-2-3 برنامهنویسی زبان گرا 9
2-4 برنامه در برنامهنویسی زبان گرا 13
2-5 زبانهای خاص دامنه. 16
2-5-1 طراحی و پیادهسازی زبان خاص دامنه. 18
2-5-2 انواع زبانهای خاص دامنه. 19
2-6 گرووی، زبان میزبان. 21
2-7 آزمون نرمافزار. 23
2-7-1 اهداف آزمون. 24
2-7-2 انواع آزمون. 25
2-7-2-1 آزمون جعبه سفید 25
2-7-2-2 آزمون جعبه سیاه 25
2-8 کارهای مرتبط.. 27
فصل سوم: روش تحقیق
3-1 مقدمه. 34
3-2 آزمون نرمافزار. 34
3-3 مشکلات پیش روی آزموننویسها 35
3-4 زبان خاص دامنه برای آزمون دامنه. 35
3-4-1 نیاز به وجود یک زبان خاص دامنه برای دامنه آزمون بار. 36
3-5 آزمون نرمافزارهای تحت وب… 37
3-5-1 آزمونهای سمت مشتری.. 37
3-6 معماری سیستم پیشنهادی.. 38
3-7 پارامترهای مؤثر در آزمون بار. 40
3-7-1 پارامترهای زمانی.. 40
3-7-2 پارامترهای مشخصکننده رخداد خطا در برنامه. 40
3-8 چارچوبهای مورد استفاده جهت آزمون نرمافزارهای تحت وب… 41
3-9 طرح پیشنهادی.. 44
3-9-1 تعریف آزمون بار. 45
3-9-1-1 فرایندهای مورد نیاز برای آزمون بار. 47
3-9-2 بررسی ساختار چهارچوب جب… 47
3-9-3 نحو زبان خاص دامنه پیشنهادی.. 49
3-9-3-1 ساختار کلی هر آزمون بار در زبان خاص دامنه پیشنهادی.. 50
3-9-3-1-1 انتخابگرها 50
3-9-3-1-2 رخدادها 55
3-9-3-1-3 ایجاد رخدادها 56
3-9-3-1-4 بارگذاری اطلاعات از فایل.. 56
فصل چهارم: محاسبات و یافته های تحقیق
4-1 مقدمه. 58
4-2 آزمون زبان خاص دامنه پیشنهادی.. 58
4-2-1 برنامه کاربردی 1: ورود و مشاهده نتیجه. 60
4-2-2 برنامه کاربردی 2: ثبتنام در سایت… 65
4-3 دستاورد زبان خاص دامنه پیشنهادی.. 69
4-4 کاستیهای DSL پیشنهادی.. 69
فصل پنجم : نتیجه گیری و پیشنهادات
5-1 نتیجهگیری.. 72
5-2 کارهای آینده 76
پیوست الف: معرفی زبان گرووی.. 78
ویژگیهای گرووی.. 79
قدرت در کد گرووی.. 81
محیط توسعه یکپارچه گرووی و پشتیبانی ویرایشگر. 82
پیوست ب: واژهنامه فارسی به انگلیسی.. 83
پیوست ج: واژهنامه انگلیسی به فارسی.. 85
فهرست مراجع………………………………….. 87
فهرست جدولها
جدول 2‑1: مقایسه زبانهای خاص دامنه با زبان خاص دامنه پیشنهادی.. 29
جدول 4‑1: برنامه نوشتهشده توسط زبانهای خاص دامنه پیشنهادی جهت آزمون . . 62
جدول 4-2: آزمون بار نوشتهشده برای برنامه 2. 66
جدول 5-1: انجام آزمون بار با بهره گرفتن از زبان خاص دامنه پیشنهادی در مقایسه با . . . 73
فهرست شکلها
شکل 2-1: برنامهنویسی جریان اصلی با یک زبان همهمنظوره [2] 12
شکل 2-2: برنامهنویسی زبان گرا با زبان خاص دامنه [2] 13
شکل 3-1: معماری کلی زبان خاص دامنه آزمون بار. 39
شکل 3-2: مرورگر فایرفاکس بازشده تحت کنترل چارچوب وبدرایور. 42
شکل 3-3: مثالی از کد گرووی و استفاده از چارچوب جب… 42
شکل 3-4: مورد آزمون با بهره گرفتن از اسپاک… 44
شکل 3-5: ساختار پوشه بندی برای چهارچوب جب… 48
شکل 3-6: نمایی از پوشه بندی درون Geb-core. 48
شکل 3-7: ساختار درختی سند و انتخاب نوع فارغ از محل قرارگیری عنصر. 51
شکل 3-8: گزینش دو عنصر از یک کلاس در سند. 52
شکل 3-9: گزینش عنصر با ترکیب انتخابگرهای کلاس و نوع. 53
شکل 4-1: فرایند توصیف آزمون بار در زبان خاص دامنه پیشنهادی توسط کاربر. 59
شکل 4-2: نحوه تفسیر و اجرای آزمون نوشتهشده به زبان پیشنهادی.. 60
شکل 4-3: ورود به سایت و مشاهده نتیجه. 61
شکل 4-4: نمونهای از خطای نمایش دادهشده 61
شکل 4-5: مشاهده نتیجه «قبول» 61
شکل 4‑6: نتایج آزمون بار نوشتهشده برای برنامه 1 بر اساس تعداد کاربران …. 63
شکل4‑7: نتایج آزمون بار نوشتهشده برای برنامه 1 بر اساس کاربران …. 64
شکل 4‑8: نتایج آزمون بار نوشتهشده برای برنامه 1 بر اساس تعداد کاربران …. 65
شکل4-9: فرم ورود اطلاعات و ثبتنام در وبسایت… 66
شکل 4-10: نتایج آزمون بار نوشتهشده برای برنامه 2 بر اساس تعداد کاربران …. 67
شکل 4-11: نتایج آزمون بار نوشتهشده برای برنامه 2 بر اساس تعداد کاربران …. 68
شکل 4‑12: نتایج آزمون بار نوشتهشده برای برنامه 2 بر اساس تعداد کاربران …. 68
شکل 5-1: زمان تقریبی پیاده سازی آزمون بار با بهره گرفتن از زبانهای مختلف… 75
شکل 5-2: حجم تقریبی پیاده سازی آزمون بار با بهره گرفتن از زبان های مختلف… 75
چکیده
این پایاننامه در مورد طراحی و پیادهسازی یک زبان خاص دامنه جهت انجام آزمون بار روی برنامههای کاربردی تحت وب است. زبانهای خاص دامنه، زبانهایی هستند که برای انجام اموری در حوزه خاص و با هدف سهولت در تولید برنامهها طراحی میشوند. در توسعه هر سیستم نرمافزاری، مرحله آزمون نرمافزار از جهات مختلف اهمیت بسیار داشته و زمان و هزینه زیادی را تحمیل میکند. برای نرمافزارهای تحت وب، آزمون بار از اهمیت ویژهای برخوردار است. هدف از این پایان نامه ، ارائه زبانی است که با بهره گرفتن از آن بتوان آزمون بار برای برنامههای کاربردی تحت وب را با سهولت و سرعت بیشتر و با هزینه و تخصص کمتری انجام داد. در این حوزه، زبانهای خاص دامنه به منظور انجام آزمونهای واحد و آزمونهای کاربردی ارائهشدهاند. هرچند با بهره گرفتن از برخی قابلیتهای این زبانها و ترکیب آن ها با امکانات زبانهای همه منظوره، میتوان آزمون بار نیز انجام داد، اما نمیتوان از آن ها به عنوان یک زبان خاص دامنه جهت آزمون بار نام برد زیرا کاربران همچنان با برخی دشواریهای زبانهای همه منظوره درگیر هستند؛ به عبارت دیگر زبان خاص دامنهای که تنها مختص آزمون بار باشد، طراحی و یا گزارش نشده است. این پایاننامه در واقع پاسخی به این نیاز است. زبان خاص دامنه پیشنهادی بر مبنای زبان گرووی و چارچوبهای جِب و اسپاک بنانهاده شده و قادر است تمامی سناریوهایی که یک کاربر انسانی در یک صفحه وب انجام میدهد را پشتیبانی نماید. در این زبان کاربر میتواند مشخص کند که برنامه کاربردی مورد نظر وی، با چه تعداد کاربر به صورت همزمان مورد آزمون قرار گیرد. همچنین امکان ذخیره خروجی و نتایج آزمون به قالبهایی مانند XML، XLS، CSV و TXT در نظر گرفتهشده تا نتایج به راحتی در نرمافزارهای تحلیلی و آماری مورد استفاده باشد. در این پایان نامه برای دو برنامه کاربردی تحت وب که سناریوهای متداولی هستند، دو آزمون بار انجامشده تا صحت عملکرد زبان در انجام آزمون بار مشخص شود. بر اساس این آزمونها، زبان خاص دامنه پیشنهادی زمان ایجاد یک آزمون بار را به طور تقریبی تا 40 برابر برای زبانهای سطح بالایی چون Java و C# کاهش میدهد. این میزان کاهش برای زبان سطح پایینتری چون C++ تا 80 برابر نیز میرسد. از نظر کد نویسی نیز استفاده از زبان خاص دامنه پیشنهادی برای زبانهای سطح بالای مذکور تا 6 برابر و برای زبان سطح پایینی چون C++، 10 تا 12 برابر حجم کد نویسی را کاهش میدهد.
1-1- مقدمه
امروزه برنامه های کاربردی و نرمافزاری نقش بسزایی در زندگی روزمره دارند و بنابراین نیاز است هرگونه خطا در این برنامهها به حداقل مقدار ممکن برسد. در این میان برنامه های کاربردی وب از جمله برنامه هایی هستند که بیشتر از بقیه مورد استفاده قرارگرفته و اهمیت یافتهاند لذا آزمون آنها نیز بسیار مورد توجه است. به دلیل تخصصی بودن حوزه آزمون نرمافزار، زبانهای خاص دامنه متعددی برای این حوزه به وجود آمدهاند که نسبت به زبانهای همهمنظوره کاراتر عمل می کنند. یکی از این حوزه ها آزمون برنامه های کاربردی وب است. در اکثر روشهای تولید برنامه های کاربردی فاز آزمون وجود دارد؛ اما در مورد برنامه های کاربردی وب این قضیه کمی متفاوت است چرا که این برنامه های کاربردی دو بخشی هستند. بخشی از آنها به قسمت سرور مربوط می شود و بخش دیگر از مرورگر کاربر به سمت سرور رفته و از دید کاربر بررسی میشوند؛ بنابراین برای برنامه های کاربردی وب دو نوع آزمون برای دو بخش مختلف صورت میپذیرد [1]:
[دوشنبه 1399-10-01] [ 01:08:00 ب.ظ ]
|