商亞新
防空兵學(xué)院,河南鄭州 450052
隨著信息技術(shù)與信息產(chǎn)業(yè)的發(fā)展,計(jì)算機(jī)軟件廣泛地滲入到了我們的工作和生活中,各種產(chǎn)品和設(shè)備與計(jì)算機(jī)軟件的聯(lián)系也越來越緊密。計(jì)算機(jī)軟件的質(zhì)量優(yōu)劣也日益受到人們的重視。軟件測(cè)試是保證軟件質(zhì)量的重要手段。在軟件工程中,軟件測(cè)試是軟件生命周期中一項(xiàng)非常重要的工作,也是一項(xiàng)非常復(fù)雜的工作。
軟件是模擬器的重要組成部分,軟件的質(zhì)量直接影響著模擬器的質(zhì)量。軟件如果存在缺陷或故障,將會(huì)導(dǎo)致模擬器在使用過程中發(fā)生錯(cuò)誤,對(duì)用戶產(chǎn)生各種影響。模擬器軟件的開發(fā)過程一般包括制定計(jì)劃、需求分析、軟件設(shè)計(jì)、軟件編碼、軟件測(cè)試、運(yùn)行維護(hù)等6 個(gè)階段。軟件測(cè)試是模擬器軟件開發(fā)過程中的一個(gè)階段,是保證模擬器軟件質(zhì)量的重要方法和手段。軟件測(cè)試技術(shù)可分為靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試是一種不通過執(zhí)行程序而進(jìn)行測(cè)試的技術(shù),關(guān)鍵是檢查軟件的表示和描述是否一致,有無沖突或歧義。動(dòng)態(tài)測(cè)試通過人工或使用工具運(yùn)行程序進(jìn)行檢查,分析程序的執(zhí)行狀態(tài)和程序運(yùn)行的表象。動(dòng)態(tài)測(cè)試一般分為白盒法測(cè)試和黑盒法測(cè)試。白盒法測(cè)試對(duì)象是源程序,依據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)來發(fā)現(xiàn)編程錯(cuò)誤、結(jié)構(gòu)錯(cuò)誤和數(shù)據(jù)錯(cuò)誤。黑盒法是把測(cè)試對(duì)象看成一個(gè)黑盒子,依據(jù)軟件的功能或軟件行為描述,發(fā)現(xiàn)軟件的接口、功能和結(jié)構(gòu)錯(cuò)誤。
模擬器的軟件測(cè)試是軟件開發(fā)過程中的一個(gè)階段,但不是一個(gè)完全獨(dú)立的階段,而是貫穿于軟件開發(fā)整個(gè)過程中的一個(gè)重要環(huán)節(jié)。模擬器軟件測(cè)試過程由單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試等階段組成,整個(gè)測(cè)試過程與如圖1 所示。其中,系統(tǒng)測(cè)試是整個(gè)軟件測(cè)試過程中非常重要的測(cè)試階段,是軟件的全部功能在實(shí)際運(yùn)行環(huán)境中進(jìn)行驗(yàn)證和確認(rèn)的測(cè)試,也是用戶進(jìn)行驗(yàn)收前的測(cè)試。
圖1 模擬器軟件的測(cè)試過程
模擬器軟件測(cè)試是一項(xiàng)非常復(fù)雜的工作,首先要按照詳細(xì)設(shè)計(jì)的要求對(duì)所有模塊的功能、性能、接口等進(jìn)行單元測(cè)試,發(fā)現(xiàn)每個(gè)程序模塊內(nèi)部可能存在的差錯(cuò),確保每個(gè)模塊單元工作正常。在單元測(cè)試的基礎(chǔ)上,將所有已通過單元測(cè)試的模塊按照概要設(shè)計(jì)的要求組裝成系統(tǒng)進(jìn)行集成測(cè)試,發(fā)現(xiàn)與接口有關(guān)的各種錯(cuò)誤,確保各單元模塊集成系統(tǒng)后能夠按設(shè)計(jì)要求協(xié)作運(yùn)行,并確保增量行為的正確性。
模擬器軟件的系統(tǒng)測(cè)試,就是將已經(jīng)過集成測(cè)試的模擬器軟件和其它支持軟件安裝在模擬器的專用計(jì)算機(jī)上,并與模擬器的硬件設(shè)備、人員等所有系統(tǒng)元素結(jié)合在一起,在實(shí)際的運(yùn)行環(huán)境下,對(duì)模擬器軟件進(jìn)行全面測(cè)試。通過對(duì)模擬器軟件的需求定義進(jìn)行比較,找出軟件與需求定義不相符之處,通過對(duì)模擬器進(jìn)行一系列嚴(yán)格測(cè)試來發(fā)現(xiàn)軟件中潛在的錯(cuò)誤和缺陷,以確保模擬器交付給用戶后能夠正常使用。
模擬器軟件系統(tǒng)測(cè)試包含功能性測(cè)試和非功能性測(cè)試兩類測(cè)試內(nèi)容。功能性測(cè)試的目的是測(cè)試軟件的主要功能與用戶的需求是否一致,主要進(jìn)行訓(xùn)練環(huán)境設(shè)置功能測(cè)試、訓(xùn)練功能測(cè)試、訓(xùn)練評(píng)估功能測(cè)試。非功能性測(cè)試主要測(cè)試軟件的性能、可靠性、健壯性是否滿足設(shè)計(jì)要求,主要進(jìn)行性能測(cè)試、可靠性測(cè)試、易用性測(cè)試。模擬器軟件的系統(tǒng)測(cè)試主要采用黑盒測(cè)試技術(shù)中的因果圖、決策表、錯(cuò)誤推測(cè)等測(cè)試方法。
功能測(cè)試不考慮模擬器軟件的內(nèi)部結(jié)構(gòu)和處理過程,通常在程序的界面處進(jìn)行測(cè)試,測(cè)試軟件是否能夠按照需求的規(guī)定正常運(yùn)行,是否能夠?qū)崿F(xiàn)與需求一致的所有功能,發(fā)現(xiàn)軟件與需求定義不相符之處和潛在的錯(cuò)誤與缺陷。模擬器軟件的功能性測(cè)試主要進(jìn)行訓(xùn)練環(huán)境設(shè)置功能測(cè)試、訓(xùn)練功能測(cè)試和訓(xùn)練評(píng)估程序功能測(cè)試。
在訓(xùn)練開始前模擬器要進(jìn)行訓(xùn)練環(huán)境設(shè)置,訓(xùn)練環(huán)境包括地理地形、氣象條件、各種設(shè)置、各類模型數(shù)據(jù)等。訓(xùn)練環(huán)境設(shè)置的功能測(cè)試用例應(yīng)當(dāng)按照軟件需求進(jìn)行設(shè)計(jì),要考慮到不同訓(xùn)練環(huán)境的各種組合情況,測(cè)試目的就是核實(shí)在不同的環(huán)境設(shè)置時(shí)數(shù)據(jù)載入是否正確、是否完整,是否完全符合設(shè)計(jì)要求。
模擬器的訓(xùn)練功能就是在各種操作方式(正確或錯(cuò)誤)條件下仿真裝備的真實(shí)反應(yīng)(狀態(tài)和過程)。不同的操作方式就是按照不同的操作順序?qū)⒛M器不同設(shè)備面板的各種操作器件置于不同的位置狀態(tài),所有操作器件不同順序的不同位置狀態(tài)可以產(chǎn)生數(shù)量很大的各種條件的輸入組合。仿真裝備的真實(shí)反應(yīng)就是模擬器軟件的輸出,就是啟動(dòng)不同的仿真過程、或改變仿真進(jìn)程、或使模擬器顯示器件顯示不同內(nèi)容與狀態(tài)、或?qū)е氯S場(chǎng)景的不同改變。對(duì)于模擬器軟件這種多條件組合輸入、產(chǎn)生多動(dòng)作輸出的復(fù)雜功能測(cè)試使用因果圖(邏輯模型)方法設(shè)計(jì)測(cè)試用例比較合適。
采用因果圖方法設(shè)計(jì)模擬器軟件功能測(cè)試用例的步驟:首先確定模擬器軟件功能中的原因和結(jié)果,確定原因和結(jié)果之間的邏輯關(guān)系,根據(jù)這些關(guān)系畫出因果圖。確定因果圖中的各個(gè)約束。然后把因果圖轉(zhuǎn)換為決策表。根據(jù)決策表設(shè)計(jì)測(cè)試用例。
由于模擬器軟件的功能測(cè)試比較復(fù)雜,應(yīng)當(dāng)采用錯(cuò)誤推測(cè)法作為輔助測(cè)試方法,依靠測(cè)試人員的經(jīng)驗(yàn)和直覺推測(cè)軟件功能可能存在的各種錯(cuò)誤從而有針對(duì)性地設(shè)計(jì)測(cè)試用例。
根據(jù)測(cè)試用例進(jìn)行訓(xùn)練功能測(cè)試,檢查在各種操作方式條件下軟件的訓(xùn)練仿真過程以及模擬器表象及狀態(tài)是否與設(shè)計(jì)要求完全一致、是否存在錯(cuò)誤和潛在的缺陷。
對(duì)訓(xùn)練過程進(jìn)行評(píng)估是模擬器的一個(gè)重要功能。訓(xùn)練環(huán)境的設(shè)置數(shù)據(jù)和訓(xùn)練過程中對(duì)模擬器的所有操作過程都按照時(shí)間先后以規(guī)定的數(shù)據(jù)格式完整地記錄在操作過程的文件中。訓(xùn)練評(píng)估程序的功能就是將記錄的操作過程文件作為輸入數(shù)據(jù),經(jīng)過邏輯分析和數(shù)據(jù)計(jì)算,輸出此次訓(xùn)練的成績和訓(xùn)練過程的評(píng)語。由于訓(xùn)練評(píng)估程序的輸入是整個(gè)訓(xùn)練過程的全部操作,所有操作器件產(chǎn)生的操作順序組合將達(dá)到非常大的數(shù)目,實(shí)際中可能無法完成,在設(shè)計(jì)測(cè)試用例時(shí)采用等價(jià)類技術(shù)對(duì)操作過程的各種順序組合進(jìn)行劃分,從劃分的每個(gè)區(qū)域內(nèi)選取有代表性的操作過程作為測(cè)試用例。測(cè)試的目的就是檢查對(duì)不同的操作過程輸出的成績和評(píng)語是否正確,是否與專家評(píng)定結(jié)果一致。
模擬器軟件的非功能性測(cè)試主要內(nèi)容包括性能測(cè)試、可靠性測(cè)試、易用性測(cè)試。
性能測(cè)試主要檢驗(yàn)?zāi)M器軟件是否達(dá)到需求規(guī)定的各類性能指標(biāo),并滿足一些性能相關(guān)的約束和限制條件。軟件運(yùn)行的實(shí)時(shí)性是非常重要的性能指標(biāo)。模擬器軟件的實(shí)時(shí)性測(cè)試主要包括操作響應(yīng)時(shí)間的測(cè)試以及三維場(chǎng)景顯示的流暢與連續(xù)性測(cè)試。操作的響應(yīng)時(shí)間應(yīng)當(dāng)與裝備的響應(yīng)時(shí)間一致。場(chǎng)景的流暢要符合人們的視覺感受,如果三維場(chǎng)景繪制復(fù)雜、數(shù)據(jù)量大時(shí)會(huì)導(dǎo)致顯示幀頻下降,人眼就會(huì)感到畫面間斷、停頓,顯示幀頻是衡量流暢性的指標(biāo)。三維場(chǎng)景的流暢性與場(chǎng)景中三維實(shí)體的數(shù)量、復(fù)雜程度、分辨率,以及三維場(chǎng)景特效(如煙霧)等有直接關(guān)系,應(yīng)當(dāng)以場(chǎng)景實(shí)體和特效達(dá)到或接近最苛刻的過程進(jìn)行場(chǎng)景顯示的實(shí)時(shí)性測(cè)試。
軟件的可靠性也叫做穩(wěn)定性,是指在負(fù)載多變的情況下或長時(shí)間運(yùn)行的情況下模擬器軟件運(yùn)行的穩(wěn)定程度。模擬器軟件的可靠性測(cè)試可以使用重復(fù)測(cè)試、并發(fā)測(cè)試、隨機(jī)變化以及長時(shí)間不間斷運(yùn)行等方法。重復(fù)測(cè)試就是對(duì)某一器件進(jìn)行重復(fù)操作,測(cè)試模擬器能否持續(xù)不斷地仿真設(shè)備的真實(shí)運(yùn)行效果;并發(fā)測(cè)試就是同時(shí)對(duì)多個(gè)器件進(jìn)行操作,測(cè)試模擬器能否產(chǎn)生與設(shè)備同樣的狀態(tài);隨機(jī)變化就是不按照正常的操作順序,而是設(shè)計(jì)非常規(guī)的隨機(jī)操作順序或?qū)χ貜?fù)和并發(fā)測(cè)試手段進(jìn)行隨機(jī)組合,以獲得最佳的測(cè)試效果。按照設(shè)計(jì)要求讓模擬器軟件長時(shí)間不間斷地運(yùn)行,測(cè)試軟件是否運(yùn)行正常、功能是否出錯(cuò)。
模擬器軟件的易用性主要是指訓(xùn)練環(huán)境設(shè)置、成績?cè)u(píng)估等環(huán)節(jié)的界面易懂、選擇準(zhǔn)確、操作方便。界面的設(shè)計(jì)要盡量符合人們的習(xí)慣和思維方式,按鈕名稱用詞準(zhǔn)確、沒有歧義,同一界面的按鈕要易于區(qū)分,用戶能夠進(jìn)行正確理解界面的功能并能夠進(jìn)行正確操作。用戶能夠終止進(jìn)程,重新返回、重新選擇。通過對(duì)界面的操作來測(cè)試模擬器軟件的易用性。
系統(tǒng)測(cè)試是軟件交給用戶進(jìn)行驗(yàn)收測(cè)試的最后一道關(guān)口,對(duì)保證軟件的質(zhì)量起著非常重要的作用。系統(tǒng)測(cè)試也是測(cè)試人員需要花大量的時(shí)間和精力才能完成的工作,雖然有些測(cè)試工作可以使用軟件測(cè)試工具來完成,但由于每一種測(cè)試工具都有其特定領(lǐng)域的應(yīng)用,都有其自身的很多局限性,軟件測(cè)試工具本身不具備創(chuàng)造力,不能設(shè)計(jì)測(cè)試用例,不能處理意外事件,使用測(cè)試工具發(fā)現(xiàn)的缺陷也沒有手工測(cè)試發(fā)現(xiàn)的多。系統(tǒng)測(cè)試中的很多工作主要還是靠人完成的,測(cè)試人員的能力和素質(zhì)最終決定了測(cè)試結(jié)果的好壞。根據(jù)系統(tǒng)測(cè)試結(jié)果和系統(tǒng)測(cè)試分析報(bào)告,在驗(yàn)收測(cè)試前完善軟件功能、糾正軟件錯(cuò)誤、消除軟件潛在的缺陷,提高軟件質(zhì)量。
[1]趙斌.軟件測(cè)試技術(shù)經(jīng)典教程 [M].2版.北京:科學(xué)出版社,2011.
[2]李海生,郭銳.軟件測(cè)試技術(shù)案例教程[M].北京:清華大學(xué)出版社,2012.
[3]Shari Lawrence Pfleeger,Joanne M.Atlee 軟件工程[M].楊衛(wèi)東,譯.北京:人民郵電出版社, 2007.
[4]霄漢.軟件工程理論與實(shí)踐[M].北京:科學(xué)出版社,2006.