當前位置:
首頁 > 最新 > 軟體測試的心理學問題

軟體測試的心理學問題

1:程序測試的過程具有破壞性

人類的活動具有高度的目的性,建立適當的目標具有重要的心理作用。如果我們的目的是要證明程序中沒有錯誤,那我們就會不自覺地朝這個方向去做;也就是說,我們會傾向於挑選那些使程序出錯的可能性較小的測試數據。另一方面,如果我們的目標是要證明程序中有錯,那就會選擇一些易於發現程序所含錯誤的測試數據。而後一種態度會比前者給程序增添更多的價值。

測試的定義意味著程序測試的過程是具有破壞性的,其程度甚至達到了不可容忍的地步。社會上大多數人的人生觀是建設性的,而不是破壞性的。人們傾向於創造一個物品,而不是輕易毀壞—個物品。因此,程序壞—個物品。因此,程序測試的破壞性的定義使人們對程序測試工作望而生畏。程序測試定義還隱含著如何設計測試情況(測過數據),以及應該由誰和不應由誰來測試一個給定程序等等觀點。 心理學研究還告訴我們,當人在干一件已經知道是不合適的或不可能做到的事時,往往做得不好。例如:如果讓一個人在15分鐘解出一個刊登在星期曰《紐約時報》上的交叉填字字謎,10分鐘後我們會看到這人幾乎沒一點進展,因為他會感到實際上不可能做到而放棄自已的努力。然而,如果我們要求花4小時解出這題,那也許就會看到他在開頭的10分鐘內有較大的進展了。把程序測試定義為在程序中找出錯誤的過程,就使測試成了可以做到的任務,從而克服了心理上存在的問題。

另一個令人煩躁的問題是即使程序完成了預期要求,仍可能含有錯誤。也就是說,如果程序不按要求工作,它顯然有錯,但是如果程序做了不要它做的事,它也有錯。

2:程序員應避免測試自己的程序

