国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺議軟件可靠及安全測試

2009-04-28 09:06:26
商情 2009年41期
關(guān)鍵詞:軟件可靠性測試方法

何 迅

[摘要]本文在介紹軟件可靠性及安全性的基礎(chǔ)上,討論軟件可靠性測試的特點、進(jìn)行軟件可靠性測試的基本條件,以及軟件安全性測試的必要條件和常用的測試方法。并簡要闡述軟件測試在軟件生產(chǎn)中是必不可少的質(zhì)量保障手段。

[關(guān)鍵詞]軟件可靠性 軟件安全性 基本條件 測試方法

現(xiàn)在的信息系統(tǒng)應(yīng)用越來越廣泛、越來越深入和重要,成為社會生活不可或缺的東西。而在信息系統(tǒng)中,軟件的比例愈來愈大、愈來愈復(fù)雜、地位愈來愈關(guān)鍵。軟件的可靠性是整個信息系統(tǒng)可靠性的重要因素,甚至是決定因素。軟件的可靠性是由軟件系統(tǒng)中潛在的漏洞情況決定的。軟件漏洞在復(fù)雜的信息系統(tǒng)運行過程中,在一定的輸入信息和運行環(huán)境下,潛在的錯誤有時會顯露出來,對系統(tǒng)的運行造成嚴(yán)重影響。例如1998年前蘇聯(lián)一次載入飛行不能順利返回地面,1996年歐洲阿麗亞娜火箭的發(fā)射失敗等,都是由于系統(tǒng)的軟件故障造成的。特別要注意的是軟件往往是系統(tǒng)可靠性的薄弱環(huán)節(jié),因此軟件系統(tǒng)的可靠性需要引起有關(guān)人員的格外重視。

軟件可靠性是指在規(guī)定條件下,在規(guī)定時間內(nèi),軟件不引起系統(tǒng)失效的概率。該概率是系統(tǒng)輸入和系統(tǒng)使用的函數(shù),也是軟件中存在故障的函數(shù),系統(tǒng)輸入將確定是否會遇到存在的故障。

軟件可靠性測試指在有使用代表性的環(huán)境中,為進(jìn)行軟件可靠性估計對該軟件進(jìn)行的功能測試。需要說明的是,“使用代表性”指的是在統(tǒng)計意義下該環(huán)境能反映出軟件的使用環(huán)境特性。軟件可靠性測試一般在軟件驗收階段進(jìn)行,即可以在實驗室也可以在現(xiàn)場測試運行。一般僅適用于有可靠性定量要求、且可能會影響安全和任務(wù)完成的關(guān)鍵軟件。

軟件系統(tǒng)的可靠性測試是軟件系統(tǒng)可靠性質(zhì)量保證過程中非常關(guān)鍵的一步,根據(jù)國外有關(guān)資料統(tǒng)計和工作實踐證明,可靠性測試對提高軟件的可靠性有重大作用,其他測試不能代替,但是軟件可靠性測試又不能代替其他軟件測試的作用。軟件可靠性測試的主要目的有: (1)通過在有使用代表性的環(huán)境中執(zhí)行軟件,以證實軟件需求是否正確實現(xiàn)。(2)為進(jìn)行軟件可靠性估計采集準(zhǔn)確的數(shù)據(jù)。估計軟件可靠性一般可分為四個步驟,即數(shù)據(jù)采集、模型選擇、模型擬合以及軟件可靠性評估??梢哉J(rèn)為,數(shù)據(jù)采集是整個軟件可靠性估計工作的基礎(chǔ),數(shù)據(jù)的準(zhǔn)確與否關(guān)系到軟件可靠性評估的準(zhǔn)確度。 (3)通過軟件可靠性測試找出所有對軟件可靠性影響較大的錯誤。

軟件可靠性測試分為四個階段:

1.制訂測試方案

本階段的目標(biāo)是識別軟件功能需求,觸發(fā)該功能的輸入和對應(yīng)的數(shù)據(jù)域,確定相關(guān)的概率分布及需強化測試的功能。

(1)分析功能需求。分析各種功能需求,識別觸發(fā)該功能的輸入及相關(guān)的數(shù)據(jù)域(包括合法與不合法的兩部分)。

(2)定義失效等級。判斷是否存在出現(xiàn)危害度較大的1級和2級失效的可能性。如果這種可能性存在,則應(yīng)進(jìn)行故障樹分析,標(biāo)識出所有可能造成嚴(yán)重失效的功能需求和其相關(guān)的輸入域。

(3)確定概率分布。確定各種不同運行方式的發(fā)生概率,判斷是否需要對不同的運行方式進(jìn)行分別測試。如果需要,則應(yīng)給出各種運行方式下各數(shù)據(jù)域的概率分布;否則,給出各數(shù)據(jù)域的概率分布。判斷是否需要強化測試某些功能。

(4)整理概率分布的信息將這些信息編碼送入數(shù)據(jù)庫。

2.制訂測試計劃

本階段的目標(biāo)是:

(1)根據(jù)前一階段整理的概率分布信息生成相對應(yīng)的測試實例集,并計算出每一測試實例預(yù)期的軟件輸出結(jié)果。本階段需要注意:在按概率分布隨機選擇生成測試實例的同時,要保證測試的覆蓋面。

