實務
作者:張勇
軟件質量保證是軟件開發過程的重要一環。所謂軟件質量保證就是使軟件綜合品質符合用戶需求,軟件質量保證的理論、技術、措施很多,測試是其中最重要的手段之一。實踐證明,雖然軟件的質量並不完全依賴於測試,但科學、合理、有效的測試方案卻可以極大地提高軟件質量。其中,基於需求的測試(RBT)就是軟件質量保證的重要工具途徑之一。相關權威研究表明,已發現的軟件缺陷中超過50%的缺陷源於錯誤或者不恰當的軟件需求。
保證需求與軟件的統一
Richard Bender是基於需求的軟件測試方法創始人。他認為:改進軟件係統測試方法的最佳途徑在於改進軟件需求定義開發過程和功能測試設計過程,基於需求的測試是一種最根本的軟件測試。
軟件需求分析解決的主要問題是“軟件產品必須或應該做什麼”,軟件需求分析的最重要成果就是需求說明書,需求說明書是軟件產品的雛形,軟件產品是需求說明書的最終展現成果。由於需求和軟件之間是相互對應的,編碼和測試用例之間也是相互對應的,所以需求和測試用例之間是互相對應的,在本質上也是互相關聯、密不可分的,可以實現需求和測試用例之間的雙向跟蹤追溯。
值得一提的是,在軟件開發過程中,編程和測試是緊密相關、相輔相成的活動,兩者同等重要、缺一不可。測試的目的是為了發現盡可能多的缺陷,並期望通過修改完善缺陷以提高軟件的質量。成功的測試在於發現了迄今尚未發現的缺陷,測試人員的職責是設計這樣的測試用例,它能有效地揭示潛伏在軟件裏的缺陷。
然而,在企業應用軟件項目的實施過程中,普遍存在重編碼輕測試、缺乏高素質軟件測試人員的現象。事實上,設計與測試應該完全分離,好的開發者構建事務,好的測試者破壞事務,一個好的軟件測試工程師應該要比開發工程師對整個係統的理解更加透徹。目前很多軟件測試工程師處在軟件項目組的最低職級,缺乏高層的重視和支持,自身對於整個應用係統“該做什麼、要做什麼、必須做什麼”並不清楚,如果再加上與設計人員的溝通交流協作過程中不講究原則性、策略性,其工作成效可想而知。
基於需求的軟件測試方法
要實施基於需求的軟件測試,其正確的工作步驟如下:
1.全麵清晰地掌握用戶需求
全麵、清晰、準確地認識理解用戶需求、軟件平台架構是軟件測試工程師開展一切測試工作的前提和基礎。軟件測試工程師應認真閱讀、研究、分析《用戶需求說明書》、《軟件產品設計說明書》(分為概要設計和詳細設計)等關鍵文檔,清晰掌握平台架構設計、數據庫結構設計、模塊功能設計、核心算法、界麵展現、人員權限角色分配、輸入輸出數據等要素,將業務操作流程和以上要素分別逐一對應關聯。