在“軟體測試用例設計需要參考哪些輸入?”文章中,作者提出了測試用例設計需要參考的幾個主要來源:開發文件、使用者需求、標準與規範、類似產品需求、測試經驗知識庫和其他隱性需求等。針對測試物件的測試條件的識別,將以這些參考文件作為輸入。
複製程式碼
在測試實踐過程中,不同測試人員會負責測試物件的不同功能和特性。因此,將某個功能或者特性相關的參考輸入文件分配給同一個測試人員,有助於提高測試條件識別的效率和有效性的。下面針對不同的參考輸入來源,在識別測試條件上面有哪些特點或者原則? 1)開發文件 這裡的開發文件是一個統稱,包含了開發過程中的各種軟體工作產品,例如:系統需求規格說明、概要設計規格說明等。對於系統測試而言,系統需求規格說明是其最主要的參考輸入之一;對於其他測試級別,其主要參考輸入來源是相對應的開發文件。 假如系統需求規格說明比較完善正規,那麼從該文件中提取測試條件相對比較容易,其基本原則是每條需求條目至少有一個測試用例覆蓋。根據需求條目的顆粒度不同,多個需求條目可以在一個測試用例中進行驗證;而有的需求條目可以合併成一個,並在同一個測試用例中驗證。在測試條件提取過程中,測試人員需要注意的是:需求更多的是從軟體開發角度出發的,測試人員需要將這樣的需求轉換為測試的角度進行考慮。 假如系統需求規格說明不全,甚至沒有的情況下,如何識別其中的測試條件是一個挑戰。下面是識別測試條件的幾個建議: (1)首先,與軟體產品的系統人員和開發人員進行討論,從測試的角度,將存在於他們腦子裡的未文件化的需求明確; (2)其次,假如測試人員具備程式碼方面的能力,可以通過實現的程式碼倒推出軟體系統是如何實現的,它們也可以作為識別測試條件的參考。當然,這裡面臨的一個問題是,程式碼實現是否是正確的、全面的,這是測試人員需要考慮的一個問題。 (3)第三,從測試的角度推動開發團隊提高開發文件的質量,從規範軟體開發過程(流程)的層面逐步改進系統需求的質量,例如:通過輸出測試文件或者測試中的檢查表,推動改進開發文件質量。 2)使用者需求 測試過程中我們經常會聽到測試人員不僅需要驗證開發是否正確實現了功能,同時也需要從使用者的角度考慮軟體產品是否真的滿足了使用者的需求,這是測試中的確認(Validation)關注點。而使用者需求就在其中充當了很重要的角色,使用者需求通常是從使用者實際使用的角度進行描述和劃分的,類似於用例場景。 由於使用者不一定了解和熟悉軟體產品相關的知識和技能,因此使用者需求很難是完整的。測試人員在分析使用者需求的時候,需要結合軟體產品的相關開發文件具體內容。同時,需要測試人員積極與客戶、產品的技術支援人員、銷售人員進行溝通,從他們角度獲取可能的測試條件。例如:客戶現場實際的網路拓撲結構、使用者實際使用的功能配置等。 3)標準與規範 標準與規範中定義的內容會比開發文件中可能詳細的多,因此它們是測試人員進行深入和細緻學習的重要物件。例如:資料通訊產品中的很多功能開發都是基於某些國際、國家和行業的標準與規範而開展的,基於它們獲取測試條件取,對於提高測試的覆蓋率和有效性是非常有必要的。下面是基於標準與規範識別測試條件的一些原則和建議: (1)開發文件沒有詳細描述軟體產品的某個功能或者特性,而是直接參考某某協議標準,例如:OAM PDU的格式與Y.1731/802.1ag/D80相相容。 (2)協議一致性測試、標準與規範一致性測試等,這個時候,標準與規範可能是識別測試條件的主要參考輸入。測試人員可以基於標準與規範來檢查軟體產品的實現是否存在偏差,這主要是測試中的驗證(Verification)關注點; (3)除了通過標準與規範獲取測試條件之外,測試人員也可以通過它們檢查開發文件是否存在遺漏和錯誤,這是前期評審工作的主要目的之一。 4)類似產品需求 隨著軟體產品越來越複雜,行業內採用增量-迭代開發模型的場合越來越多,例如敏捷開發。測試人員經常面臨的軟體產品是基於已有的系統之上,即測試物件是基於以前版本的功能增加、缺陷修復、平臺移植等變更基礎之上。因此測試人員需要分析歷史測試是否全面,測試物件變更是否影響以前執行的軟體版本等。基於這些資訊,測試人員可以獲取新的測試需求。 5)測試經驗知識庫 測試並不是存在編碼之後的一個階段,測試應該貫穿於整個軟體開發生命週期。類似於開發過程改進一樣,測試也應該是PDCA(戴明質量環)的過程。因此,不同專案中的測試經驗是每次測試用例設計的重要輸入。通過測試經驗知識庫,測試團隊的測試經驗和技能才能在整個組織中共享。 測試經驗知識庫可以來自測試執行的經驗、測試過程中發現的缺陷分類和分析、使用者反饋的缺陷分類和分析等。 6)其他隱性的需求 除了從前面提到的輸入文件中識別測試條件之外,其他的一些隱性輸出也可以作為識別測試條件的基礎,例如不同產品利益相關者針對測試物件中間版本的變更而達成的備忘錄;通過雜誌、網路等查詢類似測試物件產品的一些常見缺陷和失效,以及軟體產品在使用者現場使用的討論等。 通過測試用例設計的參考輸入:系統需求、使用者需求、標準與規範、類似產品需求、測試經驗知識庫,以及其他隱性的需求,測試人員可以獲取一系列的初始測試條件,即測試條件列表。為了提升測試效率和有效性,需要為每個測試用例需要設定一個測試優先順序。 初始的測試條件列表,還需要更進一步的測試型別分析和功能互動分析,才能得到相對完善的測試條件列表。接下來,測試人員可以採用一系列測試技術與方法,進行詳細測試用例的設計。 歡迎加QQ群599411652學習,交流軟體測試,一起裝逼,一起飛~