(2)編寫測試計劃,確定測試順序,分配測試資源。由于本階段前一部分的工作需要考慮大量的信息和數(shù)據(jù),因此需要一個軟件支持工具,建立數(shù)據(jù)庫,并產(chǎn)生測試實例。另外,有時預(yù)測軟件輸出結(jié)果也需要大量的計算,有些復(fù)雜的軟件甚至要用到仿真器模擬輸出結(jié)果??傊?具體實施與被測應(yīng)用軟件的實際功能類型有關(guān)。

3.測試

本階段進(jìn)行軟件測試。需注意的是被測軟件的測試環(huán)境(包括硬件配置和軟件支撐環(huán)境)應(yīng)和預(yù)期的實際使用環(huán)境盡可能一致,對某些環(huán)境要求比較嚴(yán)格的軟件(如嵌入式軟件)則應(yīng)完全一致。測試時按測試計劃和順序?qū)γ恳粋€測試實例進(jìn)行測試,判斷軟件輸出是否符合預(yù)期結(jié)果。測試時應(yīng)記錄測試結(jié)果、運行時間和判斷結(jié)果。如果軟件失效,那么還應(yīng)記錄失效現(xiàn)象和時間,以備以后核對。

4.編寫測試報告

按軟件可靠性估計的要求整理測試記錄,并將結(jié)果寫成報告。筆者認(rèn)為,軟件可靠性測試的關(guān)鍵在于:對需求、輸入、數(shù)據(jù)域的識別及相關(guān)概率分布的確定。按照概率分布隨機生成測試實例,并確定測試順序。

軟件可靠性是軟件質(zhì)量指標(biāo)體系中最重要的質(zhì)量指標(biāo)之一,軟件可靠性指標(biāo)的高低,決定了軟件是否能穩(wěn)定、可靠性地工作。軟件中的錯誤是在軟件的開發(fā)過程中,因為人的錯誤而引入到軟件中的,而且這種錯誤的出現(xiàn)是不可避免的。經(jīng)過可靠性測試的軟件系統(tǒng)可以大大降低因軟件系統(tǒng)的實效而造成的損失。但是軟件可靠性測試也不是萬能的,它可以有效降低軟件系統(tǒng)實效的可能,但是不能將軟件系統(tǒng)中存在的錯誤都排除(實際上在可預(yù)見的未來也不可能把軟件中的所有錯誤都排除)。

對軟件進(jìn)行安全測試是軟件測試的重要研究內(nèi)容。軟件安全測試是保證軟件能夠安全使用的最主要的手段,如何進(jìn)行高效的安全測試成為業(yè)界關(guān)注的話題。多年的安全測試經(jīng)驗告訴我們,做好軟件安全測試的必要條件是:一是充分了解軟件安全漏洞,二是擁有高效的軟件安全測試技術(shù)和測試工具。

軟件安全性測試的方法:(1)形式化安全測試。模型檢測用狀態(tài)遷移系統(tǒng)S描述軟件的行為,用時序邏輯、計算樹邏輯或演算公式F表示軟件執(zhí)行必須滿足的性質(zhì),通過自動搜索S中不滿足公式F的狀態(tài)來發(fā)現(xiàn)軟件中的漏洞。(2)基于模型的安全功能測試。基于模型的測試方法是對軟件的行為和結(jié)構(gòu)進(jìn)行建模,生成測試模型,由測試模型生成測試用例.常用的軟件測試模型有有限狀態(tài)機、UML模型、馬爾可夫鏈等。(3)語法測試。語法測試是根據(jù)被測軟件的功能接口的語法生成測試輸入,檢測被測軟件對各類輸入的響應(yīng)。接口可以有多種類型,命令行、文件、環(huán)境變量、套接字等。語法測試基于這樣一種思想,軟件的接口或明確或隱含規(guī)定了輸入的語法。語法定義了軟件接受的輸入數(shù)據(jù)的類型、格式。語法定義可采用BNF或正則表達(dá)式。語法測試的步驟是識別被測軟件接口的語言,定義語言的語法,根據(jù)語法生成測試用例并執(zhí)行測試。生成的測試輸入應(yīng)當(dāng)包含各類語法錯誤,符合語法的正確輸入。不符合語法的畸形輸入等。通過察看被測軟件對各類輸入的處理情況,確定被測軟件是否存在安全缺陷。語法測試適用于被測軟件有較明確的接口語法,易于表達(dá)語法并生成測試輸入的情況。語法測試結(jié)合故障注入技術(shù)可得到更好的測試效果。(4)模糊測試。模糊測試(Fuzz Testing)是一種發(fā)現(xiàn)安全漏洞的有效的測試方法,在安全性測試中越來越受到重視。模糊測試將隨機的壞數(shù)據(jù)插入程序,觀察程序是否能容忍雜亂輸入。模糊測試是不合邏輯的,只是產(chǎn)生雜亂數(shù)據(jù)攻擊程序。采用模糊測試攻擊應(yīng)用程序可發(fā)現(xiàn)其他采用邏輯思維來測試很難發(fā)現(xiàn)的安全缺陷。(5)基于屬性的測試。相關(guān)報道描述了基于屬性的測試方法,采用TASPEC語言對軟件的安全屬性進(jìn)行描述生成安全屬性規(guī)格說明,利用程序切片技術(shù)抽取與這個安全屬性相關(guān)的代碼,測試這部分代碼是否違反安全屬性規(guī)格說明?;趯傩缘臏y試有針對性的測試目標(biāo)軟件的特定安全屬性,可滿足安全屬性的分類和優(yōu)先級排序要求,且部分與具體軟件無關(guān)的屬性規(guī)格說明是可重用的。

