• 
    

    
    

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

      基于LDRA Testbed的軟件完整性靜態(tài)測試方法研究

      2014-03-14 01:26:12王瑋
      電腦與電信 2014年4期
      關(guān)鍵詞:源代碼軟件測試靜態(tài)

      王瑋

      (南京航空航天大學(xué)計算中心,江蘇 南京 211106)

      基于LDRA Testbed的軟件完整性靜態(tài)測試方法研究

      王瑋

      (南京航空航天大學(xué)計算中心,江蘇 南京 211106)

      根據(jù)軟件測試工具LDRA Testbed的特點,本文提出了一種基于LDRA Testbed的軟件完整性靜態(tài)測試方案。該方案策略性選取四種測試方法,詳細描述了每種方法的測試過程,輸入項和輸出項。實際運用中表明此方案極大提高了測試效率和測試規(guī)范性。

      靜態(tài)測試;測試方法;LDRA Testbed

      那么如何進行文檔分析呢?文檔分析的檢查內(nèi)容可以根據(jù)具體的測試內(nèi)容進行調(diào)整,最終形成文檔審查單。測試人員按照文檔審查單中的每一檢查項,對被審查文檔逐項分析。若發(fā)現(xiàn)有不符合項,則在問題報告中列出。文檔審查單主要內(nèi)容可以包括:

      (1)文檔是否符合對應(yīng)的編寫標(biāo)準(zhǔn);

      (2)文檔中是否存在需求未描述的功能;

      (3)文檔和上層文檔中對術(shù)語、簡稱等名詞的描述是否一致;

      (4)軟件需求描述文檔是否與用戶需求對應(yīng);

      (5)軟件設(shè)計文檔是否與軟件需求描述文檔和軟件接口描述文檔對應(yīng);

      (6)軟件設(shè)計文檔是否說明了軟件結(jié)構(gòu)、輸入/輸出、資源配置、性能要求、兼容性分析、異常處理等;

      (7)軟件接口描述文檔是否說明各個接口的用途和等級;

      (8)軟件接口描述文檔是否說明了接口的值域和精度;(9)用戶手冊描述是否簡明清晰;

      (10)用戶手冊是否說明了軟件輸入,同時給出預(yù)期輸出;

      (11)用戶手冊是否說明了終止軟件操作;

      (12)用戶手冊是否說明了軟件錯誤信息的含義及異常處理方法。

      2.2 計算機輔助靜態(tài)分析

      靜態(tài)測試的第二個階段是計算機輔助靜態(tài)分析。這一階段的輸入項是被測試的源代碼,測試過程是利用專用軟件測試工具輔助靜態(tài)分析,對被測試的源代碼進行特性分析,從代碼中提取一些信息,以便檢查代碼邏輯的各種錯誤和可疑的程序構(gòu)造,如錯誤地使用局部變量和全局變量、不匹配的參數(shù)、潛在的死循環(huán)以及不會執(zhí)行到的代碼等[2]。

      軟件測試工具的應(yīng)用可以提高測試的質(zhì)量、測試的效率、減少測試過程中的重復(fù)勞動、實現(xiàn)測試自動化。軟件測試工具的種類眾多,其中LDRA Testbed功能強大而且全面,能夠?qū)崿F(xiàn)匯編語言、C/C++、Fortran、Ada等語言的靜態(tài)和動

      1.引言

      軟件測試的經(jīng)典定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進行評估的過程。軟件復(fù)雜度的增加,可能導(dǎo)致軟件結(jié)構(gòu)不合理,代碼編寫不規(guī)范,存在代碼缺陷。在軟件開發(fā)或測試過程中引入靜態(tài)測試,有利于開發(fā)人員更好了解系統(tǒng),堅持編碼質(zhì)量標(biāo)準(zhǔn),判定系統(tǒng)的復(fù)雜性,發(fā)現(xiàn)更多的代碼缺陷[1]。本文將軟件測試方法和軟件測試工具LDRA Testbed有效結(jié)合,提出一種基于LDRA Testbed的靜態(tài)測試完整方案。

      2.靜態(tài)測試

      靜態(tài)測試是指無需執(zhí)行被測代碼,而是采用人工檢測和專用軟件測試工具輔助靜態(tài)分析的手段對代碼進行檢測,主要檢查代碼和設(shè)計是否一致,代碼是否遵循編碼規(guī)范,代碼的邏輯表達是否正確,代碼結(jié)構(gòu)是否合理性等方面。

      據(jù)統(tǒng)計,靜態(tài)測試比動態(tài)測試更快速有效,可以發(fā)現(xiàn)30%~70%的邏輯設(shè)計和編碼錯誤,靜態(tài)測試完成的質(zhì)量越高,將會極大減少整個測試的總工作量。因此,如何進行高質(zhì)量的靜態(tài)測試顯示十分重要。本文根據(jù)各種靜態(tài)測試方法的特點和專用軟件測試工具的功能進行策略組合,將靜態(tài)測試分為4個階段,文檔分析、計算機輔助靜態(tài)分析、代碼審查和評審,詳細描述4個階段的測試內(nèi)容和輸出結(jié)果,使之構(gòu)成完整的靜態(tài)測試方案。

      2.1 文檔分析

      靜態(tài)測試的第一個階段是文檔分析。這里的文檔是指與代碼對應(yīng)的軟件需求描述文檔、軟件設(shè)計文檔、軟件接口描述文檔、用戶手冊等。這些軟件開發(fā)文檔作為這個測試階段的輸入項;測試過程主要通過人工測試,即不依靠計算機人工審查文檔;審查結(jié)果和測試過程中發(fā)現(xiàn)的文檔異?;蛉毕葑罱K生成的問題報告,作為這個測試階段的輸出項。本項測試的目的是通過分析對文檔的完整性、一致性和準(zhǔn)確性進行檢查。態(tài)測試。在靜態(tài)測試方面,LDRATestbed提供強大的包括編碼規(guī)則檢查在內(nèi)的靜態(tài)分析功能和全面的靜態(tài)分析報告,用戶可以選擇行業(yè)認可的標(biāo)準(zhǔn),如MISRA C、DERA、AV C++等。提供軟件質(zhì)量的度量,以可視化的方法了解代碼的復(fù)雜性,提供詳細的函數(shù)調(diào)用關(guān)系和程序控制流程圖,自動生成報告,提供軟件質(zhì)量文檔。提供接口分析、識別潛在的錯誤程序變量,對所有過程參數(shù)以及函數(shù)的全局變量和返回值進行分析。

      LDRA Testbed的靜態(tài)分析是在對源代碼的語法分析的基礎(chǔ)上進行的,源代碼可以是單個文件也可以是完整的一個工程。對于多個文件,LDRATestbed創(chuàng)建的文件集合有兩種屬性可以設(shè)置,GROUP對集合中每個文件單獨進行分析。SYSTEM在靜態(tài)分析和復(fù)雜性分析過程中,依次對集合中每個文件進行分析,分析的結(jié)果用于后續(xù)的系統(tǒng)/集成測試,優(yōu)化全局的數(shù)據(jù)流和交叉引用。因此,GROUP得到的是各個源文件的分析結(jié)果,而SYSTEM得到的是文件集合整體的一個分析結(jié)果[3]。

      LDRA Testbed提供了很多靜態(tài)分析選項,如圖1所示,包括主要靜態(tài)分析、復(fù)雜度分析、靜態(tài)數(shù)據(jù)流分析、交叉索引分析、信息流分析等,測試人員可以根據(jù)具體的測試內(nèi)容和測試要求進行裁剪。

      圖1LDRATestbed靜態(tài)分析選擇框

      LDRATestbed的靜態(tài)分析主要輸出內(nèi)容包括以下幾點:

      (1)LDRATestbed提供詳細的函數(shù)調(diào)用關(guān)系和程序控制流程圖,如圖2所示。函數(shù)調(diào)用關(guān)系圖反映了函數(shù)之間的層次關(guān)系,可以通過扇入/扇出數(shù)衡量函數(shù)調(diào)用關(guān)系的復(fù)雜度。程序控制流程圖表示函數(shù)的控制流結(jié)構(gòu),圖中節(jié)點表示源代碼,點擊節(jié)點可以調(diào)出相應(yīng)的源代碼,節(jié)點間的分支跳轉(zhuǎn)用連線表示??刂屏鞴?jié)點和程序的順序結(jié)構(gòu)密切相關(guān),控制流節(jié)點數(shù)是反映程序復(fù)雜性的一個因素,過多的控制流結(jié)點意味著需要對程序的結(jié)構(gòu)進行改進,以提高程序的可讀性和減小程序的復(fù)雜度[3]。

      圖2 LDRATestbed函數(shù)調(diào)用關(guān)系圖和程序控制流程圖

      (2)LDRATestbed Code Review Report,依據(jù)用戶設(shè)定的編碼標(biāo)準(zhǔn)對源代碼進行分析,驗證其中是否存在違反編碼規(guī)則的地方并生成分析報告,如圖3所示,包含源代碼行數(shù)、編碼規(guī)則描述和具體的編碼標(biāo)準(zhǔn)。

      圖3 LDRATestbed代碼檢測報告

      (3)LDRATestbed Quality Review Report,比較直接地反應(yīng)被測試源代碼的質(zhì)量,可以提供復(fù)雜度分析的總體結(jié)果,包括代碼清晰性、可維護性和可測試性的度量結(jié)果,如圖4所示。同時也提供控制流結(jié)點、圈復(fù)雜度、代碼可達性、循環(huán)深度、LCSAJ密度、注釋、Halstead軟件科學(xué)度量、程序結(jié)構(gòu)化驗證等復(fù)雜度度量元的詳細結(jié)果。

      圖4 LDRATestbed質(zhì)量檢測報告

      另外,LDRATestbed還提供靜態(tài)數(shù)據(jù)流,交叉索引,信息流和數(shù)據(jù)對象分析的文本報告,測試人員必須結(jié)合源代碼認真仔細地分析測試結(jié)果,檢查源代碼是否符合編碼規(guī)則,識別潛在的錯誤程序變量,對所有過程參數(shù)以及函數(shù)的全局變量和返回值進行分析,檢查代碼的結(jié)構(gòu)、復(fù)雜度和其它一些因素是否符合可配置的質(zhì)量模型,盡可能地發(fā)現(xiàn)問題。LDRA Testbed生成的各項分析報告和檢查發(fā)現(xiàn)的問題報告是這一階段的輸出項。

      2.3 代碼審查

      靜態(tài)測試的第三個階段是代碼審查。這一階段的輸入項是被測試的文檔和源代碼,本項測試的目的是發(fā)現(xiàn)被測試的源代碼中的邏輯設(shè)計錯誤和編碼錯誤。在前兩個階段的基礎(chǔ)上,要求測試人員必須認真仔細地閱讀文檔和源代碼,適當(dāng)準(zhǔn)備一些有代表性的測試用例,沿代碼的邏輯逐步審查代碼。

      審查的內(nèi)容包括:檢查代碼和需求的一致性;檢查代碼和設(shè)計的一致性;檢查代碼對編碼標(biāo)準(zhǔn)的遵循、可讀性;檢查代碼的邏輯表達的正確性;檢查代碼結(jié)構(gòu)的合理性;檢查代碼算法的正確性;檢查變量使用的正確性;檢查代碼的可維護性。

      測試人員在代碼審查過程中盡可能地提出問題報告,作為這一階段的輸出項。

      2.4 評審

      靜態(tài)測試的第四個階段是評審。前期測試的所有輸出項作為被評審的材料,是這一階段的輸入項。本項測試的目的是檢查并確認所有已發(fā)現(xiàn)的問題,最終修改問題。

      評審前,由主持者確認評審的先決條件是否滿足,例如,被評審的材料是否完整、會議人員是否確定、會議日期和場地是否確定。參與評審的人員主要包括測試人員、開發(fā)人員等,每次評審的參加人數(shù)不宜過多,建議3~7人。如果被評審的材料內(nèi)容較多,可根據(jù)需要分成若干模塊,舉行多次會議進行評審。

      評審中,主持者向評審者征集問題,要讓每個評審者都發(fā)表意見,逐行或逐項討論被評審材料。對于提出的每個問題,主持者要歸納缺陷類型,經(jīng)討論達成一致意見后把問題記錄在會議記錄中。在檢查了所有發(fā)現(xiàn)的問題后,評審者表決本次會議的結(jié)論意見。結(jié)論意見分三種:接受、修改但不再評審和修改后再次評審。

      評審后,將評審結(jié)果以及靜態(tài)測試的所有輸出項提交給開發(fā)人員,開發(fā)人員完成修改后,測試人員進行回歸測試,確認所有問題已正確修改,靜態(tài)測試工作結(jié)束。

      3.結(jié)束語

      軟件靜態(tài)測試方法和測試工具眾多,但是任何一種方法或工具都不能涵蓋所有靜態(tài)測試的要求。本文提出的軟件靜態(tài)測試方案,將測試方法和工具的結(jié)合,以最少的人力和時間盡可能多地發(fā)現(xiàn)潛在的各種錯誤和缺陷,提高了測試效率,縮短了軟件開發(fā)周期,提高軟件質(zhì)量和可靠性。該方案明確、具體、可操作性強,在實際運用中已經(jīng)取得了較好的效果。

      [1]胡丹瑞.基于LDRATestbed的軟件靜態(tài)測試研究與實現(xiàn)[J].計算機安全,2012,(6):69-71.

      [2]邱小玲.淺談軟件測試的方法[J].IT技術(shù)論壇,2008,(17):93-100.

      [3]LDRATestbed技術(shù)說明,上海創(chuàng)景計算機系統(tǒng)有限公司.

      Research on Static Test Method of Software Integrity Based on LDRATestbed

      Wang Wei
      (Computer Center,Nanjing University ofAeronautics&Astronautics,Nanjing 211106,Jiangsu)

      According to the characteristics of software testing tool LDRA Testbed,this paper presents a scheme of static test of software integrity based on LDRA Testbed.This scheme strategically selects the four testing methods,and describes the test process of each kind of method,the input and output items in details.Practical application shows that this scheme greatly improves the test efficiency and test standard.

      static test;test method;LDRATestbed

      王瑋,女,安徽淮南人,碩士,助理工程師,研究方向:軟件工程、計算機技術(shù)與應(yīng)用。

      猜你喜歡
      源代碼軟件測試靜態(tài)
      人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
      計算機仿真(2023年8期)2023-09-20 11:23:42
      靜態(tài)隨機存儲器在軌自檢算法
      基于TXL的源代碼插樁技術(shù)研究
      基于OBE的軟件測試課程教學(xué)改革探索
      計算機教育(2020年5期)2020-07-24 08:53:20
      EXCEL和VBA實現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      軟件源代碼非公知性司法鑒定方法探析
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      軟件測試工程化模型及應(yīng)用研究
      揭秘龍湖產(chǎn)品“源代碼”
      機床靜態(tài)及動態(tài)分析
      機電信息(2015年9期)2015-02-27 15:55:56
      乌兰县| 共和县| 寿阳县| 高陵县| 蓬安县| 石楼县| 娄底市| 天峻县| 德江县| 漾濞| 绥滨县| 达拉特旗| 华坪县| 天峨县| 宁南县| 武山县| 昌平区| 阜南县| 东阿县| 丹阳市| 盐山县| 甘德县| 南开区| 崇仁县| 惠水县| 寿光市| 长子县| 阳春市| 九寨沟县| 浦县| 琼结县| 德安县| 连平县| 林州市| 穆棱市| 武威市| 红原县| 墨竹工卡县| 深州市| 兰考县| 永胜县|