تست سیستمهای نهفته (Embedded Software Testing)
1.مقدمه
توسعه سیستمهای نهفته (توکار) یکی از فعالیت های حیاتی صنعت است. بیش از 90% قطعات الکترونیکی تولیدی، در سیستمهای نهفته مورد استفاده قرار می گیرند. تست سیستمهای نهفته، چالش های خاص خود را داشته و در حالت کلی از تست سیستمهای نرم افزاری مرسوم پیچیده تر است. از دلایل این پیچیدگی می توان به ویژگی های فنی سیستمهای نهفته و نیازمندی های خاص این سیستم ها در حوزه تست اشاره کرد. سیستمهای نهفته ملزم هستند وظایف خود را در زمان مورد نیاز به خوبی انجام دهند.[2]
2.تعریف سیستم نهفته
یک سیستم نهفته، یک سیستم کامپیوتری خاص منظوره است که برای انجام یک یا تعداد کمی عملکرد اختصاصی طراحی شده است. سیستمهای نهفته غالبا بلادرنگ بوده و پردازش اطلاعات و تحلیل شرایط را در لحظه انجام می دهند. سیستمهای نهفته معمولا بخشی از یک دستگاه کامل شامل سخت افزار و بخش های مکانیکی را تشکیل می دهند.[1]
نمونه هایی از سیستمهای نهفته عبارتند از: تلفن های همراه ، دستیارهای دیجیتال شخصی(Personal digital assistant (PDA، یخچال ها، مایکروویوها، ساعت های هوشمند، سیستمهای هوانوردی، کنترل کیسه هوا، چراغ های راهنمایی و رانندگی و همچنین بسیاری از وسایل الکترونیکی که روزمره با آنها سر و کار داریم. [3]
3.تفاوت بین سخت افزار و نرم افزار نهفته
در نرم افزار برای دسترسی به اطلاعات ذخیره شده، گرفتن اطلاعات از ورودی و غیره لازم است از سخت افزار استفاده شود. اما در سخت افزار این کار مستقیما انجام شده ولذا در زمان صرفه جویی می شود.
هنگامی که نرم افزار از روی دیسک سخت اجرا می شود سرعت دسترسی به اطلاعات و منابع محدود می گردد ولی در مورد سخت افزار نهفته، بیشتر اطلاعات و منابع برای سرعت بهتر می توانند داخل ثباتها(Register) و یا حافظه پنهان (Cache) ذخیره شوند. [4]
4.چگونه کار می کند؟
تراشه،(Chip) ورودی را از دستگاه متصلش دریافت می کند.
نرم افزار نهفته، ورودی را می خواند.
نرم افزار تشخیص می دهد که آیا نیاز به فعال سازی دارد.
اگر نیاز داشت، برنامه اش را اجرا می کند.
نرم افزار، نتایج را ارائه می کند.
نتایج ممکن است به کاربر و یا بخش دیگری از نرم افزار ارسال شود.[1]
5.مشخصات سیستمهای نهفته – چشم انداز[1]
گرایشهای بازار :
نیاز به ایمنی بالا
وابستگی به شرایط محیطی
دارای رفتار بلادرنگ
استفاده از الگوریتم های علمی
گرایش های تجاری :
سیستمهای One-shot (زمانبندی آنها به صورتی است که تنها یکبار عملکرد خود را در زمان مقرر انجام می دهند)
سیگنال های ترکیبی
سیستمهای خود مختار
محدودیت های سخت افزاری
6.چالش های تست نرم افزار نهفته
ملموس نبودن برای کاربران نهایی
رابط کاربری محدود
رابط بین اجزاء پیچیده است
تمرکز برروی رابطهای غیرانسانی
نمیتوان از شیوه تست دستی استفاده کرد.
برای تست نرم افزار نهفته توسعه یافته ابتدا نیاز به توسعه نرم افزارهای پیش نیاز داریم. (حتی نرم افزار تست نیز گاها توسط تیم تست توسعه داده می شود)
خلاقیت و راهکارهای ابتکاری مورد نیاز است
روند به روزرسانی نرم افزار طولانی تر و نامرسوم تر از نرم افزار های عادی است.
بررسی شرایط رقابت
برطرف کردن خطای های نرم افزار از تولید آن مشکل تر است/ اشکال زدایی پر هزینه
ریشه های یک خطا : نرم افزار هدف، سخت افزار، زیرساخت پشتیبانی تست
ضریب بالای خطاهای سخت افزاری
نرم افزار ممکن است با یک نسخه از سخت افزار کار کند ولی با نسخه دیگر کار نکند.
میزان رخداد خطا نسبت به موارد مرسوم بیشتر است.
گرداوری اطلاعات کافی در مورد سیستم نهفته مورد نظر برای کمک به پیدا کردن منشا خطا لازم است.
ایجاد قابلیت هایی برای اشکال زدایی ممکن است چالش های جدیدی به وجود آورد.
نیاز به اعتبار سنجی زیر ساخت پشتیبانی تست است.
تیم ارزیابی باید شامل سرپرست زیرساخت پشتیبانی تست و مهندس سخت افزار باشد.
راه حل های عمومی برای تست
سیستم ها در مشخصات تفاوت دارند
سیستم ها در فرآیند توسعه تفاوت دارند
برنامه های کاربردی دارای دامنه های متفاوتی هستند [1]
دسترسی محدود به سخت افزار. همچنین خود سخت افزار نیز دارای محدودیت هایی است.
در سیستمهای نهفته زمان یک معیار کلیدی است.
زمان بخش ضروری عملکرد است
شرایط رقابتی وابسته به زمان است
تست (تحلیل، ارزیابی، تضمین) ممکن است بر روی زمان تاثیرگذار باشد.
ضرورت به روز رسانی: درست کار کردن سیستم به روزرسانی در سیستمهای نهفته ضروری است.
اگر به روزرسانی ها دچار اشکال شوند دستگاه از دست میرود.
عدم وجود روش های بوت جایگزین (سی دی رام، فلش و ...)
عدم قابلت دسترسی
توسعه دهنده باید مطمئن شود که به روزرسانی هیچگاه با خطا مواجه نمی شود.
اشکال/قطعی در جریان برق: خرابی نرم افزار یا فایل های سیستمی
نبود یکپارچگی در انتقال : خرابی نرم افزار
عدم سازش پذیری بین بخش ها : مثلا ماژول کرنل
عدم سازش پذیری بین سخت افزار : مثلا پشتیبانی نشدن بردهای سخت افزاری
مدیریت پکیج کمک زیادی می کند اما نمی تواند به طور کامل مشکلات را بهبود دهد.
توانایی بازگردانی تغییرات به عقب همیشه باید وجود داشته باشد.
نرم افزارهای نهفته برای سخت افزارهای خاصی نوشته می شوند.
نیازمند ورودی ها و خروجی های خاص هستند
معماری سیستمهای نهفته با کامپیوترهای شخصی تفاوت دارد
Endianness ( بیت با ارزش در کدام طرف ثبات باشد)
مدل حافظه
Hardware accelerators [5] (روش هایی برای بالابردن کارایی سخت افزار)
تفاوت بین محیط توسعه و محیط اجرا
گستره وسیعی از معماری های استقرار نرم افزار
واضح نبودن مدل های طراحی
اختصاص میزان مشخصی از منابع و عدم امکان تغییر آن در پلتفرم اجرایی
تنوع پلتفرم های اجرایی که با در نظر گرفتن محیط های توسعه مختلف، موارد بیشتری را نیز شامل می شود.
راه حل های رویارویی با چالش ها
7.سیستمهای نهفته در چند گام توسعه می یابند [7]
شروع با بخش های شبیه سازی شده (گام شبیه سازی) و جانشینی یک به یک آنها با موارد واقعی (گام نمونه سازی) تا در نهایت سیستم واقعی در محیط واقعی خودش کار کند (گام پیش از تولید). در گام نهایی فرایند ساخت، تست و مانیتور می شود. (گام پس از توسعه)
فرایند تست سیستمهای نهفته به بخش های نشان داده شده در زیر تقسیم می شود [7]:
مدل های اولیه که برای شبیه سازی سیستم توسعه می یابند، در " model tests " و " model-in-the-loop" تست می شوند. این کارها مرتبط با گام شبیه سازی است.
در"rapid prototyping" یک مدل آزمایشی با کارایی بالا و منابع فراوان (به طور مثال پردازش ممیز شناور 32 بیتی) در محیط واقعی آزمایش می شود تا بتوان چک کرد که آیا سیستم می تواند اهداف خود را برآورده کند؟ این بخشی از گام شبیه سازی است .
در "software-in-the loop" نرم افزار واقعی شامل تمامی محدودیت های منابع (به طور مثال پردازش اعداد صحیح 8 یا 16 بیتی) در محیط شبیه سازی شده یا سخت افزار آزمایشی تست می شود.
در "hardware-in-the-loop" سخت افزار واقعی در یک محیط شبیه سازی شده استفاده و تست می شود. " software-in-the loop " و" hardware-in-the-loop " بخش های گام نمونه سازی هستند.
در " system test" سیستم واقعی در محیط واقعی تست می شود. که مربوط به گام پیش-تولید است .
8.مراحل تست سیستمهای نهفته
گام شبیه سازی :
این گام با نام های " model testing " و " model-in-the-loop" نیز رایج است. اهداف تست در این گام شامل موارد زیر است:
اثبات مفاهیم
بهینه سازی طراحی
در حالت کلی تست در گام شبیه سازی شامل مراحل زیر است :
شبیه سازی یک طرفه (One-way simulation)
شبیه سازی بازخوردها (Feedback simulation)
نمونه سازی سریع (Rapid prototyping)
گام نمونه سازی
گام نمونه سازی بعد از این که اهداف گام شبیه سازی محقق شدند شروع می گردد. اهداف تست در این مرحله عبارتند از :
اثبات صحت مدل شبیه سازی
بازبینی این که آیا سیستم نیازمندی ها را برآورده می کند
انتشار واحد پیش-تولید
در گام نمونه سازی سطوح تست زیر قابل بررسی هستند :
تست واحد نرم افزار
تست یکپارچگی نرم افزار
تست یکپارچگی سخت افزار / نرم افزار
تست یکپارچگی سیستم
تست محیطی
گام پیش-تولید
گام پیش-تولید شامل ساخت یک واحد پیش از تولید است. این گام برای تایید برآورده شدن تمام نیازمندی های محیطی و سازمانی و همچنین برای انتشار طراحی نهایی مورد استفاده قرار می گیرد.
اهداف تست در این مرحله عبارت است از:
اثبات نهایی اینکه تمام نیازمندی ها برآورده شده اند.
برای نشان دادن تبعیت از استانداردهای محیطی، صنعتی، نظامی و ایزو. واحد پیش-تولید اولین واحدی است که اثبات می کند سیستم می تواند در محیط تولید ساخته شود.
در مدت زمان تعیین شده با تلاش برنامه ریزی شده (میزان انرژی صرف شده)
اثبات اینکه سیستم می تواند در محیط واقعی نگه داری شود
انواع تست قابل انجام در این مرحله عبارت است از:
تست پذیرش سیستم
تست صلاحیت
تست های ایمنی
تست محصول و تست امکانات نگهداری
بازبینی (الزامات و تعهدات) و تست توسط ادارات دولتی
گام پسا-توسعه
قبل از شروع تولید در مقیاس بزرگ، سازمان ممکن است برای تحت کنترل درآوردن فرایند تولید و اطمینان از کیفیت محصولات ساخته شده به سنجه های بیشتری نیاز داشته باشد. سنجه های زیر باید در نظر گرفته شوند:
امکانات توسعه و تست
بازبینی اولین گزارش (گزارش رسمی که سنجه ها و نیازمندی های تولید در آن آمده است)
تولید و نگهداری تست ها
9.سایر راهکارهای تست سیستمهای نهفته
راه حل های عمومی برای مسائل رایج [1]:
فرآیند تست
طراحی و اجرای تست
ابزار تست
روش های جهانی تست سیستمهای نهفته
این روش یک چارچوب تستی را ارائه می دهد که می تواند تست سیستمهای نهفته ناهمگون را انجام دهد. این روش سه آورده اصلی دارد.
اولی معرفی یک روش جدید تست سیستمهای نهفته است.
دومی ارائه واسط ساده و موثری برای طبقه بندی سیستمهای نهفته می باشد.
سومی روشی برای ترکیب طبقه بندی ها در یک ماژول است که محیط لازم و روش تست را برای آزمون سیستمهای نهفته فراهم می آورد.
ابزارهای تست
10.Parasoft C++Test
C++Test ابزاری برای خودکارسازي محدوده وسيعي از شیوه های تضمین کیفیت برنامه های تولید شده با زبانهای C و ++C است. C++Test قابلیت تولید تست واحد (unit test) و تحلیل سورس-کد (static analysis) تحت زبان C و ++C را داراست. این ابزار امکان خودکارسازی تست های برنامه نویسی را همراه با اندازه گیری میزان پوشش کد (code coverage) فراهم می سازد. همچنین کیفیت سورس-کد را از ابعاد مختلف کارکردی، کارایی، امنیت و نگهداشت تحلیل می کند. امکان یکپارچه سازی با ابزار SAOTest جهت انجام تست کارکردي و ابزار LoadTest جهت انجام تست کارایی در سطح ماجولهای برنامه نویسی را نیز داراست. قابلیت های ابزار C++Test عبارت است از:
امکان تست ایستا و پویا برای تضمین کیفیت برنامه نویسی تحت زبان های C و C++
قابلیت تولید خودکار تست واحد (unit test) از روی سورس-کد طبق تکنیکهای پیشرفته ای همچون symbolic analysis
اجرا و دیباگ کردن تست های واحد
اندازه گیری میزان پوشش کد (code coverage)
قابلیت تولید خودکار تست واحد از طریق اجرای برنامه در سطح واسط کاربری
اجرای تست رگرسیون (regression test) در سطح برنامه نویسی
قابلیت تولید خودکار روالها و موارد تست واحد با پوشش های line و branch
امکان تولید stub در تست های واحد برای جلوگیری از درگیر شدن با محیط های پیچیده
امکان data-driven کردن موارد تست از طریق الحاق آنها به data source هایی همچون Excel
پشتیبانی از کامپایلرهای رایج همچون ARM RVCT، GNU GCC، Green Hills C/C++، IAR C/C++، Keil RVCT، Microsoft Visual C++، QNX GCC، Renesas SuperH C/C++، Sun C/C++، TI TMS320C2x و Wind River Diab
یکپارچه سازی با محیط های تولید رایج همچون Eclipse ، Visual Studio، ARM RVDS، QNX Momentics، TI Code Composer Studio و Wind River Workbench
قابلیت یکپارچه سازی با تقریبا تمام ابزارهای سورس-کنترل
دارای نسخه های مختلف برای سیستم عامل Windows ، Linux و Solaris
دارای مستندات غنی برای آموزش اصول کدنویسی بهینه و تست های برنامه نویسی
امکان بررسی کیفیت برنامه نویسی از طریق تکنیکهای syntax checking و data flow analysis
تحلیل کیفیت سورس-کد طبق استانداردها، چک-لیست ها و منابع معتبری همچون Effective C++، Effective STL، MISRA، Ellemtel، JSF، ISO 26262 و PCI Data Security
دارای دو هزار قانون برای شناسایی اشکالات مهم برنامه نویسی
تحلیل کیفیت کدنویسی از دیدگاه های مختلفی همچون صحت کارکرد، کارایی مطلوب، امنیت مورد انتظار، قابلیت تغییر، قابلیت استفاده مجدد، قابلیت حمل و خوانایی
تشخیص خطاهای زمان اجرای برنامه (runtime defects) در طی اجرای تست های واحد، اجرای اسکریپت یا اجرای سیستم در سطح کاربری
امکان رفع خودکار بسیاری از خطاهای شناسایی شده
قابلیت سفارشی سازی و تعریف قوانین جدید برای آنالیز کردن برنامه
11.Rational Test Real Time
IBM Rational® Test Real-time یک راه حل چندپلتفرمی برای تست مولفه ها و تحلیل زمان اجراست. این ابزار برای توسعه دهندگانی طراحی شده است که سیستمهای پیچیده ای را برای برنامه های کاربردی نهفته و بلادرنگ تولید می کنند. این نرم افزار به شما کمک می کند خطاها را قبل از این که وارد کد محصول شوند، ریشه یابی و اصلاح کنید.
Rational Test Real Time به طور خاص برای سیستمهای نهفته، بلادرنگ و تحت شبکه طراحی شده است. این ابزار یک محیط خودکارسازی تست و آنالیز در زمان اجرا را فراهم می سازد که محیط کدنویسی و تست را یکی می کند.
به شما کمک می کند مشکلات نرم افزاری در طی فاز توسعه را حل کنید.
تولید stub و driver های لازم برای تست مولفه ها را خودکارسازی می کند.
مرور سورس-کد را به صورت خودکار انجام داده و تبعیت از اصول کدنویسی به زبان C را گزارش میکند.
به شما اجازه می دهد مصرف حافظه و پردازنده را پروفایل کنید. همچنین میزان پوشش کد را آنالیز کرده و رفتار برنامه در حال اجرا را شبیه سازی کنید.
مشکلات چند نخی(Multi thread ) که در برنامه رخ می دهد را تشخیص داده و سپس آنالیز می کند که آیا این مشکلات به خاطر وقفه ها و race condition هاست (شرایطی که چند فرایند برای دستیابی به یک منبع رقابت می کنند).
گزارش هایی با جزئیات کامل تست و همچنین آنالیزهای زمان اجرا را آماده نموده و آنها را توسط یک لینک به کد مربوطه متصل می کند.
امکان استفاده مجدد از اسکریپت های تست بین چند host و platform را فراهم می سازد.
اجازه می دهد که بر روی host شبیه سازی کنید و هنگامی که سخت افزار در دسترس نیست باگ های عمومی را تست کنید.
هنگامی که سیستم هدف در دسترس است همان تست ها را مستقیما برروی پلتفرم عملیاتی اجرا می کند.
تکنولوژی لازم برای رسیدن به اهداف مختلف تست را فراهم می کند. این امر به شما اجازه می دهد بدون این که تست ها را بازنویسی کنید، روال های تست را به آسانی با هر هدف و محیطی تطبیق دهید.
می توانید بر روی host ها و target های مختلف موجود برروی چندین پلتفرم، با استفاده از همان تست ها و روال ها، عملیات تست، آنالیز و ریشه یابی را انجام دهید.
امکان انجام تست واحد و تست یکپارچگی را بر روی thread ها، process ها و گره ها فراهم می کند.
برای بهبود توسعه نرم افزار از تست مبتنی بر مدل پشتیبانی می کند
توسعه مبتنی بر مدل را گسترش می دهد به طوریکه شامل فعالیت های تست برنامه نویس گردد.
به توسعه دهندگان اجازه می دهد تا قابلیت تحلیل زمان اجرا را برروی کدهای تولید شده از مدلهای UML فراخوانی کنند.
قابلیت TRACE کردن زمان اجرا را فراهم می سازد. این قابلیت از نمودارهای توالی UML برای تشریح اجرای thread، فراخوانیهای تابع و مقادیر متغیر در برنامه استفاده میکند.
با نرم افزار IBM Rational و دیگر ابزارهای تست یکپارچه می شود.
با نرم افزارهای Rational Rose® Technical Developer, Rational ClearCase® و Rational ClearQuest® و Rational TestManager می تواند یکپارچه گردد.
پلاگین هایی برای MATLAB Simulink, Microsoft Visual Studio and Texas Instruments Code Composer Studio را نیز عرضه کرده است.
12.VectorCAST
VectorCAST/C++ راهکار خودکارسازی شده ای برای تست های واحد و یکپارچه است که توسط توسعه دهندگان سیستمهای نهفته به منظور اعتبارسنجی سیستمهای نهفته مورد استفاده قرار می گیرد. این ابزار تست پویا به طور گسترده در فناوری سیستمهای نهفته استفاده می شود. به عنوان مثال دستگاه های الکتریکی و خودکار در هوانوردی و نجوم، دستگاه پزشکی، خودرو، کنترل های صنعتی، راه آهن و صنایع مالی و غیره.
برخی از مشخصه های ابزار خودکارسازی تست، سازگاری با فرآیند توسعه تست محور (TDD) را آسانتر می سازد.
قابلیت Trace کردن موارد تست و سورس کد
قابلیت Trace کردن موارد تست و نیازمندی ها
ویژگی های کلیدی VectorCAST برای تست واحد و یکپارچگی در زبان های Cو C++ عبارتند از :
ساخت کامل ساز و برگ های تست برای تست واحد و یکپارچگی در زبان های Cو C++ (بدون نوشتن کد تست)
ساخت خودکار stub و driver
اجرای تست از طریق رابط کاربری گرافیکی یا اسکریپت
آنالیز میزان پوشش کد به همراه بهینه کردن آن در سیستمهای نهفته
یکپارچگی با The MathWorks® Simulink®, Green Hills® INTEGRITY®, IBM® Rational® DOORS® IBM® Rational® Rhapsody®, PC-Lint,…
اجرای تست بر روی سیمولاتور(شبیه سازی محیط واقعی) و هدف (محیط واقعی)
تولید موارد تست به صورت خودکار بر اساس decision paths
اجرای دوباره تست برای کمک به debug کردن و یکپارچه سازی با ابزارهای تجزیه و تحلیل ایستا (static analysis tools).
13.Reactis
Reactis برای زبان C تست های جامع و کاملی از کد C تولید نموده، خطاهای زمان اجرا را تشخیص داده و میزان پوشش کد را بررسی می کند (Statement, Decision, Condition, MC/DC, MCC). وقتی که یک خطا تشخیص داده می شود، شما به راحتی می توانید آن را با اجرای مجدد شرایط وقوع خطا ریشه یابی کنید. برخی از ویژگی ها و امکانات Reactis به شرح زیر است:
همزمان با تولید تست توسط ابزار، آرایه ای را برای کنترل و نشانه گذاری خطاهای زمان اجرا در کد تهیه می کند.
خطاهای حافظه به راحتی در زبان C ایجاد می شوند و به سختی می توان آنها را Debug کرد. خطاهای حافظه شامل ایندکس های خارج از محدوده آرایه ها، سرریز buffer ها، اشاره گر های معلق heap، اشاره گر های معلق stack و استفاده از اشاره گر از مقادیر نادرست عددی است. Reactis Tester نه تنها این نوع از خطاها را تشخیص می دهد بلکه تستی را برمی گرداند که می تواند به منظور ریشه یابی خطا در Reactis Simulator اجرا شود.
یک statement را در داخل یا خارج Step اجرا می کند. اجرای تمام مراحل یا چند مرحله ای (به صورت انتخابی) در زمان مشخص امکان پذیر است.
بخش های پوشش داده نشده برنامه در موقع تست، با رنگ قرمز متمایز می شوند.
گزارش ها را همراه با جزئیات کامل شامل میزان پوشش کد تولید می کند.
14.Reactis Validator
حذف خطاهای زمان اجرا بسیار مهم است اما این تنها یک گام به سمت نرم افزار با کیفیت بالاست. برنامه ای که crash نمی کند اما کارهای اشتباه انجام می دهد نیز، غیر قابل قبول است. نرم افزار Reactis Validator روشی را برای فرموله کردن و اجرای کنترل هایی ارائه می دهد که برای بررسی صحت کارکرد برنامه استفاده می شود. کنترل ها در روشی شبیه مکانیزم assert در زبان C فرموله میشوند.
15.KlocWork
KlocWork یک ابزار تحلیل ایستا برای کدهای نوشته شده به زبان C, C++, C# و Java می باشد. این ابزار به صورت خودکار خطاهای برنامه و آسیب پذیری های امنیتی آنرا تشخیص می دهد. آسیب پذیری های امنیتی برنامه کاربردی، مسیر حمله را در برنامه باز می کند که منجر به عدم پذیرش سرویس و یا حمله از راه دور بعد از اجرای کد می شود. این ابزار به تست امنیت نیزکمک می کند. KlocWork برای از استانداردهای زیر پشتیبانی می کند:
CWE, CWE/SANS Top 25, CERT, OWASP, DISA STIG و .MISRA
16.Hitex Development Tools
Tessy به طور گسترده ای برای اعتبارسنجی و تبعیت از استانداردهای مختلف استفاده می شود.
آزمونگرها می توانند Tessy را برای اجرای خودکار تست ها و تولید گزارشات تست تنظیم کنند.
Tessy شامل روش طبقه بندی درختی برای مشخصات تست است و از مستندسازی تست با فرمت های HTML, Word, and Excel پشتیبانی می کند.
17.TestPlant
ابزار eggplant(متعلق به TestPlant)برای پشتیبانی از نرم افزارهای غیرمرسوم شامل برنامه های کاربردی نهفته است که نمی توانند برروی سیستمهای تست نصب شوند.
تست کننده ها می توانند با استفاده از eggplant بخش های مختلف سخت افزاری و نرم افزاری سیستم را تست کنند که شامل تست های اتصال صفحه کلید ، ویدئو، سخت افزار موس و پورت هاست.
این ابزار برای اجرای تست های سیستم مناسب است بدون آنکه نیازی به نصب برنامه برروی سرور باشد.
بیشترین مزیت eggplant آن است که برروی تکنولوژی های غیراستاندارد اجرا می شود و وابسته به کد های زیرساخت نیست. به عبارت دیگر eggplant می تواند بر روی هر سیستم مجازی اجرا شود.
ابزار شامل دستوراتی است که اجازه هدایت دستی در حین اجرای تست را فراهم می سازد.
دستورات "Ask and Answer" به تست کننده ها اجازه می دهد با اجرای تست خودکار شده تعامل داشته باشند. به عنوان مثال، ورودی اضافه نموده و دیگر رفتارهای پویا را تخصیص دهند.
این ابزار یک روش دستی برای اجرای تست نیز دارد.
شرکت مهندس پیشگان آزمون افزار یاس، خدمات زیر را در حوزه تست سیستم های نهفته ارائه می دهد:
تست عملکردی سیستم های نهفته
تست پرفورمنس (تست بار و فشار) سیستم های نهفته
تست امنیت سیستم های نهفته به صورت جعبه سفید
برون سپاری تست سیستم های نهفته
ارائه مشاوره در حوزه تست سیستم های نهفته
ارائه استاندارد، متدولوژی، ابزار و چک-لیست در حوزه تست سیستم های نهفته
تهیه و آموزش ابزار C++Test برای ارزیابی کیفیت نرم افزارهای نهفته در سطح برنامه نویسی
تهیه و آموزش ابزار Checkmarx برای تست ایمنی و امنیت نرم افزارهای نهفته در سطح برنامه نویسی
مانیتور کردن سیستم های نهفته از طریق ابزارهای مدیریت کارایی همچون AppDynamics
نویسنده : شرکت مهندس پیشگان آزمون افزار یاس
مراجع
[1] “Embedded Software Testing”, COMPANY CONFIDENTIAL © QUASUS, 2015
[2] Sthamer, Harmen. Baresel, André and Wegener, Joachim, “Evolutionary Testing of Embedded Systems”, 14th International Internet & Software Quality Week, 2001
[3] Encontre, Vincent.” Testing Embedded System: Do you have the GuTs for it?”, 2004
[4] http://www.edaboard.com/thread103843.html
[5]” Testing embedded software”, http://elinux.org/ELC_Europe_2010_Presentations
[6] Kumar Saini, Dinesh. “Software Testing for Embedded Systems”. International Journal of Computer Application. (0975 – 8887). Volume 43– No.17, April 2012.
[7] Broekman, Bart and Notenboom, Edwin. “Testing Embedded Software“. Addison-Wesley, 2003
[8] P. Karmore, Swapnili and R.Mabajan, Anjali. “Universal Methodology for Embedded System Testing”. The 8th International Conference on Computer Science & Education (ICCSE 2013)
[9] http://www-03.ibm.com/software/products/en/realtime
[10] https://www.vectorcast.com
[11] http://www.reactive-systems.com
[12] http://searchsoftwarequality.techtarget.com/tip/Five-tools-to-improve-embedded-software-testing-efforts