軟件測試一方面是業(yè)務(wù)需求檢查、驗證的一種手段,也是檢查軟件功能是否按照系統(tǒng)需求進(jìn)行設(shè)計,是否符合客戶的需要;另一方面也是通過有限的測試數(shù)據(jù)案例檢查發(fā)現(xiàn)程序中存在的Bug是保證軟件質(zhì)量至關(guān)重要的一步。對于像銀行這樣的公司,對系統(tǒng)的要求是每天24小時不間斷工作,特別是國內(nèi)各商業(yè)銀行大集中以后,如果軟件存在Bug引起系統(tǒng)不穩(wěn)定,一旦出現(xiàn)系統(tǒng)宕機或客戶資金損失,就會造成全國范圍內(nèi)業(yè)務(wù)無法辦理,將產(chǎn)生巨大的影響。所以說,對于一個大型應(yīng)用處理軟件系統(tǒng),測試貫徹于其中,是一項非常重要的工作,是項目研發(fā)中一個相當(dāng)重要的步驟。而測試質(zhì)量的好壞直接關(guān)系到整個系統(tǒng)能否按期正常投產(chǎn),關(guān)系到系統(tǒng)投產(chǎn)后業(yè)務(wù)處理是否正確,關(guān)系到整個系統(tǒng)運行的可靠性、穩(wěn)定性。

管理大師彼得?德魯克說:“組織管理的目的就是為了使人們能為實現(xiàn)目標(biāo)而有效地工作,為此必須設(shè)計和維持一種職務(wù)結(jié)構(gòu)”。因此,要做好軟件測試工作,在軟件公司內(nèi)部必須建立一個專門負(fù)責(zé)軟件產(chǎn)品測試的組織,并配備負(fù)責(zé)軟件公司全面測試工作的測試管理人員和配備一定數(shù)量的具有測試?yán)碚摗⒄莆哲浖y試技術(shù)的專業(yè)測試人員。可以根據(jù)軟件公司規(guī)模的大小設(shè)置軟件測試組織的組織架構(gòu)、隸屬關(guān)系和確定軟件測試人員的數(shù)量。

近年來,以軟件測試為中心的軟件質(zhì)量保障技術(shù)在軟件生產(chǎn)實踐中得到了迅速發(fā)展,軟件測試已經(jīng)成為軟件生產(chǎn)中必不可少的質(zhì)量保障手段。

參考文獻(xiàn):

[1]鄭人杰,殷人昆,陶永雷.實用軟件工程[M].北京:清華大學(xué)出版社.

[2]何國偉.軟件可靠性[M].北京:國防工業(yè)出版社,1998.

[3]朱鴻,金凌紫.軟件質(zhì)量保證與測試[M].北京:科學(xué)出版社,1997.

[4]Stevens W R著,施振川譯.UNIX網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2001.

猜你喜歡
軟件可靠性測試方法
基于泊松對相關(guān)的偽隨機數(shù)發(fā)生器的統(tǒng)計測試方法
無線電發(fā)射設(shè)備雜散發(fā)射的測試方法探討
基于云計算的軟件自動化測試方法
電子制作(2019年16期)2019-09-27 09:34:56
DLD-100C型雷達(dá)測試方法和應(yīng)用
電子制作(2019年15期)2019-08-27 01:12:02
軟件可靠性工程綜合應(yīng)用建模技術(shù)研究
軟件可靠性設(shè)計技術(shù)應(yīng)用研究
移動信息(2016年8期)2016-12-31 15:13:14
S700K轉(zhuǎn)轍機保持力測試方法探討
數(shù)控系統(tǒng)軟件可靠性設(shè)計與故障分析技術(shù)
對改良的三種最小抑菌濃度測試方法的探討
簡談使用BoundsChecker進(jìn)行計算機聯(lián)鎖系統(tǒng)人機界面軟件可靠性測試
兴山县| 寿宁县| 三河市| 泰宁县| 平邑县| 芒康县| 阿拉尔市| 德保县| 杭锦后旗| 邵武市| 诸城市| 滁州市| 缙云县| 乐业县| 射阳县| 恩平市| 会宁县| 嫩江县| 大足县| 江达县| 施甸县| 乌什县| 贡觉县| 沙坪坝区| 仁布县| 罗江县| 依安县| 册亨县| 应城市| 津南区| 名山县| 昌图县| 宜州市| 永宁县| 乌兰浩特市| 青海省| 东阳市| 大足县| 龙陵县| 横山县| 咸阳市|