軟體測試人員需要懂哪些常見的心理學?

新夢想IT發表於2019-09-04

大部分程式設計師都由於不能使自己進入必要的精神狀態,因而不能有效地測試自己的程式。 除了這個心理學問題之外,還有一個重要的問題:程式中可能包含由於程式設計師對問題的敘述或說明的誤解而產生的錯誤。如果是這種情況,當程式設計師測試自己的程式時,往往還會帶著同樣的誤解致使問題難以發現。在自已的工作中找出缺陷往往是人的心理狀態所不容的。

以上看法並不意味著程式設計師不可能測試自已的程式。不過相比之下如果由另外—些人來進行程式測試,就會更有效、更成功。注意:這個論斷並不適用於糾錯(改正已知錯誤),由原來程式的作者糾錯肯定效率更高。

在許多意義上來說,一項工程或一程式設計機構是個有生命的有機體,它同樣有心理學問題。

本文著重討論一下在測試過程中的一些心理學的體現和如何將心理學運用到測試工作中。

其實,心理學在測試中主要用於猜測使用者的操作行為。猜測使用者行為並不是一件簡單的事情,畢竟子非魚焉知魚之所想。對於一個剛剛入行的測試人員來說,做到準確的猜測使用者行為的確是非常的困難的。那需要有豐富的經驗和積累,加上一些無法解釋的直覺。根據這些年的工作經驗,總結了一些使用者的操作行為,這些行為準則對於大多數的使用者還是適用的。

軟體測試人員需要懂哪些常見的心理學?

一、心態上面,明確自己的角色

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

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

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

總之,軟體測試更適宜被視為試圖發現程式中錯誤(假設其存在)的破壞性的過程。一個成功的測試,透過誘發程式發生錯誤,可以在這個方向上促進軟體質量的改進。當然,最終人們還是要透過軟體測試來建立某種程度的信心:軟體做了其應該做的,而沒有做其不應該做的。

二、不要過於遵循規則

對於一個新到手的東西,很多人都不會去閱讀使用者使用手冊,這是因為產品對於使用者而言已經很熟悉了或者使用者使用過同類的產品,還有的使用者壓根就不喜歡按套路出牌。這樣就給測試增加了難度,測試人員需要模擬那些使用者可能操作的步驟和使用場景來保證產品的良好性。

分析一下這個使用者行為其實很好理解,使用這個功能的人員可能不是專業的美工人員,他對於檔案的瞭解僅僅停留在表面,可能是為了工作方便就簡單的將檔案改成他認為的正確檔案傳了上去。當然這也算是一個bug,最後bug修復。

總結下來,就是不要嚴格的遵守規則,因為使用者並不會那麼做。他們還會用一些方法來規避規則,測試的時候要儘量都考慮到。

三、多去思考使用者潛意識遵守的規則行為

有些使用者對於產品的使用有潛意識的使用習慣。上條已經講過很多使用者不會閱讀使用手冊,一些很優秀的產品經理也在致力於設計出讓使用者脫離使用手冊的產品。當然,那是在產品擁有很多忠實使用者後才能夠實現的產品,就像蘋果手機那樣。對於一個新推出的產品來說,很多使用者還是不瞭解規則的,但事實上使用者也不願意去了解,僅僅根據自己的經驗來使用產品,當他們碰壁了之後才會去閱讀使用手冊。所以,測試人員要保證異常場景測試覆蓋全面並有友好的引導語引導使用者正確使用。

測試的時候,可以適當的忘記熟悉的規則,按照自己的潛意識去操作。作為一名測試人員,你很熟悉這個產品,但是使用者並不是。有時候,他們會任性的按照自己的想法操作。

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

四、懂逆向思考

逆向思考就是從結果去想起因,這不是使用者的思考方式,但是很多使用者的操作都是有這種方式引發的。也就是說,對於使用者來講,過程並不重要,他們可以用任何方式和操作方法來達到他們的目的。有些操作對於使用者來說是不意思的。

從目的去反推、猜想可能的操作步驟和場景來補充測試用例是必要的。儘管遇到這樣的場景的機率很小,測試中運用心理學還有幾個方面就是引導使用者操作、使用功能,預測使用者的使用感受。不過這兩個方面如果產品經理在設計產品的時候考慮的全面的話,就會在產品設計階段解決了,但是不能把這兩個方面的問題完全依賴於產品經理的設計,測試的時候多考慮一下,培養自己的使用者思維。

測試心理學就是研究使用者怎麼思考、怎麼操作,站在使用者的角度去測試產品。然後保證產品儘可能的滿足使用者的需求。能留住使用者的產品才是好產品。

五、懂得處理和開發人員之間的人際關係

開發和測試存在目的是什麼?開發是為了實現客戶的需求,測試是為了保證軟體的質量。兩者應該是合作共贏的關係,不是零和博弈,不是此消彼長,不是你勝我敗。開發和測試之間是既對立又統一的。是矛和盾的共同體。

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

軟體測試人員需要懂哪些常見的心理學?

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

六、軟體測試應該避免由設計軟體的程式設計師來擔當

開發和測試生來就是不同的活動:開發是創造或者建立一個模組或者整個系統;而測試的目的是證明一個模組或者系統工作不正常。這兩個活動之間有著本質的矛盾,如果一個人同時扮演建設者和破壞者,是不太可能把兩個截然對立的角色扮演好的。

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

其次,程式中可能包含由於程式設計師對問題的敘述或說明的誤解而產生的錯誤。如果是這種情況,當程式設計師測試自己的程式時,往往還會帶著同樣的誤解致使問題難以發現。基於以上心理因素,應該限制開發者參與到測試中去。

新夢想總結:軟體測試是一項技術性的工作,也涉及到一些人類心理學,測試有時候不僅僅只是測試。測試是一項極富創造性、極具智力挑戰性的工作,默默循規蹈矩未必能讓自己發揮出最大的價值。 測試的最終目的是為了使用者,多站在使用者的角度靈活測試,得出有效結果並加以改進完善產品,才是一個合格專業的測試人員。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2656002/,如需轉載,請註明出處,否則將追究法律責任。

相關文章