<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > McCabe在多項目工程中的應用及覆蓋率統計技巧

McCabe在多項目工程中的應用及覆蓋率統計技巧

作者:中國軟件評測中心 云霄 時(shí)間:2012-12-18 來(lái)源:電子產(chǎn)品世界 收藏

  摘要:工具常常被測試人員用來(lái)測試單一項目工程的軟件系統,然而隨著(zhù)軟件工程的發(fā)展,多項目工程的大型系統軟件陸續出現。那么如何利用現有的工具解決多項目工程中的邏輯測試呢?本文詳細介紹工具在多項目工程中的應用及覆蓋率統計技巧,供讀者參考與交流。

本文引用地址:http://dyxdggzs.com/article/140183.htm

  1 McCabe軟件測試工具簡(jiǎn)介

  McCabe IQ是美國McCabe Software公司的軟件質(zhì)量管理解決方案,為用戶(hù)提供軟件質(zhì)量度量、軟件結構分析、動(dòng)態(tài)結構化測試的全面支持。McCabe IQ的功能可以分為質(zhì)量度量、覆蓋率測試、數據流分析、變更分析、冗余代碼分析和企業(yè)級報告等。

  McCabe是一個(gè)完全圖形化的工具,可以提供如下圖形報告:

  · 模塊調用關(guān)系圖:用紅黃綠顏色標識出模塊的復雜度的高低,對于軟件的結構和復雜程度一目了然。

  · 模塊控制流圖:有助于了解軟件模塊的內部流程,發(fā)現隱藏的危險路徑。

  · 散點(diǎn)圖/KV圖/柱狀圖:綜合分析軟件整體的質(zhì)量分布情況,有助于了解軟件質(zhì)量情況,和測試工作量評估。

  圖 1?1-該資料來(lái)源于中國評測

  圖 1?2-該資料來(lái)源于中國評測

  McCabe軟件測試工具在邏輯動(dòng)態(tài)測試時(shí),前提是要對代碼進(jìn)行插裝。然而在實(shí)際工作中,由于大型軟件常常是由多個(gè)項目工程構成,所以針對多項目工程的插裝一直是眾多軟件測試人員困惑的問(wèn)題。下面我們將詳細分析如何在多項目工程中巧妙使用McCabe軟件測試工具。

  2 McCabe在多項目工程中的應用

  由于 McCabe 在分析程序之前先要調用用戶(hù)環(huán)境中的編譯器對程序進(jìn)行預處理,在按照用戶(hù)指定的插裝選項對被測程序文件插裝后,才能獲得足夠的程序信息,完成正確的分析。

  按照以下步驟完成創(chuàng )建工程操作:

  1. 在 File 目錄下選擇New Project。創(chuàng )建新項目工程。

  2. 給新建的工程命名,并選擇工程將要存放的目錄。

  3. 選擇所用的語(yǔ)言以及語(yǔ)言的擴展。

  4. 源代碼選擇對話(huà)框有兩個(gè)界面。這是因為我們是對多項目工程的插裝,所以選擇I’ll supply the infor選項,點(diǎn)擊“下一步”。如圖2.1。

  圖 2?1-該資料來(lái)源于中國評測

  5. 進(jìn)入源文件選擇界面,如圖2.2,點(diǎn)擊“Add/Remove Files”。Add/Remove Files 對話(huà)窗口有三種操作模式,進(jìn)入源代碼目錄存放文件夾中,點(diǎn)擊“Add Hierarchy”,這樣所有文件都會(huì )被添加進(jìn)項目。如圖2.3。

  圖 2?2-該資料來(lái)源于中國評測

  圖 2?3-該資料來(lái)源于中國評測

  6. 依次點(diǎn)擊“下一步”,對項目進(jìn)行設置,完成項目插裝步驟。

  7. 在完成了項目的插裝后,會(huì )在項目指定的目錄中生成McCabe對本項目工程的說(shuō)明文件test_Pathvec.cs。這個(gè)文件必須加載在插裝后的代碼文件中,這樣才能對工程項目進(jìn)行調試。

  8. 將插裝完成后的文件拷貝至源文件目錄下,同名覆蓋源文件。啟動(dòng)源文件中的解決方案,如圖2.4。

  圖 2?4-該資料來(lái)源于中國評測

  9. 在現有的解決方案中新建一個(gè)項目,命名為“cabe”,并將先前的test_Pathvec.cs文件添加進(jìn)來(lái)。在原有的工程項目中添加引用cabe工程。如圖2.5。

  圖 2?5-該資料來(lái)源于中國評測

  10. 啟動(dòng)項目調試,生成輸出文件,多工程項目文件的插裝工作完成。測試完成后,將項目輸出文件導入McCabe中,就可以進(jìn)行代碼覆蓋率統計工作了。

  3 McCabe軟件測試覆蓋率統計技巧

  McCabe 的動(dòng)態(tài)測試不但適合于宿主機系統,也適合于各種嵌入式系統環(huán)境下運行,當被測軟件動(dòng)態(tài)運行的時(shí)候,McCabe 分析生成的追蹤信息,得到覆蓋率信息,McCabe 可以提供的覆蓋率類(lèi)型有:集成覆蓋率、路徑覆蓋率、分支覆蓋率、語(yǔ)句覆蓋率、類(lèi)覆蓋率、布爾覆蓋率(MC/DC)、數據覆蓋率和調用對覆蓋率等。

  覆蓋率的信息最直觀(guān)的查看方式就是在模塊調用圖上用不同的顏色標識出來(lái),基于McCabe度量的理論,可以提供給用戶(hù)強大的路徑分析路徑覆蓋率,適合于安全關(guān)鍵軟件的嚴格測試。覆蓋率的信息以切片(Slice)的方式詳細的報告給用戶(hù),用戶(hù)可以使用McCabe的切片直接的邏輯運算發(fā)現被測軟件的業(yè)務(wù)規律。

  然而在覆蓋率統計時(shí),我們常常發(fā)現無(wú)論選擇什么樣的測試用例,總有一些分支無(wú)法覆蓋。下面就對常見(jiàn)無(wú)法覆蓋的分支詳細分析。

  1. 只有if分支,無(wú)else分支

  這是最常見(jiàn)無(wú)法覆蓋的情況之一。當if判斷條件存在重復判斷時(shí),往往出現else無(wú)法覆蓋的情況。如下所示:

  if (a > 1)

  {

  if (a > 0)

  {

  a = a + 1;

  }

  else return;

  }

  else return;

  在上面這個(gè)簡(jiǎn)單的例子中我們發(fā)現,在大于1的情況下,是永遠大于0 的,所以第一個(gè)else是無(wú)法覆蓋的。

  2. if 及else if 已經(jīng)包含了所有的可能

  同樣還是看這段代碼舉例,如下所示:

  if (a > 0)

  {

  a = a + 1;

  }

  else if (a <= 0)

  {

  a = a - 1;

  }

  else return;

  我們發(fā)現if和else if已經(jīng)把大于、小于和等于所有的可能包括其中了,所以最后一個(gè)else也是無(wú)法覆蓋的。

  3. switch case已經(jīng)包含了所有的可能,無(wú)default分支

  在使用枚舉類(lèi)型變量時(shí),通過(guò)switch語(yǔ)句判斷類(lèi)型。這時(shí)往往已經(jīng)列出了所有可能的case分支,這樣的話(huà)default分支就無(wú)法覆蓋。如下所示:

  switch(a.GetType)

  {

  case int;

  case float;

  default return;

  }

  由于case分支已經(jīng)列出了a變量的所有屬性,所以default分支就無(wú)法覆蓋。

  4 總結

  McCabe在輔助測試人員進(jìn)行測試時(shí),可以為用戶(hù)提供各種靜態(tài)分析結果和覆蓋率統計分析。本文主要從實(shí)際工作角度出發(fā),為大家提供多項目工程下McCabe軟件測試工具解決方案。通過(guò)上述方法,巧妙的利用原項目工程解決方案,不改動(dòng)文件目錄結構,解決大型系統軟件中多項目工程無(wú)法同時(shí)插裝的問(wèn)題,從而進(jìn)行覆蓋率統計工作。掌握了覆蓋率統計中各種統計技巧,我們就可以為用戶(hù)解釋?zhuān)采w率為何總是無(wú)法滿(mǎn)足用戶(hù)需求的缺陷,為軟件測試工作提供了有力的保障。工具的使用只是輔助性的,一個(gè)軟件的可靠與否還是需要測試人員進(jìn)行測試后,結合工具的結果和理性的分析,從而得出一個(gè)軟件真正的評判結果和質(zhì)量度量。



關(guān)鍵詞: McCabe 軟件測試

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>