بخشی از مقاله

ارزیابی وتست نرم افزار در معماری سرویس گرا


خلاصه

معماری سرویس گرا، سبکی از معماری سیستم های اطلاعاتی است که از اتصال سست سرویس ها، جهت انعطاف پذیری وتعامل پذیری سیستم ها و به صورت مستقل از فن آوری پشتیبانی می کند واز ترکیب مجموعه ای از سرویس های مبتنی بر حرفه تشکیل شده است. معماری سرویس گرا، یک تکنولوژی در توسعه نرم افزار است؛ معماری سرویس گرا، یک الگو جدید ارائه می دهد که آن به صورت درست وبی نقص تاثیر می گذارد. سیکل توسعه نرم افزار شامل آنالیز، خصوصیات، طراحی، پیاده سازی، شناسایی، اعتبار سنجی، نگهداری، ارزیابی است.دراین مقاله، چندین قابلیت تست برای ارزیابی معیارهای معماری سرویس گرا پیشنهاد می شود؛ هرکدام به عنوان مبنای مقایسه، برای هر یک از مهیا کننده ی سرویس و سازنده های کاربردی برای ارزیابی پشتیبانی تست معماری سرویس گرا نرم افزار به کار می رود.

کلمات کلیدی: معماری سرویس گرا، قابلیت تست، برنامه کاربردی، سرویس.


1

1. مقدمه

سرویس، واسط بین تولیدکننده ومصرف کننده است. طبق دیدگاه تولید کننده، یک سرویس، ماژول تابع جامع وتعریف مشخص است که وابسته به توابع دیگر نیست. این سرویس ها، ماژول ها یا بسته های نرم افزاری موجود اطراف ما، که نرم افزار با فراهم کردن واسط های جدید ارث می برند را می توانند توسعه دهند. طبق دیدگاه سازنده ها، سرویس یک واحد کار انجام شده به وسیله تولید کننده برای رسیدن به نتایج مطلوب است تا نیاز مصرف کننده را برآورده سازد، که معمولاواسط کاربری را فراهم می کند بنابراین آن invoked به وسیله دیگر سرویس نامیده شود.

معماری سرویس گرا، سبکی از معماری سیستم های اطلاعاتی است که از اتصال سست سرویس ها، جهت انعطاف پذیری وتعامل پذیری سیستم ها و به صورت مستقل از فن آوری پشتیبانی می کند واز ترکیب مجموعه ای از سرویس های مبتنی بر حرفه تشکیل شده است. این سرویس ها مستقل از پلتفرم هستندومی توانند روی کامپیوتر های مختلف مستقر شوند وازدیگرسرویس ها برای رسیدن به هدف مطلوب ونتایج پایانی استفاده کنند .

یک سرویس جدید درزمان اجرا، بر اساس محلی یا سرویس های در دسترس دور می تواند ترکیب شده باشد. سرویس های دور، از طریق سرویس های واسط، سرویس ها را برای دسترسی عمومی منتشر می کنند می توانندجستجووکشف شوند. سرویس های وب، براساس معماری سرویس گرا برپایه ی وب پیاده سازی می شوندویک مجموعه استاندارد شده از پروتکول ها مانندXML ، WSDL، UDDI، وSOAP فراهم می کنند.
اخیراebXML [1]، یک مجوعه از پروتکول های همکاری داینامیک مانند پروتکول های همکاری پروفایل، پروتکول های همکاری توافقی معرفی کرده است. یک مفهوم کلیدی از پروتکول های همکاری داینامیک، آن هست که سرویس ها همکار شان را در زمان اجرا تعیین می کنند. بنابراین پروتکول های همکاری داینامیک، بعد دیگر از دینامیسم(پویایی)در معمار ی سرویس گرا معرفی شده است؛ این دینامیسم جدید، چالش های جدیدی در شناسایی واعتبارسنجی کاربرد های معماری سرویس گرا معرفی کرده است.
ارزیابی چالش ها را برای شناسایی در زیر مشاهده می کنید:

• مطابق سنتی، سیستم و نرم افزار از دیدگاه شناسایی مستقل واعتبار سنجی مورد استفاده و تایید شده هستند؛ هر کدام ازسیستم های مستقل شناسایی واعتبارسنجی رادر طی توسعه سیستم به کار می برند.

• چالش های معماری سرویس گرا از دیدگاه شناسایی مستقل واعتبار سنجی این است که، سرویس های جدید بعد از گسترش کشف می شوند؛ بنابراین برای داشتن دیدگاه شناسایی همکاری واعتبارسنجی ضروری است. سرویس های واسط تولیدکننده ومصرف کننده باروش همکاری کار می کنند، وبعضی از نیازها را برای انجام زمان اجرا تست می کنند.

انواع فرآیند پروتکول های همکاری داینامیک، به چهار مرحله زیر تقسیم می شوند:

مرحله پروفایلینگ2 و : preparationدر این مرحله، هر سرویس که می خواهددر پروتکول های پروفایل همکاری شرکت کند باید یک CPPکه لیستی از پروتکول ها آماده راشامل می شود که سرویس بتواند تشخیص دهد CPP .می تواند همانند سرویس آموزش به وسیله همکاری واقعی به روز شود.

مرحله ایجاد: در این مرحله، سرویس ها ی شرکت کننده میل به تبادلCPP شان دارندوبا پروتکول عمومی CPA مطابقت دارند.
مرحله اجرا :در این فاز، سرویس ها ی شرکت کننده براساس CPA زمان اجرای قبلی ایجاد شده با هم همکاری می کنند . ممکن است داده جمع آوری شوندبنابراین آن CPP می تواند برای همکاری آینده به روز شود.
مرحله پایانی: در این مرحله، سرویس های شرکت کننده همکاری را خاتمه می دهند؛CPPs شان رابر اساس جمع اوری داده به روز می
کنند.
نمونه ای از معماری سرویس گرا را در شکل (1) توجه کنید:

