黑盒測試比白盒測試技術要求更高嗎?

幾個月前我還在談論黑盒測試不一定比白盒測試技術含量低,現在我卻可以比較肯定地說,黑盒測試比白盒測試更難,技術要求更高。道理其實非常簡單,黑盒,白盒測試的本質區別在于源代碼的訪問權利,白盒測試具有這種權利,因此也就具有更多的資源和信息進行測試,當然事情就會變得容易很多,而黑盒測試由于不能看到源代碼,就使得對于白盒測試人員發現的bug,你要花更多的時間,并且具有更高的技術才有可能發現。

我做黑盒測試已經4年多了,是一個地地道道的黑盒測試人員,可是我具有源代碼訪問的權利,也就是說,雖然我是做黑盒測試的,但是我所擁有的信息并不比白盒測試人員少。隨著我黑盒測試經驗和技術的提高,我突然發現我已經完全依賴與源代碼提供的信息了,如果沒有源代碼,我的黑盒測試的工作將會變得復雜很多,困難很多,甚者無法實現。這也讓我有了一個強烈的感覺,就是黑盒測試比白盒測試更難。

在Symantec出版的一本書《TheArtofSoftwareSecurityTest》里邊就有這個說法。這本書我覺得一般般,但是里邊體現著這個道理,就是,“對于白盒測試,一個公司可以組成一個測試隊伍來進行,而對于黑盒測試,可能就很少有公司有這個能力了,只能去外邊聘請專業的公司來作,這個成本是很高的,但是是值得的”。

經常聽到有人抱怨“我在公司是做黑盒測試的,沒什么技術含量,我的目標就是轉到白盒測試”,我一直覺得這個說法是可以質疑的,也希望看了我的這篇文章以后,不要再出現這種聲音,更不要再拿它當成自己不去提高測試技術的一個冠冕堂皇的借口了。

為什么我們大多數人,包括以前我自己都會認為黑盒測試比白盒測試的技術含量低呢?那是因為,我們絕大多數人都是在做低端黑盒測試的。很早以前我就曾想過,黑客都是通過黑盒測試的方法來尋找安全漏洞的,我們怎么能說黑盒測試技術含量低呢?隨著自己的水平向黑客的方向接近,自己也越來越有更深,更豐富的理解和體會了。

如果我們把剛進入黑盒測試領域的新人的技術打分為0,而黑客的技術打分為5的話,那么根據技術水平我有這樣一個列表:

0.測試新手

1.黑盒手工測試

2.黑盒自動化測試

3.具有白盒測試能力

4.安全測試

5.黑客

大家注意,很多人把自己的測試技術的提高依賴于公司,依賴于team,依賴于project,這是不對的。我本人在公司的工作內容不過就是黑盒自動化測試,可是這并不影響我可以向更高的方向發展,現在internet這么發達,什么資料不能找到呢?各種各樣的計算機書籍,網上各種各樣的計算機技術交流探討的論壇,博客等等。很多人覺得跳槽,換個工作自己就能更好的發展測試技術,這也是有誤區的。說句實話,個人發展本質上還是個人的問題,并不是公司的問題,或者你的lead,你的manager的問題,一個公司既然要你了,就說明你自己的能力和水平跟公司對你的要求還是比較接近的,公司對你已經有一個期望值了,也就是說你能勝任這份工作了,而再往上的發展并不屬于公司對你的期望了,絕大多數的情況還是要靠個人的。因此,我個人認為,無論在任何的工作環境,工作內容的情況,你都是有技術提高余地的,但是這事情要由你自己來drive,而不要太多地依賴外部環境。我從小到大的學習,主要是靠自學,我很少能集中精力地去聽完老師的一堂課。包括現在,我很多training都是沒聽完就走人了,或者有些簽個到就溜。我的這個性格造就了我很獨立的學習能力,自己為自己規劃學習,不知道對大家是否有借鑒作用。

