試論軟件的可靠性及其保證(四)
日期:2024-10-07 06:29
瀏覽次數(shù):933
摘要:
測試前要確定測試標準、規(guī)范,測試過程中要建立完整的測試文檔,把軟件置于配置控制下,用形式化的步驟去改變它,保證任何錯誤及對錯誤的動作都能及時歸檔。
測試規(guī)范包括以下三類文檔:砂塵試驗箱
(1)測試設(shè)計規(guī)范:詳細描述測試方法,規(guī)定該設(shè)計及其有關(guān)測試所包括的特性。還應(yīng)規(guī)定完成測試所需的測試用例和測試規(guī)程,規(guī)定特性的通過/失敗判定準則。
(2)測試用例規(guī)范:列出用于輸入的具體值及預(yù)期輸出結(jié)果。規(guī)定在使用具體測試用例時對測試規(guī)程的各種限制。
(3)測試規(guī)程規(guī)范:規(guī)定對于運行該系統(tǒng)和執(zhí)行指定的測試用例來實現(xiàn)有關(guān)測試所要求的所有步驟。
測試的方法多種多樣:
(1)走查(Walk-through),即手工執(zhí)行,由不同的程序員(非該模塊設(shè)計者)讀代碼,并進行評論。
(2)機器測試,對給定的輸入不會產(chǎn)生不合邏輯的輸出。
(3)程序證明或交替程序表示。
(4)模擬測試,模擬硬件、I/O設(shè)備等。
(5)設(shè)計審查,關(guān)于設(shè)計的所有各方面的小組討論會,砂塵試驗箱利用所獲得的信息,找出缺陷及違反標準的地方等。
以上可以交替并行循環(huán)執(zhí)行,在實際測試過程中要使用測試工具提高效率。
除正常的測試之外,還要對軟件進行可靠性測試,確保軟件中沒有對可靠性影響較大的故障。制定測試計劃方案,按實際使用的概率分布隨機選擇輸入,準確記錄運行時間和結(jié)果,并對結(jié)果進行評價。
沒有錯誤的程序同永動機一樣是不可能達到的。一般常用排錯方法有試探法、追溯法、歸納法、演繹法。還要使用適當?shù)呐佩e工具,如UNIX提供的sdb和dbx編碼排錯工具,這些排錯工具只有瀏覽功能,沒有修改功能,是實際的找錯工具。
6.容錯設(shè)計
提高可靠性的技術(shù)一般可以分為兩類,一類是避免故障,砂塵試驗箱在開發(fā)過程中,盡可能不讓差錯和缺陷潛入軟件,這類常用的技術(shù)有:
算法模型化,把可以保證正確實現(xiàn)需求規(guī)格的算法模型化。
模擬模型化,為了保證在確定的資源條件下的預(yù)測性能的發(fā)揮,使軟件運行時間、內(nèi)存使用量及控制執(zhí)行模型化。
可靠性模型,使用可靠性模型,從差錯發(fā)生頻度出發(fā),預(yù)測可靠性。
正確性證明,使用形式符號及數(shù)學(xué)歸納法等證明算法的正確性。
軟件危險分析與故障樹分析:從設(shè)計或編碼的結(jié)構(gòu)出發(fā),追蹤軟件開發(fā)過程中潛入系統(tǒng)缺陷的原因。
分布接口需求規(guī)格說明:在設(shè)計的各階段使用形式的接口需求規(guī)格說明,以便驗證需求的分布接口實現(xiàn)可能性與完備性。
這些技術(shù)一般都需要比較深厚的數(shù)學(xué)理論知識和模型化技術(shù)。
另一類就是采用冗余思想的容錯技術(shù)。
容錯技術(shù)的基本思想是使軟件內(nèi)潛在的差錯對可靠性的影響縮小控制到*低程度。
軟件的容錯從原理上可分為錯誤分析、破壞程度斷定、砂塵試驗箱錯誤恢復(fù)、錯誤處理四個階段。
常用的軟件容錯技術(shù)有N-版本技術(shù)、恢復(fù)塊技術(shù)、多備份技術(shù)等。
N-版本程序設(shè)計是依據(jù)相同規(guī)范要求獨立設(shè)計N個功能相等的程序(即版本)。獨立是指使用不同的算法,不同的設(shè)計語言,不同的測試技術(shù),甚至不同的指令系統(tǒng)等。
恢復(fù)塊技術(shù)是使用自動前向錯誤恢復(fù)的故障處理技術(shù)。
以上這些技術(shù)可參考有關(guān)文獻,這里要說的是防錯性程序設(shè)計,在程序中進行錯誤檢查。被動的防錯性技術(shù)是當?shù)竭_檢查點時,檢查一個計算機程序的適當點的信息。主動的防錯性技術(shù)是周期性地搜查整個程序或數(shù)據(jù),或在空閑時間尋找不尋常的條件。采用防錯性程序設(shè)計,是建立在程序員相信自己設(shè)計的軟件中肯定有錯誤這一基礎(chǔ)上的,有的程序員可能對此不大習(xí)慣,砂塵試驗箱因為他可能太相信自己,相信自己的程序只有很少錯誤,甚至沒有錯誤,作為一個項目管理員應(yīng)該能說服他或者強制他采用這種技術(shù),雖然在設(shè)計時要花費一定的時間,但這對提高可靠性很有用。?
測試規(guī)范包括以下三類文檔:砂塵試驗箱
(1)測試設(shè)計規(guī)范:詳細描述測試方法,規(guī)定該設(shè)計及其有關(guān)測試所包括的特性。還應(yīng)規(guī)定完成測試所需的測試用例和測試規(guī)程,規(guī)定特性的通過/失敗判定準則。
(2)測試用例規(guī)范:列出用于輸入的具體值及預(yù)期輸出結(jié)果。規(guī)定在使用具體測試用例時對測試規(guī)程的各種限制。
(3)測試規(guī)程規(guī)范:規(guī)定對于運行該系統(tǒng)和執(zhí)行指定的測試用例來實現(xiàn)有關(guān)測試所要求的所有步驟。
測試的方法多種多樣:
(1)走查(Walk-through),即手工執(zhí)行,由不同的程序員(非該模塊設(shè)計者)讀代碼,并進行評論。
(2)機器測試,對給定的輸入不會產(chǎn)生不合邏輯的輸出。
(3)程序證明或交替程序表示。
(4)模擬測試,模擬硬件、I/O設(shè)備等。
(5)設(shè)計審查,關(guān)于設(shè)計的所有各方面的小組討論會,砂塵試驗箱利用所獲得的信息,找出缺陷及違反標準的地方等。
以上可以交替并行循環(huán)執(zhí)行,在實際測試過程中要使用測試工具提高效率。
除正常的測試之外,還要對軟件進行可靠性測試,確保軟件中沒有對可靠性影響較大的故障。制定測試計劃方案,按實際使用的概率分布隨機選擇輸入,準確記錄運行時間和結(jié)果,并對結(jié)果進行評價。
沒有錯誤的程序同永動機一樣是不可能達到的。一般常用排錯方法有試探法、追溯法、歸納法、演繹法。還要使用適當?shù)呐佩e工具,如UNIX提供的sdb和dbx編碼排錯工具,這些排錯工具只有瀏覽功能,沒有修改功能,是實際的找錯工具。
6.容錯設(shè)計
提高可靠性的技術(shù)一般可以分為兩類,一類是避免故障,砂塵試驗箱在開發(fā)過程中,盡可能不讓差錯和缺陷潛入軟件,這類常用的技術(shù)有:
算法模型化,把可以保證正確實現(xiàn)需求規(guī)格的算法模型化。
模擬模型化,為了保證在確定的資源條件下的預(yù)測性能的發(fā)揮,使軟件運行時間、內(nèi)存使用量及控制執(zhí)行模型化。
可靠性模型,使用可靠性模型,從差錯發(fā)生頻度出發(fā),預(yù)測可靠性。
正確性證明,使用形式符號及數(shù)學(xué)歸納法等證明算法的正確性。
軟件危險分析與故障樹分析:從設(shè)計或編碼的結(jié)構(gòu)出發(fā),追蹤軟件開發(fā)過程中潛入系統(tǒng)缺陷的原因。
分布接口需求規(guī)格說明:在設(shè)計的各階段使用形式的接口需求規(guī)格說明,以便驗證需求的分布接口實現(xiàn)可能性與完備性。
這些技術(shù)一般都需要比較深厚的數(shù)學(xué)理論知識和模型化技術(shù)。
另一類就是采用冗余思想的容錯技術(shù)。
容錯技術(shù)的基本思想是使軟件內(nèi)潛在的差錯對可靠性的影響縮小控制到*低程度。
軟件的容錯從原理上可分為錯誤分析、破壞程度斷定、砂塵試驗箱錯誤恢復(fù)、錯誤處理四個階段。
常用的軟件容錯技術(shù)有N-版本技術(shù)、恢復(fù)塊技術(shù)、多備份技術(shù)等。
N-版本程序設(shè)計是依據(jù)相同規(guī)范要求獨立設(shè)計N個功能相等的程序(即版本)。獨立是指使用不同的算法,不同的設(shè)計語言,不同的測試技術(shù),甚至不同的指令系統(tǒng)等。
恢復(fù)塊技術(shù)是使用自動前向錯誤恢復(fù)的故障處理技術(shù)。
以上這些技術(shù)可參考有關(guān)文獻,這里要說的是防錯性程序設(shè)計,在程序中進行錯誤檢查。被動的防錯性技術(shù)是當?shù)竭_檢查點時,檢查一個計算機程序的適當點的信息。主動的防錯性技術(shù)是周期性地搜查整個程序或數(shù)據(jù),或在空閑時間尋找不尋常的條件。采用防錯性程序設(shè)計,是建立在程序員相信自己設(shè)計的軟件中肯定有錯誤這一基礎(chǔ)上的,有的程序員可能對此不大習(xí)慣,砂塵試驗箱因為他可能太相信自己,相信自己的程序只有很少錯誤,甚至沒有錯誤,作為一個項目管理員應(yīng)該能說服他或者強制他采用這種技術(shù),雖然在設(shè)計時要花費一定的時間,但這對提高可靠性很有用。?