周艷惠,錢 進
(1.北京經緯信息技術公司,北京 100081;2.中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081)
鐵路工程建設信息化具有需求的專業性、業務的復雜性、用戶的層次性以及軟件實現的多樣性等特點,為保證鐵路工程建設信息化各軟件實現和穩定運行,作為軟件開發重要環節的軟件測試扮演著非常重要的角色。本文將結合鐵路工程建設信息化,對軟件測試方法進行多方面的探索和總結。
鐵路工程建設信息化覆蓋專業面廣、涉及用戶多、數據量大。為保證軟件快速高效、安全平穩地運行,鐵路工程建設信息化軟件的測試目標是在軟件上線前盡可能多地發現軟件中存在錯誤、冗余流程、不友好界面等,通過不斷修改軟件錯誤,保證最終軟件產品的質量,保證用戶可快速入門操作軟件,提高用戶滿意度和使用效果,降低軟件存在風險,降低軟件維護成本。
Web應用作為鐵路工程建設信息化的主要實現方式,共劃分了綜合管理、過程控制、現場管理3大方面,以及服務平臺、知識平臺等輔助平臺。
2.1.1 功能測試
功能測試指測試軟件各個功能模塊是否正確,是否滿足用戶需求且符合正常業務邏輯等。功能測試以黑盒測試為主,根據需求說明書、需求規格說明書、設計文檔等,充分考慮每一個功能點的準確性、可操作性以及可驗證性,得到測試需求點。以等價類劃分法、邊界值分析法為主,場景法、因果圖法、判定表法、錯誤推斷法等為輔進行測試用例設計,經過項目組評審后形成測試用例基線。
功能測試主要以手工測試為主,通過逐條執行測試用例對分析所得的測試需求點進行全面性、適合性、標準性的測試。在后期發現缺陷數目降低時,借助第三人進行冒煙測試、隨機測試,提高測試的準確性。
2.1.2 性能測試
根據鐵路工程建設信息化軟件的特點和用戶分布情況,性能測試的重點集中在兩大方面:(1)保證高峰期用戶可正常登錄進行相關操作;(2)匯總統計或同步大批量數據時用戶可正常訪問。
性能測試時采用Badboy+JMeter工具,對單業務場景和混合業務場景兩種模式分別從以上兩方面進行驗證。通過錄制場景,開發關鍵場景性能測試腳本,在執行測試過程中觀察在高峰期時各業務的響應時間、應用服務器和數據庫服務器的CPU占用情況、磁盤讀寫情況以及是否發生錯誤等,發現多處應用和數據庫性能瓶頸。經過分析與確認,開發團隊對軟件應用及數據庫進行修復和調優,前期出現的高峰期用戶登錄時間長、登錄時服務無響應、查看匯總數據頁面加載慢等情況得到有效改善。使用Badboy+JMeter進行性能測試,如圖1所示。

