fault injection techniques, design pattern for fault injector system

25
ل ا ک ش ا ق ی ر ز ت ی ا ه ک ی ن ک تل ا ک ش ا ه د ی ن ک ق ی ر ز ت م ت س ی س ی و گ ل ا ی ن ا ض م ا ر رض ما: ن ه د را ا ی س ا3 ان6 رت ع د ی ع س ر کت دFault Injection Techniques Pattern for Fault Injector System 3 ان ی س م ر1391 اتَ 6 جَ رَ م د لِ ع ل وا یُ اوَ 3 ن ی الدَ م وُ ک یِ م اُ و نَ مR اَ 3 ن ی الدَ له ل اُ ع ف زَ ت هW ت ف ر ش[ ی\ پ ر ا ز ف ا م ز ت ی س د ی ه

Upload: reza-ramezani

Post on 20-Jan-2015

123 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Fault injection techniques, design pattern for fault injector system

تکنیک های تزریق اشکالالگوی سیستم تزریق کننده اشکال

دکتر سعید عرباناستاد راهنما: رضا رمضانی

Fault Injection TechniquesPattern for Fault Injector System

1391زمستان

ج-ات نک1م و- الذین- او1توالع0لم د-ر- ا م0 نو1 ی-رفع1 الله- الذین- آم-

مهندسی نرم افزار پیشرفته

Page 2: Fault injection techniques, design pattern for fault injector system

مقدمه ای بر تست و تزریق اشکال

محیط تزریق اشکال

تکنیک های تزریق اشکال

الگوی طراحی سیستم تزریق گر اشکال

2

Page 3: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

تست نرم افزار

مفهوم تست•میزان تمایل نرم افزار در رسیدن به اهداف از پیش تعیین شده–یHا سHرویس تحت تسHت – از مقHدار کیفیت سیسHتم فراهم آوری اطالعHاتی

برای ذینفعانکشف باگ ها، خطا ها، عیب ها و نقص های نرم افزار–

انواع تست•تست ایستا و پویا–نگرش جعبه ای–

تست جعبه سفید•تست جعبه سیاه•تست جعبه خاکستری )شیشه ای(•

تست بصری–اتفاقات رخ داده در هنگام خرابی•

سطوح تست•تست واحد–تست یکپارچه سازی–تست سیستم–تست پذیرش– 3

Page 4: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(2تست نرم افزار )

انواع تست•–Functionality

توانایی سیستم در رسیدن به اهداف از پیش تعیین شده•–Non-Functionality

(Confidentialitمحرمانگی )•(Integrityیکپارچگی )•(Scalabilityمقیاس پذیری )•(Usabilityقابلیت استفاده )•(Securityامنیت )•(Compatibilityتطبیق پذیری )•(Reliabilityقابلیت اطمینان )•(Availabilityدسترس پذیری )•(Safetyایمنی )•(Maintainabilityقابلیت نگهداری )•(Performabilityکارآیی )•(Testabilityتست پذیری )•

4

اتکاپذیریالزمه سیستم های

بحرانی-ایمن

Page 5: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

مفاهیم

سیستم بحرانی-ایمن•می دهHد – تضHمین کHه اسHت از سیسHتم ایمHنی مشخصHه ای ایمHنی: تعریHف

زندگی انسانی/محیطی/سازمانی به خطر نیفتد! )عوامل فاجعه بار(سیسHتم بحHرانی-ایمن: سیسHتمی کHه بHا هHدف رسHیدن بHه مHرحله ای از ایمHنی –

یکپارچHه بHا کمHک پیاده سHازی سHرویس های مHورد نیHاز ایمHنی طHراحی شHده است.

نیازمند اتکاپذیری و تنومندی در مقابل سه عامل: اشکال، خطا و خرابی–اطمینHان – قHابلیت + منطقی عملکHرد صHحت سیسHتم: عملکHرد صحت

)تحمل پذیر در مقابل اشکال(

مؤلفه های دردسر ساز•(Faultاشکال )–(Errorخطا )–(Failureخرابی )–

تزریق اشکال•تالشHی در راسHتای شبیه سHازی رخHداد اشHکال در سیسHتم در محیHط عملیHاتی –

واقعیتزریHق اشHکال بHه منظHور تسHت و ارزیHابی اتکاپHذیری یHک سیسHتم کHامپیوتری –

به کار گرفته می شود.ذات خHراب کننHده یHک فروپاشHی و تHاخیر طHوالنی کشHف خطHا بHاعث می شHود –

شناسایی علت خرابی ها در محیط های عملیاتی مشکل شود.

5

اتکاپEذیری مEیزان ارزیEابی تکنیEک یEک سیسEتم تحمل پEذیر اشEکال کEه کنEEترل آزمون هEEای تکنیEEک این شEده ای دارد تEا رفتEار سیسEتم در صEورت بEه اشEکاالت، بEا برخEورد صEریح و بEا کمEک تزریEق اشEکال در

سیستم مشاهده شود.

Page 6: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

تزریق اشکال

انواع اشکال•اشکاالت دائم و پایدار–اشکاالت گذرا–اشکاالت دوره ای–

اهداف تزریق اشکال•فهمیHدن تHاثیرات اشHکاالت واقعی و تعHیین رفتHار سیسHتم از لحHاظ عملیHاتی –

و کارآییدر – شHده گنجانHده اشHکال پHذیری تحمHل روش هHای تHاثیر مHیزان ارزیHابی

سیستم هدفپیش بینی رفتار نادرست سیستم–ورودی – نمایه هHای و )محیط هHا متفHاوت کHاری بارهHای اثHرات تخمین

