軟體測試用例的認識誤區有哪些?

動腦科技發表於2018-07-16

軟體測試用例是為了有效發現軟體缺陷而編寫的包含測試目的、測試步驟、期望測試結果的特定集合。正確認識和設計軟體測試用例可以提高軟體測試的有效性,便於測試質量的度量,增強測試過程的可管理性。

  在實際軟體專案測試過程中,由於對軟體測試用例的作用和設計方法的理解不同,測試人員(特別是剛從事軟體測試的新人)對軟體測試用例存在不少錯誤的認識,給實際軟體測試帶來了負面影響,本文對這些認識誤區進行列舉和剖析。

誤區之一:測試輸入資料設計方法等同於測試用例設計方法

  現在一些測試書籍和文章中講到軟體測試用例的設計方法,經常有這樣的表述:測試用例的設計方法包括:等價類、邊界值、因果圖、錯誤推測法、場景設計法等。這種表述是很片面的,這些方法只是軟體功能測試用例設計中如何確定測試輸入資料的方法,而不是測試用例設計的全部內容。

  這種認識的不良影響可能會使不少人認為測試用例設計就是如何確定測試的輸入資料,從而掩蓋了測試用例設計內容的豐富性和技術的複雜性。如果測試用例設計人員把這種認識拿來要求自己,則害了自己;拿來教人,則害了別人;拿來指導測試,則害了測試團隊。聽起來似乎是“小題大做”,但是絕不是“危言聳聽”。

  無疑,對於軟體功能測試和效能測試,確定測試的輸入資料很重要,它決定了測試的有效性和測試的效率。但是,測試用例中輸入資料的確定方法只是測試用例設計方法的一個子集,除了確定測試輸入資料之外,測試用例的設計還包括如何根據測試需求、設計規格說明等文件確定測試用例的設計策略、設計用例的表示方法和組織管理形式等問題。

  在設計測試用例時,需要綜合考慮被測軟體的功能、特性、組成元素、開發階段(里程碑)、測試用例組織方法(是否採用測試用例的資料庫管理)等內容。具體到設計每個測試用例而言,可以根據被測模組的最小目標,確定測試用例的測試目標;根據使用者使用環境確定測試環境;根據被測軟體的複雜程度和測試用例執行人員的技能確定測試用例的步驟;根據軟體需求文件和設計規格說明確定期望的測試用例執行結果。

誤區之二:強調測試用例設計得越詳細越好

  在確定測試用例設計目標時,一些專案管理人員強調測試用例“越詳細越好”。具體表現在兩個方面:儘可能設計足夠多的設計用例,測試用例的數量越多越好;測試用例儘可能包括測試執行的詳細步驟,達到“任何一個人都可以根據測試用例執行測試”,追求測試用例越詳細越好。

  這種做法和觀點最大的危害就是耗費了很多的測試用例設計時間和資源,可能等到測試用例設計、評審完成後,留給實際執行測試的時間所剩無幾了。因為當前軟體公司的專案團隊在規劃測試階段,分配給測試的時間和人力資源是有限的,而軟體專案的成功要堅持“質量、時間、成本”的最佳平衡,沒有足夠多的測試執行時間,就無法發現更多的軟體缺陷,測試質量更無從談起了。

  編寫測試用例的根本目的是有效地找出軟體可能存在的缺陷,為了達到這個目的,需要分析被測試軟體的特徵,運用有效的測試用例設計方法,儘量使用較少的測試用例,同時滿足合理的測試需求覆蓋,從而達到“少花時間多辦事”的效果。

  測試用例中的測試步驟需要詳細到什麼程度,主要取決於測試用例的“終端使用者”(即執行這些測試用例的人員),以及測試用例執行人員的技能和產品熟悉程度。如果編寫測試用例的人員也是測試用例執行人員,或者測試用例的執行人員深刻了解被測軟體,測試用例就沒有必要太詳細。而如果是測試新人執行測試用例,或者軟體測試外包給獨立的第三方公司,那麼測試用例的執行步驟最好足夠詳細。

誤區之三:追求測試用例設計“一步到位”

  現在軟體公司都意識到了測試用例設計的重要性了,但是一些人認為設計測試用例是一次性投入,測試用例設計一次就“萬事大吉”了,片面追求測試設計的“一步到位”。

  這種認識造成的危害性使設計出的測試用例缺乏實用性,或者誤導測試用例執行人員,誤報很多不是軟體缺陷的“Bug”,這樣的測試用例在測試執行過程中“形同虛設”,難免淪為“垃圾文件”的地步。

  “唯一不變的是變化”。任何軟體專案的開發過程都處於不斷變化過程中,使用者可能對軟體的功能提出新需求,設計規格說明相應地更新,軟體程式碼不斷細化。設計軟體測試用例與軟體開發設計並行進行,必須根據軟體設計的變化,對軟體測試用例進行內容的調整,數量的增減,增加一些針對軟體新增功能的測試用例,刪除一些不再適用的測試用例,修改那些模組程式碼更新了的測試用例。

  軟體測試用例設計只是測試用例管理的一個過程,除此之外,還要對其進行評審、更新、維護,以便提高測試用例的“新鮮度”,保證“可用性”。因此,軟體測試用例也要堅持“與時俱進”的原則。

誤區之四:讓測試新人設計測試用例

  在與測試同行交流的過程中,不少剛參加測試工作的測試新人經常詢問的一個問題是:“怎麼才能設計好測試用例?”。因為他(她)們以前從來沒有設計過測試用例,面對大型的被測試軟體感到“老虎吃天,無從下口”。

  讓測試新人設計測試用例是一種高風險的測試組織方式,它帶來的不利後果是設計出的測試用例對軟體功能和特性的測試覆蓋性不高,編寫效率低,審查和修改時間長,可重用性差。

  軟體測試用例設計是軟體測試的中高階技能,不是每個人(尤其是測試新人)都可以編寫的,測試用例編寫者不僅要掌握軟體測試的技術和流程,而且要對被測軟體的設計、功能規格說明、使用者試用場景以及程式/模組的結構都有比較透徹的理解。

  因此,實際測試過程中,通常安排經驗豐富的測試人員進行測試用例設計,測試新人可以從執行測試用例開始,隨著專案進度的不斷進展,測試人員的測試技術和對被測軟體的不斷熟悉,可以積累測試用例的設計經驗,編寫測試用例。

相關文章