四、產品元素
軟件產品終體現為提供給客戶的一種操作經歷或解決方案,包括 支撐平臺 、 軟件元素 和用戶 操作 ,以及相互之間的數據交互,具有多維的特點。為了測試工作取得成效,必須綜合考慮這些層面。以下給出軟件產品應包含的一些重要的元素類別,如果僅注意測試其中幾個類別則可能會遺漏重要錯誤。這些類別提供了一個起始點,需要在特定環境中細化。
4.l 支撐平臺
指軟件產品所依賴的任何事物。
· 外部硬件
用于支撐軟件產品工作的硬件元素和配置,不作為產品的組成部分,如 CPU 、內存、鍵盤、外設等等。
· 外部軟件
用于支撐軟件產品工作的其他軟件元素和配置,不作為產品的組成部分,如操作系統、驅動程序、字體等等。
4.2 軟件元素
· 結構
指組成軟件產品的任何事物。
代碼: 組成產品的任何代碼結構,從可執行碼直至單個例程。
接口: 子系統之間的連接和通信點。
硬件: 任何作為為產品組成部分的硬件元素。
非執行文件: 除程序外的任何文件如文本文件、樣本數據、幫助文件等等。
其他介質: 軟件和硬件之外的任何介質,如紙面文檔、 Web 連接和內容、包裝、許可證協議等等。
· 功能
指產品要完成的任何事情。
用戶接口: 任何協調與用戶交換數據的功能。
系統接口: 任何協調與用戶之外的其他實體(如其他程序、硬盤、網絡、打印機等等)交換數據的功能。
應用: 任何用于定義產品、區分產品或完成核心需求的功能。
錯誤處理: 任何檢測錯誤和從錯誤中恢復的功能,包括所有的錯誤消息。
可測試性: 任何支持測試該產品的功能如診斷程序、日志文件、聲明、測試菜單等等。
· 數據
指產品要處理的任何任何事物。
輸入: 產品要處理的任何數據。
輸出: 經產品處理后產生的任何結果數據。
預置值: 要作為產品的一部分提供給客戶、或直接構建在產品內部的任何數據如預制數據庫,缺省值等等。
固定值: 存儲在內部、在多個操作中應保持一致的任何數據,包括產品模式或狀態如選項設置、視圖模式、文檔內容等等。
時序: 數據和時間之間的任何關系,如每秒擊鍵次數、文件的時間戳、或分布式系統的同步。
非法: 任何能夠觸發錯誤處理函數的數據或狀態。
4.3 操作
指產品將被如何使用。
· 使用情景
與時間相關的操作模式,包括產品在相關領域要典型處理的數據模式,隨用戶而變化。
· 物理環境
產品運行的物理環境,比如噪音、照明等等。
五、質量準則
當聲稱一個產品是“高質量”時,意味著“高度”滿足了該產品的受益人所定義的質量準則。測試工作常常不得不在質量準則不很明確的情況下進行,以下所給出的準則類別可幫助進行“頭腦風暴式”思考或揭示那些需要知道的問題,尤其適合根據實際項目進行定制。建 議同時參考 ISO 9126 質量特性標準或其他相關軟件工程標準。
5.1 操作準則
· 能力
產品能否執行要求的功能?
· 可靠性
在所有要求的情況下產品均能正常工作并抵御失敗嗎?
錯誤處理: 產品在錯誤的情況下可抵御失敗,失敗時能夠妥善應對并很容易恢復。
數據完整性: 產品可 防止系統數據的丟失或損壞。
安全( Security ): 產品可防止未授權用戶的訪問。
保險( Safety ): 產品的失敗不會造成生命或財產的損失。
· 可用性
產品是否很容易被真實用戶使用?
易學習性: 產品操作可很快被潛在用戶掌握。
易操作性: 產品的操作只需付出很少努力,不會引起混亂。
· 性能
速度和相應能力如何?
· 可安裝性
是否能很容易地安裝在目標平臺上?
· 兼容性
能否與外部元素和配置協同一致地工作?
應用兼容性: 產品能夠與其他軟件產品一起工作。
操作系統兼容性: 產品可與某種特定操作系統協同工作。
硬件兼容性: 產品可與某種特定硬件平臺元素和配置協同工作。
后向兼容性: 產品能夠與其早期版本協同工作。
資源使用: 產品不會濫用內存、存儲介質或其他系統資源。
5.2 開發準則
· 可支持性
產品技術支持工作的經濟性如何?
· 可測試性
產品測試工作的有效性如何?
· 可維護性
產品構建、糾錯或功能增強的經濟性如何?
· 可移植性
移植或在其他環境下重用產品相關技術的經濟性如何?
· 可定域性
以其他語言發布產品的經濟性如何?
六、測試技術選擇
需求: 包括產品元素、質量準則、測試環境和參考資料,從總體上表達了受益人的愿望以及各種資源限制。完整需求的獲得決非易事,并隨著受益人經驗的增加或環境的改變而處于連續變化當中。 參考資料是任何可用作需求來源的文檔或實體,包括顯式參考(由受益人明確指定)和隱式參考(任何其他未指定的有用資料)。