亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件測試典型案例的研究及思考

        2014-03-06 07:25:16馮濟舟劉洪喜
        航空標準化與質量 2014年5期
        關鍵詞:程序數(shù)據(jù)庫信息

        馮濟舟劉洪喜

        (1.中國電子科技集團第三十八研究所,安徽 合肥 230088;2.空裝駐安徽地區(qū)軍事代表室,安徽 合肥 230088)

        軟件測試典型案例的研究及思考

        馮濟舟1劉洪喜2

        (1.中國電子科技集團第三十八研究所,安徽 合肥 230088;2.空裝駐安徽地區(qū)軍事代表室,安徽 合肥 230088)

        軟件測試是軟件能力成熟度模型集成的重要活動,通過對軟件測試典型問題的分析和研究,提出了解決方法,對軟件質量的提升具有實際意義。

        軟件測試;軟件能力成熟度模型集成;解決方法

        軟件測試作為能力成熟度模型集成(CMMI,Capability Maturity Model Integration)驗證(Ver,Verifcation)和確認(Val,Validation)過程域的重要實現(xiàn)手段,是軟件生命周期模型中的重要階段,是保證軟件質量的重要途徑 。近年來,隨著軟件規(guī)模和復雜程度的不斷提高,軟件測試的難度也不斷加大。

        本文根據(jù)實際工程經(jīng)驗,總結出軟件測試過程中遇到的典型問題,并通過對這些問題的闡述和分析,提出了預防此類問題發(fā)生的解決方法,對提高軟件質量具有積極意義。

        1 軟件測試典型案例分析及解決方案

        1.1 接口報文中總匯信息數(shù)量字段判斷不合理導致系統(tǒng)崩潰

        1.1.1 場景復現(xiàn)

        軟件配置項間傳遞消息的接口報文中含有匯總下文信息數(shù)量的字段,且該字段的報文下文以枚舉方式列舉出匯總信息數(shù)量個數(shù)的數(shù)組結構元素內(nèi)容信息,其報文結構如表1所示。對于將此種類型報文作為輸入的被測軟件,出于安全性方面的考慮,應進行對異常條件下軟件的處理和保護能力的測試,以表明不會因為可能的單個輸入錯誤而導致不安全狀態(tài)。當接口報文中匯總下文信息數(shù)量字段設置為極大值后會導致被測軟件系統(tǒng)的崩潰。

        1.1.2 問題分析

        在被測軟件系統(tǒng)的讀取過程中,當指針讀取到報文如表1所示的“數(shù)組結構數(shù)量統(tǒng)計”字段時,系統(tǒng)會按照這一字段的數(shù)值大小在本地計算機內(nèi)存中開辟動態(tài)空間用于存儲報文下文中以“數(shù)組結構數(shù)量統(tǒng)計”字段值為個數(shù)的數(shù)組結構元素內(nèi)容信息。假設在此字段讀取過程中不加限制和判斷,那么對于此讀取過程來說,系統(tǒng)最大可以申請字節(jié)容量的內(nèi)存空間,當程序申請的動態(tài)內(nèi)存超過實際物理內(nèi)存擁有的空間時,會導致系統(tǒng)崩潰。

        表1 含有匯總下文信息數(shù)量字段的接口格式

        1.1.3 風險控制方法

        對于被測軟件接收處理含有匯總下文信息數(shù)量字段的接口報文時,在對匯總下文信息數(shù)量字段數(shù)據(jù)進行讀取時,要對此字段值進行判斷和限制,以防止由于匯總下文信息數(shù)量字段值過大,引起系統(tǒng)崩潰。

        1.2 幀頭判斷不合理導致數(shù)據(jù)丟幀

        1.2.1 場景復現(xiàn)

        通訊模塊處理數(shù)據(jù)時按照通訊協(xié)議的內(nèi)容首先對信息頭的有效性進行判斷,當且僅當報頭為有效信息頭后才繼續(xù)接收后續(xù)數(shù)據(jù),否則數(shù)據(jù)舍棄。程序設計時設置的通訊協(xié)議格式如圖1所示,其中X Y表示信息頭,省略號部分表示信息正文。在對此信息格式進行接口測試的過程中,采用猜錯法測試被測軟件,當接收到如圖2所示信息格式異常的接口輸入時,被測軟件未能對X后具有正確格式的X Y+正常信息正文的信息進行解析處理。即在此情況下被測軟件不能判斷出正常數(shù)據(jù)信息,造成軟件丟包現(xiàn)象。

        1.2.2 問題分析

        出現(xiàn)此現(xiàn)象的原因是程序在對信息頭判斷方式不合理而造成的,導致當程序接收到數(shù)據(jù)X X Y+正常信息正文時,會誤把真正信息頭的X當作是第一個信息頭X的一部分,即將信息頭識別成X X,并按照判斷有效信息頭的原則,將此有信息頭問題的信息進行舍棄,從而導致被測軟件接收不到正常數(shù)據(jù),出現(xiàn)丟信息現(xiàn)象。

        圖1 正常通訊協(xié)議格式

        圖2 信息頭異常的通訊協(xié)議格式

        1.2.3 風險控制方法

        在進行信息頭協(xié)議判斷時,應采用滑動窗口判斷方法,如在處理信息格式為X Y+正常信息正文的協(xié)議時,如果判斷信息頭是X,而第二個信息頭不是Y,則應重新判斷下一個為X的字節(jié),以免丟掉類似X X Y+正常信息正文的合法信息。

        1.3 未考慮范圍邊界導致系統(tǒng)崩潰

        1.3.1 場景復現(xiàn)

        被測軟件某功能運行的有效輸入范圍為(-1500,0)和(0,1500),但在對此功能的合法邊界值和非法邊界值進行輸入時發(fā)現(xiàn),當輸入非法邊界值為0時,軟件系統(tǒng)崩潰;當輸入非法邊界值為-1500或1500時,程序計算出錯。

        1.3.2 分析及思考

        程序在進行功能的有效邊界值判斷時,未明確有效輸入范圍的開區(qū)間、閉區(qū)間以及特殊值,導致軟件系統(tǒng)崩潰及處理結果錯誤。

        1.3.3 風險控制方法

        在對功能的有效輸入范圍進行開發(fā)實現(xiàn)時,要嚴格按照軟件需求規(guī)格說明中的規(guī)定,對邊界值進行有效性判斷,以防止非法邊界值在參與程序計算過程中產(chǎn)生諸如除數(shù)為0、負數(shù)取對數(shù)等導致系統(tǒng)崩潰的結果。

        1.4 迷途指針導致系統(tǒng)崩潰

        1.4.1 場景復現(xiàn)

        軟件某功能模塊源代碼中存在所指向的對象被釋放或者收回后,未對該指針做任何修改,以至于該指針仍舊指向已經(jīng)回收的內(nèi)存地址,當程序再次直接引用該指針時,導致軟件系統(tǒng)崩潰。

        1.4.2 分析及思考

        本案例涉及的問題是軟件開發(fā)中很難發(fā)現(xiàn)的一種錯誤,即迷途指針。當所指向的對象被釋放或者收回后,如果未對該指針做任何修改,則該指針仍舊指向已經(jīng)回收的內(nèi)存地址,當操作系統(tǒng)將這部分已釋放的內(nèi)存重新分配給其它進程,而原來的程序又要重新引用現(xiàn)在的迷途指針時,將產(chǎn)生無法預料的后果。通常來說,若原來的程序繼續(xù)往迷途指針所指向的內(nèi)存地址寫入數(shù)據(jù),將破壞操作系統(tǒng)所分配的在此內(nèi)存空間中存儲數(shù)據(jù)的其他進程,進而導致不可預料的程序錯誤。這種類型的程序錯誤不容易找到問題的原因,通常會導致Linux系統(tǒng)的段錯誤和Windows系統(tǒng)的保護錯誤。如果操作系統(tǒng)的內(nèi)存分配器將已經(jīng)被覆蓋的數(shù)據(jù)區(qū)域再分配,就可能影響系統(tǒng)的穩(wěn)定性。

        1.4.3 風險控制方法

        在編碼過程中,謹記指針指向的內(nèi)存空間一旦被釋放,就立即把該指針置為空指針的編程原則。因為當空指針被重新引用時,程序會立即停止,這樣可以避免數(shù)據(jù)損壞或者出現(xiàn)某些無法預料的后果。

        通過代碼審查的方式在早期可以診斷程序的迷途指針問題??梢越柚a審查工具在軟件實現(xiàn)完成之后或確認測試開展之前對編寫的源代碼進行代碼審查,以發(fā)現(xiàn)與程序相關的可追溯性方面、邏輯方面、數(shù)據(jù)方面、計算方面、比較方面、接口方面、注釋方面、輸入/輸出方面以及內(nèi)存方面的軟件代碼錯誤、缺陷和隱患,從而排除如迷途指針錯誤的軟件問題。

        1.5 加密數(shù)據(jù)庫文件的安全問題

        1.5.1 場景復現(xiàn)

        出于對軟件系統(tǒng)安全方面的考慮,在對軟件系統(tǒng)進行某些操作之前,要先完成相應操作的訪問控制權限的驗證,使用者只有通過訪問控制權限的驗證,才能對軟件系統(tǒng)相應授權范圍內(nèi)容進行操作。訪問控制權限的驗證信息存儲于97版本ACCESS數(shù)據(jù)庫的加密MDB(Microsoft Database)文件中。但在對軟件系統(tǒng)進行安全性測試過程中,通過對加密MDB文件進行攻擊,獲取到訪問控制權限信息,成功獲得軟件系統(tǒng)操作權限,對系統(tǒng)的安全方面造成嚴重影響。

        1.5.2 分析及思考

        對于97版本的ACCESS數(shù)據(jù)庫文件的有效密碼是13位。不加密時,MDB文件的第67至79位是固定的(86 FB EC 37 5D 44 9C FA C6 5E 28 E6 13);加密時,分別依次用密碼的每一位與上述對應的16進制數(shù)進行異或操作。根據(jù)97版本加密ACCESS數(shù)據(jù)庫的特點,可以將未加密的MDB文件的第67至79位的固定字節(jié)數(shù)據(jù)替換到加密MDB文件的第67至79位字節(jié)位置,從而使加密數(shù)據(jù)庫變?yōu)榉羌用軘?shù)據(jù)庫,進而可以對其內(nèi)容進行隨意讀寫。2000版本的ACCESS數(shù)據(jù)庫文件原理與97差不多,區(qū)別在于每位密碼對應兩個16進制數(shù),其中前一個的16進制數(shù)只起到迷惑作用,沒有實際用處。2000版本ACCESS數(shù)據(jù)庫的破解方法與97版本的ACCESS數(shù)據(jù)庫破解方法類同。

        1.5.3 風險控制方法

        開發(fā)人員在選取構件產(chǎn)品進行應用開發(fā)時應遵循如下流程。分析并列舉備選使用構件產(chǎn)品的特性及缺陷;在使用備選構件產(chǎn)品前要詳細分析其缺陷對所用軟件開發(fā)功能的影響;對于有影響的,考慮能否通過增加最小技術手段來彌補;對于無法通過技術手段彌補或者付出代價過大的,考慮選擇其他軟件工具并重新開始分析;對于無影響的或者通過增加最小技術手段即可避免其缺陷對所開發(fā)應用帶來影響的構件產(chǎn)品,則采用。對于本案例涉及的加密數(shù)據(jù)庫文件安全性問題的解決方法,可以遵照以上的流程和原則,考慮通過對寫入ACCESS數(shù)據(jù)庫的記錄進行加密的技術手段來彌補97版本加密ACCESS數(shù)據(jù)庫容易被破解的問題。如此即使打開了加密數(shù)據(jù)庫文件,但是文件里的內(nèi)容也都是密文形式存儲,無法辨別其代表的明文內(nèi)容,這樣也就無法獲取文件中的訪問控制權限信息以對系統(tǒng)安全性方面造成影響。

        1.6 過24點后時間信息不一致導致系統(tǒng)癱瘓

        1.6.1 場景復現(xiàn)

        對需要實時處理顯示的軟件系統(tǒng)來說,時間信息是決定軟件系統(tǒng)能否正常運轉的關鍵。在對此類型軟件系統(tǒng)進行安全性測試時,考慮在模擬仿真環(huán)境下從時間的“24點”、穿越“24點”以及從兩個方向趨近于“24點”作為輸入值測試軟件系統(tǒng)功能實現(xiàn)的正確性,發(fā)現(xiàn)軟件系統(tǒng)在經(jīng)過24點后,無法繼續(xù)顯示系統(tǒng)處理的結果信息,系統(tǒng)出現(xiàn)癱瘓。

        1.6.2 分析及思考

        出現(xiàn)以上問題的原因在于實時系統(tǒng)間傳輸?shù)膱笪男畔r間表示不一致,導致系統(tǒng)誤判。通常有兩種表示過24點時間的方法:其一,將一天表示成86400分鐘,當系統(tǒng)時間達到86400分鐘后,程序通過取模運算使時間值翻轉,系統(tǒng)即而從0開始重新累加計時;其二,系統(tǒng)時間達到86400分鐘后,程序采用單調(diào)遞增方式繼續(xù)累加直至系統(tǒng)時間達到所能表示的最大數(shù)值。當實時系統(tǒng)時間采用這兩種不一致的處理方式時,由于對方系統(tǒng)發(fā)來的實時信息的時間與本系統(tǒng)不一致,本系統(tǒng)會錯判對方發(fā)來的實時信息不是本系統(tǒng)需要的實時信息,導致本系統(tǒng)從此刻開始不再處理對方發(fā)來的任何實時信息數(shù)據(jù),導致系統(tǒng)癱瘓。

        1.6.3 風險控制方法

        在軟件架構設計時即要統(tǒng)一、明確系統(tǒng)內(nèi)各軟件構件關于時間信息的表示方法,以避免實時軟件系統(tǒng)間由于“時間一致性”而導致系統(tǒng)癱瘓問題。

        2 結束語

        本文通過對軟件開發(fā)過程中的典型測試案例的分析和描述,總結出問題的解決方法和預防措施,對確保軟件系統(tǒng)的可靠、安全、穩(wěn)定的運行具有積極意義,對軟件開發(fā)人員及軟件測試人員的工作具有實際的指導意義。

        [1] 萬江平,孔學東,楊建梅. 集成能力成熟度模型(CMMI)的研究[J]. 計算機應用研究,2001,(10).

        [2] 李興兵,李孟軍,譚躍進. 軍用CMMI模型的建立初探[J]. 兵工自動化,2003,(06).

        (編輯:勞邊)

        TP306

        C

        1003–6660(2014)05–0038–04

        10.13237/j.cnki.asq.2014.05.011

        [收修訂稿日期] 2014-07-13

        猜你喜歡
        程序數(shù)據(jù)庫信息
        試論我國未決羈押程序的立法完善
        人大建設(2019年12期)2019-05-21 02:55:44
        “程序猿”的生活什么樣
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        英國與歐盟正式啟動“離婚”程序程序
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        創(chuàng)衛(wèi)暗訪程序有待改進
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        久久精品国产亚洲av网在| 亚洲欧洲巨乳清纯| 亚洲综合AV在线在线播放| 亚洲av成人一区二区三区色| 亚洲精品在线视频一区二区| 又粗又黄又猛又爽大片app| 永久免费av无码网站性色av | 日韩久久av电影| 成人国产av精品麻豆网址| 国产成人无码a在线观看不卡| 欧美亚洲国产片在线播放| 欧美刺激午夜性久久久久久久| 亚洲一区二区三区1区2区| 无码免费无线观看在线视| 亚洲中文字幕无码爆乳| 日本一区二区啪啪视频| 成人av一区二区亚洲精| 国产乱子伦精品无码专区| 午夜不卡av免费| 国产欧美亚洲另类第一页| 日韩精品一区二区亚洲观看av| 综合色就爱涩涩涩综合婷婷 | 风流少妇又紧又爽又丰满| 无人视频在线播放在线观看免费| 视频一区二区三区黄色| 亚洲欧美精品suv| 最新无码国产在线播放| 国产精品自拍视频免费看| 丰满熟妇乱又伦精品| 欧美国产日本高清不卡| AV中文字幕在线视| 久久国产精品婷婷激情| 天天躁日日躁狠狠久久| 国产精品丝袜在线不卡| 午夜视频一区二区在线观看| 国产a√无码专区亚洲av| 人妻无码中文字幕免费视频蜜桃 | 视频一区二区不中文字幕| 狂猛欧美激情性xxxx大豆行情| 久久无码人妻精品一区二区三区| 91中文人妻丝袜乱一区三区|