淺談軟件測試的思路 軟件測試
今將自己積累的測試設計中常用的一些思維方式陳列出來,與大家一起共享一下。
1、逆向思維方式
· 逆向思維在測試中用的很多,比如將根據結果逆推條件,從而得出輸入條件的等價類劃分
· 其實逆向思維在調試當中用到的也比較多,當發現缺陷時,進一步定位問題的所在,往往就是逆流而上,進行分析
· 逆向思維是相對的,就是按照與常規思路相反的方向進行思考,測試人員往往能夠運用它發現開發人員思維的漏洞
2、組合思維方式
· 很多東西單一的思考都沒有問題,當將相關的事物組合在一起卻能發現很多問題;如多進程并發,讓程序的復雜度上了一個臺階,也讓程序的缺陷率隨之而增長
· 按照是否排序組合可以分為:排列(有序)和組合(無序);針對不同的應用,可以酌情考慮使用“排列”或者“組合”
· 為了充分利用組合思維而不致于讓自己的思維混亂,要注意“分維”,將相關的因素劃分到不同的維度上,然后再考慮其相關性
3、全局思維方式
· 事物往往存在多面性,當我們掌握了越多的層面,我們對它的認識就越清楚,越有利于我們掌握其本質,全局思維方式就是讓我們從多角度分析待測的系統;試著以不同角色去看系統,分析其是否能夠滿足需求
· 其實平常我們在軟件開發過程中,進行的各種評審,就是借助全局思維的方式,讓更多的人參與思考,腦力激蕩,盡可能的實現全方位審查某個解決方案的正確性以及其他特性
4、兩極思維方式
· 邊界值分析是兩極思維方式的典范
· 為了看系統的穩定性,我們采用了壓力測試
· 兩極思維方式,是在極端的情況下,看是否存在缺陷?
· 注意是兩極,不是一極
· 測試人員做久了,往往容易走極端——職業病,不利于與人溝通
5、簡單思維方式
· 剝離一些非關鍵特征,追逐事物的本質,讓事物簡單的只剩下“根本”
· 針對事物本質(解決問題的本質)的測試,讓我們不至于偏離方向
6、比較思維方式
· 認識事物時,人們往往都是通過和頭腦中的某些概念進行比較,找出相同、相異之處,或者歸類,從而將其加入大腦中的知識體系,可能的話,再建立好的搜索方式,以便以后使用
· 應用模式是“比較思維”很常見的例子,現在模式很火,有設計模式、體系結構模式、測試模式、等等,一些專家針對一些相關問題的共性找出來的解決方法,取完名字后,可以讓大家方便的復用
· 讓經驗在這里發揮作用,測試中經驗很重要,比較思維是使用經驗的方式
7、動起來,更精彩
· 關注程序的運行時狀態
· 傳統的基于結構的程序可以更多的在代碼中反映將來程序的運行方式;而面向對象將代碼和運行時顯著分離
· 讓我們在關注代碼靜態結構(如類結構)的同時,也要謹慎關注其動態(對象交互網)表現
其實這些思維方式,大家都在有意識或者無意識的使用著,它們各自都有自己的妙處,將我們的思維發散,有意識的將他們用在問題的思考上,有時可以給我們一種“柳暗花明又一村”的感覺。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/