在外行人看來,軟件測試其實沒什么技術可言,甚至有人認為測試無非是在擺弄一下軟件的功能,只要懂得使用鼠標就足夠了,這是對軟件測試的一種誤解。
1. 黑盒測試與白盒測試
很多測試人員喜歡討論黑盒測試與白盒測試的區別,也有些測試人員感覺白盒測試很神秘,很高深,自己沒有足夠的開發能力是不可能進行白盒測試的。
那么什么是黑盒測試,什么是白盒測試呢?下面對此進行簡單介紹。
1.1黑盒測試
黑盒測試是一種把軟件產品當成是一個黑箱的測試技術,這個黑箱有入口和出口,測試過程中只需要了解黑箱的輸入和輸出結果,不需要了解黑箱里面具體是怎樣操作的。這當然很好,因為測試人員不用費神去理解軟件里面的具體構成和原理,測試人員只需要像用戶一樣看待軟件產品就行了,如圖1所示。
例如,銀行轉賬系統提供給用戶轉賬的功能,則測試人員在使用黑盒測試方法時,不需要知道轉賬的具體實現代碼是怎樣工作的,只需要把自己當成用戶,模擬盡可能多的轉賬情況來檢查這個軟件系統能否按要求正常實現轉賬功能即可。
如果只像用戶使用和操作軟件一樣去測試軟件黑盒測試可能存在一定的風險。例如,某個安全性要求比較高的軟件系統,開發人員在設計程序時考慮到記錄系統日志的必要性,把軟件運行過程中的很多信息都記錄到了客戶端的系統日志中,甚至把客戶端連接服務器端的數據庫連接請求字符串也記錄到了系統日志中,像下面的一段字符串:
"Data Source=192.168.100.99;Initial Catalog=AccountDB;User ID=sa;PassWord=123456;
那么按照黑盒測試的觀點,這是程序內部的行為,用戶不會直接操作數據庫的連接行為,因此檢查系統日志方面的測試是不會做的。這明顯構成了一個Bug,尤其是對于安全性要求高的軟件系統,因為它暴露了后臺數據庫賬號信息。
有人把黑盒測試比喻成中醫,做黑盒測試的測試人員應該像一位老中醫一樣,通過“望、聞、問、切”的方法,來判斷程序是否“有病”。這比單純的操作黑箱的方式進了一步,這種比喻給測試人員一個啟示,不要只是簡單地看和聽,還要積極地去問,積極地去發現、搜索相關的信息。應該綜合應用中醫看病的各種“技術”和理念來達到找出軟件“病癥”的目的,具體作法如下:
“望”,觀察軟件的行為是否正常;
“聞”,檢查輸出的結果是否正確;
“問”,輸入各種信息,結合“望”、“聞”來觀察軟件的響應程度;
“切”,像中醫一樣給軟件“把脈”,敲擊一下軟件的某些“關節”。
1.2白盒測試
如果把黑盒測試比喻成中醫看病,那么白盒測試無疑就是西醫看病了。測試人員采用各種儀器和設備對軟件進行檢測,甚至把軟件擺上手術臺解剖來看個究竟。白盒測試是一種以理解軟件內部結構和程序運行方式為基礎的軟件測試技術,通常需要跟蹤一個輸入經過了哪些處理,這些處理方式是否正確,這個過程如圖2所示。
如果把軟件看成一個黑箱,那么白盒測試的關鍵是給測試人員戴上一副X光透視眼鏡,測試人員通過這副X光透視眼鏡可以看清楚輸入到黑箱中的數據是怎樣流轉的。
一些測試工具就像醫院的檢測儀器一樣,可以幫助了解程序的內部運轉過程。例如,對于一個與SQL Server數據庫連接的軟件系統,可以簡單地把程序的作用理解為:把用戶輸入的數據通過SQL命令請求后臺數據庫,數據庫把請求的數據返回給程序的界面層展示給用戶?梢园裇QL Server自帶的工具事件探查器當成是一個檢查SQL數據傳輸的精密儀器,它可以記錄軟件客戶端與服務器數據庫之間交互的一舉一動,從而讓測試人員可以洞悉軟件究竟做了哪些動作。
在測試過程中,應該綜合應用黑盒測試方法和白盒測試方法,按需要采用不同的技術組合。不要用黑盒測試方法和白盒測試方法來劃分自己屬于哪一類測試人員,一名優秀的測試人員應該懂得各種各樣的測試技術和查找Bug的手段。
文章來源于領測軟件測試網 http://www.kjueaiud.com/