測試方法和測試工具解決方案

2021-08-10 15:49:59 字數 5322 閱讀 6191

隨著軟、硬體技術的發展,計算機的應用領域越來越廣,而其中軟體的功能也越來越強大,軟體也越來越複雜。這就使保證軟體的質量,保證軟體的高度可靠性,面臨巨大的挑戰。特別是諸如軍事、航空航天、通訊、交通醫療等行業,軟體的微小瑕疵就可能造成對生命安全、天文數字的巨額財產、甚至對****嚴重威脅。

因此,對軟體產品質量的度量、評估和保證,成了使用者和專案承攬公司都十分關注的問題。基於這些原因,國際上的標準化和認證組織已經制定出了一些軟體標準(在iso-9001以及sei cmm框架中)。對於軟體的開發過程即可通過這些標準進行約束和度量。

為了確保軟體的質量,達到軟體工程的度量標準,軟體測試是非常必要的。我們通過對國內外知名軟體提供商和系統整合商的調查了解,在軟體產品的測試方面均使用軟體工程中提出的兩種方法進行測試,即白盒和黑盒測試。白盒是已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否已經通過檢查。

白盒測試又叫結構測試。黑盒是已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求,黑盒又叫做功能測試,它不僅應用於開發階段的測試,更重要的是在產品測試階段及維護階段必不可少。

太平洋軟體(中國)****(pts)自2023年引進第乙個測試工具以來,涉足測試領域已有多年,對當今流行的測試軟體、測試理論和方法都有深入的研究和理解,在此基礎上,開展了為使用者提供測試方法培訓和測試專業服務的業務。通過服務,我們力求能夠幫助使用者有效地、有步驟地調整其現有軟體生產過程,幫助企業通過iso9001 認證,提高開發隊伍的cmm 等級,最終達到提高軟體產品質量,加強企業競爭力促進企業發展的目的。

以下是pts推出的測試方法和測試工具解決方案。

一、 白盒測試的實施方案

在開發階段

要保證產品的質量,產品的生產過程應該遵循一定的行業標準。軟體產品也是同樣,沒有標準可依自然談不上質量的好壞。所有關心軟體開發質量的組織、單位,都要定義或了解軟體的質量標準、模型。

其好處是保證公司實踐的均勻性,產品的可維護性、可靠性以及可移植性等。

在測試階段

與軟體產品的開發過程一樣,測試過程也需要有一定的準則,來指導、度量、評價軟體測試過程的質量。

定義測試準則

為控制測試的有效性以及完成程度,必須定義準則和策略,以判斷何時結束測試階段。準則必須是客觀的,可量化的元素,而不能是經驗或感覺。

根據應用的準則和專案相關的約束,專案領導可以定義使用的度量方法,和要達到的覆蓋率。

度量測試的有效性、完整性

對每個測試的測試覆蓋資訊和累計資訊,用圖形方式顯示覆蓋比率,並根據測試運**況實時更新,隨時顯示新的測試所反映的測試覆蓋情況。

允許所有的測試執行依據其有效性進行管理,使用者可以減少不適用於非回歸測試的測試的過程。

優化測試過程

在測試階段的第一步,執行的測試是功能性測試。其目的是檢查所期望的功能是否已經實現。在測試的初期,覆蓋率迅速增加。

象樣的測試工作一般能達到70%的覆蓋率。但是,此時要再提高覆蓋率是十分困難的,因為新的測試往往覆蓋了相同的測試路徑。在該階段需要對測試策略做一些改變:

從功能性測試轉向結構化測試。也就是說,針對沒有執行過的路徑,構造適當的測試用例來覆蓋這些路徑。

在測試期間,及時地調整測試策略,並檢查分析關鍵因素,以提高測試效率。

圖表 1 測試過程中覆蓋率趨勢及策略的調整

在維護階段

有一點認識越來越為大多數人所認可:應用系統的維護費用與初始的開發費用基本相等,而在維護過程中,在對應用結構、邏輯、執行的理解上花費的時間,要用去50%的時間。

由於系統維護人員很可能不是開發人員本人,再加上人員的流動、團隊內部的交流的不足,都需要對應用系統的理解。

理解應用系統

將應用系統的設計,以檔案形式(部件檔案間的關係)和呼叫圖的形式(函式和過程間的關係)視覺化。

函式的邏輯結構以控制流圖的形式顯示,在控制流圖上選定乙個節點,即可得到相對應的**。

應用系統可以在不同的抽象層上進行分析,不同層次間的導航關聯,促進對整體的理解。

