簡介
故障檢測程式是指用於檢測系統或設備是否有故障的程式,通常通常由系統或設備開發商作為支援軟體提供給用戶。主要是因為系統或設備功能一般都不相同,因此故障檢測程式一般都是根據系統或設備定製開發的。故障檢測程式可以加快故障發現和修復過程,有利於降低成本。故障檢測程式是故障診斷程式的一部分,故障診斷程式一般包含故障檢測程式和故障定位程式。故障定位程式是指判定故障發生在哪個子系統、功能塊或器件過程的程式。
故障
概述
故障是系統不能執行規定功能的狀態。通常而言,故障是指系統中部分元器件功能失效而導致整個系統功能惡化的事件。設備的故障一般具有五個基本特徵:層次性、傳播性、放射性、延時性、不確定性等。
基本特徵
設備的故障一般具有如下五個基本特徵:
(1)層次性。複雜的設備,可劃分為系統、子系統、部件、元件,表現一定的層次性,與之相關聯,設備的故障也具有層次性的特徵,即設備的故障可能出現在系統、子系統、部件、元件等不同的層次上。
(2)傳播性。元件的故障會導致部件的故障,部件的故障會引起系統的故障,故障會沿著部件一子系統一系統的路徑傳播。
(3)放射性。某一部件的故障可能會引起與之相關聯的部件發生故障。
(4)延時性。設備故障的發生、發展和傳播有一定的時間過程,設備故障的這種延時性特徵為故障的前期預測預報提供了條件。
(5)不確定性。設備故障的發生具有隨機性、模糊性、不可確知性 。
硬體故障
硬體故障是指計算機系統中的硬體系統部件中元器件損壞或性能不穩定而引起的,主要包括以下幾個方面:
1、元器件故障
這類故障主要是指板卡上的元器件、接外掛程式和印刷電路板等引起的故障。由元器件和接外掛程式引起故障的主要原因是:器件本身損壞、性能失效或是外電路故障引起的器件損壞和性能下降而導致計算機不能正常工作。印刷電路板質量的好壞也會直接影響計算機系統的工作性能和質量。計算機的關鍵部位的印刷電路板都是多層的,如果是印刷電路板出現故障的話一般是很難維修的。而一些可以拆卸的元器件或接外掛程式出現的故障較容易解決。
2、機械故障
機械故障一般發生在外圍設備中,它主要是發生在一些涉及到機械的設備上,而且這一類故障比較容易發現,外設中常見的這類故障可能發生在:印表機、軟碟驅動器、光碟驅動器、各種磁碟以及鍵盤等。
軟體故障
軟體故障一般是指系統軟體不兼容或是被破壞而引起計算機系統不能啟動或不能正常工作,套用軟體遭到破壞不能正常運行而引起計算機系統工作的不正常,就是我們平時經常提到的“當機”。
常見的此類故障有:系統配置不當;系統檔案混亂使得命令檔案和兩個系統隱含檔案不兼容;硬碟設定或使用不當,一方面可能是硬碟的設定不當,這樣會引起硬碟上的主引導扇區、分區表、檔案目錄表等信息的丟失或損壞,另一方面硬碟上可能沒有系統檔案而使得系統無法啟動。
病毒故障
病毒故障是因為計算機系統中的檔案感染病毒,並且病毒發作後導致計算機系統無法正常工作。由病毒引起的故障可用防毒軟體和防病毒系統等來進行預防和查殺病毒。對於破壞性較強的病毒要定期進行檢查,以防計算機系統受到破壞,造成無法挽回的損失。
人為故障
人為故障主要是由於使用者操作不當引起的,常見的硬體方面的故障有:電源接錯;各種數據電纜線、信號線接錯或接反;帶電進行各種接口線的插拔及搬動計算機等。
故障檢測程式實現方法
軟體測試技術
現有軟體測試技術通常分為靜態測試和動態測試。靜態測試是不執行程式代碼而尋找程式代碼中可能存在的缺陷或評估程式代碼的過程。靜態測試主要包括由人工進行的桌面檢查、代碼審查、代碼走查等。動態測試通過在抽樣測試數據上運行程式來檢驗程式的動態行為和運行結果以發現缺陷。動態測試分為基於規約的測試(又稱黑盒測試或功能測試)、基於程式的測試(又稱白盒測試或結構測試)以及程式與規約相結合的測試 。
軟體故障樹分析
軟體故障樹分析是一種用於分析軟體故障產生原因的技術。軟體的故障樹分析法在原理、所用的標誌符、建立步驟等方面與硬體故障樹分析法完全相同。軟體故障樹分析的這些特點,使得硬體故障樹與軟體故障樹可以在接口處相互聯接,從而使整個系統都可以用故障樹進行分析。
軟體故障模擬
變異測試技術能夠系統地模擬軟體故障,並構造有效的測試數據將這些故障檢測出來.其基本原理是:使用變異運算元每次對被測程式作一處微小的合乎語法的變動(例如將關係運算符“>”用“<”替換),產生大量的新程式,每個新程式稱為一個變異體;然後根據已有的測試數據,運行變異體,比較變異體和原程式的運行結果:如果兩者不同,就稱該測試數據將該變異體殺死。殺死變異體的過程一直執行到殺死所有變異體或變異充分度已經達到預期的要求。變異充分度是已殺死的變異體數目與所有已產生的非等價變異體數目的比值。在變異測試過程中,變異運算元模擬軟體的各種缺陷,作用到源程式上得到變異體。這種有缺陷的軟體運行將有可能導致某些軟體故障。
形式化檢測方法
形式化方法是關於在計算系統的開發中進行嚴格推理的理論、技術和工具,可用於檢測從高層規範至最終實現的過程中的軟體缺陷。形式化方法主要包括形式化規約技術和形式化驗證技術。形式化規約技術使用具有嚴格數學定義語法和語義的語言刻畫軟體系統,以儘早發現需求和設計中的錯誤。順序系統的形式化規約技術側重於描述狀態空間,其主要思想是利用集合、關係和函式等離散結構表達系統的狀態,用前置斷言、後置斷言表達狀態的遷移,例如Z、VDM;並發系統的形式化規約技術側重於描述系統並發特性,其主要思想是用序列、樹、偏序等表達系統的行為,例如CSP、時序邏輯;RAISE語言和方法綜合這兩種思路.形式化驗證技術是在形式化規約技術的基礎上建立軟體系統及其性質的關係,即分析系統是否具有所期望性質的過程.模型檢驗是一種重要的形式化驗證方法,通過搜尋待驗證軟體系統模型的有窮狀態空間來檢驗系統的行為是否具備預期性質。在模型檢驗中,系統用有窮狀態模型建模;其要驗證的系統性質通常是時序邏輯或模態邏輯公式,也可以用自動機語言描述;通過有效的自動搜尋檢驗有窮狀態模型是否滿足性質,如果不滿足,它還能給出使性質公式為假的系統行為軌跡。