圖1 使用Badboy+JMeter進行性能測試
2.1.4 兼容性測試
Web應用的用戶均采用瀏覽器進行訪問,而用戶群體中基本采用Windows系統,故兼容性測試重點關注瀏覽器兼容性。由于瀏覽器內核不同、廠家不同、版本不同,軟件都會發生不同程度的兼容性問題,故通過現場用戶調查,結合市面主流瀏覽器以及軟件特性,確定了幾款重點測試的瀏覽器:360瀏覽器極速模式、IE9及以上。測試過程中,結合人工和自動化測試,針對同一功能在多個瀏覽器下進行操作,確保功能正常,界面美觀。
2.1.5 回歸測試
回歸測試在測試過程中非常頻繁,為保證開發人員在修復缺陷時未引入新的缺陷,測試人員必須經常性的回歸軟件大部分功能。若這部分工作全部采用手工測試,會產生大量的重復性工作,浪費人力且效率低。故在回歸測試中,針對穩定功能多以自動化測試為主,人工測試為輔,提高效率,保證測試用例的覆蓋率。自動化測試采用“Selenium+TestNG”框架,用Excel管理測試數據方便測試數據的修改,使得測試數據和測試行為實現分離管理。
隨著智能手機和移動互聯網的發展,移動端應用在鐵路工程建設信息化中占有越來越重要的地位,特別是現場管理方面。
2.2.1 功能測試
移動端應用的功能測試思路、方法與Web應用基本一致,不同的是在設計測試用例時要考慮更多方面的隱性需求,如安裝卸載、應用被電話打斷、應用進程被殺掉等。
2.2.2 專項測試
專項測試是移動端應用特有的測試,包括:流暢度、CPU占用百分比、內存占用、流量消耗、弱網、耗電量等方面。它和以往的功能測試有很大差別,不能只是按著一定的操作步驟來判斷結果的對錯,這對測試人員來說是一個不小的挑戰。在測試過程中,借助后臺監控和第三方工具來獲取結果,再結合用戶反饋進行分析和調優。
2.2.3 兼容性測試
移動端應用的兼容性測試比較復雜,需要重點
2.1.3 安全測試
安全測試因操作困難、缺陷探測率相對較低而備受測試領域關注。鐵路工程建設信息化軟件涉及用戶量大、業務數據多,安全性相當重要。在實際測試中,我們采用工具測試和手工測試相結合,先采用工具進行自動化探測系統漏洞,然后針對漏洞進行人工分析和確認,系統安全漏洞大多集中在SQL盲注、SQL注入、跨站腳本編制等方面,這也為后續開發工作提供了防范思路。考慮的因素包括操作系統版本和分辨率、廠商等。目前,鐵路工程信息化的移動端采用的操作系統多為安卓系統,操作系統版本除考慮安卓原生系統版本外,還需考慮各廠商基于安卓深度開發的系統,分辨率更是多種多樣。對于兼容性測試,想窮舉是不可能的,故在測試過程中,采用模擬器、云測平臺及主流真機相結合進行測試來保證移動端應用的兼容性,確保功能可正常使用,界面可正常查看。使用云測平臺進行兼容性測試,如圖2所示。

圖2 使用云測平臺進行兼容性測試
鐵路工程建設信息化是一個集成平臺,各軟件通過接口進行數據交互、數據共享,接口測試是鐵路工程建設信息化軟件測試中非常重要的一部分。
2.3.1 功能測試
接口功能測試是確保接口功能實現正確,當其他軟件進行調用接口結合測試時,能夠排除接口缺陷所導致的問題,便于開發人員定位問題。測試用例設計與Web應用設計方法基本一致。接口實現基本采用WebService的Soap或Rest方式,在測試中選用SoapUI測試工具進行輔助測試,在SoapUI中增加對應的測試用例,方便測試工作管理,提高工作效率。使用SoapUI進行接口功能測試,如圖3所示。
2.3.2 性能測試
接口性能測試是保證大批量請求接口時,接口可正常且準確的響應請求。當接口不響應時,將導致調用本接口的軟件部分甚至全部功能無法使用,接口性能測試非常重要,特別是業務邏輯中重要的接口以及調用頻繁的接口。針對這部分接口,采用Jmeter工具對其進行負載測試和壓力測試,發現和定位性能瓶頸。

圖3 使用SoapUI進行接口功能測試
隨著互聯網的快速發展,鐵路工程建設信息化程度越來越高,要想軟件更完美更好地為鐵路工程建設服務,就需要做好軟件測試工作,提高軟件質量,讓用戶滿意。本文結合鐵路工程建設信息化軟件的測試實踐總結了測試的常用手段,我們需要繼續不斷探索、不斷革新軟件測試的方法,努力實踐,總結經驗。
[1]王同軍. 基于BIM的鐵路工程管理平臺建設與展望[J]. 鐵路技術創新,2015(3):8-13.
[2]王萬齊. 鐵路工程管理基礎平臺方案設計研究[J]. 鐵路技術創新,2016(3):18-20.
[3]陳 亮. 鐵路工程建設期信息化建設探討[J]. 鐵路技術創新,2016(3):23-26.
[4]王 江. 鐵路工程建設信息化管理研究[J]. 交通建設與管理,2014(10):169-171.
[5]徐曉磊,沈海燕,盧文龍,等. 鐵路工程建設施工組織信息化的研究[C]//第十一屆中國智能交通年會,2016.
[6]徐曉磊,解亞龍,鮑 榴,等. 基于Flex的施工組織形象進度圖的設計與開發[J]. 鐵路計算機應用,2017,26(3):26-29.
[7]劉支援,郭永振. 軟件測試架構淺析[J]. 電子科學技術,2015,2(4):460-464.
[8]李天翼. 12306互聯網售票系統測試的實現[J]. 鐵路計算機應用,2016,25(10):27-30.
[9]于園園. 軟件測試技術與測試管理研究[J]. 江蘇科技信息,2016(7):66-68.