摘要:計(jì)算機(jī)軟件的質(zhì)量和安全需要依靠計(jì)算機(jī)軟件測試技術(shù)與保護(hù)技術(shù)來實(shí)現(xiàn)。本文分別介紹了計(jì)算機(jī)軟件測試技術(shù)與保護(hù)技術(shù)的概念、目的,并對測試技術(shù)、保護(hù)技術(shù)進(jìn)行了具體的介紹,旨在促進(jìn)二者的進(jìn)一步發(fā)展,從而推動計(jì)算機(jī)技術(shù)的整體進(jìn)步。
關(guān)鍵詞:計(jì)算機(jī)軟件;測試技術(shù);保護(hù)技術(shù)
中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 18-0000-02
1 軟件測試技術(shù)
1.1 軟件測試的概念和目的
(1)軟件測試:在具體的指定條件下去完成測試系統(tǒng)或者組件的操作,通過觀察發(fā)現(xiàn)問題、記錄測試結(jié)果,并對測試系統(tǒng)或組件的各個(gè)方面做出評價(jià)的一系列過程。根據(jù)應(yīng)用目標(biāo)或者特性的不同,可以將軟件測試分為以下幾類:可靠性測試、安全性測試、適用性測試、健壯性測試、功能測試、性能測試等。
(2)軟件測試的根本目的在于找出錯誤,解決問題。用戶希望通過軟件測試來發(fā)現(xiàn)軟件中隱藏的問題,以此決定是否購買該產(chǎn)品;軟件開發(fā)者則希望通過軟件測試證明軟件中不存在隱藏的問題,可以滿足用戶的要求,堅(jiān)定用戶購買的決心。
1.2 軟件測試與軟件質(zhì)量的關(guān)系
人們的生活和計(jì)算機(jī)已經(jīng)密不可分,軟件種類呈幾何級增長,復(fù)雜程度也在與日俱增,保證軟件的質(zhì)量成了開發(fā)者和用戶共同關(guān)心的課題。軟件質(zhì)量保證貫穿于整個(gè)的軟件開發(fā)周期。軟件質(zhì)量保證的方法是多種多樣的,其中當(dāng)屬軟件測試最具代表性。相當(dāng)部分軟件公司已經(jīng)給予了軟件測試足夠的重視,據(jù)傳微軟的軟件測試人員的數(shù)量竟是軟件開發(fā)人員的兩倍。未來相當(dāng)長的一段時(shí)間內(nèi),軟件測試都將是軟件質(zhì)量的重要保障。
1.3 軟件測試技術(shù)的具體應(yīng)用
(1)軟件測試階段。軟件測試可分為四個(gè)階段:一、單元測試,在相對隔離的環(huán)境條件下,測試單個(gè)的、獨(dú)立的軟件模塊,找出它的缺陷。二、集成測試,以單位測試為基礎(chǔ),即將各個(gè)模塊組裝完成后,測試各個(gè)模塊接口有無問題。三、系統(tǒng)測試,將軟件系統(tǒng)和其他組成部分作為一個(gè)整體,確保各組成部分不但能獨(dú)自接受測試,而且在各組成部分協(xié)調(diào)的情況下也無錯誤發(fā)生。四、驗(yàn)收測試,用戶、軟件開發(fā)人員、質(zhì)量保證人員都要參與,且以用戶為中心。測試內(nèi)容有:功能測試、強(qiáng)度測試、用戶操作測試、安全測試等。
(2)靜態(tài)測試與動態(tài)測試。按是否運(yùn)行程序可將測試技術(shù)分為兩種:一、靜態(tài)測試,即不運(yùn)行程序的狀態(tài)下,對系統(tǒng)中的有關(guān)文檔(需求文檔、設(shè)計(jì)文檔、程序源代碼等)進(jìn)行研讀、分析、檢查。二、動態(tài)測試,該種測試需要運(yùn)行程序,選擇測試用例并執(zhí)行,然后比對預(yù)期輸出、實(shí)際輸出,發(fā)現(xiàn)其中的問題、錯誤。
(3)白盒測試與黑盒測試。按是否可以查看源代碼可將測試技術(shù)分為兩種:一、白盒測試,先是分析并了解系統(tǒng)或組件的內(nèi)部結(jié)構(gòu),以此設(shè)計(jì)針對性的測試用例,開展測試活動,白盒測試通?;跀?shù)據(jù)流、控制流或者代碼覆蓋測試。二、黑盒測試,該測試不必對軟件的內(nèi)部結(jié)構(gòu)、具體代碼進(jìn)行了解,而是以規(guī)格說明書為基礎(chǔ)進(jìn)行的軟件測試,黑盒測試技術(shù)包括等價(jià)類劃分、決策表、狀態(tài)測試、基于經(jīng)驗(yàn)的測試等。測試的內(nèi)容包括邏輯功能測試、兼容測試、穩(wěn)定性測試、壓力測試等。
(4)其他測試技術(shù)。其他常見的測試技術(shù)有:一、回歸測試,當(dāng)軟件的錯誤之處完成修改后,有時(shí)候需要重復(fù)測試之前的測試用例,有時(shí)候則需要重新設(shè)計(jì)測試用例再進(jìn)行測試?;貧w測試存在于軟件的整個(gè)生命周期,包括白盒回歸和黑盒回歸。二、冒煙測試,指的是軟件測試團(tuán)隊(duì)選取軟件系統(tǒng)中最為主要的功能開展先期測試,若主要功能都不滿足要求,那么可以直接否決,然后重新開發(fā)。三、隨機(jī)測試,輸入的測試數(shù)據(jù)全部都是隨機(jī)生成的,目的是通過模擬用戶操作,以找出某些邊緣性的錯誤。
2 軟件保護(hù)技術(shù)
2.1 軟件保護(hù)技術(shù)的概念及目的
軟件保護(hù)技術(shù)的根本目的在于防止合法軟件被盜版,即防止被破解。軟件保護(hù)技術(shù)可以概括為兩個(gè)方面:一、基于硬件的保護(hù)方式。二、基于軟件的保護(hù)方式。相較其他安全產(chǎn)品而言,軟件保護(hù)產(chǎn)品是較為特殊的,涉及的內(nèi)容十分廣泛,包括應(yīng)用軟件、操作系統(tǒng)、驅(qū)動、網(wǎng)絡(luò)等。軟件保護(hù)產(chǎn)品屬于一個(gè)綜合的技術(shù)范疇,單一的某個(gè)方面是難以評判其安全與否的。
2.2 基于硬件的保護(hù)方式
(1)加密狗(加密鎖)。加密狗也被稱為加密鎖,是一種智能性加密產(chǎn)品,可以同并口、串口或者USB接口相連。加密狗在安全性方面比基于軟件的保護(hù)方式更具優(yōu)勢,但也存在一定的劣勢,比如易用性不理想、價(jià)格較高等。加密狗目前常用于商業(yè)上對于安保需求較高的領(lǐng)域。
(2)光盤、軟盤保護(hù)。被保護(hù)軟件將一部分的密鑰信息存放于光盤或者軟盤中,當(dāng)特定光盤或軟盤完整且存在時(shí),被保護(hù)軟件才可以正常工作,這一方式常應(yīng)用于單機(jī)游戲軟件。這種保護(hù)方式的原理是:隱藏一個(gè)密鑰于光盤的光軌上,使光盤刻錄機(jī)不能復(fù)制該密鑰,從而達(dá)到阻止“盜版”的目的。這種保護(hù)方式有兩個(gè)缺點(diǎn):一、若原盤損壞,用戶則無法繼續(xù)使用該軟件。二、容易被具有專業(yè)知識的黑客找出判斷代碼處,用修改可執(zhí)行文件的方法越過該段密碼,從而破解軟件。
2.3 基于軟件的保護(hù)方式
(1)序列號保護(hù)。用戶下載某共享軟件到自己的電腦后,若想要完全正常使用,通常需要注冊操作才可以。注冊的過程一般是用戶將私人信息(如賬號名)發(fā)送給提供軟件的公司,軟件公司根據(jù)得到的信息制定一個(gè)具有唯一性的序列號,并把序列號反饋給用戶,用戶按照提示執(zhí)行注冊步驟,在相應(yīng)的欄位輸入注冊信息、序列號,最后通過驗(yàn)證才能正常完整使用。這種加密方式操作簡單,花費(fèi)較低,因而廣泛應(yīng)用于網(wǎng)絡(luò)共享軟件的保護(hù)。
(2)Nag窗口。所謂的Nag窗口指的是部分軟件通過彈出窗口的方式干擾用戶的正常使用,促使用戶購買正版。彈出的時(shí)機(jī)有的是通過定時(shí)來實(shí)現(xiàn),有的是判斷操作是否重要來實(shí)現(xiàn)。這種方式容易給用戶留下壞印象,而且容易被破解,所以應(yīng)用越來越少。
(3)時(shí)間限制。在軟件保護(hù)方式中,時(shí)間限制在目前仍然是相當(dāng)常見的,通常分為兩類:一、單次運(yùn)行超過一定的時(shí)長便自動關(guān)閉;二、對使用天數(shù)或者使用次數(shù)進(jìn)行限制。
(4)功能限制。放出一個(gè)Demo版是最為常見的功能限制方式,將其中相對重要的功能選項(xiàng)進(jìn)行灰色化處理,使其不能使用。功能限制主要分為兩種:一、試用版、正式版二者代碼完全一樣,只是禁用了試用版的相關(guān)功能。這種功能限制存在風(fēng)險(xiǎn),解密者只需要找到并修改這些被禁用功能的代碼,便可獲得正式版的功能。所以這種方法一般不被采用。二、第二種功能限制是第一種功能限制的改良版,不僅禁用試用版中的相關(guān)功能,且不將這部分的功能代碼置于試用版中。解密者若想獲得正式版的功能,只能通過自己添加功能代碼的方式。所以該種功能限制在保護(hù)方面效果良好,建議選用。
(5)反反匯編、反調(diào)試技術(shù)。此類技術(shù)可以結(jié)合前文提到的六種保護(hù)技術(shù)共同使用,從而達(dá)到加強(qiáng)保護(hù)效果的目的。該類技術(shù)的存在就是為了防止Cracker使用SoftICE、IDA等調(diào)試器靜態(tài)或動態(tài)跟蹤、分析、破解需要被保護(hù)的軟件。
3 結(jié)語
計(jì)算機(jī)軟件測試技術(shù)與保護(hù)技術(shù),對于保證軟件的質(zhì)量和安全而言至關(guān)重要,這兩種技術(shù)的進(jìn)步與完善是用戶和軟件開發(fā)人員的共同追求。
參考文獻(xiàn):
[1]王立新.軟件測試數(shù)據(jù)的高效生成及測試方法研究[D].東華大學(xué),2011.
[2]孫偉.軟件測試技術(shù)發(fā)展模式探討[J].長春理工大學(xué)學(xué)報(bào),2012,4.
[3]周迪卿.計(jì)算機(jī)軟件保護(hù)技術(shù)探析[J].科技創(chuàng)新導(dǎo)報(bào),2010,3.