楊德成, 李利平, 薛振偉
(中國工程物理研究院計算機應用研究所,四川綿陽621900)
能力驗證是利用實驗室間比對來判定實驗室能力的活動。中國合格評定國家認可委員會(CNAS)根據國際實驗室認可合作組織(ILAC)、亞太實驗室認可合作組織(APLAC)相關要求制定了能力驗證政策和要求,組織開展能力驗證活動并參加國際能力驗證計劃[1-2]。
能力驗證有助于檢驗各實驗室對相應領域基本技術的掌握能力,提高相應領域檢測結果的準確性和可比性,為相應領域的實驗室管理和認可提供技術依據[1-3]。實驗室可以通過利用能力驗證這種外部質量保證(EQA)工具,識別與同行機構之間的差異,補充其內部質量控制技術,為自身的持續改進和質量管理提供信息[1-4]。實驗室的用戶、監督和管理機構、評價機構等可以利用CNAS能力驗證結果,判斷實驗室是否具有從事檢測活動的能力[5-6]。
到目前為止,在軟件測試領域,CNAS開展過效率測試、功能性測試及易用性測試能力驗證活動。
軟件效率測試能力驗證由CNAS組織,國家應用軟件產品質量監督檢驗中心負責具體實施,共有48家軟件測試實驗室參加。本次能力驗證的軟件效率測試是基于軟件需求的效率測試,依據的標準是 GB/T 17544-1998信息技術 軟件包 質量要求和測試,所有測試過程的文檔格式由各參加實驗室自定。
軟件效率測試的目的在于檢測軟件系統是否滿足用戶的效率指標,發現在滿足用戶需求的條件下可能存在的效率瓶頸和其它效率問題[7-10]。軟件效率測試主要包含以下幾個方面的工作[11-14]:
(1)對系統的效率做量化的綜合評估;
(2)發現系統可能存在的效率瓶頸;
(3)對系統可能出現的效率故障分析定位;
(4)為系統資源優化提供參考;
(5)評估系統的可擴展性。
樣品軟件是一個網站稿件管理發布系統,有稿件管理和文檔上傳下載2個功能,系統采用B/S架構,客戶端用戶使用IE瀏覽器即可登錄并使用系統。樣品軟件是一個獨立封裝的自解壓運行的數據包,按照用戶手冊的說明,在滿足軟件測試環境要求的服務器上進行軟件的安裝和啟動,不需要另行安裝中間件和數據庫環境。安裝完成以后,測試數據(5 309篇稿件、2個各包含1篇文檔的文件夾。)已經加載到系統。在簡單的局域網環境下,在當前數據量級下,執行本次效率測試。
本次能力驗證樣品軟件功能劃分如圖1所示。