對應用按其資源的使用進行檢測,由此促進對函式之間(引數傳遞)的資訊流、資料間的關係,以及其它資源的理解。

安全地修改軟體

維護軟體意味著修改軟體,修改後的程式確認需要大量的工作。因為,看起來很小的修改,都可能會滾雪球似的導致數十處甚至上百處的修改。這種後繼的修改需求,越早發現越好,最好是在編譯前就發現並做出修改,最壞的情況是在除錯和非回歸測試期間發現。

二、黑盒測試的實施方案

傳統系統的程式語言和邏輯全是過程式的。這種邏輯順序只有當資料中的值引起不同的迴圈或控制順序改變時才會發生變化。

客戶機/伺服器和圖形使用者介面系統不是過程式的。它們是事件驅動的。這意味著計算機針對發生的事件執行相應的程式。

這裡的事件是指使用者採取的行為,象鍵盤活動,滑鼠移動,滑鼠擊鍵動作和按鍵的動作,都是事件的例子。因為事件發生的順序不能預先知道,事件驅動系統相對來說更難測試。開發人員不可能知道使用者下一次要選中哪個按鈕或選單項。

實際上,應用程式必須在任何時候對所有發生和可能發生的事件作好正確處理的準備。

另外,隨著rad(快速應用開發方式)的引入,導致應用的實現速度很快,但這種方式也有它的不足。乙個重要的缺點是專案規劃經常漏掉重要的測試階段。測試象在傳統開發專案中一樣,經常被忽視,並且給予很不現實的少量時間和資源。

對於這一點,測試rad方式下提交的應用並保證軟體質量是測試團隊的首要工作。

黑盒測試在實施時又分為客戶端的測試和伺服器端的效能測試。客戶端的測試主要關注應用的業務邏輯,使用者介面,功能測試等;伺服器端的測試主要關注伺服器的效能,衡量系統的響應時間、事務處理速度和其他時間敏感的需求。在應用系統最終被交付之前保證這兩方面的測試沒有缺陷。

由於測試並不是進行一次就可以完成的個過程,而是需要根據產品版本的變化生成不同的測試過程,如果這一過程僅通過手工方式完成是很難達到的。需要通過工具的幫助,從而簡化測試的複雜程度,降低在測試成本上的開銷,縮短投放市場的時間。還有乙個突出的特點就是應用程式的回歸測試,這是手工方式完成不了的過程,只有通過工具才能實施。

而回歸測試在測試階段是很重要的過程,通過回歸測試可以發現很多隱含的缺陷和錯誤。

在伺服器端的測試主要以模擬合法使用者活動給系統的負載,負載測試的統計結果被用來**使用者將體驗到的效能和響應時間。這都需要在客戶機/伺服器系統發行之前都要進行的。

三、相關工具

在我們了解了測試所涉及的內容之後,測試方法和採用相對應的自動化測試工具是至關重要的。自動化的測試工具意味著在測試活動中減少相當部分開銷,真正的含義是它參加了測試的很大部分活動;同時,有些測試活動是靠手工方式難以實現,難以度量的。我們在對自動化的測試工具做成本效益分析時,應當考慮到專案的預期時間和人工消耗,一些測試用手工來做可能由幾個人需要幾個星期甚至更長時間來完成,而採用自動化的測試工具可能只需要幾個小時或者幾分鐘;象基於client-server的負載測試或者是基於web系統的測試如果要用手工測試來完成是很困難和不現實的。

所以,在測試活動中選擇自動化的測試工具是非常必要的。

下面我們就相應工具進行簡要的介紹。

1. 嵌入式軟體測試工具--logiscope

logiscope 是一組嵌入式軟體測試工具集。它貫穿於軟體開發、**評審、單元/整合測試、系統測試、以及軟體維護階段。它面向源**進行工作。

logiscope 針對編碼、測試和維護。因此,logiscope 的重點是幫助**評審(review )和動態覆蓋測試(testing )。

logiscope對軟體的分析,採用基於國際間使用的度量方法(halstead、mccabe等)的質量模型,以及從多家公司收集的程式設計規則集,可以從軟體的程式設計規則,靜態特徵和動態測試覆蓋等多個方面,量化地定義質量模型,並檢查、評估軟體質量。

logiscope 在開發階段,查詢可尋找潛在的錯誤。

在**評審階段,logiscope 定位那些具有80%錯誤的程式模組。

通過對未被測試**的定位,logiscope 幫助找到隱藏在未測試**中的缺陷。

