測試不是平的
發表于:2009-06-02來源:作者:點擊數:
標簽:
很多 軟件測試工程師 強調測試的方法和思想,到底什么是測試的方法和思想? 測試的思路是一種立體的思路,物理學在說到多維空間的時候,往往會用“生活在球面上的動物”來形象地說明二維空間和三維空間的不同,在這里我也想借用多維空間的概念說一說測試。 在
很多
軟件測試工程師強調測試的方法和思想,到底什么是測試的方法和思想?
測試的思路是一種立體的思路,物理學在說到多維空間的時候,往往會用“生活在球面上的動物”來形象地說明二維空間和三維空間的不同,在這里我也想借用多維空間的概念說一說測試。
在我看來,測試應該至少具有三個維度:
測試的級別——
軟件測試在不同的級別(level)上開展,例如
單元測試、
集成測試和
系統測試。單元測試是最低的一個級別,測試的對象是構成軟件系統的最小單位Unit;集成測試則是中間的級別,測試對象是由多個Unit組成的子系統;而系統測試則是高級別的測試,測試對象是完整的系統。
測試的類型——測試類型和測試級別是正交的維度,測試類型是指對測試對象進行的不同類型的測試,同一個類型的測試可以在不同級別的測試中有不同的體現。例如
性能測試,在單元測試、系統測試中都可能會進行針對性能的測試,但在這兩個不同級別的測試中,性能測試的具體體現也不相同——單元測試中的性能測試側重對單元性能的評估,對算法性能的評估;而系統測試中的性能測試則側重用戶感受,性能測試結果體現的是對系統總體性能表現的評估。
測試的背景——測試關注點是另一個維度,簡單來說,就是站在誰的角度來思考
測試設計。舉例來說,功能點測試就是站在“系統實現”的角度,一個一個的檢查功能點是否完備,而用戶場景測試則站在“用戶”的角度,檢查用戶最關注的系統業務流程或是操作場景能夠順利實現。
測試的世界是立體和多維的,這就意味著測試工程師在思考測試問題的時候必須多角度地分析。從思路的角度來說,也就是要盡可能從多方位考慮驗證系統正確性和發現問題的可能性。
至于測試的方法,則是指針對某種具體的思路,采用一些標準或是比較標準的方法對測試進行劃分,以使得可以用一個相對較小的測試集合盡可能的覆蓋系統的輸入空間。常見的
黑盒測試方法,等價類劃分/邊界值分析/狀態遷移圖法等,都是典型的測試方法。
把這個問題擴展一下——我們講到了測試的思路和方法,也給出了他們的不同,對測試工程師來說,這究竟具有什么樣的意義呢?我覺得這里的討論最適合用來回答一個經常被問到的問題“測試工程師究竟應該具有什么樣的技能?”,我的答案是:
從測試方法的角度來說,測試工程師需要掌握測試設計的方法; 只掌握測試設計方法是遠遠不夠的,還需要有相應的測試的思路; 從測試思路出發,測試工程師至少需要了解測試的不同級別,級別之間的差異和每個級別關注的重點;需要掌握測試的類型,了解每種測試類型關注的重點,區別和重疊的地方;需要掌握系統的背景
知識(也就是通常說的業務知識),了解系統本身的結構,能夠從系統本身和用戶的角度來關注系統的測試。
原文轉自:http://www.kjueaiud.com