孫少英
?
軟件可靠性測試方法探析
孫少英
廣東省電信規(guī)劃設(shè)計(jì)院有限公司,廣東 廣州 510630
隨著信息技術(shù)的不斷發(fā)展,軟件技術(shù)、計(jì)算機(jī)硬件工程也在不斷發(fā)展,人們的生活以及工作過程中對計(jì)算機(jī)的依賴也越來越強(qiáng),而且各種技術(shù)創(chuàng)新也使得計(jì)算機(jī)的功能變得越來越強(qiáng)大。計(jì)算機(jī)軟件在計(jì)算機(jī)功能的實(shí)現(xiàn)過程中發(fā)揮了十分重要的作用,必須加強(qiáng)對計(jì)算機(jī)軟件可靠性的研究,提高計(jì)算機(jī)性能。對計(jì)算機(jī)軟件的測試方法進(jìn)行分析,旨在確保計(jì)算機(jī)軟件運(yùn)行更加可靠、穩(wěn)定。
軟件測試;可靠性測試;方法
計(jì)算機(jī)功能的實(shí)現(xiàn)必須依靠各種軟件。隨著計(jì)算機(jī)信息技術(shù)不斷發(fā)展,軟件工程也逐漸發(fā)展起來,各種軟件的應(yīng)用使計(jì)算機(jī)的功能越來越強(qiáng)大,而且能夠解決多種多樣的問題。在人們的生活中,計(jì)算機(jī)的使用越來越廣泛。計(jì)算機(jī)軟件作為影響計(jì)算機(jī)功能的主要原因,在計(jì)算機(jī)管理過程中必須做好軟件的研發(fā)和測試,對軟件的內(nèi)容、功能等進(jìn)行開發(fā)與設(shè)計(jì),在軟件投入應(yīng)用之前,必須做好相應(yīng)的測試,確保整個(gè)軟件的性能、結(jié)構(gòu)等都是完整的,以防軟件使用過程中出現(xiàn)錯(cuò)誤。計(jì)算機(jī)軟件測試的重點(diǎn)內(nèi)容是軟件的可靠性,其可靠性的高低直接決定了軟件的功能是否真正、全面實(shí)現(xiàn),軟件可靠性越高,其實(shí)現(xiàn)軟件設(shè)計(jì)、開發(fā)之初的目標(biāo)也就越近,才能真正解決實(shí)際問題。
目前,隨著軟件技術(shù)的發(fā)展及人們對計(jì)算機(jī)需求的增多,軟件開發(fā)的類型越來越多,計(jì)算機(jī)能夠?qū)崿F(xiàn)的功能也越來越強(qiáng),與之相適應(yīng)的,計(jì)算機(jī)軟件也越來越復(fù)雜,對軟件可靠性就提出了更高的要求。
計(jì)算機(jī)軟件的可靠性主要包括兩個(gè)方面的內(nèi)容。(1)在規(guī)定的時(shí)間內(nèi),運(yùn)行軟件的計(jì)算機(jī)如果能夠正常運(yùn)行,不會(huì)失效,則計(jì)算機(jī)軟件可靠性符合要求;如果引起計(jì)算機(jī)運(yùn)行失效,則軟件可靠性不達(dá)標(biāo)或者很低。(2)在規(guī)定的時(shí)間內(nèi),如果運(yùn)行軟件的計(jì)算機(jī)能夠完成預(yù)設(shè)的功能,則軟件可靠;如果不能完成預(yù)設(shè)的功能或者完成部分功能,則說明軟件的可靠性低。
為提高軟件可靠性,使運(yùn)行軟件的計(jì)算機(jī)在規(guī)定的時(shí)間完成預(yù)設(shè)的功能,需要對計(jì)算機(jī)軟件進(jìn)行測試。
軟件的可靠性測試,是軟件開發(fā)過程中的重要內(nèi)容。軟件可靠性的影響因素有很多,如人的行為,特別是技術(shù)人員在操作軟件時(shí)的行為,還有軟件運(yùn)行的環(huán)境,都能影響到軟件測試的可靠性。對軟件的可靠性進(jìn)行測試,具有十分重要的意義,可以在軟件投入使用之前就立即解決軟件中的問題,防止有問題的軟件流入市場。
1.2.1 解決影響軟件可靠性的問題
在軟件設(shè)計(jì)過程中難免會(huì)出現(xiàn)一些客觀和主觀因素,對軟件的性能、結(jié)構(gòu)等產(chǎn)生影響。在軟件設(shè)計(jì)過程中需要滿足一系列條件。相對而言,比較客觀或者不易改變的條件有計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)相對而言,是不會(huì)短時(shí)間內(nèi)改變的;比較主觀或者容易改變的條件,指的是外部的輸入,由于輸入的內(nèi)容隨時(shí)可能變化,因此屬于動(dòng)態(tài)變化的條件。在測試軟件可靠性的時(shí)候,可以首先將一些比較明顯的問題暴露出來,然后將一些不明顯的問題暴露出來,那些發(fā)生的概率較高、最為明顯的缺陷對軟件的可靠性的影響最大,通過軟件的可靠性測試,可以及時(shí)找到問題的原因,并且解決這些問題,以提高軟件可靠性[1]。
1.2.2 驗(yàn)證軟件的可靠性滿足要求
軟件可靠性是軟件正常投入使用的重要指標(biāo),不管什么軟件,均須通過可靠性測試達(dá)標(biāo)才能使用。軟件的可靠性測試,是了解軟件可靠性指標(biāo)的重要方法和手段。通過軟件可靠性測試,如果滿足要求,則投入使用;如果測試后發(fā)現(xiàn)可靠性不能滿足要求或者不能完全實(shí)現(xiàn)預(yù)設(shè)功能,則需要對軟件程序部分修訂或者全部重新設(shè)計(jì),最終實(shí)現(xiàn)可靠性的提高,滿足投入使用的要求。
1.2.3 預(yù)計(jì)軟件可靠性水平
軟件可靠性測試是軟件設(shè)計(jì)過程中的重要內(nèi)容,可以實(shí)現(xiàn)測試軟件的真實(shí)可靠性與軟件設(shè)計(jì)之初預(yù)設(shè)的可靠性之間的差異,真正了解軟件的可靠性程度。
軟件測試是了解軟件的設(shè)計(jì)內(nèi)容、設(shè)計(jì)結(jié)構(gòu),并且對軟件的缺陷進(jìn)行解決,以提高軟件功能性和完整度的過程,是軟件設(shè)計(jì)中十分關(guān)鍵的步驟。軟件測試的結(jié)果直接決定了軟件的處置方式。如果可靠性測試合格,則可以安排軟件上市投入使用;如果測試不合格,則需要進(jìn)行整改,嚴(yán)重的時(shí)候需要花費(fèi)較多時(shí)間進(jìn)行修改,甚至可能導(dǎo)致整個(gè)軟件不能使用,整個(gè)開發(fā)項(xiàng)目終止。因此,在軟件投入使用之前,必須加強(qiáng)軟件可靠性測試,得到準(zhǔn)確、真實(shí)的測試結(jié)果。隨著軟件開發(fā)行業(yè)對軟件測試重視度的提高,軟件測試水平逐步提高,但依然存在一些問題,導(dǎo)致軟件測試結(jié)果不夠準(zhǔn)確,測試過程不夠合理,影響了軟件技術(shù)的發(fā)展。
首先,在傳統(tǒng)的思維中,人們認(rèn)為軟件測試是在軟件開發(fā)之后進(jìn)行的,有一個(gè)時(shí)間先后順序。但在實(shí)際軟件開發(fā)過程中,軟件測試是和軟件開發(fā)同時(shí)進(jìn)行的,軟件設(shè)計(jì)開發(fā)必須有軟件測試。軟件設(shè)計(jì)開發(fā)一段程序需要立即進(jìn)行軟件測試,確保已經(jīng)完成的程序是正確的、可靠的。但是某些技術(shù)人員的思想觀念比較傳統(tǒng),依舊將軟件測試和開發(fā)過程分開,從而導(dǎo)致整個(gè)軟件幾乎是在設(shè)計(jì)完成之后才出現(xiàn)一些問題,此時(shí)要對軟件的問題進(jìn)行查找和解決的難度就會(huì)很大,這對于軟件測試工程的開展有很大影響[2]。
其次,在軟件測試過程中,一旦發(fā)現(xiàn)了軟件中的問題,一般都會(huì)將責(zé)任歸咎于軟件測試人員,或者完全歸咎于軟件設(shè)計(jì)和開發(fā)人員。這也是不正確的,因?yàn)檐浖y試過程中影響測試結(jié)果的因素有很多。當(dāng)軟件在測試過程中報(bào)錯(cuò)的時(shí)候,應(yīng)考慮多方面因素,查找相應(yīng)的原因之后再確定問題出在哪一個(gè)環(huán)節(jié),以及是誰的責(zé)任。
最后,軟件測試工作的要求較低,測試人員的水平不高。在我國傳統(tǒng)的軟件技術(shù)發(fā)展中,軟件設(shè)計(jì)、開發(fā)才是重中之重,多數(shù)軟件開發(fā)企業(yè)重視軟件開發(fā)設(shè)計(jì),投入更多的人力、物力到軟件開發(fā)設(shè)計(jì),而忽視了軟件測試的重要性,而且測試人員的數(shù)量也比較少,有的時(shí)候甚至沒有設(shè)置專業(yè)的測試崗位,由程序設(shè)計(jì)人員直接擔(dān)任測試人員,程序的設(shè)計(jì)和測試都由一個(gè)人完成,從而使得測試結(jié)果不準(zhǔn)確。技術(shù)人員在開發(fā)的時(shí)候形成了思維定式,測試時(shí)也很容易受到自己的思維定式的影響,導(dǎo)致不能很好地分辨出軟件的問題。
為確保軟件測試的順利進(jìn)行,得到可靠的數(shù)據(jù)指標(biāo),必須堅(jiān)持一定的工作原則。第一,要及時(shí)測試,軟件可靠性測試和軟件的開發(fā)同步,不能分割,盡量在一個(gè)子項(xiàng)目、子模塊的設(shè)計(jì)結(jié)束之后就立即進(jìn)行測試,確保每一個(gè)子模塊的內(nèi)容都是正確的、完整的,從而提高軟件的性能。第二,完整性。軟件測試過程具有整體性和連續(xù)性,軟件程序可分段測試,但軟件的測試結(jié)果應(yīng)是整體性的,實(shí)現(xiàn)的功能也應(yīng)是軟件整體的功能。第三,科學(xué)性。在對軟件可靠性進(jìn)行測試的時(shí)候必須確??茖W(xué)、客觀,采用科學(xué)的方法進(jìn)行測評,而且必須客觀,不能用主觀心態(tài)來評價(jià)軟件的可靠性,更不能隨意測評,防止測試結(jié)果出現(xiàn)誤差,造成較大的損失[3]。
3.2.1 白盒測試
常見的軟件測試即白盒測試。白盒測試過程中,需要測試人員對軟件的程序內(nèi)容、程序結(jié)構(gòu)等方面都比較熟悉,根據(jù)軟件的邏輯結(jié)構(gòu)、編碼內(nèi)容等進(jìn)行測試。由于測試人員能夠看到軟件程序設(shè)計(jì)的結(jié)構(gòu)和內(nèi)容,因此可以檢查程序的邏輯性是否正確,可以對軟件的內(nèi)容進(jìn)行全面檢查,發(fā)現(xiàn)其中的錯(cuò)誤。為了對軟件進(jìn)行測試,還需要設(shè)計(jì)相應(yīng)的測試?yán)印_@些例子的設(shè)計(jì)也是根據(jù)軟件程序的內(nèi)容來確定的。
白盒測試過程中,軟件程序處于運(yùn)行的狀態(tài),通過測試軟件運(yùn)行的情況及運(yùn)行結(jié)果測試被檢測軟件的設(shè)計(jì)執(zhí)行狀況以及執(zhí)行路徑等等,并實(shí)現(xiàn)對路徑的跟蹤,從而實(shí)時(shí)發(fā)現(xiàn)軟件程序的問題。
3.2.2 黑盒測試
黑盒測試的主要內(nèi)容是軟件設(shè)計(jì)的功能。在黑盒測試過程中,測試人員可以不了解軟件程序的邏輯結(jié)構(gòu)、編碼內(nèi)容等等,只需要軟件開發(fā)設(shè)計(jì)人員給出的軟件介紹或者說明文件,就可以找到軟件的基本功能。軟件對于測試人員來講就好像一個(gè)“黑盒”。黑盒測試的主要目的是驗(yàn)證軟件預(yù)設(shè)的功能是否全面實(shí)現(xiàn),其測試角度側(cè)重用戶體驗(yàn)。測試的主要內(nèi)容有:軟件設(shè)計(jì)的功能、性能、余量、強(qiáng)度、邊界等內(nèi)容。
在當(dāng)前軟件測試中,軟件開發(fā)商更傾向于黑盒測試,其優(yōu)點(diǎn)是減少測試人員的主觀因素的影響。測試人員并不知道軟件的內(nèi)容、內(nèi)部結(jié)構(gòu),測試的時(shí)候也需要更多地考慮用戶的體驗(yàn),但白盒測試也有其優(yōu)勢。所以在測試的過程中最好做到合理分配,全面結(jié)合黑盒測試與白盒測試,充分發(fā)揮各自的優(yōu)點(diǎn),側(cè)重黑盒測試,合理、科學(xué)分配黑盒、白盒測試方法的比例,實(shí)現(xiàn)對軟件的整體性、全面性測試,從而收獲可靠性指標(biāo)。
綜上所述,軟件可靠性是軟件的一個(gè)重要參數(shù),可靠的軟件產(chǎn)品才有更大的應(yīng)用價(jià)值。軟件測試在軟件開發(fā)過程中具有十分重要的作用,必須積極將軟件的開發(fā)和測試結(jié)合起來,做到開發(fā)與測試同步,不斷提高軟件的可靠性,使軟件的功能更完善、結(jié)構(gòu)更完整。
[1]戴艷芳. 軟件可靠性與測試方法探析[J]. 軟件導(dǎo)刊,2012,11(11):30-31.
[2]尚艷玲,張?jiān)其h. 軟件可靠性測試方法研究[J]. 現(xiàn)代計(jì)算機(jī):專業(yè)版,2007(6):126-127.
[3]于琛琛,劉瑞方. 軟件可靠性測試方法探析[J]. 國防技術(shù)基礎(chǔ),2009(11):30-33.
Analysis of Software Reliability Test Method
Sun Shaoying
Guangdong Planning and Designing Institute of Telecommunications Co., Ltd., Guangdong Guangzhou 510630
With the continuous development of information technology, software technology and computer hardware engineering have also been continuously developed. People’s lives and work processes are increasingly dependent on computers, and various technological innovations have also made the functions of computers more and more powerful. Computer software plays a very important role in the realization of computer functions. It is necessary to strengthen the research on the reliability of computer software and improve the performance of computers. The paper analyzes the test methods of computer software to ensure that computer software runs more reliably and stably.
software testing; reliability test; test method
TP311.52
A