POP3، SMTP، FTP
LDAP، HTTP، HTTPS

 

HTTP
HTTPS

 

HTTP
HTTPS

 

 

 

فصل سوم
روش تحقیق
۳-۱ مقدمه
در این فصل زبان خاص دامنه پیشنهادی برای آزمون بار برنامه‌های کاربردی تحت وب با جزئیات تشریح خواهد شد. ابتدا تعریفی از آزمون نرم‌افزار ارائه می­ شود و سپس مشکلات پیش روی آزمون نویس‌ها بررسی خواهند شد. در ادامه ایده ارائه یک زبان خاص دامنه برای انجام آزمون بار توضیح داده شده و لزوم وجود این زبان برای برنامه‌های کاربردی تحت وب بیان می گردد.
پایان نامه - مقاله - پروژه
بخش اصلی این فصل به معماری، مشخصات، قابلیت‌ها و ویژگی‌های زبان خاص دامنه پیشنهادی برای آزمون بار اختصاص دارد. پارامترهای مؤثر در آزمون بار، نحو زبان و چاچوب‌های مورد استفاده در زبان خاص دامنه پیشنهادی از جمله مهم‌ترین مواردی هستند که در ادامه بررسی خواهند شد.
۳-۲ آزمون نرم‌افزار
مرحله آزمون نرم‌افزار را می­توان در تمامی روش­های توسعه نرم‌افزار جست و جو کرده و یافت. مطالب و مقالات زیادی در مورد اهمیت و چرایی وجود مرحله آزمون نرم‌افزار نوشته شده است و در این پایان نامه هدف تکرار دوباره این قضایا نیست؛ بنابراین، مرحله آزمون نرم‌افزار پذیرفته شده و همه‌ی بر این که وجود چنین مرحله­ ای نه تنها مفید بلکه ضروری است توافق دارند [۲۱].
آزمون‌های نرم‌افزار معمولاً با توجه به نیازهایی که با وجود نرم‌افزار برطرف خواهند شد، دسته­بندی و طراحی می­شوند. به طور مثال، یک نرم‌افزار که قرار است محاسبات آماری مربوط به یک سری داده را انجام دهد، نیازمند آن است که قبل از استقرار و استفاده گسترده از آن، به خوبی از عهده محاسبات در مورد یکسری داده ­های آزمون برآید. معماری یک نرم‌افزار و خصوصیات پیاده‌سازی آن نیز می ­تواند در نوع آزمون تأثیرگذار باشد. به عنوان یک مثال که درگیری با موضوع این پایان‌نامه نیز دارد، آزمون برنامه ­های تحت وب به واسطه معماری وب که یک معماری دو سویه است، می­باشد که این نیز در دو دسته کلی تقسیم ­بندی می­ شود که هر کدام از این دسته‌ ها، خصوصیات هر سوی این معماری دوطرفه را مورد ارزیابی قرار می‌دهند.
۳-۳ مشکلات پیش روی آزمون‌نویس‌ها
این که آزمون چیست و چرا می­بایست وجود داشته باشد به طور مفصل در فصل دوم مورد بحث و بررسی قرار گرفت. در این بخش سعی بر آن است تا بتوان مشکلات یک آزمون نویس را هنگامی که می­خواهد برای یک نرم‌افزار، مورد آزمون بنویسد بررسی شود.
موارد آزمون مربوط به الگوریتم­ها یا خصوصیات فنی یک نرم‌افزار جزو موارد آزمون ساده هستند چرا که نوشتن آزمون و اجرای آن به راحتی صورت می­پذیرد. هر مورد آزمون نیاز به یک سری پیش‌شرط و محیط آزمون دارد. در صورتی که پیش‌شرط‌ها تعیین نشوند و یا به طور مناسب تهیه نگردند، نمی­بایست به نتیجه آزمون اعتماد کرد و یا حتی انتظار داشت که آزمون بدون مواجهه با خطا به پایان برسد. محیط آزمون نیز خود عاملی اساسی است. در صورتی که محیط آزمون به همراه عواملی که در آن محیط، وجودشان الزامی است، مانند یک پایگاه داده فرضی که می­بایست قبل از شروع آزمون ایجاد شده باشد و یا رکوردگیری­های خاصی که می‌بایست در جدولی وجود داشته باشند تا آزمون بتواند شروع شود، پدید نیامده باشد، همچنان نمی­ توان انتظار داشت که آزمون کار کند. معمولاً خود آزمون به اندازه ایجاد محیط پیرامون آزمون سخت و طاقت‌فرسا نیست.
موارد مربوط به محیط و پیش‌شرط‌های یک آزمون، زمانی که آزمون مربوط به یکی از فرایند­های اساسی سیستم است، خود را بیشتر و بیشتر نمایان می­ کنند و در این هنگام است که یک برنامه­نویس به درگیری با این عوامل خواهد پرداخت. آزمون فرآیندهایی که نتیجه فرآیندهای دیگر هستند و همین طور، فرآیندهایی که نیاز به وجود عوامل بیرونی مورد آزمون دارند، از جمله مواردی هستند که فرایند نوشتن مورد آزمون و همین طور اجرای مورد آزمون را به شدت کند می­ کنند.
۳-۴ زبان خاص دامنه برای آزمون دامنه
با مقدمه­ای که در بخش قبل بیان شد، می­توان دید که یک آزمون کننده نیاز دارد تا بتواند خیلی سریع مورد آزمون را نوشته و بدون درگیری با جزییات پیاده‌سازی آزمون، مثلاً جزییات ارتباط به پایگاه داده و همین طور جزییات باز شدن یک سوکت[۳۲] سرور، فرایند مورد نظرش را کد کرده و بیازماید. در اینجا است که نیاز به وجود یک زبان سطح بالاتر و اختصاصی تر جهت انجام آزمون‌ها احساس می­ شود. چنین زبانی می ­تواند یک زبان اسکریپتی مانند پرل و یا پایتون باشد چرا که معمولاً کاربر آزمون کننده درگیر نوع داده ­های زبان نبوده و تنها می­خواهد جریان فرایند داخل ذهنش را پیاده‌سازی کند. در مورد پروژه‌های جاوا، گرووی انتخاب خوبی است. در فصل دوم در مورد خصوصیات این زبان و همین طور قدرتش در ترکیب شدن با کدهای جاوا بسیار سخن گفته شده است که از خواننده دعوت می‌شود جهت تکمیل اطلاعاتش در مورد زبان گرووی به فصل دوم و سپس به پیوست (الف) مراجعه کند.
اما یک زبان اسکریپتی کافی نیست. تنوع بالای آزمون‌ها و انواع گوناگون فرایند­هایی که قابل آزمون هستند، خود یک مانع بر سر راه ایجاد زبانی یکپارچه برای آزمون است. از این روست که مثلاً در مورد آزمون نرم‌افزارهای تحت وب، مجموعه ­ای از چهارچوب­های خاص این فضا که اکثر آن­ها مبتنی بر زبان اسکریپتی گرووی هستند، پدید آمده‌اند. جب مثالی از آن‌هاست.
چهارچوب­های مبتنی بر یک زبان اسکریپتی که برای یک نوع آزمون خاص ایجادشده‌اند را می­توان نوعی زبان خاص دامنه داخلی فرض کرد که بر روی یک زبان اسکریپتی پدید آمده­اند. جب را می­توان یک زبان خاص دامنه آزمون نرم­افزارهای تحت وب فرض کرد که بر روی زبان اسکریپتی گرووی پدید آمده است. با بهره گرفتن از این چهارچوب یک آزمون کننده وب می ­تواند به راحتی و بدون درگیر شدن با جزییات مربوط به فرستادن و دریافت یک درخواست HTTP و همین طور بدون درگیر شدن با جزییات و مشکلات مربوط به تجزیه کردن[۳۳] سندهای HTML، به المان­های HTML موجود در یک صفحه وب دست یابد. بدین گونه است که تمرکز آزمون کننده متوجه فرایند مورد نظرش برای آزمون خواهد شد و می ­تواند دانش کمتری برای آزمون یک فرایند پیچیده داشته باشد.
۳-۴-۱ نیاز به وجود یک زبان خاص دامنه برای دامنه آزمون بار
زبان­های خاص دامنه داخلی زیادی تحت عنوان چهارچوب­های مبتنی بر گرووی برای آزمون نرم­افزارهای تحت وب ایجادشده‌اند که تا حد زیادی درخواست­های آزمون کنندگان را در حوزه ­های مختلف آزمون این نرم­افزارها فراهم آورده­اند. در این پایان نامه هدف آن است که با ایجاد یک چهارچوب اختصاصی جهت کمک به حوزه آزمون بار، آزمون کنندگان در این قسمت آسوده­تر عمل کنند. قبل از هر چیز می­بایست در مورد نرم‌افزارهای تحت وب و همین طور خصوصیات یک آزمون بار بیشتر بدانیم تا بتوانیم یک چهارچوب کاربردی در این زمینه ایجاد کنیم.
۳-۵ آزمون نرم‌افزارهای تحت وب
طی سال­های اخیر، تولیدات نرم­افزاری بر مبنای معماری لاغر[۳۴] که معماری وب یکی از نمونه‌های آن است، رشد روزافزونی داشته است. به طوری که معماری مبتنی بر وب جزو اولین گزینه­ های تصمیم‌گیری در مورد معماری برنامه‌های کاربردی است. همان طور که در بخش قبل گفته شده است، معماری وب یک معماری دوسویه است بدین معنی که یک سوی آن یک نرم­افزار مشتری قرار دارد و سوی دیگر یک نرم­افزار سرویس‌دهنده که به مشتری خدمات وب می­دهد. پروتکل این معماری HTTP است و از این رو یک سو یک HTTP Client مانند مرورگر وجود دارد و سوی دیگر یک HTTP Server یا Web Server قرار گرفته است.
آزمون‌های یک نرم­افزار تحت وب، به دلیل ذات دوطرفه بودن معماری وب، به دو دسته تقسیم می­شوند: آزمون‌های سمت سرور و آزمون‌های سمت مشتری. آزمون‌های سمت سرور بیشتر به بررسی و ارزیابی فرآیندهای سمت سرور می­پردازند که درگیر با فناوری مورد استفاده سمت سرور است. از سوی دیگر، آزمون‌های سمت مشتری، به آزمون عملکردی نرم‌افزار تحت وب می­پردازند و از دید فردی که پشت یک مرورگر نشسته است و با برنامه تحت وب کار می‌کند، فرآیندها و عملکردهای سیستم را می­آزمایند. این پایان‌نامه به طور تخصصی به آزمون‌های سمت مشتری می ­پردازد و قصد دارد در این زمینه بهبودهایی را به وجود آورد.
۳-۵-۱ آزمون‌های سمت مشتری
آزمون‌های سمت مشتری در یک نرم‌افزار تحت وب می­توانند با اهداف زیر انجام شوند:
بررسی سازوکارهای امنیتی و عامل‌های امنیتی در فضایی که کاربر با آن کار می­ کند.
آزمون موارد کاربری[۳۵] سیستم و چک کردن این که به درستی پیاده‌سازی شده ­اند.
آزمون صفحات مختلف وب‌سایت با هدف پیدا کردن صفحاتی که وجود ندارند و یا به هر دلیل به درستی دریافت نمی­شوند. از این آزمون با عنوان آزمون دسترسی­پذیری نیز یاد می­ شود.
آزمون این که سیستم نرم­افزاری در مواردی که مورد هجمه­ی انبوه درخواست­ها قرار می­گیرد آیا می ­تواند همچنان به مشتریان جدید خود پاسخ دهد. این آزمون در نهایت به دنبال پیدا کردن نقطه آستانه­ای است که تمامی مشتریان جدید نتوانند از خدمات صفحه مورد نظر استفاده نمایند. پیدا کردن چنین نقطه­ای ممکن است با توجه به خصوصیات سخت­افزاری رایانه­ای که نرم­افزار سرور بر روی آن نصب شده است و همین طور خصوصیات نرم­افزاری سرویس که مورد انتظار است، بسیار ساده و یا در مواردی غیرقابل تعیین شدن باشد. این آزمون و تمامی آزمون‌های دیگری که هدف آن­ها تعیین آستانه­ اعتماد به یک سرویس هستند، تحت عنوان آزمون‌های قابلیت اطمینان یاد می­شوند.
آزمون و بررسی خصوصیات مربوط به ارتباطی[۳۶] که کاربر از طریق آن در حال دریافت سرویس است. این آزمون که از آن با عنوان آزمون بار یاد می­ شود، تلاش می­ کند اطلاعات مربوط به زمان و میزان اطلاعات مبادله شده برای یک سناریوی درخواست سرویس را پیدا نماید. موارد گفته‌شده در مورد ۴ نیز می­توانند جزو آزمون بار فرض شده و در این دسته گنجانده شوند.
این پایان‌نامه سعی در آن دارد تا به کمک طراحی یک چهارچوب، برنامه‌نویسان را در ایجاد آزمون‌های بار آسان و موثر یاری رساند.
۳-۶ معماری سیستم پیشنهادی
زبان خاص دامنه ارائه‌شده در این پایان‌نامه، از نوع داخلی است. در زبان­های خاص دامنه داخلی، زبان خاص دامنه بر روی یک زبان همه منظوره بنیان نهاده می‌شود. در اینجا از زبان گرووی به عنوان زبان همه منظوره استفاده شده است. دلیل این امر آن است که این زبان به خوبی از قابلیت تعریف زبان­های خاص دامنه پشتیبانی می‌کند و همچنین رابطه تنگاتنگی با زبان جاوا دارد.
علاوه بر زبان گرووی، از دو چارچوب[۳۷] معروف مبتنی بر گرووی نیز استفاده می‌شود. این چارچوب‌ها که برای خودکارسازی فرآیندهای وب[۳۸] و همچنین انجام آزمون‌های مختلف به کار می‌روند، به ترتیب عبارت‌اند از: جب و اسپاک[۳۹]. با در نظر گرفتن این دو چارچوب، معماری کلی سیستم به صورت شکل ۳-۱ خواهد بود:
شکل ۳-۱: معماری کلی زبان خاص دامنه آزمون بار
به عبارت دیگر در ابتدا آزمون‌های آزمون بار مدنظر، در زبان گرووی و با بهره گرفتن از کتابخانه‌های جب و اسپاک طراحی و نوشته‌شده‌اند. سپس با بهره گرفتن از قابلیت‌های موجود در گرووی برای تعریف زبان­ خاص دامنه، این آزمون به شکلی که در ادامه به آن خواهیم پرداخت تبدیل شده است. این شکل هم بسیار خوانا بوده و هم کاملاً کاربردی است.
۳-۷ پارامترهای مؤثر در آزمون بار
دو دسته پارامتر اصلی در آزمون بار اهمیت دارند که در ادامه به تعریف آن‌ها پرداخته خواهد شد.
۳-۷-۱ پارامترهای زمانی
به طور کلی در آزمون بار برنامه‌های کاربردی تحت وب دو پارامتر زمانی اهمیت دارند:
مدت زمانی که طول می‌کشد تا اولین بایت از اطلاعات صفحه مورد آزمون دریافت شود.

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...