Logiscope是面向原始碼進行工作的,貫穿於軟體開發、代碼評審、單元測試、集成測試、系統測試、以及軟體維護階段。
一、Logiscope概述
LOGISCOPE是法國Telelogic公司推出的專用於軟體質量保證和軟體測試的產品。其主要功能是對軟體做質量分析和測試以保證軟體的質量,並可做認證、反向工程和維護,特別是針對要求高可靠性和高安全性的軟體項目和工程。
本產品套用於軟體的整個生命周期,它貫穿於軟體需求分析階段->設計階段->代碼開發階段->軟體測試階段(代碼審查、單元/集成測試和系統測試)->軟體維護階段的質量驗證要求。
在設計和開發階段,使用LOGISCOPE可以對軟體的體系結構和編碼進行確認。可以在儘可能的早期階段檢測那些關鍵部分,尋找潛在的錯誤,並在禁止更改和維護工作之前做更多的工作。在構造軟體的同時,就定義測試策略。可幫助編制符合企業標準的文檔,改進不同開發組之間的交流;在測試階段用LOGISCOPE,使測試更加有效。可針對軟體結構,度量測試覆蓋的完整性,評估測試效率,確保滿足要求的測試等級。特別是,LOGISCOPE還可以自動生成相應的測試分析報告;在軟體的維護階段,用LOGISCOPE驗證已有的軟體是否是質量已得到保證的軟體,對於狀態不確定的軟體,LOGISCOPE可以迅速提交軟體質量的評估報告,大幅度地減少理解性工作,避免非受控修改引發的錯誤。
本產品的最終目的是評估和提高軟體的質量等級,採用基於國際間的標準度量方法(如Halstead、McCabe等)的質量模型對軟體進行分析,從軟體的編程規則,靜態特徵和動態測試覆蓋等多個方面,量化地定義質量模型,並檢查、評估軟體質量。
● LOGISCOPE 獲取ISO/IEC9126 定義的"Quality Characteristics ";
● LOGISCOPE 為ISO-9001提供需求(test acceptance criteria and qulity records ),自動確定ISO9001認證過程的任務;
● LOGISCOPE 提供SEI/CMM在第2 級(Repeatable )所要求的軟體質量跟蹤等關鍵實踐的要求,推進開發組織儘快達到SEI/CMM 的3級。
● 在有契約關係時,契約方可以用LOGISCOPE 明確定義驗收時質量等級和執行測試。承制方可以用LOGISCOPE 驗證其軟體的質量。
● 對所有的開發者提供確保代碼質量和進行有效測試的方法
● 對項目管理者和質量工程師提供對整個項目進行制度化的測試和評估。
● 創立公司的技術文化:
1 完美的開發環境集成,很容易訪問和運行LOGISCOPE;
2 開發者可以隨時檢查其工作;
3 當達到要求的測試等級時,軟體才可以離開測試階段;
4 維護工作是受控的;
5 項目領導能把全部結果自動編制到日常報告中;
6 質量工程師可以把項目作為一個整體,自動編寫詳細的報告。
Logiscope包括三個工具:
Logiscope RuleChecker:根據工程中定義的編程規則自動檢查軟體代碼錯誤,可直接定位錯誤。包含大量標準規則,用戶也可定製創建規則。自動生成測試報告。
Logiscope Audit:定位錯誤模組,可評估軟體質量及複雜程度。提供代碼的直觀描述,自動生成軟體文檔。
Logiscope TestChecker:測試覆蓋分析,顯示沒有測試的代碼路徑,基於源碼結構分析。直接反饋測試效率和測試進度,協助進行衰退測試。既可在主機上測試,也可在目標板上測試。支持不同的實時作業系統、支持多執行緒。可累積合併多次測試結果,自動鑑別低效測試和衰退測試。自動生成定製報告和文檔。
Logiscope分為Audit、RuleChecker和TestChecker3部分,對代碼分別進行靜態度量、編程風格檢測、和測試覆蓋率分析。下面分別就這3部分功能進行描述:
Audit
以ISO9126【3】模型作為質量評價模型的基礎。質量評價模型描述了從Halstead、McCabe的度量方法學和Verilog引入的質量方法學中的質量因素(可維護性、可重用性、等)和質量準則(可測試性、可讀性、等)。
將被評價的軟體與規定的質量模型進行比較,用圖形形式顯示軟體質量的。因此,質量人員可以把精力集中到需要修改的代碼部分,對與質量要素和質量模型不一致的地方給予解釋和糾正的辦法。具體的圖形表示法有以下幾種:
整個套用的體系結構:顯示部件之間的關係,評審系統設計。
具體部件的邏輯結構:通過控制流圖顯示具體部件的邏輯結構,評審部件的可維護性。
評價質量模型:通過度量元對整個套用原始碼進行度量,並作出Kiviat圖顯示分析結果,對可維護性作出評判。
RuleChecker
預定義數十條編程風格檢測規則,這裡有關於結構化編程的、面向對象編程的、等等。具體而言,這些規則有:
命名規則,如:變數名首字母大寫等
控制流規則,如:不允許使用GOTO語句等
這些規則可以根據實際需要進行選擇,也可以按照自己的實際需求更改和添加規則。
RuleChecker,使用所選規則對原始碼一一進行驗證,指出所有不符合編程規則的代碼,並對應所違反的規則。
TestChecker
測試覆蓋率分析工具,提供:指令覆蓋、判定覆蓋、MC/DC(條件組合覆蓋)和基於套用級的PPP覆蓋。分析這些覆蓋率信息可以保證我們的測試,提高測試效率,協助進行進一步地測試。
同時,Logiscope支持對嵌入式系統的覆蓋率分析。首先是對套用原始碼的插裝,然後是實時地將測試信息通過網線/串口傳到宿主機(Host)上,並線上顯示。Logiscope支持VxWorks 、pSOS 、VRTX等實時作業系統。
支持語言 功能模組
Audit RuleChecker TestChecker
c K&R,ISO/ANSI Windows/UNIX Windows/UNIX Windows/UNIX
c++ ISO/ANSI Windows/UNIX Windows/UNIX Windows/UNIX
Ada 83 and 95 Windows/UNIX Windows/UNIX Windows/UNIX
Java All Java code Windows/UNIX Windows/UNIX Windows
Unix:
Solaris 2.6 and higher
HP UX 10.2 and 11
IBM AIX 4.2
Windows:
Windows 98
Windows NT 4.0
Windows 2000
二、產品套用
目前,LOGISCOPE產品在全世界的26個國家的眾多國際知名企業得到了廣泛的套用,其用戶涉及通訊、電子、航空、國防、汽車、運輸、能源及工業過程控制等眾多領域。現簡單介紹如下:
● 歐洲的衛星生產廠商Matla Marconi Space;
● 直升機生產廠商Eurocopter;
● 世界最大的粒子物理研究實驗室CERN;
● 航空航天領域有Aérospatiale, Alcatel Space, Boeing, CNES, Northrop Grumman等國際著名公司;
● IBM;
● TI;
● GE;
● McDonnell Douglas;
● EDS;
● SAIC;
● EXXON;
● PHILIPS;
● 國內有華為、中興、航天部等單位。
三、產品功能
下面分別介紹LOGISCOPE產品的3個功能:
● Audit 靜態分析功能;
● RuleChecker 語法規則分析功能;
● TestChecker 動態測試功能。
3.1 靜態分析功能
本產品採用的是包括軟體質量標準化組織制定的ISO9126模型在內的質量模型。質量模型描述了從Halstend、McCabe的質量方法學引入的質量因素、質量準則和質量度量元。即本模型是一個三層的結構組織:
a. 質量因素[Factor]
b. 質量準則[Criteria]
c. 質量度量元[Metrics]
質量因素是從用戶角度出發,對軟體的質量特性進行總體評估;質量準則從軟體設計者角度出發,設計為保障質量因素所必須遵循的法則;質量度量元從軟體測試者角度出發,驗證是否遵循質量準則。一個質量因素由一組質量準則來評估;一個質量準則由一組質量度量元來驗證。其關係如圖所示。
質量結構關係圖
LOGISCOPE從系統[Application]、類[Class]和函式[Function]三個層次詳細規定了上述質量特性及其組成關係。以C++程式的類層為例:
Factor:
具有2個Factor:
● 可維護性[MAINTAINABILITY]
● 可重用性[REUSABILITY]
Criteria:
具有4個Criteria:
● 可分析性[ANALYZABILITY]
● 可修改性[CHANGEABILITY]
● 穩定性[STABILITY]
● 可測試性[TESTABILITY]
Metrics:
質量度量元較多,在此不詳細描述。
靜態分析Audit部件將軟體與所選的質量模型進行比較,生成軟體質量分析報告。顯示軟體質量等級的概要圖形表示,因此可以把精力集中到需要修改的代碼部分。對度量元素和質量模型不一致的地方作出解釋並提出糾正的方法。通過對軟體質量進行評估及生成控制流圖和調用圖,發現最大可能發生錯誤的部分。一旦發現這些部分,可以使用度量元及控制流圖、調用圖等手段做進一步分析。
簡單介紹其功能:
● 質量報告
LOGISCOPE根據質量模型,生成相應的軟體質量分析報告(HTML形式)。
● 質量度量元
可清楚分析和觀察每個類或方法中的質量度量元的數值,判斷其是否合法。
● 質量準則
可清楚分析和判斷各質量因素所含有的質量準則的數值和合格性。
● 質量因素
針對系統層、類層和函式層,分別分析質量因素的合格性和所占百分比。
● 程式流程圖
控制流圖顯示算法的邏輯路徑。其圖形表示適用於評價函式的複雜性。
● 程式調用圖
調用圖顯示過程和函式之間的關係,非常適用於檢查套用系統的設計。
● Kiviat圖
Kiviat圖使質量等級與所選擇的參考之間的一致性對比更加可視化。
3.2 語法規則分析功能
LOGISCOPE提供編碼規則與命名檢驗,這些規則是根據業界標準和經驗所制訂。因此可建立企業可共同遵循的規則與標準,而避免自我不良的編程習慣及彼此不相容的困擾。同時LOGISCOPE還提供規則的裁剪和編輯功能,可以用Tcl、腳本和程式語言定義新的規則。
以C語言為例,以下列出部分的規則:
請點擊這裡查看>>
RuleChecker的工作界面如下:
3.3 動態測試功能
為控制測試的有效性,必須定義準則和策略以判斷何時結束測試階段。準則必須是客觀和可量化的元素。LOGISCOPE推薦對指令、邏輯路徑和調用路徑覆蓋測試。根據套用的準則和項目相關的約束,可以定義使用的度量方法和要達到的覆蓋率,度量測試的有效性。
TestChecker產生每個測試的測試覆蓋信息和累計信息。用直方圖顯示覆蓋比率,並根據測試運行情況實時更改。隨時顯示新的測試所反映的測試覆蓋情況。TestChecker允許所有的測試運行依據其有效性進行管理。用戶可以減少那些用於非回歸測試的測試。被執行過的函式,一旦作了修改需要重新運行時,LOGISCOPE將會標出。最佳化測試過程在測試階段的第一步,執行的測試是功能性測試。其目的是檢查所期望的功能是否已實現。在測試初期,覆蓋比率迅速增加。象樣的測試工作一般能達到70%的覆蓋率。但是,要提高此比率是十分困難的。主要是由於測試覆蓋了相同的測試路徑。在該階段需要對測試策略做一些改變。應當執行結構化測試,即,要檢測沒有執行的邏輯路徑,定義適當的測試覆蓋這些路徑。在測試執行期間,當測試策略改變時,綜合的運用TestChecker檢測關鍵因素以提高效率。將TestChecker與靜態分析相互依賴使用能夠幫助用戶分析未測試的代碼。用戶可以顯示所關心的代碼,並通過對執行未覆蓋的路徑的觀察得到有關的信息。信息以圖形(控制流圖)和文本(偽代碼和源檔案)的形式提交,並在其間建立導航關聯。TestChecker管理系統能聲明新的測試、編制有關文檔、定義啟動命令、以及自動執行的方法。
同時LOGISCOPE 支持對嵌入式領域軟體的測試。眾所周知,嵌入式系統軟體的測試是最為困難的。因為,它的開發是用交叉編譯方式進行的。在目標機(Target)上,不可能有多餘的空間記錄測試的信息。必須實時地將測試信息通過網線/串口傳到宿主機(Host)上,並實時線上地顯示。因此,對原始碼的插裝和目標機上的信息收集與回傳成為問題的關鍵。LOGISCOPE 很好地解決了這些技術,成為嵌入式領域測試工具的佼佼者。它支持各種實時作業系統(RTOS)上的應用程式的測試,也支持邏輯系統的測試。Logiscope 提供VxWorks 、pSOS 、VRTX 實時作業系統的測試庫。
TestChecker的運行界面:
四、產品構成
Audit for c/c++ ;
RuleChecker for c/c++;
TestChecker for c/c++ 。
運行平台:WIN2000/NT