1 前言
軟體生產包括六個環節:軟體開發(定義/設計/實現)、軟體生產管理、軟體質量控制、軟體配置管理、軟體測試、軟體維護。第一個環節加工軟體產品,後五個環節決定軟體生產的質量和軟體產品的質量。軟體測試是軟體生產的一個重點和難點。軟體測試具有四個層次的作用:找錯、確認、組裝和評審[1],其中確認和評審的意義與難度在規模化的軟體生產中遠遠大於找錯和組裝。軟體生產迫切需要脫離手工作坊方式的軟體除錯,在規範化軟體測試的基礎上實現規模化軟體測試,達到提高軟體產品質量、降低軟體生產消耗的目的。軟體測試的方法學和軟體測試的管理學應是軟體測試工作者關注的重點。
1. 軟體生產管理:維護軟體開發過程的有序性,決定軟體生產的資源消耗(人/物/資訊/時間),從而決定軟體產品的價格;
2. 軟體質量控制:維護軟體資源消耗與軟體產品質量之間的均衡;
3.軟體測試:保障軟體產品的可接收性,為評價軟體產品質量的提供依據;
4. 軟體配置管理:保障軟體產品(或其中間產品)的可標識性、完整性和一致性,為其它環節提供中介服務;
5. 軟體維護:保障軟體產品的“售後服務”,為軟體產品的更新提供資訊。
軟體生產的每個環節都有自身的產品(文件/檔案/程式碼/服務)輸出,它們共同構成軟體產品的三要素:(軟體功用,軟體質量,軟體價格)。
計算機軟體生產的方法學和計算機軟體生產的管理學值得各類軟體工作者關注,需要在實踐與研究過程中不斷髮展理論和積累經驗。
緣於軟體生產的特性,軟體測試是軟體生產的一個重點和難點。軟體測試具有四個層次的作用:找錯、確認、組裝和評估[1],其中確認和評估的意義與難度在規模化的軟體生產中遠遠大於找bug和組裝。軟體生產迫切需要脫離手工作坊方式的軟體除錯,在規範化軟體測試的基礎上實現規模化軟體測試,達到提高軟體產品質量、降低軟體生產消耗的目的。軟體測試的方法學和軟體測試的管理學應是軟體測試工作者關注的重點。
基於一個大型複雜實時軟體系統(以下簡稱之為“MARA”)軟體測試的實踐與研究,參考資料[1]從產品計劃和生產管理的角度分析和討論了軟體測試,本文將從產品設計和生產組織的角度來分析和討論軟體測試。
以下將分析和討論:軟體測試流程、軟體測試文件、軟體測試用例、規模化軟體測試和規範化軟體測試。
2.軟體測試流程
2.1 軟體測試的階段劃分
可以從三個角度來將軟體測試劃分為多個階段[1]:
1. 面向軟體測試操作型別的劃分,如除錯、整合、確認、驗證、組裝、驗收、操作;
2. 面向軟體測試物件粒度的劃分,如語句、結構、單元、部件、配置項、子系統、系統、大系統;
3. 面向軟體測試實施者的劃分,如開發者、測試者、驗收者、使用者。
2.2 軟體測試階段的步驟
每個軟體測試階段都要經歷以下步驟:測試需求分析、測試過程設計、測試實現、測試實施、測試評價、測試維護。
2.3 軟體測試角色
每個測試步驟都對應一個測試角色,另外還定義測試配置管理的角色。
表1給出軟體測試角色的定義。
表1 軟體測試角色的定義
明確區分各類測試角色,並明確定義其資源(人/物/時間)的安排,是保障軟體測試工作有序開展、有效管理的關鍵。
明確區分測試需求分析角色和測試過程設計的角色意義還在於:軟體測試對軟體功能/軟體實現有了可追蹤性,因而為準確評議測試用例的質量提供依據。