• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于動態(tài)調(diào)用圖的Java程序修改影響分析技術

      2014-12-31 00:00:00姚錚
      計算機光盤軟件與應用 2014年10期

      摘 要:在當前靜態(tài)分析技術對于分析算法有著重要的影響,由于其方法比較復雜這就出現(xiàn)了精度不高,因此本文針對在靜態(tài)分析中存在的實際問題進行具體的研究,能夠從其問題中提出改進的方案,并且采用動態(tài)分析技術構造Java程序的動態(tài)調(diào)用圖,文章中采用k-類方法后向切片計算修改影響的集合,之進行具體的試驗,提高了精度,該技術的革新便于在大型Java程序中進行應用,改善了測試效果。

      關鍵詞:動態(tài)調(diào)用圖;Java程序;影響分析

      中圖分類號:TP311.5

      由于大部分軟件是面向對象方法編寫,逐漸的形成了回歸測試技術,面向技術中,其對象之間是一種繼承和組合的關系,并且各個對象之間是通過消息相互影響的,本文在研究影響分析算法中,是在程序靜態(tài)分析技術的基礎上進行的,針對其中存在的問題以及在靜態(tài)分析中精度不高的現(xiàn)狀具體的改善,研究出了動態(tài)分析技術構造程序的類成員防火墻,提高了分析精度,同時降低了計算的復雜程度,這樣就促進了修改影響分析技術的應用效果。

      1 基于動態(tài)信息的修改影響

      為了提高計算的精度,改善計算的復雜程序,這就提出了動態(tài)信息的修改影響分析,首先在獲得動態(tài)信息中,一般需要在程序中插樁,促進程序能夠正常的將信息進行輸出,這就需要在設計中將編譯后的Java字節(jié)碼程序插樁,然而本文在實施的過程中采用的是將每個方法插樁,來記錄調(diào)用信息,在設計中其動態(tài)信息的修改影響分析的原理是:如圖1所示,在進行插樁后的Java程序設計中,能夠根據(jù)輸出執(zhí)行軌跡信息并且構造出動態(tài)調(diào)用圖,然后進行修改影響分析,最終得出需要重新測試的模塊,保障了高效的回歸測試。

      2 動態(tài)信息調(diào)用圖的設計

      由于軟件測試在開銷中應用的范圍比較廣,這就提出了軟件回歸測試,其中該軟件是指針對修改之后的軟件進行測試,然后需要達到修改后能夠完成新的功能測試,并且在修改之后能否引入新的錯誤。但是在設計的過程中由于各個程序之間的元素關系比較復雜,這就需要在設計中提出詳細的分析方法,能夠使其在使用中對于整個程序進行重新測試,從此注重軟件的后期開發(fā)以及軟件的維護階段,能夠頻繁并且在少量修改的狀態(tài)下使用軟件,在使用中每次修改時都要重新運行全部的測試,這就導致了軟件開發(fā)和維護的效率比較低,這種形式就是修改影響分析。因此在修改影響分析中其主要的目的是提高測試的效率,降低測試的費用,簡化測試的程序,本文提出了動態(tài)信息的修改設計,采用的是動態(tài)信息調(diào)用圖,對程序中函數(shù)調(diào)用關系的一種靜態(tài)描述,節(jié)點表示的是具體的函數(shù)關系,邊表示的是函數(shù)之間的調(diào)用關系,由于虛函數(shù)主要是針對函數(shù)調(diào)用點來研究的,因此在設計中必須要根據(jù)運行時接受對象的實際類型以及確定出函數(shù)調(diào)用的目標之后具體進行,當遇到如果在編譯期對虛函數(shù)調(diào)用點時采用的是不同靜態(tài)處理的方式,這種處理方式是通過靜態(tài)分析來構建函數(shù)調(diào)用圖,并且在程序的設計中進行實際的函數(shù)調(diào)用分析,建立一定的模擬器程序函數(shù)調(diào)用圖來分析,但是針對虛函數(shù)調(diào)用點在應用中,需要在靜態(tài)調(diào)用圖不精確的結果。

      然而本文在研究動態(tài)調(diào)用圖中,將其作為一種修改影響分析的對象,并且給予靜態(tài)調(diào)用圖的基礎上進行,在程序的設計中將其從程序執(zhí)行的動態(tài)信息中構造調(diào)用圖,直接從程序中進行,該技術采用的是執(zhí)行信息,然后修改之后的精度卻比靜態(tài)調(diào)用圖高,在簡化了程序中,提高了效率。動態(tài)調(diào)用圖在設計中,重點是對構造算法具體確定,在確定出具體的節(jié)點以及邊的信息之后,根據(jù)節(jié)點來將軌跡中記錄的調(diào)用信息加入動態(tài)調(diào)用圖中,在實施的過程中采用先進后出的方式進行,在遇到了標志為in的節(jié)點后,將其表示的方法被調(diào)用,然后將算法從所有的軌跡中提出出來,并且將調(diào)用的信息構造出新的動態(tài)調(diào)用圖。

      3 修改影響分析算法

      通過分析設計,最終得出了動態(tài)調(diào)用圖,然后進行修改影響分析,在后向切片來計算修改影響集合過程。在定義為k-類方法后向切片,然后令E是一個程序,并且將給定的切片準則確定,在設計中具體的規(guī)定,其中具體的算法是:當BSLice(E)m,k={m′|(m′→km)∈DCG},m′→k,m是m′到m中存在著一條長度是k的可達路徑,并且m′屬于切片集合,當且僅當m′在動態(tài)調(diào)用圖中存在著一條長度是k的可達路徑到達m。然而在設計中,后切片是BSLice(E)m中的元素與m是調(diào)用關系,將修改影響分析設定為:當m′調(diào)用m,那么m的修改影響分析就會影響到m′,但是m′卻不會影響到m,其中k表示的是調(diào)用層次對修改的影響關系,當與 靠近時,其中產(chǎn)生的影響關系就比較大,之后設定的k層之后就不會影響。但是在BSLice(E)m,k中,其計算方法是標準的圖,最終可達到算法,在修改之后達到了影響集合的效果,這就形成了修改影響分析技術。將其算法表示為:

      輸入:動態(tài)信息調(diào)用圖,被修改的方法是集合M,并且調(diào)用層是k;

      輸出:修改影響集合是affectedM

      For each mi∈M do|

      affectedM=affectedM∪BSLice(E)m,k

      通過具體的算法設計,將Java程序進行研究,進行引入錯誤,設定k=4之后,進行新測試方法,通過程序開發(fā)人員和測試人員具體設定的。具體的試驗結果如表1:

      表1 實驗結果對比分析圖

      程序方法/個修改的方法數(shù)量/個修改影響集合的大小遺漏的需要重新測試的方法數(shù)量/個

      TK-simulate5436351

      Automata-Graph7425522

      通過上述實驗結果表明:在使用動態(tài)信息調(diào)用圖中,能夠改善修改影響分析的效率,并且提高了使用的價值,在該軟件的設計以及應用中提高了測試的效率。

      4 結束語

      通過分析軟件回歸測試,進行修改之后實施測試,當遇到了沒有分析方法時,需要對設計修改之后的軟件進行重新測試,避免軟件在開發(fā)以及維護中受到影響,因此針對這種現(xiàn)狀,改善了精度不高以及靜態(tài)分析中存在的不足,結果構造出了Java程序的動態(tài)調(diào)用圖,為促進我國大型Java程序測試的具體應用做出了有效的保障,提高了軟件的應用效果。

      參考文獻:

      [1]劉震,廖麗,房英明.面向數(shù)據(jù)流的Java程序指針分析技術研究[J].計算機軟件與理論分析,2013(24).

      [2]王夢霞,何偉,張澤鑫.Java程序及對象關系的動態(tài)可視技術研究與實現(xiàn)[J].計算機應用技術,2011(23).

      [3]胡斌,孔令子,郭穎珍.面向Java語言的進化測試中分支依賴圖的構建[J].計算機科學技術研究,2013(09).

      作者單位:湖北工業(yè)大學 計算機學院,武漢 430068

      宜黄县| 城步| 英超| 同心县| 溆浦县| 武乡县| 辉南县| 安康市| 海南省| 喜德县| 定州市| 商丘市| 怀化市| 新宁县| 大姚县| 阜平县| 寿光市| 丰顺县| 南康市| 浦北县| 都昌县| 犍为县| 南木林县| 专栏| 枣强县| 乌海市| 铜鼓县| 清丰县| 柳河县| 南江县| 桑植县| 曲水县| 浦县| 乐平市| 竹溪县| 阳谷县| 股票| 洞头县| 若尔盖县| 北碚区| 荔浦县|