軟件功能特征測試是國際化軟件測試最先開始并且貫穿于整個軟件開發(fā)過程的測試類型,目的是從軟件的各個側(cè)面進行質(zhì)量保證,確保軟件的特征功能符合軟件的設(shè)計需求和功能規(guī)格說明。
在執(zhí)行特征功能測試前,應(yīng)該對國際化軟件提供的軟件特征功能以及這些功能的重要性進行風(fēng)險分析,以便確定測試過程中的測試成本。
1、測試輸入
國際化軟件的特征功能測試的輸入內(nèi)容包括:
軟件功能規(guī)格說明;
軟件需求;
軟件的性能目標(biāo);
軟件的布署場景 (Deployment Scenario) 。
2、測試過程
軟件特征功能測試的過程如下圖所示:

軟件測試計劃是指導(dǎo)軟件測試的主要文檔,指出測試的內(nèi)容、測試的起止日期、測試過程、測試方法、測試用例的優(yōu)先級和測試的其他詳細內(nèi)容,在軟件設(shè)計、編碼和測試期間,經(jīng)常需要更新測試計劃,特別是更改軟件的需求后,需要及時更新軟件測試計劃。
軟件測試計劃是指導(dǎo)軟件測試的主要文檔,指出測試的內(nèi)容、測試的起止日期、測試過程、測試方法、測試用例的優(yōu)先級和測試的其他詳細內(nèi)容,在軟件設(shè)計、編碼和測試期間,經(jīng)常需要更新測試計劃,特別是更改軟件的需求后,需要及時更新測試計劃。
設(shè)計評審 (Design review) 確保軟件的設(shè)計階段包含了全部的布署場景和軟件需求,遵循了軟件的性能、安全性、國際化和可維護性的要求。
實現(xiàn)編碼評審確保軟件的代碼正確和遵守規(guī)范,符合軟件國際化的需要。
軟件的白盒測試也稱為“結(jié)構(gòu)測試”,是對軟件的代碼進行審查,找出引起軟件功能缺陷的編碼錯誤。
軟件的白盒測試也稱為“功能測試”,是從用戶使用的角度運行軟件,執(zhí)行全部的終端用戶場景的測試用例,發(fā)現(xiàn)軟件與設(shè)計需求和用戶需求不一致的缺陷。
3、測試過程分析
創(chuàng)建測試計劃
測試計劃文檔中主要的內(nèi)容是用于測試軟件的測試用例,涵蓋了設(shè)計評審、代碼評審、配置、布署測試和負載測試的各個方面,確保軟件的全部特征功能和使用場景都進行了測試。
測試文檔包括詳細測試計劃文檔和詳細測試用例文檔。詳細測試計劃文檔按照“高、中、低”的順序列出了測試用例的優(yōu)先級,對測試用例中的使用場景和需要測試的特征進行了簡要描述。根據(jù)測試用例的重要性和對期望的目標(biāo)和需求的全面影響,為每一個測試用例指定測試執(zhí)行的優(yōu)先級。
詳細測試用例文檔與詳細測試計劃文檔相對應(yīng),描述了詳細測試計劃文檔列出的需要執(zhí)行的每個測試用例的執(zhí)行步驟,以及測試所需要的數(shù)據(jù),給出了測試的期望結(jié)果。
需要強調(diào)的是詳細測試計劃文檔和詳細測試用例文檔不是一成不變的,相反,這兩個文檔的內(nèi)容要在軟件開發(fā)生命周期的全過程不斷更新。例如,當(dāng)軟件的功能規(guī)格說明、軟件的需求更改后,或者需要添加更多的測試輸入時,需要及時更新文檔。另外,當(dāng)修改了測試用例的優(yōu)先級,或者添加了使用場景或功能測試用例時,也需要及時更新這兩個文檔。
設(shè)計評審
從軟件測試的視角看,設(shè)計評審非常重要,通過全面評審軟件設(shè)計內(nèi)容,可以在軟件開發(fā)的早期發(fā)現(xiàn)一些潛在與性能和安全性有關(guān)的缺陷。如果這些缺陷在編面階段才被發(fā)現(xiàn),則修正缺陷耗費的時間將比設(shè)計階段修改缺陷大得多。
詳細而言,設(shè)計評審有助于確保下列問題:
軟件設(shè)計符合功能規(guī)格說明和軟件需求的全部內(nèi)容;
確保軟件設(shè)計符合全部性能目標(biāo);
軟件設(shè)計考慮了應(yīng)用程序在不同的布署場景時的全部安全性;
軟件設(shè)計遵守了程序耦合和內(nèi)聚、一致性、通訊、類設(shè)計、異常管理、資源管理、緩沖區(qū)等的代碼編寫格式要求,以便開發(fā)人員可以方便地擴展和定制軟件。
軟件設(shè)計遵守了國際化和本地化有關(guān)的指導(dǎo)準(zhǔn)則。
此外,軟件設(shè)計評審還要確保軟件能夠正確處理可能的安全攻擊、性能優(yōu)化和內(nèi)存泄漏的問題。
實現(xiàn)編碼評審
在實現(xiàn)編碼評審階段,從詳細測試計劃文檔中執(zhí)行測試用例,對軟件的代碼進行審閱,這是軟件單元測試的重要步驟。通過代碼評審,可以在軟件開發(fā)的早期發(fā)現(xiàn)問題。
具體地,實現(xiàn)代碼評審有助于確保下列問題:
軟件代碼遵守了軟件需求文檔的要求;
軟件的類命名、變量、方法名等代碼元素遵守了命名規(guī)范;
軟件代碼在合適位置包含了有助于其他開發(fā)人員正確理解的注釋語句;
軟件代碼可以正確處理與性能、擴展性、安全性有關(guān)的問題;
軟件代碼對異常管理和內(nèi)存分配有關(guān)的資源管理能正確處理;
軟件代碼考慮了軟件國際化和本地化有關(guān)的問題;
軟件不包含冗余的從來不被調(diào)用的代碼。
此外,實現(xiàn)代碼評審還要確保軟件能夠正確處理邊界條件、特殊輸入、可能的安全攻擊、性能優(yōu)化、內(nèi)存泄漏和線程安全等問題。
執(zhí)行白盒測試
白盒測試執(zhí)行詳細測試計劃中與白盒測試有關(guān)的測試用例,通過分析軟件代碼的內(nèi)部工作方式和程序邏輯結(jié)構(gòu),尋找軟件存在的缺陷。
分析源程序編碼,確定測試不公 API 和測試代碼路徑所需要的輸入數(shù)據(jù),并且更新測試計劃。
白盒測試包括以下內(nèi)容:
剖析應(yīng)用程序在運行時某些特殊代碼的行為特征,包括代碼覆蓋、內(nèi)存分配、競爭和死鎖( Deadlock )問題;
跟蹤代碼路徑分析與關(guān)鍵性能的相關(guān)的時間占用,對于基于 Web 的應(yīng)用程序,還需要監(jiān)視請求的執(zhí)行時間;
測試程序的內(nèi)部分支路徑,確保每個路徑正確處理數(shù)據(jù),返回期望的輸出,而不會引起功能損失或不一致;
測試不同的循環(huán)和條件語句,例如簡單循環(huán)、嵌套循環(huán),關(guān)系表達式、簡單條件、符合條件、布爾表達式,保證代碼組建的精度要求;
安全性測試。如果軟件某段代碼在目標(biāo)布署環(huán)境存在安全訪問為題,應(yīng)該分析對應(yīng)的處理安全性的代碼,避免程序向攻擊者暴露敏感信息。
執(zhí)行黑盒測試
黑盒測試執(zhí)行詳細測試計劃中與黑盒測試有關(guān)的測試用例,黑河測試不需要測試者了解程序的內(nèi)部結(jié)構(gòu),而主要模擬終端用戶的操作方式。
黑盒測試確保應(yīng)用程序滿足以下要求:
應(yīng)用程序符合需求文檔中列出的全部目標(biāo);
應(yīng)用程序包括了功能規(guī)格說明指定的全部功能點;
應(yīng)用程序能夠正確地處理期望的和異常的使用場景。
黑盒測試包括以下內(nèi)容:
測試全部使用場景的外部接口。確保接口符合功能規(guī)格說明和系統(tǒng)需求,使用場景既包括期望的處理流程,也包括隨機的輸入。
測試不同的輸入類型。確保軟件接口可以輸出期望的結(jié)果,并且可以正確處理無效的數(shù)據(jù)和異常情況。測試的輸入數(shù)據(jù)包括合理的數(shù)據(jù)、邊界數(shù)據(jù)和超出和最小的輸入數(shù)據(jù)。
性能測試。驗證應(yīng)用程序在正常情況下和極限負載條件下,程序能夠處理不斷增加的訪問請求,具有良好的擴展能力。性能測試包括負載測試和壓力測試。性能測試的測試結(jié)果可以作為實現(xiàn)代碼審閱和白盒測試的輸入。
安全性測試。從黑盒測試的觀點看,安全性測試通過模擬軟件真實運行環(huán)境下攻擊者的操作行為,尋找軟件不正確的設(shè)計和編碼的安全隱患。安全性測試包括驗證輸入數(shù)據(jù)、*加密和訪問敏感數(shù)據(jù)、緩沖區(qū)溢出、授權(quán)和證書功能等。
在執(zhí)行特征功能測試前,應(yīng)該對國際化軟件提供的軟件特征功能以及這些功能的重要性進行風(fēng)險分析,以便確定測試過程中的測試成本。
1、測試輸入
國際化軟件的特征功能測試的輸入內(nèi)容包括:
軟件功能規(guī)格說明;
軟件需求;
軟件的性能目標(biāo);
軟件的布署場景 (Deployment Scenario) 。
2、測試過程
軟件特征功能測試的過程如下圖所示:

