軟件測試中的心理學問題研究

【摘要】軟件測試是系統工程,作者結合多年在測試工作中的經驗,列舉出軟件測試中存在的心理學問題及在軟件測試中如何解決這些心理學問題,以便高效完成軟件測試目標。 軟件測試是軟件工程中的一個重要階段,測試成功與否對最終的軟件產品具有重要的影響。我們知道,人類行為具有高度目標性,確立一個正確的目標有著重要的心理學影響。軟件測試有很多的方法、工具和測試的原則,如果我們忽略了心理學問題在測試中的作用,則這樣的測試是不完全的,甚至是不成功的測試。 二、 對測試目標的認識不同導致測試行為和最終測試結果的迥異 心理學研究表明,人類的活動具有高度的目的性,目標的建立對心理影響深遠。“軟件測試是為了發現錯誤而執行程序的過程”,基于上述軟件測試定義,我們知道軟件中存在錯誤,測試的目標就是發現錯誤。暫時沒有發現錯誤不代表程序中不存在錯誤。如果我們的目標是證明程序中沒有錯誤,那我們就會不自覺地朝這個方向去做;我們會傾向于設計挑選那些使程序出錯的可能性較小的測試數據。同樣,如果我們的目標是要證明程序中有錯誤,那就會設計選擇那些易于發現程序所含錯誤的測試數據。對于軟件測試而言后者會比前者給整個測試工作增添更多的價值。 如果測試人員通過測試找出很多錯誤,并因此得到肯定甚至表揚,那么,他會想盡辦法找出錯誤,可能在找出的錯誤中包含假的錯誤。如果測試人員期望軟件正確無誤,擔心因為找到錯誤影響和設計人員的關系,那么,他一定會漏掉很多真正的錯誤。由此可見,心理暗示導致軟件測試的結果完全迥異。 三、 何時停止測試是門學問 軟件測試的目標是發現盡可能多地錯誤,但要窮盡測試也是不可能的。由于窮盡測試工作量大,需用時間長,導致具體實施不現實,因而失去了測試存在的實用價值。為了節省時間和資源,提高測試效率,必須精心設計測試用例,使得采用這些測試數據能夠取得最佳的測試效果。這就牽涉到何時停止繼續測試的問題。 如果有充足的時間設計和進行測試,測試人員總是可以找到更多的錯誤。然而,如果那個錯誤好像對最終客戶影響不大,那就不值得花時間和精力去找到它。去搜索每一個可能導致系統在1萬年發生一次故障的錯誤是沒有意義的,因為那可能需要你花2萬年去運行所必要的測試。花時間去找出哪里可能藏有真正有影響的錯誤,將測試集中于那些地方,效率會更高。 何時停止測試確實是門學問。不充分的測試是愚蠢的,過度的測試也是愚昧的。這需要測試人員經驗的不斷積累和摸索。 四、 有條件的情況下測試應該由第三方獨立進行 開發和測試是不同的活動。開發是創造或者建立什么東西的行為,一個模塊或者整個系統。而測試的唯一目的是證明一個模塊或者系統工作不正常。這兩個活動之間有著本質的矛盾。若條件允許,應當由獨立于開發組和客戶的第三方測試組或測試機構來進行軟件測試。程序員并不是一定不能測試自己的程序,因為測試由別人來進行會更加有效、客觀,并且容易成功,調試由程序員進行可能更有效和針對性。由第三方專業的測試公司進行測試,無論在技術上還是管理上,對提高軟件測試的有效性都具有重要意義。 一般認為開發是建設性的工作,而測試是具有破壞性的工作。由開發人員測試自己的程序,這個過程會很難。就像一個人要否定自己,找出自身存在的問題一樣,同樣很困難。俗話說得好,旁觀者清,同樣的工作由測試人員來做,因為不存在這種自我否定的心理因素的羈絆,整個測試過程會更客觀、獨立。 五、 結束語 軟件測試是系統工程,除了好的工具、方法和組織管理,還有一個應該重點考慮的因素—心理學。相信隨著軟件測試的發展,軟件測試一定會被提高到一個足以引起開發者、用戶和測試人員的重要地位,而軟件測試中的心理影響問題也必定被投入更多的精力和足夠的重視。 參考文獻(略) 本文收集整理于網絡,如有侵權請聯系客服刪除! |