周艷惠,錢 進(jìn)
(1.北京經(jīng)緯信息技術(shù)公司,北京 100081;2.中國鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081)
鐵路工程建設(shè)信息化具有需求的專業(yè)性、業(yè)務(wù)的復(fù)雜性、用戶的層次性以及軟件實(shí)現(xiàn)的多樣性等特點(diǎn),為保證鐵路工程建設(shè)信息化各軟件實(shí)現(xiàn)和穩(wěn)定運(yùn)行,作為軟件開發(fā)重要環(huán)節(jié)的軟件測試扮演著非常重要的角色。本文將結(jié)合鐵路工程建設(shè)信息化,對軟件測試方法進(jìn)行多方面的探索和總結(jié)。
鐵路工程建設(shè)信息化覆蓋專業(yè)面廣、涉及用戶多、數(shù)據(jù)量大。為保證軟件快速高效、安全平穩(wěn)地運(yùn)行,鐵路工程建設(shè)信息化軟件的測試目標(biāo)是在軟件上線前盡可能多地發(fā)現(xiàn)軟件中存在錯誤、冗余流程、不友好界面等,通過不斷修改軟件錯誤,保證最終軟件產(chǎn)品的質(zhì)量,保證用戶可快速入門操作軟件,提高用戶滿意度和使用效果,降低軟件存在風(fēng)險(xiǎn),降低軟件維護(hù)成本。
Web應(yīng)用作為鐵路工程建設(shè)信息化的主要實(shí)現(xiàn)方式,共劃分了綜合管理、過程控制、現(xiàn)場管理3大方面,以及服務(wù)平臺、知識平臺等輔助平臺。
2.1.1 功能測試
功能測試指測試軟件各個(gè)功能模塊是否正確,是否滿足用戶需求且符合正常業(yè)務(wù)邏輯等。功能測試以黑盒測試為主,根據(jù)需求說明書、需求規(guī)格說明書、設(shè)計(jì)文檔等,充分考慮每一個(gè)功能點(diǎn)的準(zhǔn)確性、可操作性以及可驗(yàn)證性,得到測試需求點(diǎn)。以等價(jià)類劃分法、邊界值分析法為主,場景法、因果圖法、判定表法、錯誤推斷法等為輔進(jìn)行測試用例設(shè)計(jì),經(jīng)過項(xiàng)目組評審后形成測試用例基線。
功能測試主要以手工測試為主,通過逐條執(zhí)行測試用例對分析所得的測試需求點(diǎn)進(jìn)行全面性、適合性、標(biāo)準(zhǔn)性的測試。在后期發(fā)現(xiàn)缺陷數(shù)目降低時(shí),借助第三人進(jìn)行冒煙測試、隨機(jī)測試,提高測試的準(zhǔn)確性。
2.1.2 性能測試
根據(jù)鐵路工程建設(shè)信息化軟件的特點(diǎn)和用戶分布情況,性能測試的重點(diǎn)集中在兩大方面:(1)保證高峰期用戶可正常登錄進(jìn)行相關(guān)操作;(2)匯總統(tǒng)計(jì)或同步大批量數(shù)據(jù)時(shí)用戶可正常訪問。
性能測試時(shí)采用Badboy+JMeter工具,對單業(yè)務(wù)場景和混合業(yè)務(wù)場景兩種模式分別從以上兩方面進(jìn)行驗(yàn)證。通過錄制場景,開發(fā)關(guān)鍵場景性能測試腳本,在執(zhí)行測試過程中觀察在高峰期時(shí)各業(yè)務(wù)的響應(yīng)時(shí)間、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的CPU占用情況、磁盤讀寫情況以及是否發(fā)生錯誤等,發(fā)現(xiàn)多處應(yīng)用和數(shù)據(jù)庫性能瓶頸。經(jīng)過分析與確認(rèn),開發(fā)團(tuán)隊(duì)對軟件應(yīng)用及數(shù)據(jù)庫進(jìn)行修復(fù)和調(diào)優(yōu),前期出現(xiàn)的高峰期用戶登錄時(shí)間長、登錄時(shí)服務(wù)無響應(yīng)、查看匯總數(shù)據(jù)頁面加載慢等情況得到有效改善。使用Badboy+JMeter進(jìn)行性能測試,如圖1所示。
圖1 使用Badboy+JMeter進(jìn)行性能測試
2.1.4 兼容性測試
Web應(yīng)用的用戶均采用瀏覽器進(jìn)行訪問,而用戶群體中基本采用Windows系統(tǒng),故兼容性測試重點(diǎn)關(guān)注瀏覽器兼容性。由于瀏覽器內(nèi)核不同、廠家不同、版本不同,軟件都會發(fā)生不同程度的兼容性問題,故通過現(xiàn)場用戶調(diào)查,結(jié)合市面主流瀏覽器以及軟件特性,確定了幾款重點(diǎn)測試的瀏覽器:360瀏覽器極速模式、IE9及以上。測試過程中,結(jié)合人工和自動化測試,針對同一功能在多個(gè)瀏覽器下進(jìn)行操作,確保功能正常,界面美觀。
2.1.5 回歸測試
回歸測試在測試過程中非常頻繁,為保證開發(fā)人員在修復(fù)缺陷時(shí)未引入新的缺陷,測試人員必須經(jīng)常性的回歸軟件大部分功能。若這部分工作全部采用手工測試,會產(chǎn)生大量的重復(fù)性工作,浪費(fèi)人力且效率低。故在回歸測試中,針對穩(wěn)定功能多以自動化測試為主,人工測試為輔,提高效率,保證測試用例的覆蓋率。自動化測試采用“Selenium+TestNG”框架,用Excel管理測試數(shù)據(jù)方便測試數(shù)據(jù)的修改,使得測試數(shù)據(jù)和測試行為實(shí)現(xiàn)分離管理。
隨著智能手機(jī)和移動互聯(lián)網(wǎng)的發(fā)展,移動端應(yīng)用在鐵路工程建設(shè)信息化中占有越來越重要的地位,特別是現(xiàn)場管理方面。
2.2.1 功能測試
移動端應(yīng)用的功能測試思路、方法與Web應(yīng)用基本一致,不同的是在設(shè)計(jì)測試用例時(shí)要考慮更多方面的隱性需求,如安裝卸載、應(yīng)用被電話打斷、應(yīng)用進(jìn)程被殺掉等。
2.2.2 專項(xiàng)測試
專項(xiàng)測試是移動端應(yīng)用特有的測試,包括:流暢度、CPU占用百分比、內(nèi)存占用、流量消耗、弱網(wǎng)、耗電量等方面。它和以往的功能測試有很大差別,不能只是按著一定的操作步驟來判斷結(jié)果的對錯,這對測試人員來說是一個(gè)不小的挑戰(zhàn)。在測試過程中,借助后臺監(jiān)控和第三方工具來獲取結(jié)果,再結(jié)合用戶反饋進(jìn)行分析和調(diào)優(yōu)。
2.2.3 兼容性測試
移動端應(yīng)用的兼容性測試比較復(fù)雜,需要重點(diǎn)
2.1.3 安全測試
安全測試因操作困難、缺陷探測率相對較低而備受測試領(lǐng)域關(guān)注。鐵路工程建設(shè)信息化軟件涉及用戶量大、業(yè)務(wù)數(shù)據(jù)多,安全性相當(dāng)重要。在實(shí)際測試中,我們采用工具測試和手工測試相結(jié)合,先采用工具進(jìn)行自動化探測系統(tǒng)漏洞,然后針對漏洞進(jìn)行人工分析和確認(rèn),系統(tǒng)安全漏洞大多集中在SQL盲注、SQL注入、跨站腳本編制等方面,這也為后續(xù)開發(fā)工作提供了防范思路??紤]的因素包括操作系統(tǒng)版本和分辨率、廠商等。目前,鐵路工程信息化的移動端采用的操作系統(tǒng)多為安卓系統(tǒng),操作系統(tǒng)版本除考慮安卓原生系統(tǒng)版本外,還需考慮各廠商基于安卓深度開發(fā)的系統(tǒng),分辨率更是多種多樣。對于兼容性測試,想窮舉是不可能的,故在測試過程中,采用模擬器、云測平臺及主流真機(jī)相結(jié)合進(jìn)行測試來保證移動端應(yīng)用的兼容性,確保功能可正常使用,界面可正常查看。使用云測平臺進(jìn)行兼容性測試,如圖2所示。
圖2 使用云測平臺進(jìn)行兼容性測試
鐵路工程建設(shè)信息化是一個(gè)集成平臺,各軟件通過接口進(jìn)行數(shù)據(jù)交互、數(shù)據(jù)共享,接口測試是鐵路工程建設(shè)信息化軟件測試中非常重要的一部分。
2.3.1 功能測試
接口功能測試是確保接口功能實(shí)現(xiàn)正確,當(dāng)其他軟件進(jìn)行調(diào)用接口結(jié)合測試時(shí),能夠排除接口缺陷所導(dǎo)致的問題,便于開發(fā)人員定位問題。測試用例設(shè)計(jì)與Web應(yīng)用設(shè)計(jì)方法基本一致。接口實(shí)現(xiàn)基本采用WebService的Soap或Rest方式,在測試中選用SoapUI測試工具進(jìn)行輔助測試,在SoapUI中增加對應(yīng)的測試用例,方便測試工作管理,提高工作效率。使用SoapUI進(jìn)行接口功能測試,如圖3所示。
2.3.2 性能測試
接口性能測試是保證大批量請求接口時(shí),接口可正常且準(zhǔn)確的響應(yīng)請求。當(dāng)接口不響應(yīng)時(shí),將導(dǎo)致調(diào)用本接口的軟件部分甚至全部功能無法使用,接口性能測試非常重要,特別是業(yè)務(wù)邏輯中重要的接口以及調(diào)用頻繁的接口。針對這部分接口,采用Jmeter工具對其進(jìn)行負(fù)載測試和壓力測試,發(fā)現(xiàn)和定位性能瓶頸。
圖3 使用SoapUI進(jìn)行接口功能測試
隨著互聯(lián)網(wǎng)的快速發(fā)展,鐵路工程建設(shè)信息化程度越來越高,要想軟件更完美更好地為鐵路工程建設(shè)服務(wù),就需要做好軟件測試工作,提高軟件質(zhì)量,讓用戶滿意。本文結(jié)合鐵路工程建設(shè)信息化軟件的測試實(shí)踐總結(jié)了測試的常用手段,我們需要繼續(xù)不斷探索、不斷革新軟件測試的方法,努力實(shí)踐,總結(jié)經(jīng)驗(yàn)。
[1]王同軍. 基于BIM的鐵路工程管理平臺建設(shè)與展望[J]. 鐵路技術(shù)創(chuàng)新,2015(3):8-13.
[2]王萬齊. 鐵路工程管理基礎(chǔ)平臺方案設(shè)計(jì)研究[J]. 鐵路技術(shù)創(chuàng)新,2016(3):18-20.
[3]陳 亮. 鐵路工程建設(shè)期信息化建設(shè)探討[J]. 鐵路技術(shù)創(chuàng)新,2016(3):23-26.
[4]王 江. 鐵路工程建設(shè)信息化管理研究[J]. 交通建設(shè)與管理,2014(10):169-171.
[5]徐曉磊,沈海燕,盧文龍,等. 鐵路工程建設(shè)施工組織信息化的研究[C]//第十一屆中國智能交通年會,2016.
[6]徐曉磊,解亞龍,鮑 榴,等. 基于Flex的施工組織形象進(jìn)度圖的設(shè)計(jì)與開發(fā)[J]. 鐵路計(jì)算機(jī)應(yīng)用,2017,26(3):26-29.
[7]劉支援,郭永振. 軟件測試架構(gòu)淺析[J]. 電子科學(xué)技術(shù),2015,2(4):460-464.
[8]李天翼. 12306互聯(lián)網(wǎng)售票系統(tǒng)測試的實(shí)現(xiàn)[J]. 鐵路計(jì)算機(jī)應(yīng)用,2016,25(10):27-30.
[9]于園園. 軟件測試技術(shù)與測試管理研究[J]. 江蘇科技信息,2016(7):66-68.