圖1 樣品軟件功能劃分圖
1.2.1 效率要求
樣品軟件應用于局域網環境,并要滿足以下效率要求:
(1)主要單點操作在5 s內完成;
(2)系統支持50人在線;
(3)稿件管理的主要功能至少支持20人并發訪問;
(4)上傳512 kB大小文檔,速度達到20篇/min;(5)系統可以連續穩定運行12 h。
注:單點操作指單用戶對單一功能點的操作;主要功能指能夠體現系統效率特征的操作。
1.2.2 運行環境規定
樣品軟件是采用J2EE架構開發的B/S系統,運行環境如下。
(1)硬件要求。服務器:CPU主頻1 GHz以上,內存1 GB以上,硬盤自由空間在1 GB以上。
(2)支持軟件。服務器:操作系統為Windows2003 Server或Windows XP;
瀏覽器:IE6+sp2;
數據庫:MySQL-5.1.28;
中間件:Tomcat6.0;
應用軟件:Liferay Portal 5.1.1、JDK1.6.0_07。
(3)客戶端。
操作系統:Microsoft WindowsXP SP2;
瀏覽器:IE6+sp2;
Word版本為office 2000或office XP或office 2003。
(4)用戶接口。軟件為B/S架構,用戶使用IE瀏覽器即可登錄并訪問系統。
準確理解需求是做好軟件測試工作的基礎[15],在分析軟件效率需求時,需要結合軟件需求規格說明書和用戶手冊一起分析研究。相對而言,用戶手冊往往能提供更加詳盡的信息,對功能的描述比需求規格說明書對功能的描述要更加明確和詳細。
以“增加稿件”功能為例,軟件需求規格說明書描述如下:
(1)應能逐條增加稿件。
(2)一條完整的稿件信息包括稿件的編號、狀態、標題和內容。
(3)編號由系統自動生成,不需要用戶輸入。增加稿件時,只須輸入稿件標題和稿件內容,點擊保存即可。
用戶手冊對“增加稿件”實際描述了4種不同的業務操作方式,要考慮到不同的業務操作方式的效率表現可能有明顯的差異。
用戶手冊對“增加稿件”功能描述如下:
在稿件管理頁面點擊“增加稿件”按鈕后進入稿件編輯頁面。輸入稿件的標題和內容,其中稿件標題的長度要求在50個中文字符以內,然后點擊“保存并返回”按鈕可保存稿件并返回稿件管理頁面;點擊“保存”按鈕后,保存稿件并停留在稿件編輯頁面;點擊“批準”,保存稿件且稿件狀態變更為批準狀態,返回稿件管理頁面;點擊“取消”,不保存稿件并退出稿件編輯頁面,返回稿件管理頁面。實際測試結果見表1。
針對主要單點操作在5 s內完成的效率需求,我們在測試方案中整理出了主要單點操作,優先分析選擇最有可能影響效率的操作。以參加技術考試的心態,對所有單點操作都做了效率測試,包含涉及數據量非常少的文檔管理相關的操作。
2.2.1 測試要求
在測試計劃中明確提出了如下要求:

表1 對“增加稿件”單點操作能否在5 s內完成的測試結果
(1)每個測試用例開始執行前要保證數據容量為待測樣品的初始狀態,即:稿件5 309篇、2個各含1篇文檔的文件夾。
(2)每個測試用例開始執行前,要保證相關操作的Java組件執行過一次。
(3)對測試工具不能錄制的客戶端操作要手工執行測試并記錄系統響應時間。
(4)對單用戶單點操作,要針對不同的數據至少測試5次,取多次完成時間的平均值。
2.2.2 測試方案和測試用例
測試用例中的業務操作以樣品軟件用戶手冊為準,針對每一個需求條目單獨設計測試用例和執行測試[16-17]。
考慮到本次測試的具體要求和待測軟件的實際情況,用例設計時采用以下策略及順序:
(1)先做基準測試(單用戶測試);
(2)對單用戶單點操作,取單用戶對不同數據5次迭代運行的系統平均響應時間;
(3)再做20用戶并發測試;
(4)最后做穩定性測試。
在測試方案中重點提出了當測試涉及到查詢操作時,要注意消除各級緩存給效率測試帶來的影響。
以稿件查詢為例,無論是基本查詢還是高級查詢,無論是有條件查詢還是無條件查詢,只要本次查詢條件或查詢出的結果與前一次不同,單用戶稿件查詢的響應時間都超過5 s。
能力驗證活動結束后,發現另一家實驗室的測試結果[18]如表2所示,可以看出第一次測試沒有考慮緩存給效率測試結果帶來的影響。

