作者:崔啟亮 原始出處:“中國本地化網www.giltworld.com”軟體功能特徵測試是國際化軟體測試最先開始並且貫穿於整個軟體開發過程的測試類型,目的是從軟體的各個側面進行品質保證,確保軟體的特徵功能符合軟體的設計需求和功能規格說明。
在執行特徵功能測試前,應該對國際化軟體提供的軟體特徵功能以及這些功能的重要性進行風險分析,以便確定測試過程中的測試成本。
1、測試輸入
國際化軟體的特徵功能測試的輸入內容包括:
- 軟體功能規格說明;
- 軟體需求;
- 軟體的效能目標;
- 軟體的布署情境 (Deployment Scenario) 。
2、測試過程
軟體特徵功能測試的過程如所示:
軟體測試計劃是指導軟體測試的主要文檔,指出測試的內容、測試的起止日期、測試過程、測試方法、測試案例的優先順序和測試的其他詳細內容,在軟體設計、編碼和測試期間,經常需要更新測試計劃,特別是更改軟體的需求後,需要及時更新軟體測試計劃。
軟體測試計劃是指導軟體測試的主要文檔,指出測試的內容、測試的起止日期、測試過程、測試方法、測試案例的優先順序和測試的其他詳細內容,在軟體設計、編碼和測試期間,經常需要更新測試計劃,特別是更改軟體的需求後,需要及時更新測試計劃。
設計評審 (Design review) 確保軟體的設計階段包含了全部的布署情境和軟體需求,遵循了軟體的效能、安全性、國際化和可維護性的要求。
實現編碼評審確保軟體的代碼正確和遵守規範,符合軟體國際化的需要。
軟體的白盒測試也稱為“結構測試”,是對軟體的代碼進行審查,找出引起軟體功能缺陷的編碼錯誤。
軟體的白盒測試也稱為“功能測試”,是從使用者使用的角度運行軟體,執行全部的終端使用者情境的測試案例,發現軟體與設計需求和使用者需求不一致的缺陷。
3、測試過程分析
測試計劃文檔中主要的內容是用於測試軟體的測試案例,涵蓋了設計評審、程式碼檢閱、配置、布署測試和負載測試的各個方面,確保軟體的全部特徵功能和使用情境都進行了測試。
測試文檔包括詳細測試計劃文檔和詳細測試案例文檔。詳細測試計劃文檔按照“高、中、低”的順序列出了測試案例的優先順序,對測試案例中的使用情境和需要測試的特徵進行了簡要描述。根據測試案例的重要性和對期望的目標和需求的全面影響,為每一個測試案例指定測試執行的優先順序。
詳細測試案例文檔與詳細測試計劃文檔相對應,描述了詳細測試計劃文檔列出的需要執行的每個測試案例的執行步驟,以及測試所需要的資料,給出了測試的期望結果。
需要強調的是詳細測試計劃文檔和詳細測試案例文檔不是一成不變的,相反,這兩個文檔的內容要在軟體開發生命週期的全過程不斷更新。例如,當軟體的功能規格說明、軟體的需求更改後,或者需要添加更多的測試輸入時,需要及時更新文檔。另外,當修改了測試案例的優先順序,或者添加了使用情境或功能測試用例時,也需要及時更新這兩個文檔。
從軟體測試的視角看,設計評審非常重要,通過全面評審軟體設計內容,可以在軟體開發的早期發現一些潛在與效能和安全性有關的缺陷。如果這些缺陷在編面階段才被發現,則修正缺陷耗費的時間將比設計階段修改缺陷大得多。
詳細而言,設計評審有助於確保下列問題:
- 軟體設計符合功能規格說明和軟體需求的全部內容;
- 確保軟體設計符合全部效能目標;
- 軟體設計考慮了應用程式在不同的布署情境時的全部安全性;
- 軟體設計遵守了程式耦合和內聚、一致性、通訊、類設計、異常管理、資源管理、緩衝區等的代碼編寫格式要求,以便開發人員可以方便地擴充和定製軟體。
- 軟體設計遵守了國際化和本地化有關的指導準則。
此外,軟體設計評審還要確保軟體能夠正確處理可能的安全攻擊、效能最佳化和記憶體流失的問題。
在實現編碼評審階段,從詳細測試計劃文檔中執行測試案例,對軟體的代碼進行審閱,這是軟體單元測試的重要步驟。通過程式碼檢閱,可以在軟體開發的早期發現問題。
具體地,實現程式碼檢閱有助於確保下列問題:
- 軟體代碼遵守了軟體需求文檔的要求;
- 軟體的類命名、變數、方法名等代碼元素遵守了命名規範;
- 軟體代碼在合適位置包含了有助於其他開發人員正確理解的備註陳述式;
- 軟體代碼可以正確處理與效能、擴充性、安全性有關的問題;
- 軟體代碼對異常管理和記憶體配置有關的資源管理能正確處理;
- 軟體代碼考慮了軟體國際化和本地化有關的問題;
- 軟體不包含冗餘的從來不被調用的代碼。
此外,實現程式碼檢閱還要確保軟體能夠正確處理邊界條件、特殊輸入、可能的安全攻擊、效能最佳化、記憶體流失和安全執行緒等問題。
白盒測試執行詳細測試計劃中與白盒測試有關的測試案例,通過分析軟體代碼的內部工作方式和程式邏輯結構,尋找軟體存在的缺陷。
分析來源程式編碼,確定測試不公 API 和測試代碼路徑所需要的輸入資料,並且更新測試計劃。
白盒測試包括以下內容:
- 剖析應用程式在運行時某些特殊代碼的行為特徵,包括代碼覆蓋、記憶體配置、競爭和死結( Deadlock )問題;
- 跟蹤代碼路徑分析與關鍵效能的相關的時間佔用,對於基於 Web 的應用程式,還需要監視請求的執行時間;
- 測試程式的內部分支路徑,確保每個路徑正確處理資料,返回期望的輸出,而不會引起功能損失或不一致;
- 測試不同的迴圈和條件陳述式,例如簡單迴圈、嵌套迴圈,關聯運算式、簡單條件、符合條件、布林運算式,保證程式碼群組建的精度要求;
- 安全性測試。如果軟體某段代碼在目標布署環境存在安全訪問為題,應該分析對應的處理安全性的代碼,避免程式向攻擊者暴露敏感資訊。
黑箱測試執行詳細測試計劃中與黑箱測試有關的測試案例,黑河測試不需要測試者瞭解程式的內部結構,而主要類比終端使用者的操作方式。
黑箱測試確保應用程式滿足以下要求:
- 應用程式符合需求文檔中列出的全部目標;
- 應用程式套件組合括了功能規格說明指定的全部功能點;
- 應用程式能夠正確地處理期望的和異常的使用情境。
黑箱測試包括以下內容:
- 測試全部使用情境的外部介面。確保介面符合功能規格說明和系統需求,使用情境既包括期望的處理流程,也包括隨機的輸入。
- 測試不同的輸入類型。確保軟體介面可以輸出期望的結果,並且可以正確處理無效的資料和異常情況。測試的輸入資料包括合理的資料、邊界資料和超出最大和最小的輸入資料。
- 效能測試。驗證應用程式在正常情況下和極限負載條件下,程式能夠處理不斷增加的訪問請求,具有良好的擴充能力。效能測試包括負載測試和壓力測試。效能測試的測試結果可以作為實現代碼審閱和白盒測試的輸入。
- 安全性測試。從黑箱測試的觀點看,安全性測試通過類比軟體真實運行環境下攻擊者的操作行為,尋找軟體不正確的設計和編碼的安全隱患。安全性測試包括驗證輸入資料、破解加密和訪問敏感性資料、緩衝區溢位、授權和認證功能等。