2

شکل : (1 ) معماری سرویس گرا [7]

2. کارمربوط به آزمایش معماری سرویس گرا

برنامه های کاربردی چندین مسئله در آزمایش معماری سرویس گرا برنامه های کاربردی موردمطالعه قرارگرفته است.
Gerardo CanforaوMassimiliano[2] ، آزمایش جامعیت، آزمایش وظیفه ای، آزمایش غیروظیفه ای، وآزمایش رگرسیون معماری سرویس گرا راانجام دادند LusianoBaresi .و ElisabettaDinittoشناسایی معماری سرویس گرا مختلف وتکنیک های آزمایش شامل مانیتورینگ، مدلینگ، وآنالیز قابل اطمینان ارائه دادند.

Yinong ChenوWei-terTsai [2] ، به طور سیستماتیک توسعه معماری سرویس گرا نرم افزارشامل چرخه حیات وتکنیک هایی که در هر فاز به کار برده می شوند را ارائه دادند.

ابزارهای تجاری برای آزمایش سرویس در دسترس هستندIBM Web Services Navigator .، یک ابزار برای آزمایش و اشکال زدایی است؛ سرویس ها را تست واجرا می کندبنابراین به برنامه نویس ها برای پیدا کردن خطاها کمک می کند. وب سرویس ها قابلیت همکاری را سازماندهی می کنند.

ابزار دوجزء دارد:WS-I monitor، AnalyserWS-I.
WS-I monitorمکانی بین کلاینت ووب سرویس هااست؛ که گزارش عملیات همه پیغام ها، درخواست ها، وپاسخ ها هنگامی که آن ها به عقب و جلو می روندبدست می آورد. پسWS-I Analyser ، همه گزارش عملیات را بر خلاف نیازمند ی های قابلیت همکاری آنالیز می کند. شکل((2نشان می دهد که[2]، توسعه دهنده ها می توانند سرویس های اتمیک و مرکب در فرآیند حرفه برای زبان اجرا وب سرویس ها (BPEL4WS)، زبان آنتالوژی وب معنایی((OWL-S ، یا فرآیند تشخیص ومدلینگ زبان برای محاسبه سرویس گرایی((PSML-Sیا واسط زبان توصیف یک وب سرویس((WSDL را تعیین کنند.

مطابق مشخصات، تست کننده3 می تواند تکنیک های تولید شده نمونه تست رااستفاده کنند تا نمونه تست تولید کنند. تکنیک های شناسایی معماری سرویس گرا شامل آزمایش، چک کردن مدل ، شبیه سازی، سیاست اجرا، ومکانیزم های دیگر، مانندتمامیت وهمروندی است.

3

شکل : (2 ) سناریو سرویس شناسایی. در شکل ، چهار سرویس با پیاده ساز ی های مختلف ازمشخصات یکسان پیروی می کنند. نمونه تست، می تواند از مشخصات تولید شود [2]

شکل : (3 ) آزمایش گروهی برای سرویس های اتمیک. تعداد کل از اجرای تست ها .m*n اما، سرویس ها می توانند همه نمونه تست را به صورت موازی اجرا کنند تازمان تست را ذخیره کنند [2]

3. قابلیت تست کردن

قابلیت تست کردن، مهم ترین مقیاس تست کردن سرویس ها پس از آغاز سنجش شان است، تا یک سرویس فرآیند تست را تسهیل وبهبود بخشد. قابلیت تست نرم افزار چیست؟ با توجه به استانداردIEEE ، قابلیت تست کردن به درجه هر کدام ازسیستم یا تسهیل اجزا می گویندتا یک معیار تست ایجاد کندوهمچنین عملکرد تست ها تا تعیین کند آیا این معیار مناسب هستند .

سرویس با قابلیت تست مناسب نه تنها کیفیت سرویس ترکیب شده تجاری را افزایش می دهد، بلکه همچنین هزینه توسعه نرم افزار وتست کردن را نیز کاهش می دهند. بنابراین سرویس های باقابلیت تست بالا، مهم تر وچالش انگیز تر برای سرویس توسعه دهنده هستند. به طور مشابه، همچنین شناسایی کردن وسنجش قابلیت تست وکیفیت سرویس ها مهم و چالش انگیز برای مهندسین برنامه های کاربردی و سرویس کاربران هستند.

Freed Man، دامنه قابلیت تست رابرای نرم افزار تعریف کرده است:اجزا، همانند ترکیبی از دو فاکتور مشاهده پذیری وقابلیت کنترل کردن است.

VoasوMiller[1] ، قابلیت تست نرم افزار را به عنوان یکی از سه تکه پازل قابلیت اطمینان نرم افزار، قابلیت تست نرم افزار، آزمایش نرم افزارموردبحث قرار دادند. این محققین نشان دادند که آنالیز، قابلیت تست نرم افزار برای آزمایش وتخمین کیفیت آزمایش نرم افزار مفید است.

اخیرا [Gao[1، اجزا قابلیت تست را برای تشکیل ساخت نرم افزار معرفی کرد که اجزا قابلیت تست از پنج فاکتور زیرتشکیل شده است: بوجودآوردن شرایط قابلیت فهم، مشاهده پذیری، قابلیت کنترل، قابلیت trace کردن، وقابلیت پشتیبانی آزمایش.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید