軟件測試試論軟件的可靠性及其保證[4] 軟件測試
一般用的比較多的是軟件構件重用。
軟件重用的過程如下:候選,選擇,資格,分類和存儲,查找和檢索。在選擇可重用構件時,一定要有嚴格的選擇標準,可重用的構件必須是經過嚴格測試的、甚至是經過可靠性和正確性證明的構件,應模塊化(實現單一、的完整的功能)、結構清晰(可讀、可理解、規模適當),且有高度可適應性。
4.使用開發管理工具
開發一個大的軟件系統,離不開開發管理工具,作為一個項目管理員,僅僅靠人來管理是不夠的,需要有開發管理工具來輔助解決開發過程中遇到的各種各樣的問題,以提高開發效率和產品質量。
如Intersolv公司的PVCS軟件開發管理工具,在美國市場占有率已超過70%,使用PVCS可以帶來不少好處:規范開發過程,縮短開發周期,減少開發成本,降低項目投資風險;自動創造完整的文檔,便于軟件維護;管理軟件多重版本;管理和追蹤開發過程中危及軟件質量和影響開發周期的缺陷和變化,便于軟件重用,避免數據丟失,也便于開發人員的交流,對提高軟件可靠性,保證質量有很大作用。
在我國,開發管理工具并沒有得到有效地使用,許多軟件公司還停留在人工管理階段,所開發的軟件質量不會很高。
人的管理比較困難,在保證開發人員素質的同時,要保持人員的穩定性,盡可能避免人員的經常流動。人員流動影響了軟件的質量,工作連續性難保證,繼承者不可能對情況了解很清楚等,也可能影響工作進程等。PVCS也提供了適當的人員管理方法。
5.加強測試
軟件開發前期各階段完成之后,為進一步提高可靠性,只有通過加強測試來實現了。為最大限度地除去軟件中的差錯,改進軟件的可靠性,就要對軟件進行完備測試。要對一個大的軟件系統進行完備測試是不可能的,所以要確定一個最小測試數和最大測試數,前者是技術性的決策,后者管理性的決策,在實際過程中要確定一個測試數量的下界?偟膩碚f,要在可能的情況下,進行盡可能完備的測試。
誰來做測試呢?一般說來,用戶不大可能來進行模塊測試,模塊測試應該由最初編寫代碼的程序員來進行,要在他們之間交換程序進行模塊測試,自己設計的程序自己測試一般都達不到好的效果。
測試前要確定測試標準、規范,測試過程中要建立完整的測試文檔,把軟件置于配置控制下,用形式化的步驟去改變它,保證任何錯誤及對錯誤的動作都能及時歸檔。
測試規范包括以下三類文檔:
(1)測試設計規范:詳細描述測試方法,規定該設計及其有關測試所包括的特性。還應規定完成測試所需的測試用例和測試規程,規定特性的通過/失敗判定準則。
(2)測試用例規范:列出用于輸入的具體值及預期輸出結果。規定在使用具體測試用例時對測試規程的各種限制。
(3)測試規程規范:規定對于運行該系統和執行指定的測試用例來實現有關測試所要求的所有步驟。
測試的方法多種多樣:
(1)走查(Walk-through),即手工執行,由不同的程序員(非該模塊設計者)讀代碼,并進行評論。
(2)機器測試,對給定的輸入不會產生不合邏輯的輸出。
(3)程序證明或交替程序表示。
(4)模擬測試,模擬硬件、I/O設備等。
(5)設計審查,關于設計的所有各方面的小組討論會,利用所獲得的信息,找出缺陷及違反標準的地方等。
以上可以交替并行循環執行,在實際測試過程中要使用測試工具提高效率。
除正常的測試之外,還要對軟件進行可靠性測試,確保軟件中沒有對可靠性影響較大的故障。制定測試計劃方案,按實際使用的概率分布隨機選擇輸入,準確記錄運行時間和結果,并對結果進行評價。
沒有錯誤的程序同永動機一樣是不可能達到的。一般常用排錯方法有試探法、追溯法、歸納法、演繹法。還要使用適當的排錯工具,如UNIX提供的sdb和dbx編碼排錯工具,這些排錯工具只有瀏覽功能,沒有修改功能,是實際的找錯工具。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/