袁豪
同濟大學
對目前計算機軟件可靠性及其測試分析
袁豪
同濟大學
隨著社會科技的不斷發展和進步,計算機軟件產品的應用已經遍布了世界各個角落,它們與人類的生活息息相關,所以計算機軟件的質量好壞是一件很重要的事情。本文將針對目前計算機軟件的可靠性以及其測試進行分析。
計算機軟件;可靠性;可靠性測試
隨著社會的進步,信息科學與技術得到了很大的發展。在如今的社會上,計算機軟件已經被廣泛地應用,各個領域范圍都可以看見計算機軟件的存在,它已經和我們人類的生活密切地聯系在了一起。但是,計算機軟件總是存在著一些問題和缺陷,這給人類的生活帶來了不便甚至是危害。比如在國家的航空領域、軍隊作戰領域、商業銀行領域等等重要領域,如果出現計算機軟件的錯誤,帶來的后果是不堪設想的,嚴重的情況下,可能會威脅到人們甚至一個國家的存亡。比如在1991年,美國愛國者導彈防御系統,就是因為它存在著一個很小的軟件缺陷,使得在抗導彈戰役中失利,并且其中一枚導彈擊斃了美國士兵28名。像這種因為計算機軟件的缺陷而造成嚴重的后果的例子還有很多,所以需要警惕起來,針對計算機軟件的可靠性以及其測試需要進行分析,全面提高計算機軟件的質量。
1.1 計算機軟件的可靠性
計算機軟件的可靠性是軟件質量的基本要素。計算機軟件的可靠性是指在一定的時間和條件下,軟件不會使得系統失效,并且在規定的時間范圍內,計算機軟件可以正常地執行其該有的功能。計算機軟件運行的時間主要是軟件工作以及掛起的總和,而在這軟件運行的時間段里便是計算機軟件可靠性的主要體現。計算機軟件在其運行的環境當中,給與系統所需要的各種要素。當然,在不同的環境下,軟件的可靠性也是不同的,它需要根據計算機的硬件、操作系統、數據格式、操作流程等從而產生隨機的變量。另外,計算機軟件的可靠性與規定的具體的任務也有關系,程序的選擇不同,軟件的可靠性也會隨之改變。
1.2 計算機軟件可靠性測試
所謂計算機軟件測試就是指在軟件規定使用的環境當中,檢測出軟件的缺陷,驗證是否可以達到用戶可靠性要求的一種測試。在測試的過程當中,需要使用各種測試用例來進行測試其可靠性,需要擁有明確的測試目標,然后進行制定測試的方案,科學合理地實施整個測試的過程,最后需要對測試得到的相關數據和結果進行客觀地分析。進行這種測試目的在于兩個方面,其一是為了去發現計算機軟件的缺陷,而另一方面是為軟件的正常維護提供較為可靠的工作數據,同時對軟件的可靠性進行定量的分析,從而其是否為合格,是否可以進行推廣。
就目前社會上所采用的計算機軟件可靠性測試的方法可謂五花八門,但是總體來說可以分為四種:靜態測試、動態測試、黑盒測試以及白盒測試。靜態和動態測試主要是根據測試當中是否有需要執行被測軟件的角度出發,而黑盒以及白盒測試是根據測試當中是否需要針對計算機系統內部結構和具體實現算法的角度出發。
靜態測試主要指的就是在測試的過程當中,并不實際地去運行被測試的軟件,而是對計算機軟件的代碼、相關程序、文檔以及界面可能會出現的錯誤進行相對的靜態地觀察和分析。總得來說,靜態測試主要就是對軟件的代碼、文檔、界面進行測試。而動態測試就和靜態測試不同,它是對計算機軟件進行運行和使用,并不僅僅停留在觀察上,需要進行實際地操作,從而發現軟件的缺陷。
所謂黑盒測試,就如它的名字一樣,是把需要進行測試的軟件當做一個黑盒子,我們不用去了解軟件內部的結構,我們需要做的工作就是進行輸入、接收輸出、檢驗結果。黑盒子測試常常又被稱作行為測試,因為測試的軟件在使用過程中的實際行為。在黑盒測試中,需要注意的地方是輸入的時候,數據是否正常,輸出的時候,結果是否是正確的,軟件是否有異常的功能等。如果在測試的過程中,一旦發現或者出現程序上的錯誤,要及時核對輸入以及輸出條件可能會出現的數據錯誤,從而來保證軟件中程序能夠正常運行。
白盒測試當然就是和黑盒測試相反,它是需要打開被測軟件內部的盒子,去分析和研究計算機軟件的源代碼還有自身的程序的分布結構。像這種測試又可以稱作為結構測試。在白盒測試的過程當中,測試人員會充分了解軟件內部工作的步驟和過程,可以清楚地知道軟件內部各個部分工作的情況,看它們是否和預期的工作狀況一致。白盒測試人員可以針對被測軟件的結構特點以及性能來進行選擇和設計相對應的測試用例,來進行檢驗軟件測試的可靠性。
白盒測試主要是針對軟件運行的所有的代碼、分支、路徑以及條件,這種測試的方式是目前比較流行的軟件可靠性測試方法。它主要的方法是針對邏輯驅動和軟件運行的基本路徑進行測試,這一點也是在軟件認證領域得到了較為廣泛的運用。在這種測試過程中,可以保證軟件內部每個模塊中獨立的部分都可以在相應的路徑下至少執行一次,從而最終確定軟件中所用數據的真實可靠性。
本文主要是簡略地介紹了計算機軟件的可靠性以及可靠性測試的含義,還有計算機軟件可靠性測試的基本方法。在現在這個科技發達的社會上,計算機軟件測試的方法是層出不窮,但是仍然會存在一些意想不到的問題,所以人們還需要不斷學習和創新,從而創造出先進優秀的測試方法來提高計算機軟件的可靠性。
[1]葉彩虹.軟件可靠性的理解[J].安慶師范學院學報(自然科學版).2002(03)
[2]陳光宇,黃錫滋.軟件可靠性學科發展現狀及展望[J].電子科技大學學報(社科版).2002(03)
[3]劉云,趙瑋.軟件可靠性研究與進展[J].微機發展.2003(02)