專案領導和質量工程師用logiscope 定期地檢查整個軟體的質量。

在各個階段用logiscope ,改進軟體工程的實踐,訓練程式設計師的編寫良好的**和測試活動,確保系統易於維護,減少風險。

在有合同關係時,合同方可以用logiscope 明確定義驗收時質量等級和執行測試。承製方可以用logiscope 演示其軟體的質量。

logiscope 獲取iso/iec9126 定義的"quality characteristics ";

logiscope 為iso-9001提供需求(test acceptance criteria and qulity records );

logiscope 為開發者提供sei/cmm在第2 級(repeatable )所要求的軟體質量跟蹤等關鍵實踐的要求,推進開發組織盡快達到sei/smm 的3 級。

1)logiscope 用於開發階段

定義質量模型

rulechecker 預定義了50 個的程式設計規則:名稱約定(如:區域性變數用小寫等);表示約定(如:

每行一條指令); 限制(如:不能用goto 語句,不能修改迴圈體中的計數器等)。使用者可以從這些規則中選擇,也可以用tcl 、指令碼和程式語言定義新的規則。

此外,還提供50 個面向安全-關鍵系統的程式設計規則。

audit 以iso9126 模型作為質量評價模型的基礎。質量評價模型描述了從halstend 、mccabe 的度量方法學和verilog 引入的質量方法學中的質量因素(可維護性、可重用性、等)和質量準則(可測試性、可讀性、等)。

工程專案領導或質量管理人員可以根據準則、應用軟體的生存週期、合同需求等,挑選並採納適用於專案需求的質量模型。

驗證、評審和改進**

rulechecker 用所選的規則對源**進行驗證。指出所有不符合程式設計規則的**,並提出改進源**的解釋和建議。rulrchecker 通過文字編輯器直接訪問源**並指出需要糾正的位置。

audit 將被評價的軟體與規定的質量模型進行比較,用圖形形式顯示軟體質量的級別,因此,質量人員可以把精力集中到需要修改的**部分。對度量元素和質量模型不一致的地方作出解釋並提出糾正的方法。

2)logiscope 用於測試階段

定義測試準則

logiscope 推薦對指令(ib)、邏輯路徑(ddp)和呼叫路徑(ppp)的覆蓋測試。此外對安全-關鍵軟體還提供了mc/dc 的覆蓋測試。

測試的有效性

testchecker 產生每個測試的測試覆蓋資訊和累計資訊。用直方圖顯示覆蓋比率,並根據測試運**況實時**更改。隨時顯示新的測試所反映的測試覆蓋情況。

testchecker 允許所有的測試執行依據其有效性進行管理。使用者可以減少那些用於非回歸測試的測試。

測試的優化

在測試階段的第一步,執行的測試是功能性(黑箱)測試。其目的是檢查所期望的功能是否已實現。在測試初期,覆蓋率會迅速增加。

象樣的測試工作一般能達到70%的覆蓋率。但是,要提高此比率是十分困難的。主要是由於測試用例覆蓋了相同的測試路徑。

這時,需要對測試策略做一些改變。執行結構化(白箱)測試,即,要檢測沒有執行過的邏輯路徑,定義新的測試用例覆蓋這些路徑。

地層測試工具總結

常用地層測試工具 一 地層測試目的 地層測試又叫鑽桿測試,在國外稱為dst drill stem testing 它是指在鑽井過程中或完井之後對油氣層進行測試,獲得在動態條件下地層和流體的各種特性引數,從而及時準確地對地層作出評價。用這種方法進行試油,能直接獲得或計算出的地層和地層流體的引數有30項...

HDMI測試解決方案

hdmi測試解決方案 華夏蘋果 針對日益重要的hdmi測試市場,華夏蘋果一方面不斷完善自己的測試方案,同時也在不斷從測試角度向hdmi組織提出建設性的改進建議,以使得相容性測試規格 cts 更具代表性和權威性。目前,安捷倫已經為迎接最新的hdmi cts1.3標準,準備好了最完整測試解決方案,不僅包...

安全檢查測試工具制度

施工安全檢查 檢驗儀器 工具配備制度 編制 張 批准 關國強 施工安全檢查 檢驗儀器 工具配備制度 一 安全檢查 1 日常安全檢查。是按檢查制度規定的,每天都進行的,貫穿於生產過程的檢查。生產崗位的班組長和工人應嚴格履行交 檢查和班前 班中和班後巡迴檢查 非生產崗位的班組長和工人,應根據本崗位特點,...