你當前所在位置:首頁 > IT技術探討 > 不要以為這是行外課!軟件測試入門還需懂測試心理學

不要以為這是行外課!軟件測試入門還需懂測試心理學

軟件測試是在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。換句話說,軟件測試是一種實際輸出與預期輸出之間的審核或者比較過程。


軟件生產的三個最重要的因素是:質量、進度和費用,但同時也涉及人類心理學的一些重要因素。那么,作為一位軟件測試人員應該懂得哪些心理學呢?



軟件測試.jpg



擺正心態,要明確自己擔當的角色


一般來說,在理想情況下,軟件測試人員會測試程序所有的可能執行情況;但在大多數情況下,這幾乎是不可能的。即使一個看起來非常簡單的程序,其可能的輸入與輸出組合可達到數百種甚至數千種,對所有的可能情況都設計測試用例是不切合實際的。對一個復雜的應用程序進行完全的測試,將耗費大量的時間和人力資源,這樣在經濟上是不可行的。


心理學研究告訴我們,當人們在干一件已經知道是不合適的或不可能做到的事時,往往他們的表現就相當糟糕。但如果把程序測試定義為在程序中找出錯誤的過程,就使測試成了可以做到的任務,從而克服了心理上存在的問題。雖然這看起來像是個微妙的文字游戲,但對成功地進行軟件測試有很大的影響。


因此,不要只是為了證明程序能夠正確運行而去測試程序,相反,應該一開始就假設程序中隱藏著錯誤(這種假設對于幾乎所有的程序都是成立的),然后測試程序,發現盡可能多的錯誤。


總之,軟件測試更適宜被視為試圖發現程序中錯誤(假設其存在)的破壞性的過程。一個成功的測試,通過誘發程序發生錯誤,可以在這個方向上促進軟件質量的改進。


當然,最終人們還是要通過軟件測試來建立某種程度的信心:軟件做了其應該做的,而沒有做其不應該做的。



學會站在用戶的角度去思考問題


我們做系統最終目的是為了服務用戶,好的測試人員,要懂得時刻從用戶的角度出發,了解用戶。所以,作為軟件測試人員,學會揣摩用戶的心理,多去思考用戶潛意識遵守的規則行為,表達自己對產品的感受,就顯得至關重要了。


說白了,測試心理學就是研究用戶怎么思考、怎么操作,站在用戶的角度去測試產品,然后保證產品盡可能的滿足用戶的需求。因為用戶覺得好的產品才是好產品。


有些用戶對于產品有潛意識的使用習慣,例如很多用戶不會閱讀使用手冊,僅僅根據自己的經驗來使用產品,當他們碰壁了之后才會去閱讀使用手冊。所以,作為測試人員就要保證異常場景測試覆蓋全面,并有友好的引導語引導用戶正確使用。


例如一個網站,注冊賬戶有兩個身份,一個身份是融資者、一個身份是投資者,兩個身份的權限無交集,一個賬戶只能有一個身份,不能兼有兩個身份。該網站的注冊頁面默認是投資者的身份,注冊融資者身份的賬戶需從投資者注冊頁面點擊鏈接進入融資者注冊頁面。這樣的注冊頁面就導致很多想要注冊融資者的用戶注冊成為了投資者,導致了很多用戶的流失。最后,修改注冊頁的注冊框為投資者和融資者分tab頁的形式。


原有的注冊頁兩個賬戶的身份不明顯,用戶很容易就按照習慣直接注冊賬戶了,而不是先看是不是自己要注冊的身份,而且頁面也沒有著重表現出注冊的用戶身份。最終用戶注冊后,發現網站的內容并不是自己想要的也就放棄了這個網站,注冊的賬戶也就變成了僵尸賬戶。


要改變這種狀況,測試人員在測試的時候,可以適當的忘記熟悉的規則,按照自己的潛意識去操作。因為作為一名測試人員,你很熟悉這個產品,但是用戶并不是。有時候,他們會任性的按照自己的想法和習慣去進行操作。


測試中,測試人員應該從引導用戶操作、使用功能,預測用戶的使用感受等方面去猜測用戶的心理和行為。不過,猜測用戶心理和行為并不是一件簡單的事情,畢竟子非魚焉知魚之所想。對于一個剛剛入行的測試人員來說,做到準確的猜測用戶行為的確是非常的困難的,那需要有豐富的經驗和積累。


懂得處理和開發人員之間的關系


開發和測試存在目的是什么?開發是為了實現客戶的需求,測試是為了保證軟件的質量。


兩者應該是合作共贏的關系,不是零和博弈,不是此消彼長,不是你勝我敗。開發和測試之間是既對立又統一的。是矛和盾的共同體。


軟件開發人員比較清楚軟件的架構,可以事先判斷出bug容易出現的地方,對出現的問題會很快定位;而測試人員作為軟件的使用者,可以很快地反饋出自己對于軟件使用的感受,讓開發人員了解測試,幫助開發人員更清楚用戶的要求,對軟件如何被使用有了深刻的認識。好的測試人員,應該更多和開發人員交朋友,和他們一起努力,把工作做得更好。


不過需要注意的是,軟件測試工程師主要是提出錯誤報告,但不能主動提出改進軟件過程的具體改進措施,更不要直接干涉程序員的工作方式,以免出力不討好,影響今后的愉快合作。記住,軟件過程改進的方法是軟件質量控制部門的事情,這是他們的本職工作。



測試應避免由設計軟件的程序員來擔當


開發和測試生來就是不同的活動:開發是創造或者建立一個模塊或者整個系統;而測試的目的是證明一個模塊或者系統工作不正常。


這兩個活動之間有著本質的矛盾,如果一個人同時扮演建設者和破壞者,是不太可能把兩個截然對立的角色扮演好的。


首先,當一個程序員在完成了設計,要一夜之間要他突然改變觀點,設法對自己的程序持否定的態度,那是非常困難的。


其次,程序中可能包含由于程序員對問題的敘述或說明的誤解而產生的錯誤。如果是這種情況,當程序員測試自己的程序時,往往還會帶著同樣的誤解致使問題難以發現。


基于以上心理因素,應該限制開發者參與到測試中去。



以上就是軟件測試入門需要懂得的測試心理學,你千萬好好收藏,別當它是行外課。

課程預約

极速1分彩_Welcome