軟件測(cè)試是驗(yàn)證軟件安全性與功能性的重要手段,它一般采用的測(cè)試技術(shù)和測(cè)試方法也關(guān)系著測(cè)試結(jié)果的準(zhǔn)確、后續(xù)軟件的變更以及是否有效等問(wèn)題。一般我們運(yùn)用軟件測(cè)試的安全性來(lái)保證軟件的性能,在這里需要注意的是:我們的目的是為了確保軟件的質(zhì)量在經(jīng)過(guò)變更后達(dá)到了預(yù)定的目標(biāo)。現(xiàn)如今我們?cè)谲浖y(cè)試中投入的比重非常大,但是仍然有很多測(cè)試人員在面對(duì)不同的軟件測(cè)試對(duì)象,眾多軟件測(cè)試方法,對(duì)我們手中的項(xiàng)目到底該采取怎樣的測(cè)試手段并不明了。下面我們就來(lái)詳細(xì)看看關(guān)于軟件測(cè)試的相關(guān)介紹。
一、軟件測(cè)試安全性分析——保證軟件安全性
軟件測(cè)試作為驗(yàn)證軟件功能性和安全性的重要手段,其采用的測(cè)試方法和測(cè)試技術(shù)也完全關(guān)系著測(cè)試結(jié)果的準(zhǔn)確性,關(guān)系著后續(xù)軟件的變更和測(cè)試的有效性。
軟件測(cè)試安全性分析既包括事前分析,又包括對(duì)測(cè)試結(jié)果的評(píng)價(jià),所以一般從不同角度進(jìn)行按步驟的測(cè)試:
1、分析測(cè)試集中的所有測(cè)試用例,測(cè)試是否通過(guò)測(cè)試準(zhǔn)則。
2、測(cè)試代碼是否按照要求分析,并達(dá)到相應(yīng)的測(cè)試覆蓋率。測(cè)試覆蓋是指檢查代碼的每一個(gè)狀態(tài)和路徑。
3、對(duì)測(cè)試結(jié)果進(jìn)行分析,以驗(yàn)證所有的安全性需求是否得到了滿足。
軟件測(cè)試已漸漸占據(jù)軟件開(kāi)發(fā)40%以上的時(shí)間,由此可見(jiàn)軟件測(cè)試的重要性。合理的軟件測(cè)試手段的應(yīng)用對(duì)于提高軟件安全性是有很大的促進(jìn)作用的,關(guān)于如何運(yùn)用軟件測(cè)試來(lái)驗(yàn)證軟件安全性是否達(dá)到目標(biāo),我們將在下文詳細(xì)探討。
二、軟件變更安全性分析——應(yīng)對(duì)可能出現(xiàn)的軟件變更
在執(zhí)行任何軟件變更之前,應(yīng)建立軟件變更規(guī)程。如果必須進(jìn)行軟件變更,則因該對(duì)已經(jīng)受控的規(guī)格說(shuō)明、需求、設(shè)計(jì)、編碼、計(jì)劃、規(guī)程、系統(tǒng)、環(huán)境、用戶文檔的任何變更都進(jìn)行安全性分析。
軟件變更安全性分析一般根據(jù)變更的原因、變更影響、變更可能會(huì)導(dǎo)致的結(jié)果將這項(xiàng)任務(wù)安排為三個(gè)階段。
三、運(yùn)用軟件測(cè)試提高軟件安全性
據(jù)美國(guó)一家公司的統(tǒng)計(jì)表明,在查找出的軟件錯(cuò)誤當(dāng)中,屬于需求分析和軟件設(shè)計(jì)的錯(cuò)誤約占64%,屬于程序編寫(xiě)和其他原因的錯(cuò)誤占36%,由于一部分錯(cuò)誤很可能因?yàn)閺?fù)審過(guò)程中沒(méi)有被發(fā)現(xiàn)而轉(zhuǎn)入下一個(gè)階段,導(dǎo)致在錯(cuò)誤的基礎(chǔ)上產(chǎn)生了更多的錯(cuò)誤,形成錯(cuò)誤的“放大效應(yīng)”。事實(shí)上,開(kāi)發(fā)工作中的每一個(gè)環(huán)節(jié)都可能出現(xiàn)問(wèn)題,那些沒(méi)發(fā)現(xiàn)或已“放大”的錯(cuò)誤修復(fù)成本都是非常高的。所以,測(cè)試這種專(zhuān)門(mén)針對(duì)軟件錯(cuò)誤的技術(shù)漸漸被人們重視,它已成為保證軟件安全性的一項(xiàng)重要手段。現(xiàn)今,測(cè)試投入也在整個(gè)開(kāi)發(fā)投入中占了很大比重。總的來(lái)說(shuō),測(cè)試經(jīng)過(guò)有計(jì)劃的安排才有意義,開(kāi)始于模塊層的功能驗(yàn)證,并跟隨軟件的抽象和整體性最終到了系統(tǒng)驗(yàn)證的階段。當(dāng)然,就算對(duì)一個(gè)不算太大的項(xiàng)目而言,要想實(shí)現(xiàn)“完全測(cè)試”也是不太可能完成的,所以,對(duì)每一個(gè)層次的測(cè)試而言,要做的工作都是做好測(cè)試計(jì)劃,了解現(xiàn)階段的測(cè)試目標(biāo),努力提高我們的軟件安全性。
針對(duì)軟件安全性的測(cè)試方法就是采用各種方法來(lái)驗(yàn)證或發(fā)現(xiàn)系統(tǒng)安全方面的問(wèn)題。對(duì)于軟件需求說(shuō)明書(shū)上既定的有關(guān)安全的功能需求,我們要一一進(jìn)行驗(yàn)證測(cè)試。對(duì)于沒(méi)有在軟件需求書(shū)上標(biāo)明的可能影響系統(tǒng)運(yùn)行安全的隱性需求我們也要努力的發(fā)現(xiàn)。除了被動(dòng)發(fā)現(xiàn)系統(tǒng)已遭受破壞的隱患和原因,在主動(dòng)發(fā)現(xiàn)方面,我們最基本和最主要的是要采取靜態(tài)分析技術(shù)和功能測(cè)試兩種方式攔截系統(tǒng)開(kāi)發(fā)時(shí)存在的漏洞。
靜態(tài)分析技術(shù):其基本特征是不執(zhí)行被測(cè)試軟件,而對(duì)需求分析說(shuō)明書(shū)、軟件設(shè)計(jì)說(shuō)明書(shū)、源程序作結(jié)構(gòu)檢查、流圖分析等找出軟件錯(cuò)誤。這里,需求和設(shè)計(jì)追溯和確認(rèn)是驗(yàn)證測(cè)試的前提,我們可以利用一些自動(dòng)化工具,畫(huà)出功能需求的相關(guān)關(guān)系圖,以及一些系統(tǒng)結(jié)構(gòu)的UML圖,能夠使測(cè)試人員與開(kāi)發(fā)人員保持一致的設(shè)計(jì)思路。源程序的結(jié)構(gòu)檢查和流圖分析一般是測(cè)試人員代碼審查時(shí)的重要工作,對(duì)于查出前期的軟件錯(cuò)誤非常有效,現(xiàn)在很多開(kāi)發(fā)單位都采用自動(dòng)化測(cè)試,取代了冗長(zhǎng)的代碼審查會(huì)議,提升了測(cè)試的效率和準(zhǔn)確度。比較著名的工具有英國(guó)PRQA公司的產(chǎn)品,它對(duì)檢查一些代碼邏輯錯(cuò)誤、無(wú)法執(zhí)行到的代碼段和違反通用編程規(guī)范的行為非常有效。
功能測(cè)試:功能測(cè)試是動(dòng)態(tài)測(cè)試的一種方式,驗(yàn)證的是軟件的功能實(shí)現(xiàn)。比如在網(wǎng)絡(luò)信息系統(tǒng)進(jìn)行自身安全建設(shè)時(shí),我們會(huì)在軟件設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,增加一些必要的安全防護(hù)措施,如權(quán)限管理模塊、數(shù)據(jù)恢復(fù)功能等等,我們就會(huì)通過(guò)功能驗(yàn)證來(lái)檢查我們是否達(dá)到了沒(méi)有安全疏漏的要求。總之,軟件安全性測(cè)試是要將軟件測(cè)試人員放置在一個(gè)相對(duì)主動(dòng)的位置上,能夠盡力避免被動(dòng)發(fā)現(xiàn)系統(tǒng)漏洞。
四、軟件安全性分析的前景
在前進(jìn)的道路上,風(fēng)險(xiǎn)是不可避免的,多一條可供選擇的道路,就會(huì)多增加一份風(fēng)險(xiǎn)系數(shù)。在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天,我們不可避免地會(huì)面臨降低風(fēng)險(xiǎn)還是躲避風(fēng)險(xiǎn)兩種選擇。將必要風(fēng)險(xiǎn)降低是提高系統(tǒng)安全性的最重要和最積極的方法,所以,必須從研發(fā)的開(kāi)始階段到項(xiàng)目最終評(píng)估受審階段,始終以安全完整性為目標(biāo),使系統(tǒng)滿足必須實(shí)現(xiàn)的功能達(dá)到或維持安全狀態(tài)所必需的安全功能。
以上我們介紹了運(yùn)用軟件測(cè)試提高軟件安全性十分必要,我們相信軟件的安全性會(huì)隨著標(biāo)準(zhǔn)化一起前進(jìn),如果您想了解更多相關(guān)介紹,請(qǐng)您繼續(xù)關(guān)注中培偉業(yè)。