開發者被指定測試自己的代碼是一件很糟糕的事。開發和測試生來就是不同的活動。開發是創造或者建立什麼東西的行為,一個模塊或者整個系統。而測試的唯一目的是證明一個模塊或者系統工作不正常。這兩個活動之間有著本質的矛盾。一個人不太可能把兩個截然對立的角**扮演的很好。基於這個想法,應該限制開發者在測試中的參與。給他們比較合適的任務是進行有可能的最低層的測試--單元測試。不同當一個程序員在完成了設計,編寫程序的建設性工作後,要一夜之間突然改變他的觀點,設法對程序形成一個完全否定的態度,那是非常困難的。許多戶主都知道,揭掉糊牆紙(破壞性過程〉是不容易的,若糊牆紙原先是由他而不是別人貼上的,他幾平會感到難以忍受的沮喪。所以,大部分程序員都由於不能使自己進入必要的精神狀態(不是抱著要揭露出自己程序中錯誤的態度),因而不能有效地測試自己的程序。 除了這個心理學問題之外,還有一個重要的問題:程序中可能包含由於程序員對問題的敘述或說明的誤解而產生的錯誤。如果是這種情況,當程序員測試自己的程序時,往往還會帶著同樣的誤解致使問題難以發現。

再者,可以把測試看做是對一篇論文或—本書作校對,或與寫評論相類似的工作。正如許多作者所知,校對或批評自己的著作是非常困難的。也就是說,在自已的工作中找出缺陷往往是人的心理狀態所不容的。

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

3:程序設計幾個不應測試自己的程序

在許多意義上來說,一項工程或一程序設計機構是個有生命的有機體,它同樣有心理學問題。再者,在大多數情況下,人們都是以在給定日期內,以一定代價編製程序的能力來衡量程序設計機構和項目管理人員的。這祥做的一個理由是時間和成本指標便于衡量,而程序的可靠性卻很難度量。要程序設計機構在測試自己的程序時持客觀態度是困難的,因為如果用正確的定義看待測試,就不大可能按預定計劃完成測試也不大可能把耗費的代價限制在要求的範圍以內。

軟體生產的三個最重要的因素是:質量、進度和費用。

計算技術的進步,意味著在經濟領域中信息系統更新的速度更快。新的硬體技術的發展,均會使軟體過時,系統交付使用的時間變得日益重要,新產品在其性能和費用上被其他產品取代之前的推銷時間,即市場窗口就已經縮小了。

由於費用和進度的限制,要開發一種高質量、快速交付和低成本的軟體產品變得越來越困難,也就是說要同時達到三個目標是困難的。因此在軟體產品的開發中就要權衡它們之間的關係,使軟體的特性能滿足用戶的要求,這意味著軟體產品特性的度量和預計是必要的。

軟體測試由獨立測試機構承擔有許多好處。獨立測試是指軟體測試工作由在經濟上和管理上獨立於開發機構的組織進行。獨立測試可以避免軟體開發者測試自己開發的軟體,由於心理學上的問題,軟體開發者難以客觀、有效地測試自己的軟體,而找出那些因為對問題的誤解而產生的錯誤就更加困難。獨立測試還可以避免軟體開發機構測試自己的軟體,軟體產品的開發過程受到時間、成本和質量三者的制約,時間和成本指標便于衡量,而質量卻很難度量,因此在軟體開發過程中,當時間、成本和質量三者發生矛盾時,質量最容易被忽視,如果測試組織與開發組織來自相同的機構,測試過程就會面臨來自與開發組織同一來源的管理方面的壓力,使測試過程受到干擾。

採用獨立測試方式,無論在技術上還是管理上,對提高軟體測試的有效性都具有重要意義。

客觀性

對軟體測試和軟體中的錯誤抱著客觀的態度,這種客觀的態度可以解決測試中的心理學問題,既能夠以揭露軟體中錯誤的態度工作,也能不受發現的錯誤的影響。經濟上的獨立性使其工作有更充分的條件按測試要求去完成。

專業性

獨立測試作為一種專業工作,在長期的工作過程中勢必能夠積累大量實踐經驗,形成自己的專業優勢。同時軟體測試也是技術含量很高的工作,需要有專業隊伍加以研究,並進行工程實踐。專業化分工是提高測試水平,保證測試質量,充分發揮測試效用的必然途徑。

權威性

由於專業優勢,獨立測試工作形成的測試結果更具信服力,而測試結果常常和對軟體的質量評價聯繫在一起,由專業化的獨立測試機構的評價,更客觀、公正和具有權威性。

資源有保證

獨立測試機構的主要任務是進行獨立測試工作,這使得測試工作在經費、人力和計劃方面更有保證,不會因為開發的壓力減少對測試的投入,降低測試的有效性,可以避免開發單位側重軟體開發而對測試工作產生不利的影響。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 北大青鳥 的精彩文章:

高考補錄上大學?選北大青鳥於達輕鬆實現高薪就業

TAG:北大青鳥 |

您可能感興趣

四、軟體工程與軟體測試
軟體質量與測試:可編程邏輯器件軟體測試指南
零基礎培訓軟體測試容易學嗎?
質量管理體系之測試流程
心理測試:一道可測試你個性的測試題
心理學就是搞各種問卷測試?
【心理測試】洗內衣測試脫單難題
結核分枝桿菌抗體檢測試劑及相關問題的探討
我的軟體測試之路
心理測試:一道題測試你的顏值是否會毀於髮型?
軟體開發全過程檢測及軟體測試自動化
水處理測試試題
心理測試 測測你名字的蘊意
心理測試 測測你名字的蘊意
心理學測試——你的手指註定你的愛情
「色彩心理學」,通過顏色測試下您的性格
【心理測試】點菜測你的自閉度
心理測試:星座測試,測試你的性格!
心理測試:一道題測試你是否習慣了老好人的行為
心理測試:測試你的嫉妒心有多強!