دانلود منابع تحقیقاتی : پژوهش های پیشین با موضوع طراحی و پیادهسازی ... |
POP3، SMTP، FTP
LDAP، HTTP، HTTPS
HTTP
HTTPS
HTTP
HTTPS
فصل سوم
روش تحقیق
۳-۱ مقدمه
در این فصل زبان خاص دامنه پیشنهادی برای آزمون بار برنامههای کاربردی تحت وب با جزئیات تشریح خواهد شد. ابتدا تعریفی از آزمون نرمافزار ارائه می شود و سپس مشکلات پیش روی آزمون نویسها بررسی خواهند شد. در ادامه ایده ارائه یک زبان خاص دامنه برای انجام آزمون بار توضیح داده شده و لزوم وجود این زبان برای برنامههای کاربردی تحت وب بیان می گردد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
بخش اصلی این فصل به معماری، مشخصات، قابلیتها و ویژگیهای زبان خاص دامنه پیشنهادی برای آزمون بار اختصاص دارد. پارامترهای مؤثر در آزمون بار، نحو زبان و چاچوبهای مورد استفاده در زبان خاص دامنه پیشنهادی از جمله مهمترین مواردی هستند که در ادامه بررسی خواهند شد.
۳-۲ آزمون نرمافزار
مرحله آزمون نرمافزار را میتوان در تمامی روشهای توسعه نرمافزار جست و جو کرده و یافت. مطالب و مقالات زیادی در مورد اهمیت و چرایی وجود مرحله آزمون نرمافزار نوشته شده است و در این پایان نامه هدف تکرار دوباره این قضایا نیست؛ بنابراین، مرحله آزمون نرمافزار پذیرفته شده و همهی بر این که وجود چنین مرحله ای نه تنها مفید بلکه ضروری است توافق دارند [۲۱].
آزمونهای نرمافزار معمولاً با توجه به نیازهایی که با وجود نرمافزار برطرف خواهند شد، دستهبندی و طراحی میشوند. به طور مثال، یک نرمافزار که قرار است محاسبات آماری مربوط به یک سری داده را انجام دهد، نیازمند آن است که قبل از استقرار و استفاده گسترده از آن، به خوبی از عهده محاسبات در مورد یکسری داده های آزمون برآید. معماری یک نرمافزار و خصوصیات پیادهسازی آن نیز می تواند در نوع آزمون تأثیرگذار باشد. به عنوان یک مثال که درگیری با موضوع این پایاننامه نیز دارد، آزمون برنامه های تحت وب به واسطه معماری وب که یک معماری دو سویه است، میباشد که این نیز در دو دسته کلی تقسیم بندی می شود که هر کدام از این دسته ها، خصوصیات هر سوی این معماری دوطرفه را مورد ارزیابی قرار میدهند.
۳-۳ مشکلات پیش روی آزموننویسها
این که آزمون چیست و چرا میبایست وجود داشته باشد به طور مفصل در فصل دوم مورد بحث و بررسی قرار گرفت. در این بخش سعی بر آن است تا بتوان مشکلات یک آزمون نویس را هنگامی که میخواهد برای یک نرمافزار، مورد آزمون بنویسد بررسی شود.
موارد آزمون مربوط به الگوریتمها یا خصوصیات فنی یک نرمافزار جزو موارد آزمون ساده هستند چرا که نوشتن آزمون و اجرای آن به راحتی صورت میپذیرد. هر مورد آزمون نیاز به یک سری پیششرط و محیط آزمون دارد. در صورتی که پیششرطها تعیین نشوند و یا به طور مناسب تهیه نگردند، نمیبایست به نتیجه آزمون اعتماد کرد و یا حتی انتظار داشت که آزمون بدون مواجهه با خطا به پایان برسد. محیط آزمون نیز خود عاملی اساسی است. در صورتی که محیط آزمون به همراه عواملی که در آن محیط، وجودشان الزامی است، مانند یک پایگاه داده فرضی که میبایست قبل از شروع آزمون ایجاد شده باشد و یا رکوردگیریهای خاصی که میبایست در جدولی وجود داشته باشند تا آزمون بتواند شروع شود، پدید نیامده باشد، همچنان نمی توان انتظار داشت که آزمون کار کند. معمولاً خود آزمون به اندازه ایجاد محیط پیرامون آزمون سخت و طاقتفرسا نیست.
موارد مربوط به محیط و پیششرطهای یک آزمون، زمانی که آزمون مربوط به یکی از فرایندهای اساسی سیستم است، خود را بیشتر و بیشتر نمایان می کنند و در این هنگام است که یک برنامهنویس به درگیری با این عوامل خواهد پرداخت. آزمون فرآیندهایی که نتیجه فرآیندهای دیگر هستند و همین طور، فرآیندهایی که نیاز به وجود عوامل بیرونی مورد آزمون دارند، از جمله مواردی هستند که فرایند نوشتن مورد آزمون و همین طور اجرای مورد آزمون را به شدت کند می کنند.
۳-۴ زبان خاص دامنه برای آزمون دامنه
با مقدمهای که در بخش قبل بیان شد، میتوان دید که یک آزمون کننده نیاز دارد تا بتواند خیلی سریع مورد آزمون را نوشته و بدون درگیری با جزییات پیادهسازی آزمون، مثلاً جزییات ارتباط به پایگاه داده و همین طور جزییات باز شدن یک سوکت[۳۲] سرور، فرایند مورد نظرش را کد کرده و بیازماید. در اینجا است که نیاز به وجود یک زبان سطح بالاتر و اختصاصی تر جهت انجام آزمونها احساس می شود. چنین زبانی می تواند یک زبان اسکریپتی مانند پرل و یا پایتون باشد چرا که معمولاً کاربر آزمون کننده درگیر نوع داده های زبان نبوده و تنها میخواهد جریان فرایند داخل ذهنش را پیادهسازی کند. در مورد پروژههای جاوا، گرووی انتخاب خوبی است. در فصل دوم در مورد خصوصیات این زبان و همین طور قدرتش در ترکیب شدن با کدهای جاوا بسیار سخن گفته شده است که از خواننده دعوت میشود جهت تکمیل اطلاعاتش در مورد زبان گرووی به فصل دوم و سپس به پیوست (الف) مراجعه کند.
اما یک زبان اسکریپتی کافی نیست. تنوع بالای آزمونها و انواع گوناگون فرایندهایی که قابل آزمون هستند، خود یک مانع بر سر راه ایجاد زبانی یکپارچه برای آزمون است. از این روست که مثلاً در مورد آزمون نرمافزارهای تحت وب، مجموعه ای از چهارچوبهای خاص این فضا که اکثر آنها مبتنی بر زبان اسکریپتی گرووی هستند، پدید آمدهاند. جب مثالی از آنهاست.
چهارچوبهای مبتنی بر یک زبان اسکریپتی که برای یک نوع آزمون خاص ایجادشدهاند را میتوان نوعی زبان خاص دامنه داخلی فرض کرد که بر روی یک زبان اسکریپتی پدید آمدهاند. جب را میتوان یک زبان خاص دامنه آزمون نرمافزارهای تحت وب فرض کرد که بر روی زبان اسکریپتی گرووی پدید آمده است. با بهره گرفتن از این چهارچوب یک آزمون کننده وب می تواند به راحتی و بدون درگیر شدن با جزییات مربوط به فرستادن و دریافت یک درخواست HTTP و همین طور بدون درگیر شدن با جزییات و مشکلات مربوط به تجزیه کردن[۳۳] سندهای HTML، به المانهای HTML موجود در یک صفحه وب دست یابد. بدین گونه است که تمرکز آزمون کننده متوجه فرایند مورد نظرش برای آزمون خواهد شد و می تواند دانش کمتری برای آزمون یک فرایند پیچیده داشته باشد.
۳-۴-۱ نیاز به وجود یک زبان خاص دامنه برای دامنه آزمون بار
زبانهای خاص دامنه داخلی زیادی تحت عنوان چهارچوبهای مبتنی بر گرووی برای آزمون نرمافزارهای تحت وب ایجادشدهاند که تا حد زیادی درخواستهای آزمون کنندگان را در حوزه های مختلف آزمون این نرمافزارها فراهم آوردهاند. در این پایان نامه هدف آن است که با ایجاد یک چهارچوب اختصاصی جهت کمک به حوزه آزمون بار، آزمون کنندگان در این قسمت آسودهتر عمل کنند. قبل از هر چیز میبایست در مورد نرمافزارهای تحت وب و همین طور خصوصیات یک آزمون بار بیشتر بدانیم تا بتوانیم یک چهارچوب کاربردی در این زمینه ایجاد کنیم.
۳-۵ آزمون نرمافزارهای تحت وب
طی سالهای اخیر، تولیدات نرمافزاری بر مبنای معماری لاغر[۳۴] که معماری وب یکی از نمونههای آن است، رشد روزافزونی داشته است. به طوری که معماری مبتنی بر وب جزو اولین گزینه های تصمیمگیری در مورد معماری برنامههای کاربردی است. همان طور که در بخش قبل گفته شده است، معماری وب یک معماری دوسویه است بدین معنی که یک سوی آن یک نرمافزار مشتری قرار دارد و سوی دیگر یک نرمافزار سرویسدهنده که به مشتری خدمات وب میدهد. پروتکل این معماری HTTP است و از این رو یک سو یک HTTP Client مانند مرورگر وجود دارد و سوی دیگر یک HTTP Server یا Web Server قرار گرفته است.
آزمونهای یک نرمافزار تحت وب، به دلیل ذات دوطرفه بودن معماری وب، به دو دسته تقسیم میشوند: آزمونهای سمت سرور و آزمونهای سمت مشتری. آزمونهای سمت سرور بیشتر به بررسی و ارزیابی فرآیندهای سمت سرور میپردازند که درگیر با فناوری مورد استفاده سمت سرور است. از سوی دیگر، آزمونهای سمت مشتری، به آزمون عملکردی نرمافزار تحت وب میپردازند و از دید فردی که پشت یک مرورگر نشسته است و با برنامه تحت وب کار میکند، فرآیندها و عملکردهای سیستم را میآزمایند. این پایاننامه به طور تخصصی به آزمونهای سمت مشتری می پردازد و قصد دارد در این زمینه بهبودهایی را به وجود آورد.
۳-۵-۱ آزمونهای سمت مشتری
آزمونهای سمت مشتری در یک نرمافزار تحت وب میتوانند با اهداف زیر انجام شوند:
بررسی سازوکارهای امنیتی و عاملهای امنیتی در فضایی که کاربر با آن کار می کند.
آزمون موارد کاربری[۳۵] سیستم و چک کردن این که به درستی پیادهسازی شده اند.
آزمون صفحات مختلف وبسایت با هدف پیدا کردن صفحاتی که وجود ندارند و یا به هر دلیل به درستی دریافت نمیشوند. از این آزمون با عنوان آزمون دسترسیپذیری نیز یاد می شود.
آزمون این که سیستم نرمافزاری در مواردی که مورد هجمهی انبوه درخواستها قرار میگیرد آیا می تواند همچنان به مشتریان جدید خود پاسخ دهد. این آزمون در نهایت به دنبال پیدا کردن نقطه آستانهای است که تمامی مشتریان جدید نتوانند از خدمات صفحه مورد نظر استفاده نمایند. پیدا کردن چنین نقطهای ممکن است با توجه به خصوصیات سختافزاری رایانهای که نرمافزار سرور بر روی آن نصب شده است و همین طور خصوصیات نرمافزاری سرویس که مورد انتظار است، بسیار ساده و یا در مواردی غیرقابل تعیین شدن باشد. این آزمون و تمامی آزمونهای دیگری که هدف آنها تعیین آستانه اعتماد به یک سرویس هستند، تحت عنوان آزمونهای قابلیت اطمینان یاد میشوند.
آزمون و بررسی خصوصیات مربوط به ارتباطی[۳۶] که کاربر از طریق آن در حال دریافت سرویس است. این آزمون که از آن با عنوان آزمون بار یاد می شود، تلاش می کند اطلاعات مربوط به زمان و میزان اطلاعات مبادله شده برای یک سناریوی درخواست سرویس را پیدا نماید. موارد گفتهشده در مورد ۴ نیز میتوانند جزو آزمون بار فرض شده و در این دسته گنجانده شوند.
این پایاننامه سعی در آن دارد تا به کمک طراحی یک چهارچوب، برنامهنویسان را در ایجاد آزمونهای بار آسان و موثر یاری رساند.
۳-۶ معماری سیستم پیشنهادی
زبان خاص دامنه ارائهشده در این پایاننامه، از نوع داخلی است. در زبانهای خاص دامنه داخلی، زبان خاص دامنه بر روی یک زبان همه منظوره بنیان نهاده میشود. در اینجا از زبان گرووی به عنوان زبان همه منظوره استفاده شده است. دلیل این امر آن است که این زبان به خوبی از قابلیت تعریف زبانهای خاص دامنه پشتیبانی میکند و همچنین رابطه تنگاتنگی با زبان جاوا دارد.
علاوه بر زبان گرووی، از دو چارچوب[۳۷] معروف مبتنی بر گرووی نیز استفاده میشود. این چارچوبها که برای خودکارسازی فرآیندهای وب[۳۸] و همچنین انجام آزمونهای مختلف به کار میروند، به ترتیب عبارتاند از: جب و اسپاک[۳۹]. با در نظر گرفتن این دو چارچوب، معماری کلی سیستم به صورت شکل ۳-۱ خواهد بود:
شکل ۳-۱: معماری کلی زبان خاص دامنه آزمون بار
به عبارت دیگر در ابتدا آزمونهای آزمون بار مدنظر، در زبان گرووی و با بهره گرفتن از کتابخانههای جب و اسپاک طراحی و نوشتهشدهاند. سپس با بهره گرفتن از قابلیتهای موجود در گرووی برای تعریف زبان خاص دامنه، این آزمون به شکلی که در ادامه به آن خواهیم پرداخت تبدیل شده است. این شکل هم بسیار خوانا بوده و هم کاملاً کاربردی است.
۳-۷ پارامترهای مؤثر در آزمون بار
دو دسته پارامتر اصلی در آزمون بار اهمیت دارند که در ادامه به تعریف آنها پرداخته خواهد شد.
۳-۷-۱ پارامترهای زمانی
به طور کلی در آزمون بار برنامههای کاربردی تحت وب دو پارامتر زمانی اهمیت دارند:
مدت زمانی که طول میکشد تا اولین بایت از اطلاعات صفحه مورد آزمون دریافت شود.
فرم در حال بارگذاری ...
[چهارشنبه 1400-09-24] [ 10:41:00 ب.ظ ]
|