表2 另一家實驗室的測試結果
2.2.3 對測試工具不能解決的問題的處理
當測試文檔上傳下載操作的系統響應時間性能時,目前主流的性能測試工具都不能錄制客戶端的動作,如果實際的業務操作是在向服務器發起請求之前或之后需要在客戶端進行一定處理,用工具測試出的性能可能會失真,此時就不能完全依賴測試工具,需要結合測試工具和人工計時一起來完成。
我們在測試報告中給出的簡要測試結論如下:
(1)除稿件查詢、批準稿件、稿件到期和刪除、文檔上傳外,其它主要單點操作能在5 s鐘內完成。
(2)系統能支持50人在線。
(3)稿件管理的主要功能能支持20人并發訪問,但批準稿件、稿件到期和刪除功能當20人并發訪問時系統響應時間較長(超過15 s)。
(4)20并發用戶各自上傳1篇512KB大小文檔,時間不超過1 min。但當單用戶連續手工上傳20篇(512 KB/篇)文檔,時間將超過1 min。
(5)系統可以連續穩定運行12 hr。
參加本次能力驗證活動的48家軟件測試實驗室來自全國19個省、市,業務領域覆蓋了通信、電子、交通、航天航空、金融、醫學、軍事、教育、電子政務等。本次能力驗證未對測試結果做精度比對,考核的重點是:對測試需求理解的全面性,測試方案的完整性,測試執行的正確性和測試報告的完整性。通過對返回的效率測試結果進行評分來衡量各實驗室的能力,最終給出能力評價報告。
本次軟件效率測試能力驗證結果的判定原則為:效率測試結果應完整體現樣品軟件需求規格說明書中規定的5項效率要求,正確給出一項測試結果記20分,合計100分;另外分別在測試報告、測試計劃、用例設計和原始記錄文檔中針對5項效率要求給出完整描述的各記5分,合計25分,最后的總滿分為125分。作者所在的軟件測試實驗室與另外5家實驗室一起以各項考核指標均為滿分的優異成績成為并列第一。
軟件效率測試是軟件測試的重要組成部分,通過參加本次軟件效率測試能力驗證活動,我們得到以下幾點比較突出的啟示:
(1)參加軟件效率測試能力驗證活動有助于檢驗軟件測試實驗室對軟件效率測試基本技術的掌握能力,了解國內同行的技術水平、認識差距、提高實驗室技術能力;
(2)本次軟件效率測試能力驗證活動未對測試結果做精度比對,與傳統行業產品檢測相比,還沒有達到完全成熟的狀態;
(3)對軟件效率測試結果是否能在軟件測試實驗室間開展比對,有些專家還存在疑議。
[1] 中國合格評定國家認可委員會.能力驗證簡介[EB/OL].[2012-09-21].http://219.238.178.49/PT.
[2] 宋桂蘭,翟培軍.十年磨一劍 我國能力驗證工作進入新階段[J].中國計量,2010(12):39-41.
[3] 陳 進.能力驗證在實驗室管理中的應用初探[J].上海標準化,2009(3):33-34.
[4] 劉付建.淺析能力驗證在實驗室能力建設的應用[J].現代測量與實驗室管理,2010(5):60-62.
[5] 張樹敏,葛曼麗.能力驗證是保障實驗室檢測能力的重要手段[J].現代測量與實驗室管理,2007(5):59-60.
[6] 劉 暢,陳爻熙.信息技術檢測領域實驗室認可評審工作的點滴體會[J].現代測量與實驗室管理,2010(5):60-62.
[7] 柳純錄,黃子河,陳淥萍.軟件評測師教程[M].北京:清華大學出版社,2005.
[8] 朱 鴻,金凌紫.軟件質量保障與測試[M].北京:科學出版社,1997.
[9] 朱少民.全程軟件測試[M].北京:電子工業出版社,2007.
[10] 趙 斌.軟件測試技術經典教程[M].北京:科學出版社,2007.
[11] 陳紹英,夏海濤,金成姬.Web性能測試實戰[M].北京:電子工業出版社,2006.
[12] 姜 艷,于 波.LoadRunner性能測試應用[M].北京:電子工業出版社,2009.
[13] 柳 勝.性能測試從零開始—LoadRunner入門[M].北京:電子工業出版社,2008.
[14] 于 涌.軟件性能測試與LoadRunner實戰[M].北京:人民郵電出版社,2008.
[15] 左家平,張海濤,宋紅波.應用軟件效率測試策略設計剖析[J].監督與選擇,2006(6):68-69.
[16] 任 穎,李華偉,張 杰.基于故障樹分析法的軟件測試技術[J].實驗室研究與探索,2011,30(8):78-80.
[17] 王 欣.軟件檢測實驗室能力驗證方案研究[J].信息技術與標準化,2008(7):68-70.
[18] 陳 江.軟件效率測試與分析[J].福建質量管理.2009(3):48-50.