آزمون بلادرنگ

از ویکی‌پدیا، دانشنامهٔ آزاد

آزمون بلادرنگ به فرایند تست سیستم‌های کامپیوتری بلادرنگ گفته می‌شود.

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

سیستم‌های بلادرنگ محدودیت زمانی‌های بسیار سختگیرانه ای دارند این سیستم‌ها باید زمان‌بندی وظایف را بر اساس قیدهای زمانی اعمال کنند روش‌های مرسوم برای تحلیل چنین قیود زمانی مناسب نیستند بنابراین اهمیت تست بلادرنگ آشکار می‌شود.[۱][۲]

استراتژی[ویرایش]

موارد آزمون برای طراحی تست بلادرنگ در ۴ گام زیر پیشنهاد شده‌است:

تست وظیفه

در گام اول هر وظیفه به صورت تکی و با روش‌های مرسوم مورد ارزیابی قرار می‌گیرد این مدل تست تنها برای کشف کردن خطاها در منطق یا نحو برنامه استفاده می‌شود این مدل تست به قیود زمانی و خصوصیات زمانی اتفاقات ارتباطی ندارد.

تست رفتاری

از مدل‌های طراحی شده به کمک ابزار تست خودکار بهره می‌گیرد و این امکان را می‌دهد تا رفتار سیستم بلادرنگ را شبیه‌سازی کند و تأثیر اتفاقات همزمان را مشاهده کرد.

تست تعاملی

زمانی که تست انفرادی به اتمام رسید انتظار می‌رود سیستم خالی از هرگونه خطا در کد و رفتار باشد حال محدودیت‌های مرتبط با زمان در این بخش مورد بررسی قرار می‌گیرد تا خطاهای در ارتباط آشکار و وظایف غیر همزمان با نرخ داده‌های متغیر و بارهای مختلف مورد تست قرار بگیرد.

تست سیستمی

در این مدل تست نرم‌افزار و سخت‌افزار با هم ترکیب شده و انواع زیادی از آزمون‌ها انجام می‌شود تا خطاها در زمان ترکیب این دو نیز آشکار گردد.

ابزارها برای تست بلادرنگ[ویرایش]

همان‌طور که تست سیستم‌های بلادرنگ اهمیت روزافزون پیدا می‌کند در نتیجه ابزارهای نیز برای چنین تستهای طراحی می‌شود.

MSC[ویرایش]

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

SDL[ویرایش]

استانداردی است که برای طراحی و تحلیل استفاده می‌شود

از مشخصه‌های سیستم‌های پیچیده حمایت می‌کند و در زمینه‌های بسیاری همچون ارتباطات و اتوماسیون تا توسعه معمولی نرم‌افزار کاربرد دارد.

TTCN[ویرایش]

تست و نشانه گذاری کنترل تست تنها زبان استاندارد شده و بین‌المللی تست است.TTCN3 کاربرد وسیع تری را در مقایسه با نسخه‌های قبلی TTCN فراهم می‌کند که به‌طور خاص روی پروتکل‌های OSI تمرکز می‌کند.

این سه استاندار در کنار هم برای تست سیستم‌های بلادرنگ استفاده می‌شود. ضروری است که الزامات این مدل‌ها رعایت شود.

در ضمن تغییرات در طراحی و اطلاعات جدید دربارهٔ خصوصیات سیستم

باید با مدل تطبیق پیدا کند تا تأثیرگذار باشد.

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

به زبانی همچون TTCN3 برای فهم و مدل مفهومی بهتری از زمان نیاز است.

TTCN3[ویرایش]

TTCN3موجود فعلی از خانواده می‌باشد که یک زبان تست استاندارد شده و بین‌المللی است پیش از TTCN3

نسخه‌های قبلی ضعف عملکرد و محدودیت روی پروتکل‌های Osi داشتند.

خصوصیات TTCN3:

  • توانایی تست همزمان و پویا
  • - عملیات برای ارتباط مبتنی بر پیام و مبتنی بر رویه
  • توانایی تعیین قالب‌های داده با مکانیزم قدرتمند تطبیق گذاری.
  • پارامتری کردن مقادیر و نوع‌ها
  • واگذاری و رسیدگی احکام تست
  • پارامتریک کردن مجموعه تست‌ها و مکانیسم انتخاب موارد تست

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

مفهوم snapshot (عکس لحظه ای) روشی است در TTCN3

که رفت‌وآمد پیام‌ها در طی ارتباط بین سیستم تا سیستم تیم یا پیاده‌سازی زیر تست گفته می‌شود.

زمانی که زنجیره‌ای از پاسخ درخواست و سیستم زیر تست دریافت می‌شود عکس لحظه ای گرفته شده و آنها بر اساس زمان رسیدن ارزیابی می‌شوند.

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

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

بعضی رویدادها در صفحه پردازش نگهداری می‌شود اما در نهایت در عکس لحظه‌ای چنین رویدادهایی هیچگاه پردازش نمی‌شوند همچنین اگر یک اجرا کننده تست اندازه کافی سریع نباشد نمی‌تواند به سرعت مناسب با سیستم زیر تست ارتباط برقرار کند بنابراین خطاها طی فرایند ارزیابی شروع به افزایش یافتن می‌کنند.[۳]

منابع[ویرایش]

  1. Pressman, Roger S. (2005). Software engineering: a practitioner's approach (6th ed.). Boston, Mass. : McGraw-Hill. ISBN 0-07-285318-2. OCLC 53848343.
  2. "Real-time testing". Wikipedia (به انگلیسی). 2021-03-10.
  3. Tsai, J.J.P. ; Fang, K. -Y. ; Bi, Y. -D. (1990). "On real-time software testing and debugging". Proceedings. , Fourteenth Annual International Computer Software and Applications Conference. pp. 512–518. doi:10.1109/CMPSAC.1990.139423. ISBN 978-0-8186-2054-6.