究竟什麼是測試需求
早上,剛開啟電腦,看到一封德高望重的大姐給我發來一封郵件,詢問什麼是「測試需求」,以及測試需求和軟體需求之間有什麼聯絡和區別。責任重大,立即行動起來,不能讓大姐失望啊。
谷歌搜尋了一通,發現了幾篇文章,話題大致是測試需求的。
儘管題目給人的暗示是:這篇文章將談測試需求,但我沒有找到對測試需求的定義。下面是我看到的幾篇有代表性的網路文章,現展示給大家,以分享我的體驗。
第一篇:「測試需求定義(參考
rup測試實踐
)」[1]。無論從題目本身,還是從文章的寫作,顯得都很專業,是我看過的最正式的文章了。但該文只有兩個小標題,「如何確定測試工作的範圍」和「如何整理測試需求」,避開了對「測試需求」做定義,細讀下來,發現作者賦予「測試需求」的含義是「確定測試範圍」。通篇文章談論的也是測試範圍的變化以及如何應對:測試範圍的檢查、評審和變化跟蹤等。
第二篇文章是「測試需求&其要點 [3] 」。開啟網頁,我看見乙個小標題赫赫然印入眼簾:「什麼是測試需求」,心想:這應該是我要找的答案。但接下來讓我很快失望,作者在文中說:「套用軟體需求的定義,我們可以說需求是…指明測試什麼的規格說明。它描述了我們測試系統的行為、特性或屬性,是在測試過程中對測試的約束。」我的第一感覺是不知所云,連蒙帶猜覺得他將「測試需求」理解成「測試什麼」(what to be tested)。帶著猜測接著往下讀,證明我的猜測是正確的。
第三篇文章,「什麼是測試需求[2]」,是網上流傳最多。本以為這篇文章能回答的問題,可這篇文章一開始就說:「測試需求的概念比較簡單。比方說,對於乙個計算平方根的程式,如果輸入乙個大於或等於零的數,程式可以給出乙個結果;如果輸入乙個小於零的數,程式將指出輸入錯誤。對數值零進行測試;對零非常接近的負數進行測試,這就是兩個具體的測試需求。」作者沒給出測試需求的定義,只是打了個比方。細看起來,他所說的測試需求,其實是一種測試的設計。作者認為簡單的問題,至此還是沒有找到答案。
實在沒有辦法,我去英文的維基百科上搜尋一下,在
我輸入了」software testing requirement」,發現維基百科也沒有收錄這個詞條,是我翻譯錯了?「軟體測試需求」難道不翻譯成「software testing requirement」嗎?我正納悶ing。
如果真有「軟體測試需求」規範的說法,我一定去建立這個詞條,搶個頭功。
失望,空手而歸。但也澄清了乙個事實:那就是測試需求不是個規範的概念,連提它的作者也無力給出定義。在頭兩篇文章作者的認識中,測試需求就是測試範圍,那麼確定測試範圍的工作應在測試計畫階段完成,因為測試計畫的任務包括了:the items to be tested, the features to be tested, the testing tasks to be performed [4]。這是ieee的標準文件裡規定的。第三篇作者說的是ieee標準中的「測試設計」。按照ieee的標準,測試設計的目的是:
也許標準天生就比較晦澀,也許我翻譯或理解得有問題,下面我不妨舉個例項說明什麼是測試設計。
例如:我們要測試乙個計算器程式。測試計算器加法功能時,我們要想到測試兩個最大的數相加、兩個最小的數相加、相加後的結果是2的冪(如256)等,如此這般的思考是測試設計的過程,形成文件就叫做「測試設計規格說明」。下面測試設計規格說明的片段:
最大可能的值相加:test case id# 15326
對小可能的值相加:test case id# 15327
相加結果是2的冪:test case id# 15328
注意,在這個例子中,我們沒有寫明測試用例的具體的輸入/輸出值,只是測試用例的引用,這使得《測試設計規格說明》顯得簡短、明了,便於理解測試者的意圖。對每個測試用例在另乙個文件(《測試用例規格說明》)中作詳細描述。從這個例子中,我們也很清楚地看出,測試設計文件和測試用例是完全不同的兩個文件。
據說中國軟體測評中心也提到「測試需求規格說明」,我不知道他們這裡的「需求」指的是「測試範圍」還是「測試設計」,這要看他們內部的定義了。
按本人理解,軟體測試確實存在乙個需求,即測試需求。而我所理解的測試需求既不是「測試範圍」,也不是「測試設計」,而是根據程式檔案和質量目標對軟體測試活動所提的要求。
眾所周知,測試,哪怕只對乙個很小的軟體,測試都是永無止境的。既然,我們不能在有限的時間、資源範圍內做完所有的測試,那麼,什麼樣的測試才滿足要求,什麼時候可以停止測試呢?這是個非常有意思的問題,一般認為,經過評審的測試計畫、測試設計和測試用例執行完畢之後,發現的軟體缺陷在事先規定的範圍內,產品就可以停止測試了。對測試所做的一定程度的限定,使測試成本和質量在一定程度上達成妥協,就是測試需求。
各個軟體公司對測試要求是不一樣的。大家也許聽到傳說,microsoft要求測試的人員甚至比開發的人員水平高,人數還要多。相信,這比你公司的要求要高。或許我還相信,你所在的公司對測試提到過類似這樣的要求:產品發布之前必須經過回歸測試(regression),必須經過效能測試,必須經過驗收測試,測試的覆蓋面必須達到的百分比,等等。
對測試提出的要求的總和,就是測試需求,我以為。不同的軟體有不同的測試需求,不同的使用者有不同的測試需求,不同的公司有不同的測試需求。但我相信,測試需求絕不是測試範圍,也不是測試設計。
測試需求要視組織的質量目標而定,對關鍵系統(critical system)的測試要求就高,對一般目的非關鍵的商用軟體的測試要求就低。
參考文獻
[1] jackei.
測試需求定義(參考
rup測試實踐).
[2] brian marick. 什麼是測試需求.
[3] sap abaper. 測試需求&其要點.
[4] ieee-sa standards board, ieee-cs 「ieee standard for software test documentation」
什麼是測試需求
究竟什麼是測試需求 早上,剛開啟電腦,看到一封德高望重的大姐給我發來一封郵件,詢問什麼是 測試需求 以及測試需求和軟體需求之間有什麼聯絡和區別。責任重大,立即行動起來,不能讓大姐失望啊。wikipedia 找,無論中文還是英文,都沒有對測試需求做定義。接著,我用 谷歌搜尋了一通,發現了幾篇文章,話題...
什麼是需求
需求就好比買衣服,客戶未必能很完整地 清晰地認識或知道他們需要什麼。而我們需要通過客戶給我們的資訊,把這些資訊整理,再反饋給客戶看,反覆確定客戶是否確定該需求,經過一番需求在理解 業務的 能夠指出 需求那些地方需要修改,改善,最後能夠給出一套解決方案,碟這建立在了解業務 規則,業務常識,清楚使用者到...
需求分析 什麼是需求分析?
需求分析學習目錄 乙個使用者解決乙個問題或實現乙個目標所需的條件或能力 為了滿足乙個合同 標準 規範 或其它正是文件要求,乙個系統或系統構件必須具備或擁有的條件或能力。所有的需求共同形成系統或構件開發的基礎 一種反應1 2所描述的條件或能力的文件說明。在本人所上的軟體需求分析課程中,乙個軟體需求是指...