話說回來,因為大家對0,1,2級別應該都是比較熟悉的,我想談談3,4,5級別。

3.作為一個黑盒測試人員,沒有人會要求你不具備白盒測試能力,如果你有源代碼訪問的權利,那很好,你完全可以利用這個優勢,把通過查看源代碼得到的信息應用到你的黑盒測試中去。如果你沒有源代碼訪問的能力,這也并不能阻礙你在這個領域進行探索和實踐。如果你的項目是Java,.NET這種,你可以反編譯,如果你的項目是C,C++這種,你可以反匯編。總而言之,所謂具有白盒測試能力的意思是,發現一個bug能夠定位到代碼里,是什么代碼,為什么產生這個bug?可以進行代碼級的測試用例的設計。一般來說,這個級別的要求是具備良好的代碼讀寫的能力。

4.安全測試與白盒測試的根本區別在于安全意識,黑客的思維。有一本書《WritingSecureCode》里面提到“你可以培訓一個人具有測試安全feature的能力,你很難培訓一個人具有黑客的思維方式,如果你發現了這樣一個人,你就Hire他”。在這個級別的人要具有良好的安全意識,知道各種各樣的攻擊方式,當發現一個bug的時候要就有安全方面的判斷,比如“是否一個安全漏洞”,“是否能夠被黑客利用”,“嚴重程度如何”,等等。同樣,自己的測試內容里要包含大量的安全測試用例。

5.黑客級別要求就更高了。對于安全測試來說,只是分析到“是否能夠被黑客利用”,而黑客就要分析“如何利用”以及寫出攻擊代碼進行攻擊。至少對我而言,他們要具備非常熟練的匯編編程能力。

以前我認為,要想進行安全測試,或者說做高端測試,多年的開發經驗必不可少,實踐證明也未必。同理,要想進行高端測試,你也未必要先轉向白盒測試。從我個人的經歷來說,只要你自己有心,只要你自己用心,你總能發展和提高的,外部環境固然重要,但是起決定因素的還是自己。安全測試完全不屬于我的工作內容與職責,可是在一個月的時間里,我已經連續發現4個安全漏洞了。如果你在工作中也能夠發現你項目的安全漏洞,公司還能如何不重視你?

猜你喜歡

  1. 百度輸入法怎么設置快捷鍵讓輸入更便捷效率更高

    百度輸入法怎么設置快捷鍵?輸入法設置選項一共包含十余個,包括快捷鍵、外觀、詞庫、賬號、按鍵等多個方面的設置。每一項用戶都可以進行靈活設置,選擇最符合你的使用習慣。這樣才能讓你的輸入更便捷,效率更高。 ...

  2. office2003怎么升級到office更高版本

    office2003怎么升級到office更高版本 office office2003升級到office更高版本的方法: 首先,先把電腦里的office2003的所有組件都卸載了,具體步驟如下: 1. ...

  3. 微信理財通和余額寶哪款收益更高些

    騰訊見支付寶余額寶這么火,終于坐不住了。昨天騰訊微信宣布“理財通”上線。這下就有些看頭,反正他們怎么都最后還不是便宜了我們!管他呢! 不知道理財通和余額寶哪個收益高下面和小編一起來看看吧。 理財通和余 ...

  4. 室內線路指引更高端 高德地圖實用玩法大公開

    對于一款地圖導航類型的軟件來說,它的用途會體現在哪些方面呢?開車的人肯定會用到實時導航,徒步者肯定會用到步行導航,而搜尋周邊精彩節目的朋友肯定會用到“附近”的功能。其實,高德地圖在滿足以上三種狀況的前 ...

  5. QQ相冊容量與如何獲取更高容量詳細介紹

    普通用戶的相冊容量為30G,可以通過開通成為黃鉆或QQ會員來增加相冊的容量.不同等級的黃鉆和會員容量也不相同,具體規則如下表: 注: 1.取消黃鉆.QQ會員業務,會減少相應等級下的相冊容量,但已上傳的 ...