談可移植性測(cè)試
可移植性測(cè)試(Portability testing),測(cè)試軟件是否可以被成功移植到指定的硬件或軟件平臺(tái)上。可移植性測(cè)試通常和軟件移植到某個(gè)特定的運(yùn)行環(huán)境中的難易程度相關(guān),包括第一次建立或從現(xiàn)有環(huán)境上移植到另一個(gè)環(huán)境上。
系統(tǒng)的可移植性并不是在系統(tǒng)開(kāi)發(fā)的后期才開(kāi)始考慮的,在整個(gè)軟件開(kāi)發(fā)生命周期都必須要考慮系統(tǒng)的可移植性,尤其是在早期的需求分析和設(shè)計(jì)階段。在需求分析階段,最好能夠明確的定義可移植性需求。例如:雖然當(dāng)前軟件版本僅僅支持運(yùn)行在Windows平臺(tái)上,但是需要考慮將來(lái)移植到Linux上的需求。
一個(gè)大型的軟件可能包括多個(gè)不同級(jí)別的設(shè)計(jì)。設(shè)計(jì)階段要重點(diǎn)關(guān)注外部接口,例如:文件訪問(wèn)接口、內(nèi)存管理和用戶界面等。這些接口是最容易發(fā)生可移植性問(wèn)題的地方。業(yè)界有很多針對(duì)這些接口的標(biāo)準(zhǔn),軟件產(chǎn)品如果能夠符合這些標(biāo)準(zhǔn),將會(huì)大大的提高軟件自身的可移植性。例如:針對(duì)字符集的ASCII,針對(duì)操作系統(tǒng)接口的POSIX等。
從測(cè)試層面而言,可移植性測(cè)試應(yīng)該重點(diǎn)關(guān)注在測(cè)試對(duì)象的不同接口上面。具體而言,可移植性測(cè)試至少需要考慮可安裝性測(cè)試、共存性/兼容性測(cè)試、適應(yīng)性測(cè)試和可替換性測(cè)試。
1)可安裝性測(cè)試
可安裝性測(cè)試是針對(duì)那些用于在目標(biāo)環(huán)境安裝軟件的安裝程序所進(jìn)行的測(cè)試。它可以包括安裝操作系統(tǒng)的軟件或在客戶個(gè)人電腦上安裝軟件產(chǎn)品的安裝向?qū)к浖?。典型的可安裝性測(cè)試應(yīng)完成下列目標(biāo):
1、使用安裝向?qū)Щ蜃裾瞻惭b手冊(cè)的步驟(包括執(zhí)行必需的安裝腳本),驗(yàn)證是否可以成功地進(jìn)行軟件安裝。其中包括選擇相應(yīng)的選項(xiàng)針對(duì)不同的軟硬件配置進(jìn)行安裝,以及進(jìn)行不同程度地安裝(如完全安裝或部分安裝);
2、測(cè)試安裝軟件是否能夠正確處理安裝過(guò)程中所出現(xiàn)的失敗(例如:無(wú)法安裝某些DLL)現(xiàn)象,而不致于使系統(tǒng)處于某個(gè)不確定的狀態(tài)(如軟件只安裝了一部分或造成錯(cuò)誤的系統(tǒng)配置);
3、測(cè)試部分(不完全的)安裝/卸載能否完成;
4、測(cè)試安裝向?qū)欠窨梢猿晒Φ刈R(shí)別無(wú)效的硬件平臺(tái)或操作系統(tǒng)配置;
5、衡量是否能夠在一定時(shí)間內(nèi)或在一定步驟內(nèi)完成整個(gè)安裝過(guò)程;
6、驗(yàn)證是否可以成功地進(jìn)行軟件降級(jí)或卸載;
通常,可安裝性測(cè)試在檢查是否存在安裝方面的問(wèn)題(例如:配置錯(cuò)誤、功能缺失)之后,才進(jìn)行功能測(cè)試。易用性測(cè)試一般和安裝測(cè)試同時(shí)進(jìn)行(例如:驗(yàn)證在安裝過(guò)程中軟件是否能夠向用戶提供明確的指導(dǎo)、反饋或出錯(cuò)提示)。
2)共存性/兼容性測(cè)試
如果不存在相互依賴關(guān)系的計(jì)算機(jī)系統(tǒng)可以在同一環(huán)境(例如:同一個(gè)硬件平臺(tái))中運(yùn)行,而不影響彼此的行為(如資源沖突),則稱之為是兼容的。例如:當(dāng)新的或升級(jí)之后的軟件被大量裝入已經(jīng)安裝了應(yīng)用程序的環(huán)境(例如:服務(wù)器)時(shí),需要執(zhí)行兼容性測(cè)試。
假如系統(tǒng)上沒(méi)有安裝其他應(yīng)用程序,則可能無(wú)法檢測(cè)出軟件的兼容性問(wèn)題。假如將系統(tǒng)部署到另一個(gè)安裝了其他應(yīng)用程序的環(huán)境(例如:產(chǎn)品環(huán)境),則可能會(huì)出現(xiàn)兼容性的問(wèn)題。
典型的兼容性測(cè)試的目標(biāo)包括:
- 評(píng)估在運(yùn)行環(huán)境中加載其他應(yīng)用程序所導(dǎo)致的功能上的負(fù)面影響(例如:當(dāng)服務(wù)器上運(yùn)行多個(gè)應(yīng)用程序時(shí)的資源分配沖突);
- 評(píng)估因修復(fù)或升級(jí)操作系統(tǒng)給應(yīng)用程序帶來(lái)的影響;
3)適應(yīng)性測(cè)試
適應(yīng)性測(cè)試就是測(cè)試一個(gè)應(yīng)用程序是否能夠在所有特定的目標(biāo)環(huán)境(硬件、軟件、中間件、操作系統(tǒng)等)中正確地運(yùn)行。在針對(duì)適應(yīng)性進(jìn)行測(cè)試時(shí),需要明確各種指定的目標(biāo)環(huán)境并完成配置,供測(cè)試團(tuán)隊(duì)使用。針對(duì)這些運(yùn)行環(huán)境及環(huán)境中存在的各種組件,可選擇一組功能測(cè)試用例完成測(cè)試。
適應(yīng)性還涉及通過(guò)完成一個(gè)預(yù)定過(guò)程將軟件移植到各種特定運(yùn)行環(huán)境的能力。測(cè)試可以對(duì)該過(guò)程進(jìn)行評(píng)估。適應(yīng)性測(cè)試還可以與可安裝性測(cè)試共同進(jìn)行,然后輔以功能測(cè)試,以檢驗(yàn)軟件在其他運(yùn)行環(huán)境中是否會(huì)出現(xiàn)問(wèn)題。
4)可替換性測(cè)試
可替換性所關(guān)注的是系統(tǒng)中軟件組件能夠被替換的能力,尤其對(duì)于那些以商業(yè)現(xiàn)貨軟件(COTS)為特定組件的軟件系統(tǒng)。
在集成過(guò)程中會(huì)有一些可替換的組件集成構(gòu)成一個(gè)完整的系統(tǒng),因而可替換性測(cè)試可以與功能集成測(cè)試并行進(jìn)行。可以通過(guò)技術(shù)評(píng)審和檢查評(píng)估系統(tǒng)的可替換性,其關(guān)鍵點(diǎn)在于可被替換組件的接口是否定義得非常清楚。
【編輯推薦】