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