隨著軟件測試行業的逐漸發展,性能測試也變得火熱起來。從各大測試論壇和測試交流群的交流主題的熱門程度來看,性能測試已經成為大家非常感興趣的話題。性能測試作為軟件測試行業技術性相對較高的工作(自動化測試、白盒測試、性能測試)來說,個人覺得其操作門檻還是不低的。對于測試新手來說入門有一定的難度,做的好就更加不容易了,可能花了不少時間而實際收獲不大。因此覺得有必要來專門探討一下性能測試的門檻,以及如何更好的邁進這個門檻。
先來分析一下一些關于性能測試入門級的常見問題:
1、請問怎么做象PhotoShop這類單機程序的性能測試;
2、用Delphi開發的程序,應該用什么協議來錄制腳本;
3、用IP欺騙能對外網進行測試嗎;
關于第1個問題,問題本身并沒有錯誤,單機版也有性能問題。但和我們通常所說的性能測試是兩回事,不能混為一談。如果這個算是問題的話,那我想是由于不清楚性能測試的概念和原理所造成的。第2個問題也不少見,但這種問題無法回答。我們知道,性能測試采用的協議是由被測系統的體系架構和通信協議決定的,而不在乎你用什么開發工具或開發語言。第3個問題,關于IP欺騙一般只用在內網,不管你在內網如何欺騙,經過網絡地址轉換后到了外網上的IP地址表現就是你的公網的IP,除非你一開始就設置成公網的IP地址,但這個一般都不可能。這個問題體現提問者對于網絡知識的理解還不深入。
以上問題反映了在學習性能測試人員的一個比較普遍的現象,缺乏必要的知識積累、知識面不足,但又由于學習興趣或工作壓力期望急于求成,由此而形成這樣一個矛盾的局面。
在我看來,性能測試是一項綜合性很強的工作,甚至可以作為一項工程來看待。
從性能測試的知識體系來看,性能測試需要掌握性能測試的基礎知識、業務知識、開發相關知識、以及性能測試工具。
基礎知識包括性能測試的原理、常見的測試類型、方法、策略,如何進行一個計劃、設計、實施、分析等性能測試過程。沒有性能測試基礎知識,一切簡單的性能測試在你手上都將出現各種問題,測試交流將變得難以溝通,同時性能測試的成功率將大大降低。
業務知識通常都被忽略了。性能測試要基于被測系統的應用場景才有實際的價值,測試場景對性能測試結果有決定性的影響,因此測試場景的設計是非常關鍵的,場景的設計需要和業務應用結合起來。在一些比較正規的性能測試過程中,會有業務人員配合一起做性能用例設計的。
開發相關的知識也是必須具備的知識,通常在這方面也是我們最大的缺點。這方面的知識包括操作系統、數據庫、應用服務器、中間件、網絡等,每一個都是一門很深的學問,而要求性能測試人員都精通好像也不太現實。但起碼的知識還是需要掌握的,比如通常有哪些參數需要監控和調整,它們之間是如何通信和運作的,某一方面知識的欠缺都可能導致測試模擬不準確或問題定位不充分,沒有這些知識的支撐性能測試將變得難以下手或者學習工作的進展都會有很大的影響。
測試工具的應用,這個是目前學習的焦點。只有在前面3點的基礎上,采用合適的測試工具,才有助于測試目標的達成。
從另外的角度分析,性能測試又可以分為技術、方法和管理方面的范疇。沒有方法的指導光有技術那是行不通的,那是有勇無謀的體現。同時性能測試經常作為一個獨立的階段和活動,更需要用項目管理的方法進行,比如一個在客戶現場的性能測試驗收測試,與客戶進行交流、時間計劃的制定、測試進度的控制、測試腳本和測試數據的版本管理、各種資源的諧調等,都是需要用管理的思想進行的。
從以上分析可以看出,由于性能測試工作需要具備這么多的知識,因此在一定程度上也成為了性能測試的門檻。這個綜合的門檻將會成為很多性能測試新手入門的一道障礙,要突破這道障礙,建議結合自己的知識體系有針對性地去學習和提高。
性能測試是一個技術與方法并重的工作,目前論壇上多談技術,少談方法,很多人甚至在沒有任何性能測試基礎知識的情況下就埋頭苦學測試工具,我覺得是不應該的。我們應該意識到,測試工具只是性能測試中的一部分,僅是為達到性能測試目的而采用的一種手段。性能測試對于我們最大的價值在于方法和經驗,我們學習的目標是整個性能測試過程上方法學的東西,而不是掌握具體某個測試工具。LoadRunner并不是萬能的,在什么情況下應該采用什么工具才能達到最佳的效果,需要我們去判斷。
另外,學習需要有一個循序漸進的過程,性能測試需要長時間的知識積累,沒有什么捷徑可言。從學習效率和職業發展方面考慮,本人不太建議沒有工作經驗的測試新手一上來就扎進性能測試之中去,這樣將花費你更多的時間精力去學習,是一種事倍功半的效果。
文章來源于領測軟件測試網 http://www.kjueaiud.com/