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