امروزه استفاده از عملکردهای خودکار جهت پایش و کنترل فعالیت های سیستم های پرخطر، بسیار گسترده است. تهیه یک آزمون داخلی مناسب (یک سیستم کاملاً عملیاتی و آماده برای استفاده)، یکی از مهم ترین مسائل در توسعه و ایجاد سیستم های امن خودکار می باشد. با این حال هنوز هم، به خاطر ماهیت، کاربرد و نحوه ی خاص ارزیابی آزمون داخلی، غالباً یا الزامات، شگردها و روش های آن نادیده گرفته می شود، یا بدرستی درک نمی شود. این مقاله ضمن ارائه ای از اهداف و کاربردهای آزمون داخلی، به کاربرد آن در تهیه یک سیستم امن می پردازد.
در اوایل دهه ی 1960، سازمان هوا و فضای ایلات متحده امریکا (NASA) در حال ساخت فضاپیمای Saturn V به منظور پرتاب به ماه و بازگشت آن پس از ماموریت بود. به منظور انجام این ماموریت، NASA مجبور بود یک سیستم هدایت کننده خودکار ایجاد کند. سخت افزار و نرم افزار مورد نیاز برای این ماموریت در واحد تجهیزات (IU) جاسازی شد. با این حال نرم افزار امنی ایجاد نشده بود، و همچنین تا آن موقع، هرگز از کامپیوترها و حسگرها برای هدایت و انتقال داده های مهم استفاده نشده بود. کامپیوترهای دیجیتال هنوز در اول راه بودند و اغلب سخت افزارها ناامن و نامطمئن بودند. به منظور جبران این کاستی ها، سازمان NASA سه سیستم مشابه با سخت افزار و حسگرهای ورودی مستقل، ساخت. خروجی های این سه سیستم با هم مقایسه شده و اگر یکسان نبودند، آن خروجی نادیده گرفته می شد.
امروزه، کامپیوترها چند ده برابر قابل اطمینان تر و سریع تر شده اند. در پی آمد آن، استفاده و پیچیدگی وظایفی که با سیستم های محاسباتی انجام می شود نیز گسترش یافته است. پردازنده ها و برنامه های نرم افزاری امروزی در کاربرد های حساس، از سیستم های مراقبت پزشکی، سیستم های ناوبری هوایی تا کنترل نیروگاه های هسته ای و جنگ افزارها، مورد استفاده قرار می گیرند. به منظور توسعه ی همه جانبه ی این کاربردها، اغلب، استفاده از سیستم های افزونه مستقل برای چنین کاربردهایی، بسیار هزینه بر خواهد بود. در نتیجه، مهندسین سیستم ها و نرم افزار به منظور توسعه ی کلیه ی عملکردهای حساس، شناسایی مکان های محتمل وقوع خطا و اثرات این خطاها بر ایمنی کامل سیستم، بایستی در کنار تهیه ی رویه های پشتیبان جهت تکمیل امن وظایف، بکارگیری روش های آزمون داخلی را مد نظر داشته باشند.
با این که ارزیابی های آزمون داخلی موضوعی پیش پاافتاده ای است، اغلب، مورد استفاده اش به تعداد نسبتاً کمی از توسعه دهندگان نرم افزار و سیستم محدود می شود و همچنین معمولاً در برنامه آموزشی رسمی در دانشگاه ها گنجانده نمی شود. در نتیجه امکان دارد در سیستم های جدید، آزمون داخلی توسط مهندسین سیستم ها مد نظر گرفته نشود، بالاخص هنگامی که هدفِ سیستم جدید نشان دادن قابلیت ها یا مفاهیم جدید مهندسی باشد. فرض بر این است که اگر طرح به خوبی و به طور کامل آزمایش شده باشد، همهی توابع سخت افزاری/ نرم افزاری، آن طوری که خواسته شده است، کار خواهند کرد. این مقاله فهم اولیه از چگونگی استفاده از روش های آزمون داخلی در سیستم های جاسازی شده و چگونگی پیوست این روش ها داخل الزامات سیستم های جدید به منظور کاهش ضریب خطر خطاهای پیش بینی نشدهی سیستم را، برای خواننده فراهم می آورد. خواننده بوسیله این فهم، بایستی حداقل توانایی لازم برای ارزیابی کارایی و تمامیت نیازمندی ها، و توابع آزمون داخلی بکار گرفته شده در سیستم های حساس را بدست آورد.
در روند توسعه ی یک سیستم امن، همچنین بایستی رویه های پشتیبان و واکنش های مناسب به خطاهای مورد انتظار و قابل پیش بینی، مورد توجه قرار گیرند. روند ایجاد رویه های پشتیبان برای هر کاربردی متفاوت از دیگری است. با این حال، مجموعه پشتیبان از ورودی ها، افزایش کمتری در هزینه ها نسبت به یک سیستم کامل فراهم می آورد. این مجموعه پشتیبان از ورودی ها ممکن است شامل حسگرهای اضافی باشد که برای بازبینی و بررسی ورودی های حسگر اصلی استفاده می شوند. به عنوان نمونه، سرعت یک هواپیما می تواند بوسیله سرعت حرکت باد یا بوسیله ورودی های دریافتی از سیستم مکان یابی جهانی (GPS) اندازه گیری شود. سرعت حرکت باد دقیق تر تشخیص داده می شود، ولیکن سیستم مکان یابی جهانی دارای قابلیت کنترل بیشتری است و می تواند قابل اطمینان تر باشد؛ بنابراین ورودی های سیستم مکان یابی جهانی می تواند به عنوان پشتیبان برای اندازه گیری هایِ سرعت حرکت باد عمل کند. همچنین در الزامات مهندسی سیستم، رویه های یدکی از قبیل فعال سازی یک سیستم پشتیبان یا راه اندازی رویه های دستی در هنگامی که سیستم خودکار با مشکلی مواجه می شود و از کار بیفتد، بایستی در نظر گرفته شود.