如何編寫測試用例(一)

測試工作也從簡單測試演變爲包括:編制測試計劃、編寫測試用例、準備測試數據、編寫測試腳本、實施測試、測試評估等多項內容的正規測試。測試方式則由單純手工測試發展爲手工、自動兼之,並有向第三方專業測試公司發展的趨勢。

  一、測試用例是軟件測試的核心

  軟件測試的重要性是毋庸置疑的。但如何以最少的人力、資源投入,在最短的時間內完成測試,發現軟件系統的缺陷,保證軟件的優良品質,則是軟件公司探索和追求的目標。每個軟件產品或軟件開發項目都需要有一套優秀的測試方案和測試方法。

  影響軟件測試的因素很多,例如軟件本身的複雜程度、開發人員(包括分析、設計、編程和測試的人員)的素質、測試方法和技術的運用等等。因爲有些因素是客觀存在的,無法避免。有些因素則是波動的、不穩定的,例如開發隊伍是流動的,有經驗的走了,新人不斷補充進來;一個具體的人工作也受情緒等影響,等等。如何保障軟件測試質量的穩定?有了測試用例,無論是誰來測試,參照測試用例實施,都能保障測試的質量。可以把人爲因素的影響減少到最小。即便最初的測試用例考慮不周全,隨着測試的進行和軟件版本更新,也將日趨完善。

  因此測試用例的設計和編制是軟件測試活動中最重要的。測試用例是測試工作的指導,是軟件測試的必須遵守的準則。更是軟件測試質量穩定的根本保障。

  二、什麼叫測試用例

  測試用例(Test Case)目前沒有經典的定義。比較通常的說法是:指對一項特定的軟件產品進行測試任務的描述,體現測試方案、方法、技術和策略。內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,並形成文檔。

  不同類別的軟件,測試用例是不同的。不同於諸如系統、工具、控制、遊戲軟件,管理軟件的用戶需求更加不統一,變化更大、更快。筆者主要從事企業管理軟件的測試。因此我們的做法是把測試數據和測試腳本從測試用例中劃分出來。測試用例更趨於是針對軟件產品的功能、業務規則和業務處理所設計的測試方案。對軟件的每個特定功能或運行操作路徑的測試構成了一個個測試用例。

  三、編制測試用例

  着重介紹一些編制測試用例的具體做法。

  1、測試用例文檔

  編寫測試用例文檔應有文檔模板,須符合內部的規範要求。測試用例文檔將受制於測試用例管理軟件的約束。

  軟件產品或軟件開發項目的測試用例一般以該產品的軟件模塊或子系統爲單位,形成一個測試用例文檔,但並不是絕對的。

  測試用例文檔由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試範圍、定義術語、參考文檔、概述等。測試用例部分逐一列示各測試用例。每個具體測試用例都將包括下列詳細信息:用例編號、用例名稱、測試等級、入口準則、驗證步驟、期望結果(含判斷標準)、出口準則、註釋等。以上內容涵蓋了測試用例的基本元素:測試索引,測試環境,測試輸入,測試操作,預期結果,評價標準。

  2、測試用例的設置

  我們早期的測試用例是按功能設置用例。後來引進了路徑分析法,按路徑設置用例。目前演變爲按功能、路徑混合模式設置用例。

  按功能測試是最簡捷的,按用例規約遍歷測試每一功能。

  對於複雜操作的程序模塊,其各功能的實施是相互影響、緊密相關、環環相扣的,可以演變出數量繁多的變化。沒有嚴密的邏輯分析,產生遺漏是在所難免。路徑分析是一個很好的方法,其最大的優點是在於可以避免漏測試。

  但路徑分析法也有侷限性。在一個非常簡單字典維護模塊就存在十餘條路徑。一個複雜的模塊會有幾十到上百條路徑是不足爲奇的。筆者以爲這是路徑分析比較合適的使用規模。若一個子系統有十餘個或更多的模塊,這些模塊相互有關聯。再採用路徑分析法,其路徑數量成幾何級增長,達5位數或更多,就無法使用了。那麼子系統模塊間的測試路徑或測試用例還是要靠傳統方法來解決。這是按功能、路徑混合模式設置用例的由來。

  3、設計測試用例

  測試用例可以分爲基本事件、備選事件和異常事件。設計基本事件的用例,應該參照用例規約(或設計規格說明書),根據關聯的功能、操作按路徑分析法設計測試用例。而對孤立的功能則直接按功能設計測試用例。基本事件的測試用例應包含所有需要實現的需求功能,覆蓋率達100%。

  設計備選事件和異常事件的用例,則要複雜和困難得多。例如,字典的代碼是唯一的,不允許重複。測試需要驗證:字典新增程序中已存在有關字典代碼的約束,若出現代碼重複必須報錯,並且報錯文字正確。往往在設計編碼階段形成的文檔對備選事件和異常事件分析描述不夠詳盡。而測試本身則要求驗證全部非基本事件,並同時儘量發現其中的軟件缺陷。

  可以採用軟件測試常用的基本方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等設計測試用例。視軟件的不同性質採用不同的方法。如何靈活運用各種基本方法來設計完整的測試用例,並最終實現暴露隱藏的缺陷,全憑測試設計人員的豐富經驗和精心設計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章