唐滔 譚鳳
基金項目:重慶工程學院教改項目,JY2018307;基于“教學賽訓”四位一體的軟件測試專業應用型本科人才培養的教學模式研究與實踐;重慶市高校教改項目203195,基于PBL的混合教學模式研究與實踐——以軟件自動化測試課程為例。
摘要:軟件測試的出發點是“基于需求”,目前測試主要集中在“需求”進行測試,而“業務使用”進行測試明顯不足。論文給出的基于需求的測試方法提供了一種“業務使用”測試的解決途徑。其將需求進行歸納,建立使用場景模型,構建軟件使用,獲取測試執行路徑,并設計生成測試用例。對需求的理解進行有效性了驗證。
關鍵詞:測試用例;需求分析;測試用例設計
中圖分類號:TP311.52文獻標識碼:A文章編號:1672-9129(2020)14-0080-01
1引言
測試用例是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。
測試用例目前沒有經典的定義,比較通常的說法是指對一項特定的軟件產品進行測試任務的描述,體現測試方案、方法、技術和策略內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,并形成文檔。
由于對軟件測試用例的作用和設計方法的理解不同,測試人員對軟件測試用例存在不少片面的認識,具體表現在以下三個方面:(1)測試輸入數據設計方法等同于測試用例設計方法;(2)測試用例設計得越詳細越好;(3)測試用例設計是一成不變的。
在軟件生命周期過程中,存在用戶對軟件的功能的變更,設計規格的更新,軟件代碼的細化等情況因此,設計軟件測試用例與軟件開發設計應當并行開展,并隨著軟件設計的變化進行相應調整,以保證設計的用例滿足測試需求。軟件的類別、用戶需求和測試目的不同,其測試用例也是不同的本文主要從用戶對軟件的需求為著眼點,結合系統測試用例的設計,說明軟件需求對軟件測試用例設計的影響,使得測試用例更趨于針對軟件產品的功能、任務規則和任務處理所設計的測試方案。
2基于需求的測試用例
2.1軟件測試需求分析。軟件測試的需求有三個層次,即任務需求、用戶需求、功能需求,測試需求分析和測試用例設計參照的是軟件需求規格說明書。
在軟件需求規格說明書中的功能需求描述了軟件系統所應具有的外部行為對一個大型系統來說,軟件功能需求可能只是系統需求的一個子集作為功能需求的補充,軟件需求規格說明還應包括隱含需求,它描述了系統展現給用戶的行為和執行的操作等包括產品必須遵從的標準、規范和合約;外部界面的具體細節;性能要求;設計或實現的約束條件及質量屬性。
測試需求的主要來源是系統需求規格說明書,但有些需求是無法從需求文檔中獲得,可借助概要設計文檔或者詳細設計文檔中獲得,或直接從最終的軟件產品上獲得測試人員依據這些信息編寫測試需求,為了提高需求分析的覆蓋率,用例設計人員可通過分析軟件的任務規則和工程測試經驗,提出軟件產品隱含的需求,以保證最終的測試需求滿足測試要求。
2.2測試用例設計。測試用例的設計也就是測試需求細化的過程,可以說,有多細的測試需求,就有多細的測試用例在測試用例的具體設計中,通常采用等價類劃分法劃分有效和無效的數據集,采用邊界值法找到被測軟件的輸入數據的邊界值數據,在基于需求的測試用例設計中,此兩種方法既是基礎又是補充,當測試數據量比較大時,通常采用自動化測試工具或正交試驗法測試用例的內容項可依據具體情況而定,通常包含測試用例編號、測試操作步驟和預期結果等在軟件系統測試過程中,軟件需求決定了測試用例設計,而測試用例設計的效果則直接決定了整個軟件測試項目的成敗,因此測試需求分析和測試用例設計是密不可分的,前者是后者的依據,后者是前者的體現,做好需求到測試用例的轉化,才能保證整個測試項目的效果。
舉例說明基于需求的測試用例設計過程,購物商城滿足用戶流暢的瀏覽商品、加購商品、購買商品、評論管理的需求。
軟件的基本功能是比較簡單的,明確購物業務流程:即登錄-選擇商品-添加到購物車-提交訂單-登錄付款平臺-付款完成返回付款完成界面-查看物流及訂單。
從上面的業務流程可以明顯看出,根據場景法進行用例設計,考慮主流業務及分支的異常情況來設計測試用例。因此,所測試的結果也是不同。這就源于被測軟件的需求分析的不同,有了好的需求分析,就可以設計出功能覆蓋率高的測試用例,達到軟件測試的目的。
2.3測試用例執行。在軟件系統測試過程中,軟件測試需求決定了測試用例設計,而測試用例設計關系到測試用例的運行,應該說,設計出了什么樣的測試用例,就需要針對性的選擇測試用例運行方式測試用例的運行一般采用測試者手工運行,編寫驅動程序運行、借助自動化工具(如selenium+python)等方式運行測試用例設計的優劣直接關系著測試用例運行的工作量,編寫腳本自動運行程序是解決此問題的不錯方式現階段,編寫腳本自動運行程序來驅動測試用例是用例運行的趨勢,這不僅可以節約第一次測試的工作量,而且還可以減少后續的回歸測試的工作量。
3結束語
目前,軟件測試用例設計是軟件測試的重要環節,基于需求的軟件測試用例設計可以一定程度上解決軟件功能流程的測試,可以高效的設計測試用例,但是,此種方法還不能完全設計出全面的測試用例,尤其是輸入數據多而繁瑣的情況下,這就需要結合此種方法,應用自動化測試工具完成軟件的測試。
參考文獻:
[1]基于場景的軟件測試用例設計與優化方法研究 [J],吳強;唐樹剛;李瑞鋒;
[2]基于場景技術的嵌入式軟件測試用例生成方法 [J],殷永峰;劉斌;姜同敏