راهنمای ﻧﮕﺎرش ﻣﻘﺎﻟﻪ ﭘﮋوهشی درباره : طراحی و پیادهسازی یک زبان خاص دامنه برای آزمون ... |
جدول ۴-۲: آزمون بار نوشتهشده برای برنامه ۲ ۶۶
جدول ۵-۱: انجام آزمون بار با بهره گرفتن از زبان خاص دامنه پیشنهادی در مقایسه با . . . ۷۳
فهرست شکلها
عنوان صفحه
شکل ۲-۱: برنامهنویسی جریان اصلی با یک زبان همهمنظوره [۲] ۱۲
شکل ۲-۲: برنامهنویسی زبان گرا با زبان خاص دامنه [۲] ۱۳
شکل ۳-۱: معماری کلی زبان خاص دامنه آزمون بار ۳۹
شکل ۳-۲: مرورگر فایرفاکس بازشده تحت کنترل چارچوب وبدرایور ۴۲
شکل ۳-۳: مثالی از کد گرووی و استفاده از چارچوب جب ۴۲
شکل ۳-۴: مورد آزمون با بهره گرفتن از اسپاک ۴۴
شکل ۳-۵: ساختار پوشه بندی برای چهارچوب جب ۴۸
شکل ۳-۶: نمایی از پوشه بندی درون Geb-core 48
شکل ۳-۷: ساختار درختی سند و انتخاب نوع فارغ از محل قرارگیری عنصر ۵۱
شکل ۳-۸: گزینش دو عنصر از یک کلاس در سند ۵۲
شکل ۳-۹: گزینش عنصر با ترکیب انتخابگرهای کلاس و نوع ۵۳
شکل ۴-۱: فرایند توصیف آزمون بار در زبان خاص دامنه پیشنهادی توسط کاربر ۵۹
شکل ۴-۲: نحوه تفسیر و اجرای آزمون نوشتهشده به زبان پیشنهادی ۶۰
شکل ۴-۳: ورود به سایت و مشاهده نتیجه ۶۱
شکل ۴-۴: نمونهای از خطای نمایش دادهشده ۶۱
شکل ۴-۵: مشاهده نتیجه «قبول» ۶۱
شکل ۴‑۶: نتایج آزمون بار نوشتهشده برای برنامه ۱ بر اساس تعداد کاربران… ۶۳
شکل۴‑۷: نتایج آزمون بار نوشتهشده برای برنامه ۱ بر اساس کاربران … ۶۴
شکل ۴‑۸: نتایج آزمون بار نوشتهشده برای برنامه ۱ بر اساس تعداد کاربران … ۶۵
شکل۴-۹: فرم ورود اطلاعات و ثبتنام در وبسایت ۶۶
شکل ۴-۱۰: نتایج آزمون بار نوشتهشده برای برنامه ۲ بر اساس تعداد کاربران … ۶۷
شکل ۴-۱۱: نتایج آزمون بار نوشتهشده برای برنامه ۲ بر اساس تعداد کاربران … ۶۸
شکل ۴‑۱۲: نتایج آزمون بار نوشتهشده برای برنامه ۲ بر اساس تعداد کاربران … ۶۸
شکل ۵-۱: زمان تقریبی پیاده سازی آزمون بار با بهره گرفتن از زبانهای مختلف ۷۵
شکل ۵-۲: حجم تقریبی پیاده سازی آزمون بار با بهره گرفتن از زبان های مختلف ۷۵
فصل اول
مقدمه و کلیات تحقیق
مقدمه
امروزه برنامه های کاربردی و نرمافزاری نقش بسزایی در زندگی روزمره دارند و بنابراین نیاز است هرگونه خطا در این برنامه ها به حداقل مقدار ممکن برسد. در این میان برنامه های کاربردی وب از جمله برنامههایی هستند که بیشتر از بقیه مورد استفاده قرارگرفته و اهمیت یافتهاند لذا آزمون آنها نیز بسیار مورد توجه است. به دلیل تخصصی بودن حوزه آزمون نرمافزار، زبانهای خاص دامنه متعددی برای این حوزه به وجود آمدهاند که نسبت به زبانهای همهمنظوره کاراتر عمل می کنند. یکی از این حوزه ها آزمون برنامه های کاربردی وب است. در اکثر روشهای تولید برنامه های کاربردی فاز آزمون وجود دارد؛ اما در مورد برنامه های کاربردی وب این قضیه کمی متفاوت است چرا که این برنامه های کاربردی دو بخشی هستند. بخشی از آنها به قسمت سرور مربوط می شود و بخش دیگر از مرورگر کاربر به سمت سرور رفته و از دید کاربر بررسی میشوند؛ بنابراین برای برنامه های کاربردی وب دو نوع آزمون برای دو بخش مختلف صورت میپذیرد [۱]:
آزمون الگوریتمها و عناصر داخلی سرور
آزمون این برنامهها از دید کاربر و آزمون موارد کاربری سیستم
چارچوبهای متعددی وجود دارند که کار و تعامل با برنامههای کاربردی وب را سادهتر ساخته و به خودکارسازی آزمون آنها میپردازند که نمونههایی از آنها عبارتند از جب[۱]، کانو[۲]، گردل[۳] و… که با زبان گرووی[۴] طراحی شدهاند چرا که زبان گرووی از جهات مختلفی که در فصلهای آتی ذکر خواهد شد، مناسبتر از هر زبان دیگری برای انجام این کار است. بر خلاف گذشته که فقط آزمون واحد برای برنامههای کاربردی وب انجام میشد، این چارچوبها زمینهی ایجاد آزمون عملکردی را نیز فراهم می کنند. از آنجا که آزمون برنامههای کاربردی وب با این چارچوبها سادهتر انجام میگیرد و در بین آنها محیط جب با دیگر چارچوبها و تمام مرورگرها سازگار است، از آن استفاده شده است تا زبانی برای آزمون بار در برنامههای کاربردی وب طراحی شود.
بیان مسئله
اهمیت آزمون نرمافزار و اثرات آن بر کیفیت نرمافزار کاملاً واضح است. نوشتن آزمونها کاری گرانقیمت، خواندن آنها مشقتبار و نگهداریشان بسیار دشوار است. برای کار با این حوزه به تخصص بالایی نیاز است به همین دلیل این تفکر به وجود آمده است که برای دامنهی آزمون نرمافزار، زبانی طراحی شود تا آزمونها با تمرکز و تخصص بیشتری انجام گیرند. آزمون عملکردی برنامههای کاربردی وب به طور موثر، همواره یک چالش بوده است چرا که با وجود دشواری که در مسیر نوشتن و آزمون این برنامهها وجود دارد اما باز هم تا کنون فقط آزمون واحد به صورت سنتی برای وب وجود داشته است .[۱] برخی از اشکالات اساسی در یک برنامه وب، مواردی هستند که یک آزمون واحد هیچ راهی برای بررسی آنها ندارد.
متأسفانه، تحقیقات انجامشده نشان میدهد که استفاده از ابزارها برای نوشتن و اجرای آزمون عملکردی دست و پاگیر هستند. تفاوتهای موجود در مرورگرها و محیطها باعث شده است که اجرای آزمونها توسط توسعهدهندگان بر روی رایانههای مختلف تبدیل به یک چالش شود و یا اینکه اجرای آن عملی نباشد. همچنین نشاندهندهی این است که حتی پس از سرمایه گذاری زمان و تلاش برای نوشتن آزمون عملکردی، آنها تمایل دارند که بسیار شکننده باشند و همچنین فهم آنها برای توسعهدهندگان دیگر مشکل است. در این پایاننامه از جب که تمامی این موارد را تغییر داده و محیطی ساده فراهم آورده است تا بتوان با برنامههای کاربردی وب به سادگی تعامل برقرار کرد، استفاده شده است تا یکی از این چالشها برطرف شده و با طراحی یک زبان خاص دامنه، آزمون عملکردی برای حوزهی آزمون بار وبسایت صورت پذیرد تا بتوان برنامههای کاربردی وب را باکیفیت بالاتر عرضه داشت.
مشکل طراحی زبان خاص دامنه برای آزمون بار
این که جب یک چهارچوب مناسب جهت ارتباط با صفحات وب و کار با آنها است و به ما اجازه میدهد که بتوان از طریق یک رابط برنامهنویسی، در قالب یک زبان خاص دامنه، با تمامی تگهای صفحه وب مورد نظر ارتباط برقرار کنیم، به تنهایی برای آن چه که ما به دنبال آن هستیم کافی نخواهد بود. طراحی و اجرای یک آزمون عملکرد، به خصوص در مورد این پایاننامه که هدفش آزمون بار بر روی یک نرمافزار وب است، بسیار فراتر از کار با تگهای یک صفحه و ساخت درخواستهای GET و POST پروتکل HTTP است. اندازهگیری زمان اجرا، اندازهگیری میزان اطلاعات جا به جا شده و همین طور بررسی پاسخهای HTTP بازگشتی از سرویسدهنده وب، خود از مواردی هستند که یک چهارچوب آزمون بار، نیازمند اندازهگیری آنها و گزارش دهی در مورد آنها است.
روش مقابله با مشکل طراحی
برای ایجاد یک آزمون بار، به طور مثال آزمون مربوط به حداکثر میزان پاسخدهی یک صفحه، به یک رابط برنامهنویسی یا چهارچوب طراحی شده در قالب یک زبان خاص دامنهی داخلی نیاز است. هدف در این پایاننامه این است که بتوان به کمک استفاده از زبان گرووی و همین طور چهارچوب جب به ایجاد این رابط برنامهنویسی پرداخت. یک برنامهنویس میتواند به کمک این رابط برنامهنویسی، صفحه مورد نظر خود را از لحاظ مقادیر معلوم و مشخص مربوط به آزمون بار بررسی کند.
حوزه پیشنهادی مسئله
آزمون بار می تواند در حوزه های مختلف برای یک وبسایت صورت پذیرد. یکی از این حوزه ها میزان پاسخدهی سرویسدهندهی وب میباشد که نتیجه آن تعداد پاسخها در واحد زمان است. نوع دیگر آزمون بار می تواند نرخ اطلاعات فرستادهشده و دریافت شده در درخواستهای مختلف وب باشد به طوری که بتوان در نهایت گفت که یک صفحهی خاص با چه سرعتی به ما خدمت رسانی می کند. همچنین می تواند شامل آزمون قابلیت اطمینان باشد به طوری که در نهایت به ما میگوید که یک صفحه خاص یا یک عملکرد خاص با چه شرایطی قابلاطمینان است.
در آزمون عملکردی یک تابع، برنامهی کاربردی مورد آزمون قرار میگیرد و معمولاً کلاسهای متعددی درگیر آن میشوند ولی در آزمون واحد یک متد روی یک کلاس آزموده میشود و یا اینکه به طور معمول یک آزمون واحد معادل یک آزمون کلاس است.
ساختار پایاننامه
در فصل اول پایاننامه، مقدمه و کلیات تحقیق ذکر میشود که در آن ابتدا به بیان مسئله و سپس به هدف و انگیزه از انجام این پایاننامه، تشریح جزئی از پایاننامه و ساختار پایاننامه پرداخته شده است. در فصل دوم به ادبیات و پیشینه تحقیق اختصاص داده شده است که بیانگر مفاهیم کلی کارهای انجامشده در زمینه آزمون نرمافزار به خصوص نرمافزارهای وب میباشد. همچنین در این فصل سابقهای در مورد انواع زبانهای برنامهنویسی به خصوص زبانهای برنامهنویسی خاص دامنه و خصوصیات آنها ذکر خواهد شد. فصل سوم به بررسی مفصل و دقیق طرح پیشنهادی پایاننامه میپردازد. در این فصل مشکلات سر راه آزمون عملکرد به کمک ابزارهای موجود بررسیشده و در نهایت راه حل مورد نظر بیان خواهد شد. فصل چهارم به پیادهسازی زبان پیشنهادی و بررسی ساختار داخلی آن میپردازد و با ارائه مثالهایی به نحوه استفاده از این چهارچوب جدید میپردازد. فصل پنجم نتیجهگیری است و این فصل با ارائه نقاط ضعف و قدرت چهارچوب طراحی شده راه را برای پژوهشهای آینده روشن میکند.
فرم در حال بارگذاری ...
[یکشنبه 1400-08-16] [ 04:07:00 ق.ظ ]
|