李淼



摘要:隨著我國地理信息產業的蓬勃發展,各行業空間數據的數據量和復雜度迅猛提高,數據質量的好壞關系到國計民生,地理信息質檢軟件則為數據的正確性和可靠性提供了有力的保障。地理信息質檢系統的質量優劣對于全面檢查、評價和保障測繪行業數據產品質量等方面意義重大。軟件測試是保障軟件質量的重要手段,文章以地理信息質檢軟件為研究對象,主要研究針對空間數據、功能模塊和業務流程的黑盒測試方法,以及針對穩定架構的自動化測試方法。
關鍵詞:地理信息 質檢系統 黑盒測試 穩定架構 自動化測試
中圖分類號:X832 文獻標識碼:A 文章編號:1672-3791(2016)04(a)-0013-03
近年來,我國地理信息產業蓬勃發展,規模迅猛增長,地理信息服務已經貫穿于國民經濟和社會發展的各個方面,在國土資源、環境保護、交通運輸、農林水利、公共應急等領域,地理信息已經成為必不可少的信息資源支撐。在這一發展趨勢下,各行業空間數據日趨復雜,數據增長迅速,地理信息產業對各行業應用數據的精度和可靠性提出了更高的要求,人們對地理信息質檢軟件的使用和依賴程度業越來越深。隨著地理信息質檢軟件規模不斷擴大,功能不斷增加,智能程度和復雜程度不斷提高,使得軟件質量更加難以保障,提高軟件質量成為質檢業務領域的重要任務。
地理信息質檢軟件是地理信息數據質量保障的軟件,軟件的可靠性尤為重要。該文結合地理國情質檢軟件,依據地理信息質檢軟件的特點,研究其測試的方法、流程和要點。
1.地理信息質檢軟件測試概述
1.1軟件測試定義
IEEE軟件測試定義為:使用人工和自動手段來運行或測試某個系統的過程,其目的在于檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差異。簡單的說,軟件測試是指為評價軟件質量而展開的活動。
地理信息質檢軟件測試是使用人工或自動手段來測定評價質檢軟件的過程,其目的在于檢驗系統是否能檢查并定位數據錯誤,是否能評價和輸出統計結果。地理信息質檢軟件測試有周期,測試從需求開始,并貫穿整個開發過程,結合多種測試方法設計測試用例,保證軟件質量,從而提高軟件的可靠性。
1.2軟件測試流程
根據不同的測試階段,測試可以分為單元測試、集成測試、系統測試。體現了測試由小到大、又內至外、循序漸進的測試過程和分而治之的思想。
單元測試的粒度最小,一般由開發小組采用白盒方式來測試,主要測試單元是否符合“設計”。集成測試界于單元測試和系統測試之間,起到“橋梁作用”,一般由開發小組采用白盒加黑盒的方式來測試,既驗證“設計”,又驗證“需求”。系統測試的粒度最大,一般由獨立測試小組采用黑盒方式來測試,主要測試系統是否符合“需求規格說明書”,該文主要針對地理信息質檢軟件的系統測試方法進行研究(見圖1)。
2.地理信息質檢軟件特點分析
(1)空間數據源多樣性,數據量一般較大,元素較多,且數據結構也相對復雜,質檢軟件支持DLG(PGDB和FGDB)、DOM(TIFF)、DEM(GRID)多種數據格式。
(2)圖形屬性結合性,地理信息數據不僅表達空間實體的位置和幾何形狀,同時也記錄空間實體對應的屬性,這決定了GIS數據包含圖形數據和屬性數據兩部分,屬性數據放在關系數據庫中,圖形數據放在圖形文件中,質檢軟件支持圖形和屬性的檢查。
(3)拓撲檢查規則通用性,市場上各類地理信息質檢軟件或商業平臺拓撲檢查規則具有通用性,質檢結果應保持一致。
(4)方案檢查自動性,質檢軟件基于“規則檢查項方案質檢評價”的體系結構,同時通過質量數據庫對檢查結果進行管理,內部接口主要是與底層的規則庫以及質量數據庫之間的接口,實現基于方案的自動化檢查。
3.地理信息質檢軟件測試方法
3.1測試方法分析
從是否關心軟件內部結構和具體實現的角度劃分,可分為黑盒測試和白盒測試;從執行測試時軟件運行狀態劃分,可分為靜態測試和動態測試;從測試時采用的工具劃分,可分為自動化測試和手工測試。在測試的時候,按照具體測試范圍、目的和過程會采用不同的測試方法,甚至完成一個軟件的測試需要將多種方法結合使用,才能達到最好的測試效果。
地理信息質檢軟件是跟地理信息數據生產強相關的軟件,從方案制作到錯誤檢查再到質量評價,完整的體現了質檢流程,因此,對于地理信息質檢軟件的測試應采用模擬運行測試方法,在真實或者模擬環境下運行系統,從而測定各項功能指標和綜合處理能力,采用專項功能和系統綜合測試相結合的方式,先在系統開發階段針對需求文檔或設計文檔對功能模塊進行專項測試,集成階段針對整個地理信息數據質檢流程來運行整個軟件系統,從而得出系統總體的質量水平。這是一種比較直接和全面的測試方法,測試的結果較準確和可靠,適用于流程性強、專用性強的應用型軟件。因此,針對地理信息質檢軟件的特點和圖形系統的具體業務要求,經常采用以下3種測試策略。
(1)針對空間數據的黑盒測試。
由于地理信息數據結構復雜,數據量巨大,所以數據生產人員在處理數據過程中難免有錯誤發生,這就需要測試人員在針對空間數據進行質檢軟件測試時要對地理信息數據復雜的拓撲結構和屬性結構進行設計,并設計地理信息數據的相互幾何關系,試圖發現軟件底層隱藏的問題。
(2)針對質檢業務流程的黑盒測試。
地理信息質檢軟件要求測試人員熟悉地理信息質檢業務,包括質檢方案制作、自動檢查、人工檢查、評價方案制作、質量評價,不但要測試驗證正確的質檢業務流程,也要設計異常事件流來驗證質檢軟件的魯棒性。
(3)針對穩定架構的自動測試。
當系統架構、接口穩定時,可以進行自動化測試,提高測試效率,減小測試成本。
3.2針對空間數據的黑盒測試
地理信息,是與空間數據分不開的,因此,需要針對地理信息數據的質量評價特眭進行測試驗證。
(1)空間數據屬性測試。
對數據方案中圖層結構、屬性結構進行編輯功能正確性的測試,對屬性檢查功能進行驗證。采用的測試方法是對圖層名和圖層屬性字段進行新增、刪除和修改的反復操作,對已定義屬性字段類型的屬性值進行非法輸入,驗證軟件的正確性、魯棒性和穩定性;重點對質檢系統的屬性字段中的枚舉值、必填值、默認值檢查功能進行驗證測試,驗證屬性值的符合情況。
(2)空間數據類型測試。
對于點、線、面三種類型空間數據的顯示、查詢、定位,驗證其功能正確性,對系統所支持的多種數據格式進行測試,對不同數據格式的數據方案獲取和質量檢查功能進行驗證。
(3)拓撲錯誤類型測試。
對于點、線、面之間的拓撲關系進行檢查正確性的測試,包括重疊點檢查、線重疊檢查、懸掛點檢查、線自相交/打折檢查、同一圖層中面重疊檢查、不同圖層面重疊檢查、多邊形縫隙檢查、線穿越面檢查等,以及其他點、線、面之間的關系檢查,在對拓撲類檢查功能進行測試時應重點關注緩沖區功能、空間查詢定位功能。圖2為幾種常見的拓撲錯誤。
(4)多元地理信息數據聯合質檢算法測試。
地理信息質檢軟件提供DLG和DEM成果聯合質檢的技術,因此我們在開展聯合質檢算法測試的時候,需要通過以下測試方法對軟件正確性進行驗證:通過等高線、高程點與DEM之間高差對比,檢查等高線的合理性;通過DLG數據獲取水面范圍,檢查DEM水面高程是否置平。
3.3針對質檢流程的黑盒測試
地理信息質檢軟件基于“規則-檢查項-方案-質檢-評價”的體系結構,完整實現地理信息數據從檢查到評分的全過程,這里將結合質檢業務主要說明正常事件流和異常事件流的測試過程(見表1,表2)。
3.4針對穩定架構的自動測試
在如何提高測試效率方面進行考慮,筆者在系統架構基本穩定的時候進行自動化測試,將若干個測試用例用測試用例管理器進行打包管理,在不占用人工的情況下批量執行,可以大幅度提高測試效率,從而節省測試成本。
考慮到測試數據的保密性、復用性及存儲空間的高利用率,規定如下:自動化測試數據不單獨再占用機器,盡可能使用現有數據服務器中的測試數據;為了保持自動化測試數據的一致性;不修改、破壞原始數據的用例可直接使用現有的測試數據;要修改破壞原始數據的測試案例,在開發自動化測試代碼時需要拷貝一份數據來單獨執行,執行完成后刪除;新增的自動化測試數據按照功能模塊上傳到測試數據服務器相應的目錄中。
由于地理信息質檢軟件主要輸入對象是數據和參數,因此采用“數據/參數驅動思想”來設計測試用例,用Excel測試用例文檔作為測試用例管理器,它是輸入條件,如圖3結構。
開發人員開發功能測試模塊的*.exe,測試人員添加測試用例(輸入條件)并執行產品化測試中,從而得到測試結果。*.exe存儲在編譯的Bin目錄中,*.bat在設計開發時需要增加測試用例優先級的參數設置,以便區分執行冒煙測試用例和功能測試用例。
4.結語
地理信息數據的質量是地理信息產業數據使用用戶關注的重點,而地理信息質檢軟件的質量是是地理信息產業數據生產和數據質檢用戶關注的重點,也是質檢軟件開發人員為之奮斗的目標。
地理信息質檢軟件的質量要素很多,如功能正確性、結果精確性、可靠性、容錯性、效率、易用性、可擴展性等。這些質量因素相輔相成,互相依賴,彼此影響。其中“正確性與精確性”是地理信息數據的重中之重,這一切質量的保證,依賴于遵循軟件工程技術的軟件測試,因此地理信息軟件的測試方法還有待于深入探討和研究。