軟件測試計劃是指導(dǎo)軟件測試的主要文檔,指出測試的內(nèi)容、測試的起止日期、測試過程、測試方法、測試用例的優(yōu)先級和測試的其他詳細內(nèi)容,在軟件設(shè)計、編碼和測試期間,經(jīng)常需要更新測試計劃,特別是更改軟件的需求后,需要及時更新軟件測試計劃。
軟件測試計劃是指導(dǎo)軟件測試的主要文檔,指出測試的內(nèi)容、測試的起止日期、測試過程、測試方法、測試用例的優(yōu)先級和測試的其他詳細內(nèi)容,在軟件設(shè)計、編碼和測試期間,經(jīng)常需要更新測試計劃,特別是更改軟件的需求后,需要及時更新測試計劃。
設(shè)計評審 (Design review) 確保軟件的設(shè)計階段包含了全部的布署場景和軟件需求,遵循了軟件的性能、安全性、國際化和可維護性的要求。
實現(xiàn)編碼評審確保軟件的代碼正確和遵守規(guī)范,符合軟件國際化的需要。
軟件的白盒測試也稱為“結(jié)構(gòu)測試”,是對軟件的代碼進行審查,找出引起軟件功能缺陷的編碼錯誤。
軟件的白盒測試也稱為“功能測試”,是從用戶使用的角度運行軟件,執(zhí)行全部的終端用戶場景的測試用例,發(fā)現(xiàn)軟件與設(shè)計需求和用戶需求不一致的缺陷。
3、測試過程分析
創(chuàng)建測試計劃
測試計劃文檔中主要的內(nèi)容是用于測試軟件的測試用例,涵蓋了設(shè)計評審、代碼評審、配置、布署測試和負載測試的各個方面,確保軟件的全部特征功能和使用場景都進行了測試。
測試文檔包括詳細測試計劃文檔和詳細測試用例文檔。詳細測試計劃文檔按照“高、中、低”的順序列出了測試用例的優(yōu)先級,對測試用例中的使用場景和需要測試的特征進行了簡要描述。根據(jù)測試用例的重要性和對期望的目標(biāo)和需求的全面影響,為每一個測試用例指定測試執(zhí)行的優(yōu)先級。
詳細測試用例文檔與詳細測試計劃文檔相對應(yīng),描述了詳細測試計劃文檔列出的需要執(zhí)行的每個測試用例的執(zhí)行步驟,以及測試所需要的數(shù)據(jù),給出了測試的期望結(jié)果。
需要強調(diào)的是詳細測試計劃文檔和詳細測試用例文檔不是一成不變的,相反,這兩個文檔的內(nèi)容要在軟件開發(fā)生命周期的全過程不斷更新。例如,當(dāng)軟件的功能規(guī)格說明、軟件的需求更改后,或者需要添加更多的測試輸入時,需要及時更新文檔。另外,當(dāng)修改了測試用例的優(yōu)先級,或者添加了使用場景或功能測試用例時,也需要及時更新這兩個文檔。
設(shè)計評審
從軟件測試的視角看,設(shè)計評審非常重要,通過全面評審軟件設(shè)計內(nèi)容,可以在軟件開發(fā)的早期發(fā)現(xiàn)一些潛在與性能和安全性有關(guān)的缺陷。如果這些缺陷在編面階段才被發(fā)現(xiàn),則修正缺陷耗費的時間將比設(shè)計階段修改缺陷大得多。
詳細而言,設(shè)計評審有助于確保下列問題:
軟件設(shè)計符合功能規(guī)格說明和軟件需求的全部內(nèi)容;
確保軟件設(shè)計符合全部性能目標(biāo);
軟件設(shè)計考慮了應(yīng)用程序在不同的布署場景時的全部安全性;
軟件設(shè)計遵守了程序耦合和內(nèi)聚、一致性、通訊、類設(shè)計、異常管理、資源管理、緩沖區(qū)等的代碼編寫格式要求,以便開發(fā)人員可以方便地擴展和定制軟件。
軟件設(shè)計遵守了國際化和本地化有關(guān)的指導(dǎo)準(zhǔn)則。
此外,軟件設(shè)計評審還要確保軟件能夠正確處理可能的安全攻擊、性能優(yōu)化和內(nèi)存泄漏的問題。
實現(xiàn)編碼評審
在實現(xiàn)編碼評審階段,從詳細測試計劃文檔中執(zhí)行測試用例,對軟件的代碼進行審閱,這是軟件單元測試的重要步驟。通過代碼評審,可以在軟件開發(fā)的早期發(fā)現(xiàn)問題。
具體地,實現(xiàn)代碼評審有助于確保下列問題:
軟件代碼遵守了軟件需求文檔的要求;
軟件的類命名、變量、方法名等代碼元素遵守了命名規(guī)范;
軟件代碼在合適位置包含了有助于其他開發(fā)人員正確理解的注釋語句;
軟件代碼可以正確處理與性能、擴展性、安全性有關(guān)的問題;
軟件代碼對異常管理和內(nèi)存分配有關(guān)的資源管理能正確處理;
軟件代碼考慮了軟件國際化和本地化有關(guān)的問題;
軟件不包含冗余的從來不被調(diào)用的代碼。
此外,實現(xiàn)代碼評審還要確保軟件能夠正確處理邊界條件、特殊輸入、可能的安全攻擊、性能優(yōu)化、內(nèi)存泄漏和線程安全等問題。
執(zhí)行白盒測試
白盒測試執(zhí)行詳細測試計劃中與白盒測試有關(guān)的測試用例,通過分析軟件代碼的內(nèi)部工作方式和程序邏輯結(jié)構(gòu),尋找軟件存在的缺陷。
分析源程序編碼,確定測試不公 API 和測試代碼路徑所需要的輸入數(shù)據(jù),并且更新測試計劃。
白盒測試包括以下內(nèi)容:
剖析應(yīng)用程序在運行時某些特殊代碼的行為特征,包括代碼覆蓋、內(nèi)存分配、競爭和死鎖( Deadlock )問題;
跟蹤代碼路徑分析與關(guān)鍵性能的相關(guān)的時間占用,對于基于 Web 的應(yīng)用程序,還需要監(jiān)視請求的執(zhí)行時間;
測試程序的內(nèi)部分支路徑,確保每個路徑正確處理數(shù)據(jù),返回期望的輸出,而不會引起功能損失或不一致;
測試不同的循環(huán)和條件語句,例如簡單循環(huán)、嵌套循環(huán),關(guān)系表達式、簡單條件、符合條件、布爾表達式,保證代碼組建的精度要求;
安全性測試。如果軟件某段代碼在目標(biāo)布署環(huán)境存在安全訪問為題,應(yīng)該分析對應(yīng)的處理安全性的代碼,避免程序向攻擊者暴露敏感信息。
執(zhí)行黑盒測試
黑盒測試執(zhí)行詳細測試計劃中與黑盒測試有關(guān)的測試用例,黑河測試不需要測試者了解程序的內(nèi)部結(jié)構(gòu),而主要模擬終端用戶的操作方式。
黑盒測試確保應(yīng)用程序滿足以下要求:
應(yīng)用程序符合需求文檔中列出的全部目標(biāo);
應(yīng)用程序包括了功能規(guī)格說明指定的全部功能點;
應(yīng)用程序能夠正確地處理期望的和異常的使用場景。
黑盒測試包括以下內(nèi)容:
測試全部使用場景的外部接口。確保接口符合功能規(guī)格說明和系統(tǒng)需求,使用場景既包括期望的處理流程,也包括隨機的輸入。
測試不同的輸入類型。確保軟件接口可以輸出期望的結(jié)果,并且可以正確處理無效的數(shù)據(jù)和異常情況。測試的輸入數(shù)據(jù)包括合理的數(shù)據(jù)、邊界數(shù)據(jù)和超出和最小的輸入數(shù)據(jù)。
性能測試。驗證應(yīng)用程序在正常情況下和極限負載條件下,程序能夠處理不斷增加的訪問請求,具有良好的擴展能力。性能測試包括負載測試和壓力測試。性能測試的測試結(jié)果可以作為實現(xiàn)代碼審閱和白盒測試的輸入。
安全性測試。從黑盒測試的觀點看,安全性測試通過模擬軟件真實運行環(huán)境下攻擊者的操作行為,尋找軟件不正確的設(shè)計和編碼的安全隱患。安全性測試包括驗證輸入數(shù)據(jù)、*加密和訪問敏感數(shù)據(jù)、緩沖區(qū)溢出、授權(quán)和證書功能等。