當前位置:文思屋>社會工作>職位百科>

如何選擇軟體測試方法

文思屋 人氣:2.6W

我們知道整個Test Cycle的樣子,我們知道功能測試是很重要的。其採用的方法也是很普通的,根據需求寫測試用例,站在功能是否被實現或被完美實現的角度去寫測試用例,然後按照測試用例來執行所寫的測試用例,發現了一定的bug。似乎很合理,似乎無懈可擊看。但平靜的湖面下面是否存在怪獸呢?
第一次聽到測試手段的概念,無法理解,覺得測試手段和測試型別幾乎差不多,估計是在炒概念,最近很流行。但瞭解了James Bach的思想後,感覺自己錯了,測試手段使測試更加富有,更加活躍,更加專業。
我們最熟悉的就是功能測試了,顯然功能測試相對於效能測試,介面測試,安全測試,就是一個特別典型的測試型別,我們會對測試型別進行不同的測試策略。那麼這裡我們從測試手段來考慮,功能測試只是一個測試手段,屬於功能測試(測試型別)。我們還可以把功能測試手段和相容性測試型別給結合起來,好嗎?
測試手段關注與多個方面:測試員,覆蓋率,潛在問題,測試活動,評估。
那麼我們的功能測試其實就是關注測試內容的基於覆蓋率的測試手段,逐個測試每個功能,徹底測試每個功能,直到可以確信該功能沒有問題。這裡麵包括白盒功能測試(單元測試)和黑盒功能測試。
另外還有些關注測試內容的基於覆蓋率的測試手段:
特性與功能整合測試:一起測試多個功能,已check功能在一起執行的情況
選單瀏覽:遍歷GUI產品中的所有選單和對話框,使用每個可以的選項
域測試: 使用等價類和邊界值方法進行變數輸入測試
等價類分析: 測試等價的一組變數的取值測試
還有很多沒有寫出來,說一個共同點:就是其實我們的其他很多測試手段都是在廣義上的功能測試剝離出來的,也就是說,我們淘寶現在做的功能測試其實都或多或少的包括這些測試手段,但是做到的程度就不一樣了。
我們測試執行的時候:考慮說要站在使用者使用的角度,要站在功能設計是否合理的角度,要站在破壞者的角度,要站在功能是否正確的角度,要站在市場的角度。等等。不同的角度去測試,就會發現不同的bug。
我們做功能測試的時候,會全面考慮這些角度,但我們的比重是非常清楚的,也就是我們更多的關注這個功能是否正確,是否符合需求。其最常用的手段就是上面說的徹底的測試每個功能,就是功能測試。
那麼如果我們看其他的手段,可以發現我們實際在做的功能測試都包含這些測試手段,但一個人的精力是有限的,你把更多的權重放在這裡,其他的地方的權重會相對減小。我們為啥會這樣呢?我們沒有深入的分析功能測試發現的bug和使用不同的手段去進行功能測試帶來的好處。
加上同一個角度的測試執行帶來的浮躁和系統免疫現象,我們功能測試的手段的單一性帶來的結果是值得懷疑的。我們使用不同的手段去進行類似於功能測試的測試執行,會發現很多bug,這些bug表面上看象功能測試應該發現的bug,象使用者測試應該發現的bug。一般情況下什麼樣的測試手段決定發現什麼樣的bug。當然不同的手段之間也會存在交集的,也就是說使用ET手段去測試,站在的角度也許會存在變化(在測試執行中),所以其發現的bug會很有可能是其他測試手段應該發現的bug。
總之,測試手段的多樣性帶來的成果是可觀的。當然,成本也是需要考慮的。
說的很抽象,後續想想怎麼比喻好一點。

如何選擇軟體測試方法
TAGS:軟體測試