متفاوت( روی میزان کارآیی مکانیزم های تحمل پذیری اشکالشناسHایی اتصHاالت ضHعیف در طHراحی: یعHنی نتHایجی کHه از وجHود اشHکال –

بوجود می آید.مطالعHه رفتHار سیسHتم هنگHام حضHور اشHکال، مثال انتشHار تHاثیرات اشHکال –

بین مؤلفه های سیستم و نیز میزان انزواپذیری مؤلفه ها

6

Page 7: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

محیط تزریق اشکال

مؤلفه های محیط تزریق اشکال•سیستم هدف–تزریق گر اشکال–کتابخانه اشکال–

نEیز • و اشEکال زمان هEای اشEکال، محل هEای اشEکال، مختلEف انEواع نگهEداری محEل معنای سخت افزاری یا ساختار نرم افزاری مناسب

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

کتابخانه بار کاری–نمونه هایی از بار کاری برای سیستم هدف نگهداری می کند.•

کنترل کننده–پایشگر–جمع آوری کننده داده–آنالیز کننده داده–

7

Page 8: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(2محیط تزریق اشکال )

8

Page 9: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

انواع تزریق اشکال

تزریق اشکال نرم افزاری•هدف این روش، تزریق اشکال در سطح نرم افزار است.–معادل خطا هایی که از اشکاالت سخت افزاری نشات گرفته اند.–

تغییر مقادیر موجود در مؤلفه های سخت افزاری •تزریق اشکال سخت افزاری•

این تزریق در سطح سخت افزار رخ می دهد.–استفاده از پارامترهای محیط طبیعی به منظور ایجاد اختالل–

پرتوهای یونی سنگین•اختالالت الکترومغناطیسی•اعوجاج سطوح ولتاژ•تزریق اشکال لیزری•ها در مدارpinتغییر مقدار •

9

Page 10: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(2انواع تزریق اشکال )

تزریق اشکال مبتنی بر شبیه سازی•شامل تزریق اشکال در مدل های سطح باال–زمانی که تنها یک مدل از سیستم موجود است.–

•VHDL•Object Oriented

(Emulationتزریق اشکال مبتنی بر رقابت )•روشHی جHایگزین بHرای کHاهش زمHان سHپری شHده در تزریHق اشHکال مبتHنی بHر –

شبیه سازی برای ارزیابی موثر مدارFPGAاستفاده از –اجازه به طراح به منظور مشاهد رفتار واقعی مدار در محیط عملیاتی–

تزریق اشکال ترکیبی•ترکیب دو یا چند مورد از موارد فوق.–

10

Page 11: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

تزریق اشکال سخت افزاری

تزریق اشکال سخت افزاری•تزریق اشکال توسط یک قطعه سخت افزاری انجام می پذیرد.–بHه سیسHتم هHدف – بHه سHخت افزاری اضHافه جهت تزریHق اشHکال این روش

نیازمند است.

روش های تزریق اشکال سخت افزاری•تزریق اشکال سخت افزاری با تماس–

به صEورت فEیزیکی بEا سیسEتم هEدف در تمEاس اسEت و تغیEیرات ولتEاژ و جریEان را بEه •تراشه هدف اعمال می کند.

•Pin-level Probes–Active Probes جریان ورودی به :Pin.را تغییر می دهد

•Sockets–Socket Insertion هEا را بEرار داده و خطاهEدار قEورد مEدف و بEخت افزار هEوکت بین سEک سEی :

همین روش به سخت افزار هدف تزریق می کند.

تزریق اشکال سخت افزاری بدون تماس–یک منبع خارجی برخی پدیده های طبیعی را تولید می کند.•

پرتوهای یونی سنگین–تداخالت الکترومغناطیسی–

11

Page 12: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(2تزریق اشکال سخت افزاری )

چگونگی فعال شدن تزریق گر اشکال سخت افزاری•–Time Based

پس از منقضی شدن زمان سنجی خاص در سیستم•–Event Based

پس از رخداد رویدادی خاص در سیستم )مثال دسترسی به خانه ای خاص از حافظه(•مزیت روش سخت افزاری•

دسترسی به نقاطی که برای نرم افزار ممکن نیست.–برخی روش های پیاده سازی شده•

–Messaline(Sockets و Pin-level Probesتزریق اشکال با تماس )••Stuck-At، Open، Bridging و Complex Logical

–FISTتزریق اشکال با تماس و بدون تماس )خطاهای گذرا(•استفاده از پرتوهای سنگین یونی در روش بدون تماس•

–MARSتزریق اشکال بدون تماس•استفاده از پرتو های یونی سنگین و جریانات الکترومغناطیسی•

12

Page 13: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

تزریق اشکال نرم افزاری

تزریق اشکال نرم افزاری•تزریق اشکال بدون استفاده از سخت افزار–

متفHاوت، • فازهHای فازهHا: تمHامی در سیسHتم اتکاپHذیری بررسHی تکنیک های متفاوت

فاز مفهوم سازی و فاز طراحی–تزریق اشکال به روش شبیه سازی•شبیه سازی بر اساس فرض های ساده )توزیع آماری نرخ رخداد خرابی(•

فاز نمونه اولیه و فاز نمونه عملیاتی–شناسایی گلوگاه های اتکاپذیری•مطالعه رفتار سیستم در هنگام رخداد اشکال•تعیین میزان پوشش دهی مکانیزهای تشخیص و بازیابی خطا•و ارزیابی میزان تاثیر مکانیزم های تحمل پذیری اشکال و کارآیی از دست رفته•نمونه اولیه: تزریق اشکال مبتنی بر نمونه اولیه•نمونه عملیاتی: آنالیز مبتنی بر اندازه گیری•

13

Page 14: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(2تزریق اشکال نرم افزاری )

مکان تزریق اشکال نرم افزاری•تست برنامه کاربردی–

روی برنامه کاربردی•بین برنامه کاربردی و سیستم عامل•

تست سیستم عامل–روی سیستم عامل•بین سیستم عامل و سخت افزار•

زمان تزریق اشکال•زمان ترجمه )کامپایل(–

تغییر کدهای برنامه•زمان اجرا–

(Time-Outانقضاء زمانی )•تولید اشکاالت غیر قابل پیش بینی )اشکاالت گذرا و ادواری(–

(Exception / Trapاستثناء / تله )•اجرا در مiد سیستم–

(Code Insertionدرج کد )•اجرا در مiد کاربر–

14

Page 15: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(3تزریق اشکال نرم افزاری )

برخی تزریق های اشکال نرم افزاری•تغییر مقادیر ثبات و حافظه–از دست رفتن زمان–گم شدن پیام–گم شدن پاسخ–خواندن نادرست از دیسک–فراخوانی توابع با مقادیر نامعتبر–از کار افتادن برخی مؤلفه های سیستم–

15

Page 16: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(4تزریق اشکال نرم افزاری )

برخی نمونه های پیاده سازی شده•–FERRARI

تله نرم افزاری: پردازنده، حافظه، خط انتقال•–FTAPE

پردازنده، حافظه، دیسک•–FIAT

محیط بالدرنگ: پیام ها، وظایف، زمان سنج ها•–XCEPTION

تزریق اشکال بر اساس رویدادهایی خاص•–DOCTOR

پردازنده، حافظه، شبکه•–EXFI

شبیه سازی اشکاالت گذرا و دائم، سخت افزاری و نرم افزاری•–NFTAPE

محیط توزیع شده: اشکاالت شبکه ای، تزریق اشکال همزمان•–GOOFI

واسط کاربری قوی، قابلیت حمل باال•

16

Page 17: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

الگوی معماری تزریق گر اشکال

پایه و اساس•وجود ابزار های تزریق اشکال نرم افزاری متعدد–نیازمندی ابزارها–

تزریق اشکال•پایش سیستم تحت تست•فعال سازی سیستم•کنترل تمام فرآیند• اطالع به کاربر در مورد نتایج•

معماری این ابزارها باید اجازه دهد فعالیت های فوق انجام پذیرد.–

(Contextزمینه )•یک توسHعه دهنHده تالش می کنHد تHا معمHاری ابHزار تزریHق اشHکال را تعHیین –

نماید.

مشکل•برنامه یا ابزاری که تزریق اشکال نرم افزاری را انجام دهد.–و فعالیت های مورد نیاز را به درستی پیاده سازی نماید.–

17

Page 18: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(2الگوی معماری تزریق گر اشکال )

فعالیت های مورد نیاز در تزریق اشکال•

فعال سازی سیستم تحت تست–

تزریق اشکاالتی که کاربر تعیین کرده است.–

پایش سیستم در انجام رفتار مورد انتظار–

هماهنگی و کنترل فعالیت های تزریق اشکال، پایش و فعال سازی–

واسط کاربری جهت دریافت و مشاهده اطالعات –

چالش ها•

استقالل فعالیت ها از یکدیگر–

بHه – دارنHد، درگHیری مسHتقیم بHا سیسHتم کHه ماژول هHایی ارتبHاط مسHتقیم سیستم.

همHاهنگی بین مHاژول هHا:برقHراری ارتبHاط فعالیت هHای تزریHق، پHایش و فعHال –سازی

محدود نبودن ابزار به محیط و کاربردی خاص–

18

Page 19: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(3الگوی معماری تزریق گر اشکال )

راه حل: تعریف زیرسیستم های زیر•فعال ساز–

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

تزریق اشکاالت مورد نظر به سیستم هدف•پایش گر–

پایش سیسEتم هEدف بEه منظEور بررسEی اینکEه آیEا رفتEار مEورد نظEر را بدرسEتی انجEام •می دهد یا خیر؟

کنترل کننده–کنترل زیر سیستم های فوق به گونه ای که با یکدیگر هماهنگ رفتار کنند.•

واسط کاربری–دریافت مشخصه های آزمایش از کاربر و بازگردانی نتایج•

مدیر اشکال–ذخیره اشکاالتی که می خواهد تزریق شود.•

مدیر داده های پایش شده–ذخیره داده هایی که از پایش سیستم تحت تست بدست آمده است.•

19

Page 20: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(4الگوی معماری تزریق گر اشکال )

20

Page 21: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(5الگوی معماری تزریق گر اشکال )

سناریو•

آغاز اجرا در زیرسیستم کنترل کننده–

دریافت مشخصه های آزمایش توسط واسط کاربری از کاربر–

انتقHال مشخصHه های آزمHایش بHه واحHد کنHترل کننHده و ذخHیره آن هHا در مHدیر –اشکال

فعال کردن برنامه تحت تست توسط فعال کننده–

ارسال داده های مربوط به تزریق از مدیر اشکال به تزریق گر–

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

پایش سیسHتم توسHط پHایش گHر و ارسHال داده هHای بدسHت آمHده بHه کنHترل –کننده

ذخHیره داده هHای بدسHت آمHده در مHدیر داده هHای پHایش شHده توسHط کنHترل –کننده

کHردن – و غیرفعHال کننHده کنHترل توسHط و تزریق گHر اعالم بHا اتمHام تسHت پایش گر

ارسال نتایج تولید شده به واسط کاربری–21

Page 22: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

(6الگوی معماری تزریق گر اشکال )

پیاده سازی•

تعیین سیستم مورد هدف برای ابزار در دست ساخت–

تعیین شکل تزریق اشکال–

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

تعیین شکل فرآیند پایش–

طراحی زیرسیستم های تزریق گر و پایش گر–

بEه چگEونگی تعامEل زیرسیسEتم ها داشEته • نبایEد تEوجهی این لحظEه توسEعه دهنEده در باشد. برای زیر سیستم های تزریق گر و پایش گر نیز الگوی طراحی وجود دارد.

تعیین اینکه چگونه سیستم هدف فعال خواهد شد–

ساخت زیرسیستم کنترل کننده–

طراحی مخازن داده )مدیر اشکال و مدیر داده های پایش شده(–

ساخت زیرسیستم واسط–

22

Page 23: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

جمع بندی و نتیجه گیری

23

صحت کارکرد نرم افزار•تست–

سیستم های بحرانی ایمن•نیاز به تحمل پذیری اشکال–

تست تحمل پذیری–

تزریق اشکال•سخت افزاری–

نرم افزاری–

دیگر روش ها–

الگوی تزریق اشکال•مساله–

نیازمندی ها–

معماری–

پیاده سازی–

Page 24: Fault injection techniques, design pattern for fault injector system

رضا رمضانی – تکنیک های تزریق اشکال

منابع

24

• [1] Hsueh, Mei-Chen, Timothy K. Tsai, and Ravishankar K. Iyer. "Fault injection techniques and tools." Computer 30, no. 4 (1997): 75-82.

• [2] Leme, Nelson GM, Eliane Martins, and Cecília MF Rubira. "A software fault injection pattern system." In Proceedings of the IX Brazilian Symposium on Fault-Tolerant Computing, pp. 99-113. 2001.

• [3] Ziade, Haissam, Rafic A. Ayoubi, and Raoul Velazco. "A survey on fault injection techniques." Int. Arab J. Inf. Technol. 1, no. 2 (2004): 171-186.

• [4] Wilson, Dwight, Greg Sullivan, Gerald Masson, and Jon Bright. "Comparison Of Error Detection Techniques Using Software-based Fault Injection." In Integrating Error Models with Fault Injection, 1994., Third Int'l Workshop on, pp. 29-30. IEEE, 1994.

• [5] Arlat, Jean, Yves Crouzet, Johan Karlsson, Peter Folkesson, Emmerich Fuchs, and Günther H. Leber. "Comparison of physical and software-implemented fault injection techniques." Computers, IEEE Transactions on 52, no. 9 (2003): 1115-1133.

• [6] Benso, Alfredo, and Paolo Prinetto, eds. Fault injection techniques and tools for embedded systems reliability evaluation. Vol. 23. Springer, 2003.

• [7] Clark, Jeffrey A., and Dhiraj K. Pradhan. "Fault injection: A method for validating computer-system dependability." Computer 28, no. 6 (1995): 47-56.

• [8] Tixeuil, Sébastien, William Hoarau, and Luis Silva. "An overview of existing tools for fault-injection and dependability benchmarking in grids." In Second CoreGRID Workshop on Grid and Peer to Peer Systems Architecture. 2006.

Page 25: Fault injection techniques, design pattern for fault injector system

25 Email: [email protected]

Thanks for Your Attention

آتش از خانه ي همسايه ي درويش مخواه

كآنچه بر روزن او مي رود، از سوز دل است.