استفاده از سیستمهاي مبتنی بر کامپیوتر روز به روز در حال گسترش است و این گستردگی به حدي است که امروزه اغلب کاربردها توسط این سیستم ها پیاده سازي می شوند. در اغلب سیستم ها، نرم افزار نقش کنترل کننده ي سیستم را برعهده دارد و با به روزرسانی آن می توان کارایی سیستم را نیز افزایش داد
رخداد خرابی در نرم افزار یک سیستم، باعث خراب شدن سیستم و ناتوانی آن در انجام وظایف خود خواهد شد در سیستم هایی که رخداد خرابی در آنها می تواند منجر به رخداد فجایع انسانی، مالی، و یا حتی زیست محیطی شود (نظیر سیستم کنترل پرواز هواپیما، سیستم بورس اوراق بهادار و سیستم کنترل نیروگاه اتمی)، تحمل پذیري اشکال و جلوگیري از رخداد خرابی در سیستم اهمیت ویژه اي دارد. از آنجا که نرم افزار یک بخش مهم در این سیستم ها محسوب می شود، می بایست به گونه اي طراحی گردد تا عاري از خطا بوده و در هنگام کارکرد سیستم با مشکلی مواجه نشود.