• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      芻議心理學對軟件測試活動的影響

      2015-05-30 10:48:04葉鵬
      軟件工程 2015年12期
      關鍵詞:問題解決動機思維

      葉鵬

      摘 要:隨著計算機軟件行業(yè)的發(fā)展,越來越多的人開始意識到軟件質量的重要性。軟件測試的需求越來越大,測試的標準也越來越高。如何提高軟件的測試效果和測試效率已然成為很多人研究和討論的內容。本文拋開傳統(tǒng)的計算機技術領域,從心理學角度對軟件測試進行探究,力求更好的幫助人們完成軟件測試工作,更好的提高軟件產(chǎn)品的質量。

      關鍵詞:心理定勢;問題解決;功能固著;動機;思維

      中圖分類號:TP311.5 文獻標識碼:A

      Show Discussion about the Psychology Influence for Software Testing Activity

      YE Peng

      (1.School of Electronics Engineering and Computer Science,Peking University,Computer Application Technology,Beijing 100871,China;

      2.Oracle Software Research and Development Center Beijing Co.,Ltd.,Beijing 100094,China)

      Abstract:With the developing of computer software business,more and more people begin to be aware of the importance of the softwares quality.The amount of software testing requirements is getting bigger and bigger,the criterion of software testing is becoming more and more strict.How to improve the quality and efficiency of software testing has become the research and discuss contents of many people.In this article,we will have the discussion on the software testing jumping out of the traditional computer technology area and just only focusing on the psychology area,to give more good helps for the people to accomplish the software testing work and better improvement for the qualities of software product.

      Keywords:mental set;problem-solving;functional fixedness;motive;thinking

      1 引言(Introduction)

      隨著電子元器件硬件技術的飛速發(fā)展,計算機軟件技術也日趨豐富和規(guī)?;?。人們對計算機軟件的需求和依賴也隨著經(jīng)濟和科技的發(fā)展與日俱增[1]。借助強大的計算機軟件技術,人們早已經(jīng)不再局限于早期的加減法運算和科學研究,軍事、醫(yī)療、生活、商業(yè)、教育……每個領域都能看到計算機軟件技術帶來的革新化應用和影響。伴隨著規(guī)模和復雜性急劇增加的成M上G比特的計算機應用軟件,軟件開發(fā)成本以及由于軟件故障造成的經(jīng)濟損失和經(jīng)濟風險也逐年增加。軟件質量問題已然成為很多人思考和關注的焦點。因此,很多科學家在展望21世紀科學發(fā)展方向和策略時,把軟件質量放在優(yōu)先于提高軟件功能和性能的位置上[1]。

      軟件測試是對軟件需求分析,設計規(guī)格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。從行為的角度來講,它實際上是一種或一系列過程,用來確認計算機代碼完成了其因該完成的功能,不執(zhí)行其不該有的操作。隨著軟件系統(tǒng)規(guī)模和復雜性的增加,進行專業(yè)化高效軟件測試的要求越來越嚴格,軟件測試職業(yè)的價值逐步得到認可和重視,據(jù)最近10年的計算機各行業(yè)領域發(fā)展研究的有關統(tǒng)計,軟件測試在整個軟件開發(fā)中占據(jù)了一半或一半以上的工作量,軟件測試從業(yè)人員急劇增長,軟件測試評測中心如雨后春筍般成長[1]。

      作為一門新興并且日漸發(fā)展的技術,軟件測試有其特有的理論基礎和技術研究范疇,從早期的非基于計算機的“人工測試”,如代碼檢查、走查和評審,到后來較為傳統(tǒng)的基于計算機的測試技術(白盒測試,黑盒測試等)和測試過程(單元測試、集成測試、系統(tǒng)測試、驗收測試)[2],再到近期逐漸發(fā)展起來的基于敏捷開發(fā)模式下的測試,如敏捷測試、極限測試等等,軟件測試技術理論變得日趨完善。測試技術的飛速發(fā)展,也大大加快了提高計算機軟件技術發(fā)展水平的步伐。誠然,這些基于技術層面的軟件測試理論,在指導人們從事軟件開發(fā)活動的過程中,為保障軟件質量,降低開發(fā)風險,提高勞動生產(chǎn)率上,都發(fā)揮了重要的指導作用。但軟件測試是一項涉及面寬廣的,復雜而又不可完全量化的高級腦力活動,人們在研究軟件測試領域的時候,往往只注重其技術層面的理論和方法,而忽略了非技術因素對軟件測試活動所帶來的影響。畢竟,從事測試活動的主體是人而不是動物,也不是機器,所以很多軟件測試活動的成敗與否,往往不是單純的靠解決技術層面的問題就能決定的。人為的因素往往也是成功與否的關鍵。而與人類活動密切相關的研究領域就是心理學,所以,研究跟軟件活動相關的心理學問題對提高軟件測試的質量具有非凡的意義。本文在探討軟件測試過程中心理學相關問題的同時,意在幫助人們提高對心理學給軟件測試會帶來正負影響的認識,為整體提高軟件測試質量,教育和培養(yǎng)新一代軟件測試人才,起到推波助瀾的作用。

      2 與軟件測試活動密切相關的心理學問題(The

      psychology issues closely related with software

      testing activities)

      心理學自興起到發(fā)展至今,由最初的基本理論,已經(jīng)發(fā)展和衍生出了多種分支,涉及的領域也越來越寬廣。本文不是一篇以介紹心理學為主題的專業(yè)性文章,因此也不會在廣度和深度上對心理學進行盡善盡美的詳細闡述。本文只從三個主要的涉及軟件測試工作的心理學領域進行分析和舉例,以期幫助大家更好的認識軟件測試工作中涉及到的心理學問題。

      2.1 定勢心理學對軟件測試的影響

      心理定勢指一定的心理活動所形成的傾向性準備狀態(tài),通常意識不到。它是多種心理內容和心理形式整合而成的一種整體狀態(tài)或效應,它引導或決定后繼活動的產(chǎn)生傾向,使認知、思維、心理保持一種持續(xù)的慣性[3]。

      在軟件工程學里,對軟件測試工作產(chǎn)生重要影響的是定勢理論里的注意定勢和思維定勢。所謂注意定勢,是指由于剛剛發(fā)生過的刺激或目標的影響,使注意處于一種準備狀態(tài),決定后繼注意的趨勢。所謂思維定勢,就是按照積累的思維活動經(jīng)驗和已有的思維規(guī)律,在反復使用中所形成的比較穩(wěn)定的定性化了的思維路線、方式、程序或模式[3]。

      軟件開發(fā)人員是軟件產(chǎn)品的作者,他們掌握著自己軟件產(chǎn)品的所有核心技術,熟悉所有的技術細節(jié)。這一點上,他們在軟件測試上具有很大的優(yōu)勢。所以很多行業(yè)的軟件領域,軟件產(chǎn)品初期的單元測試用例都是由軟件開發(fā)人員在開發(fā)軟件產(chǎn)品過程中自己一并開發(fā)且參與到測試中的。但是,事物往往是一分為二的,優(yōu)勢換另外的角度來說就是劣勢。越是熟悉的事物,越無法對開發(fā)者們造成具有顯著特征的奇異刺激,因而也會自然地降低了他們關于刺激驅動的注意捕捉,產(chǎn)生“選擇性看”和“未注意盲視”的效果[4,5]。既開發(fā)者在測試過程中,由于定型化的思維模式和處理問題的方式,往往只關注跟自己設計相關的局限視角問題,而卻忽視了以用戶角度進行相關軟件使用的方方面面。很多時候,非開發(fā)人員測試過程中很容易看到或發(fā)現(xiàn)的問題,在這些開發(fā)者本人眼里卻成為了“測試盲點”。

      而且,從潛意識里,開發(fā)者本人是不情愿看到或承認自己開發(fā)出的產(chǎn)品存在缺陷或問題的。由于他們對自己開發(fā)的產(chǎn)品存在“符合設定需求的完美開發(fā)產(chǎn)品”的心理定勢,造成他們對自己軟件的測試往往有失客觀和公正,無法發(fā)現(xiàn)軟件缺陷也成了順理而然的窘?jīng)r。

      基于以上種種關于心理定勢對軟件測試的影響,在如今的很多軟件測試工作里,都會采取盡量避免在一個軟件產(chǎn)品開發(fā)完后由開發(fā)者本人來進行測試的決策,換而代之的是盡可能安排非開發(fā)團隊的技術人員來負責產(chǎn)品的質量監(jiān)測。不少大公司,對于一些影響公司利益的重要產(chǎn)品,為了更好或更多的發(fā)現(xiàn)軟件產(chǎn)品中的問題,甚至會不惜成本的專門成立不懂技術的非技術人員測試小組來進行測試??梢娫絹碓蕉嗟娜?,開始意識到定勢心理對軟件測試的巨大影響了。

      2.2 思維心理學對軟件測試的影響

      思維心理學主要研究人類思維的本質特點,人類思維的過程和機制,人類思維的特點和偏向,人類思維能力的發(fā)展和提升。軟件測試是一種跟軟件開發(fā)類似的,對智力水平要求較高的高級腦力活動。個體思維能力的高低,往往會直接或間接決定軟件測試的質量與效果。思維心理學的研究領域大體包括:知識的表征,概念的掌握、推理、問題解決、創(chuàng)造性思維和決策等[6]。這里主要談討一下問題解決與創(chuàng)造性思維對軟件測試的影響。

      2.2.1 問題解決

      問題解決是人類的一種基本認知能力,也是人類思維的一種重要形式[6]。軟件測試人員在進行軟件測試項目的時候,必然會遇到各種各樣的問題,如何快速,高效的解決他們手頭遇到的問題,是衡量他們測試能力的一個重要標準。是什么會對測試人員的問題解決造成影響呢?

      首先是知識經(jīng)驗的影響[6]。在軟件測試領域,測試專家和測試新手的解決問題能力的差異,很多時候并不取決于他們的智力水平,而是取決于他們對某一測試領域的相關知識的積累程度。比如一個新的測試項目,測試專家可以在很短的時間內,掌握該測試產(chǎn)品的技術細節(jié),如果是在軟件開發(fā)初期,他們甚至可以為一些開發(fā)人員提供建議或指出不足。越早的融如這個項目和開發(fā)團隊,為后期的測試就越早的鋪平道路。在遇到測試問題的時候,比如說測試環(huán)境搭建,比如說對測試失敗后的問題分析,以及BUG問題的專業(yè)性描述,他們可以通過對技術文檔的深入學習和掌握,自己解決或跟開發(fā)人員進行很好的溝通獲得幫助而解決。

      案例一:

      在甲骨文公司Solaris Core OS QE部門里,曾經(jīng)有這么一個項目,叫Analytics。它實際上是基于Java Web頁面的,可以對Solaris的系統(tǒng)性能進行監(jiān)測和分析的一個工具。這個項目從設計到開發(fā)并最終集成進Solaris12操作系統(tǒng)前后超過兩年多的時間!就工具本身而言,開發(fā)工作并不是非常復雜和難以實現(xiàn),但因為沒有能夠承接這個項目測試工作的小組及個人,該項目一拖再拖,進展緩慢。Solaris Core OS測試團隊的工程師們最擅長的是系統(tǒng)工具集和系統(tǒng)指令集的功能測試,通常使用CTI/TET進行自動化測試。TET工具在進行系統(tǒng)測試的時候具有非常豐富的接口,但是在互聯(lián)網(wǎng)領域應用甚少。在遇到基于Web界面的自動化測試腳本的開發(fā)問題上,很多人都不知道從何下手。后來,領導找來剛調來不到四年但SUN/Oracle工作年限將近20年的老工程師,由于他在以前IT系統(tǒng)維護組的時候參與過一些基于互聯(lián)網(wǎng)的測試工作,知道一些用于Web自動化測試的工具,比如Selenium、QTP等等。通過跟開發(fā)人員的順利溝通與短期合作,不僅有效的協(xié)助他們完成了項目的開發(fā)與測試,還利用Selenium和Framebuffer技術,成功的將自動化測試腳本整合到了CTI/TET工具中,解決了很多人多年不能處理的棘手問題。

      在這個案例里,那位老工程師雖然在Core OS組里算不上資深,但他在Web測試領域的經(jīng)驗對勝任這項眾人望而卻步的測試工作的時候發(fā)揮了重大的作用。

      其次,就是功能固著。所謂功能固著,就是指個體會產(chǎn)生一種認為物體只能發(fā)揮它傳統(tǒng)意思的固有功能的一種心理傾向,結果導致其不能以一種新異的方法來使用這些物體。最終物體功能的固著傾向阻礙了人們對某種物體產(chǎn)生多種功能的表征的可能性[6]。

      在軟件測試中,測試資源往往是測試人員非常關注的事情。為了達到好的測試目的,測試人員往往喜歡追求高配置,高數(shù)量的測試節(jié)點,已期達到最高效的測試效果。但是,每個測試人員獲得的測試資源都是有限的。如何利用有限資源完成任務繁多的測試工作,就成了測試人員經(jīng)常需要面臨的問題。

      案例二:

      給一個測試者一臺Solairs SPARC T4機器,讓他每周測試五個基于Solaris的應用服務軟件puppet/js2ai/sysconfig-cli/distro-const/installadm.這五個測試必須在全新安裝的Solaris系統(tǒng)上單獨跑測試,也就是說,在五個裝有相同版本Solaris的系統(tǒng)上分別跑著五個不同的軟件測試。假如這名測試者是一個新手,他會選擇在半天時間在這臺T4機器上裝一個Solaris系統(tǒng),然后,用三天時間分別跑那五個應用服務測試,這樣在周四就可以完成任務。但是第二周,要求在兩個不同的版本的Solaris上進行這五個服務的測試,規(guī)定每個版本的Solaris上都要跑遍這五個服務軟件的測試。對這位測試新手來說,恐怕很難按時完成。但是,換作一個測試老手,他是這樣安排的:用半天時間寫自動化腳本,然后這個腳本可以在半天時間里重裝兩遍系統(tǒng),并且可以不分晝夜的分別跑測試,也就是說,用頭1.5天晝夜跑一個版本Solaris的五個服務測試,再用后1.5天跑另外一個版本的測試。這樣,周五之前,測試老手可以按時完成測試任務。但是到了第三周,瘋狂的測試任務來了:要在五個不同版本的Solaris上分別跑這五個服務的測試,也就是說要跑5*5=25輪單一服務測試。這樣的測試,測試新手要用四周,測試老手也要至少用2.5周?,F(xiàn)在輪到測試專家了,他是這樣安排的:在這臺T4機器上搭建一個LDOM環(huán)境,并創(chuàng)建五個Guest,每個Guest安裝一種版本的Solaris,五個Guest就是五種系統(tǒng)!之后就可以在這五個系統(tǒng)各跑那五個應用服務測試了。由于Guest是彼此獨立的,所以它們可以并行跑測試且互不影響。時間匯總算下來,可能就是測試啟動初期和收尾的時候會比較費時間。由于測試前期的準備和后期的測試結果匯總,都可以通過編寫自動化腳本來自動完成。所以,理想情況下一天寫腳本,半天環(huán)境搭建,三天自動化測試,這基本上是可行的。這樣,周五之前在新手和老手眼里“不可能1周內完成的任務”在這個測試專家的統(tǒng)籌安排下,居然神奇地完成了。

      在這個例子里,這位測試專家沒有受“功能固著”現(xiàn)象的影響,沒有局限于Baremetal System(裸設備系統(tǒng))“單機單用進行測試”這一局限性思維,開創(chuàng)性的借用VM技術實現(xiàn)了一機變五機,奇跡般的解決了測試資源不足造成的測試效率低下的問題。

      2.2.2 創(chuàng)造性思維

      從廣義上看,創(chuàng)造性思維是思維活動的高級過程,是在已有經(jīng)驗的基礎上,通過多角度思維產(chǎn)生出的新穎獨特的,有社會價值的產(chǎn)品的思維過程。從狹義上說,凡是對某一具體的思維主體而言,具有新穎的,獨特意思的任何思維,都可稱之為創(chuàng)造性思維。創(chuàng)造性思維在軟件開發(fā)和軟件測試中,都具有重要的影響作用[6]。

      (1)創(chuàng)造型思維是集中思維和發(fā)散思維的統(tǒng)一

      集中思維也稱聚合思維,指思維過程中對信息進行抽象、概括,使之朝著一個方向集中、聚斂,從而形成一種答案、結論和規(guī)律。軟件開發(fā),很多時候要用到集中思維[6]。

      發(fā)散思維又稱求異思維、擴散思維,是指沿著各種不同的方向思考問題,重組眼前的信息和記憶系統(tǒng)的信息,從而產(chǎn)生大量獨特的新思想。從事軟件測試的時候,大部分需要發(fā)散思維發(fā)揮作用[6]。

      例如,在軟件開發(fā)的時候,開發(fā)人員一般是沿著用戶需求的方向進行軟件設計,然后再沿著設計框架和思想,通過編寫代碼進行實現(xiàn)。他們會為了達到某項功能需求,不分晝夜進行開發(fā)與調試,直到該項功能順利實現(xiàn)。世界知名的民營大企業(yè)華為公司,為了給員工創(chuàng)造更好的集中思維的工作環(huán)境,專門成立的封閉式的研發(fā)基地,員工衣食住行都被封閉在近乎與隔絕的空間里。這就是最大限度發(fā)揮集中思維的典型管理方式的例子。

      而軟件產(chǎn)品功能實現(xiàn)以后,需要測試人員進行功能測試。作為一個成熟的測試人員,他并不會著急驗證這個功能是不是按照需求規(guī)約設定的那樣去實現(xiàn)的,而是靜下心來,想想跟這個測試功能相關的操作都有可能由哪些,哪些是需求規(guī)約里沒有定義的,有沒有一些非常規(guī)操作會造成這項功能出現(xiàn)異常,有沒有一些不在需求規(guī)約里定義的功能在這個軟件中貿然出現(xiàn)等等。測試者需要考慮到跟被測試功能相關的各種測試可能性,僅僅考慮這個功能是否實現(xiàn)能夠實現(xiàn)是完全不夠的。因此,測試人員需要動用他的發(fā)散思維,多元化這個在開發(fā)者看來是個比較單一的功能實現(xiàn)問題。

      (2)創(chuàng)造型思維是分析思維和直覺思維的統(tǒng)一

      分析思維是嚴格遵守邏輯規(guī)約,逐步分析和倒推,最后得出合乎邏輯的正確答案和結論的思維活動[6]。軟件測試人員,在得到測試失敗的結果的時候,需要遵循分析思維的原則,對遇到的失敗現(xiàn)象,進行技術分析。通常情況下,首先需要是否有問題存在于測試環(huán)境或測試腳本。因為在進行自動化測試的時候,尤其是新開發(fā)出來的測試腳本,很多時候會由于測試腳本的缺陷或者測試環(huán)境的變更造成跟軟件產(chǎn)品本身沒有任何關系的失敗或者誤判,這是軟件測試人員首先需要排除的可能性。如果這種可能性不排除,為開發(fā)人員提交的測試報告就變得沒有意義了。其次,需要對測試的失敗進行劃分(黑盒測試通常是領域劃分,白盒測試是模塊劃分)。有些時候,需要借助DEBUG調試工具進行重現(xiàn),以期望對問題的結癥進行定位和跟蹤,力爭在測試報告里進行詳細精準的問題描述。這樣才能得出一份高質量的合格的測試報告。

      直覺思維是一種沒有完整的分析過程與邏輯程序而獲得答案的思維,它是非邏輯的,跳躍方式的,無需主體做出有意識努力的,或然性的[6]。經(jīng)驗少的測試者依賴于分析思維進行軟件測試,經(jīng)驗豐富的測試專家則喜歡運用直覺思維協(xié)助他們進行測試。比如還是剛才測試失敗的例子,經(jīng)驗淺的工程師通過分析思維,也許只能止步到對當前的失敗進行問題表述,然后就只能提交給開發(fā)組已期得到解決了。而經(jīng)驗豐富的專家,會想到跟目前專注的測試區(qū)域無關的其他區(qū)域問題出現(xiàn)的可能性。這也許找不懂任何邏輯上的聯(lián)系,但他們就是能這樣認為。依仗他們獨特固有的直覺思維能力,往往能繞過繁瑣的分析步驟直接快速的命中問題的結癥。這樣處理問題,不光可以避免給開發(fā)人員帶來問題誤區(qū),也極大的提高了他們的測試質量和測試效率。

      (3)創(chuàng)造性思維是橫向和縱向思維的統(tǒng)一

      縱向思維,是指在一種結構范圍內,按照有順序,可預測,程式化的方向進行的思維方式。軟件測試中的按照軟件測試規(guī)格說明設計測試用例,然后進行測試的過程實際上就是一個縱向思維的過程[6]。

      橫向思維,是指突破問題的結構范圍,從其他領域(或科學)的事物,事實知識中得到啟示而產(chǎn)生新設想的思維方式,它試圖從別的方面,方向入手,其廣度大大增加,有可能從其他領域中得到解決問題的啟示[6]。這就好比之前討論的發(fā)散思維,在設計測試否項軟件功能的時候,不能僅僅局限于需求規(guī)約或軟件使用手冊上,還需要考慮一些非常規(guī)操作的情況,軟件測試里的魯棒測試,就是借助橫向思維催生出來的一種非常規(guī)極限測試。

      單純利用縱向思維,固然可以設計出嚴謹?shù)?,邏輯清晰分明的測試用例,然而卻無法顧及到一些非常規(guī)情況下的測試,而某些非常規(guī)的偏向意外性質的軟件使用和操作,往往就是造成軟件運行發(fā)生崩潰甚至數(shù)據(jù)丟失的根源。加入一些基于橫向思維的測試用例,在豐富了的測試內容的同時,也幫助了測試人員更容易的發(fā)現(xiàn)一些不易發(fā)現(xiàn)但是又事關重大的潛在問題。

      (4)創(chuàng)造性思維是逆向思維和正向思維的統(tǒng)一

      逆向思維,與一般的正向思維想反,它要求思維活動時,從想法方向去觀察和思考,避免單一正想思維和單向度的認識過程的機械性[6]。

      軟件測試理論里,有一個重要的測試過程叫單元測試,也叫模塊測試。它是一種白盒測試技術,要求將軟件劃分成不同的模塊,逐個模塊進行單一測試。通常情況下,按照正常的邏輯思維,人們進行單元(模塊)測試的時候,喜歡自頂向下進行測試,既從第一個模塊開始累加模塊,逐層進行測試。但是專家分析,這種模塊測試方式存在七種缺點。而有人通過逆向思維的考慮方式,推出了自底向上測試,既從最后一個模塊開始往前逐層累加模塊測試,在具備跟前者相同測試優(yōu)點數(shù)目(三個)的前提下,這種逆向測試模塊的方式只存在兩種缺點??梢姡嫦蛩季S在軟件測試中往往會達到意想不到的出奇效果。

      以下兩個表格是兩種測試方式的優(yōu)缺點對照[3]。

      表1 自頂向下測試的優(yōu)點與缺點

      Tab.1 The advantages and disadvantages of top-down testing

      優(yōu)點 缺點

      如果主要的缺陷發(fā)生在程序的頂層將非常有利;

      一旦引入I/O功能,計較測試用例會更容易;

      早起的程序框架可以進行演示,并可激發(fā)積極性 必須開發(fā)樁模塊;

      轉模塊要比最初表現(xiàn)的更復雜;

      在引入I/O功能只之前,向樁模塊中引入測試用例比較困難;

      穿件測試環(huán)境可能很難,甚至無法實現(xiàn);

      觀察測試輸出很困難;

      使人誤解涉及和測試可以交疊進行;

      會導致特定模塊測試的完成延后

      表2 自底向上測試的優(yōu)點與缺點

      Tab.2 The advantages and disadvantages of bottom-up testing

      優(yōu)點 缺點

      同表1 之優(yōu)點1;

      測試環(huán)境比較容易建立;

      觀察測試輸出比較容易 必選開發(fā)驅動模塊;

      指導最后一個模塊添加進去,程序才形成一個整體

      2.3 管理心理學對軟件測試的影響

      管理心理學在西方又稱工業(yè)與組織心理學,是研究組織管理活動中人的行為規(guī)律及其潛在心理機制的一門科學,是心理學的一個重要分支。它的研究內容包括動機管理,認知管理,情緒管理,行為管理和組織管理[7]。在軟件測試工作中,與測試者關系密切的當屬動機管理和情緒管理了。

      2.3.1 動機管理

      動機是人類一切行為的出發(fā)點和原動力。在軟件測試活動中,測試者做什么或不做什么,是主動積極的做還是被動消極的做,愿意投入多大精力和堅持多長時間來完成測試任務和實現(xiàn)測試目標,無不取決于他的動機。它具備激發(fā),導向,維持和調整的功能[7]。

      通常情況下,正確的、強烈的測試動機,會帶來很多令人吃驚的工作效率,達到理想的測試效果和測試質量。

      例如,剛分配下來一個新的軟件產(chǎn)品的測試任務,由于該產(chǎn)品還處于開發(fā)初期,需要測試人員重新編寫新的測試用例和測試腳本。同時,為了保證不影響測試進度,在測試腳本編寫之前,需要手工去執(zhí)行大量枯燥和繁瑣的測試,并且盡量保證在開發(fā)組將該開發(fā)版本整合進產(chǎn)品庫之前完成第一輪的測試。時間緊迫,費時費力。如果測試人員沒有正確的測試觀念和測試指導思想,他們也許不會想到越早的完成第一輪測試和測試用例的編寫,越會為以后的測試工作鋪平道路。因而有可能一些動機性不強的測試人員會因為對測試目的和進度不明確而在早期工作拖拉舒散,造成后期時間安排不合理而潦草收尾。這樣的工作,大大降低了工作效率和測試效果。相反,如果測試人員在任務之初就具備強烈的測試責任和合理的測試動機,他們就會想方設法在規(guī)定時間內(甚至加班加點利用周末假日)盡量高質量地完成第一輪的測試任務,避免為將來帶來不可預期的誤工麻煩。

      但正如之前談到的辯證理論,事物都是一分為二的,人們通常認為,動機越強,測試工作的熱情越高,測試的次數(shù)越頻繁,測試的效果越好。事實并非全如此。就拿剛才的例子,原則上講,很多軟件產(chǎn)品的在進行黑盒測試的時候,手動測試要比自動化腳本的機器測試準確的多,發(fā)現(xiàn)問題也更容易定位和分析。因為手動測試可以最大限度的模擬用戶操作。這也是為啥首次測試一個新的軟件產(chǎn)品的時候,原則上講推薦進行人工操作的測試。但它最大的缺點就是效率低下。所以我們提出了后期采用編寫測試腳本進行機器自動化測試。軟件測試過程里的“回歸測試”通常就是由機器來完成的。機器測試最大的好處就是效率極高,而且可以不分晝夜和節(jié)假日。但機器測試的弊端就是無法最真實的模擬人機互動的操作活動,而且由于編寫測試腳本的人能力參差不齊,很多自動化測試的失敗往往不是產(chǎn)品的問題,而是腳本自身的問題。但如果一個測試人員對測試目標太過苛刻,從測試策略上就抵觸機器化測試,只相信人工測試的結果,則他很容易被茫茫的測試大海所淹沒,延誤了測試進度,從而影響了測試質量。而且,長時間高強度的重復的測試工作,會給測試人員帶來一定的“定勢心理”,就如前文介紹過的,反而不容易發(fā)現(xiàn)軟件產(chǎn)品中的問題了。

      2.3.2 情緒管理

      情緒勞動是指人際交往中為了表達組織所期望的情緒,員工必須進行的努力,計劃和控制活動。它可以被劃分為四個維度:情緒的表達頻率,表達規(guī)則,多樣性和情緒失調[7]。軟件測試跟軟件開發(fā)一樣,不僅僅是一個體力,腦力的付出,更是一種情緒資源的付出。從軟件測試任務的啟動到軟件產(chǎn)品成功發(fā)布,軟件測試人員要經(jīng)歷也許比軟件開發(fā)人員更多的心理適應與心理挑戰(zhàn)。比如說測試初期,需要經(jīng)歷短期內熟悉和適應新產(chǎn)品的過程;同時在與開發(fā)人員協(xié)同工作的時候需要適應開發(fā)人員的工作節(jié)奏和溝通方式;在測試遇到困難的時候,需要自己去面對測試障礙和難題;在發(fā)現(xiàn)Bug的時候,需要考慮如何以合理與正確的方式跟領導和開發(fā)人員進行匯報和溝通;在時間緊迫的時候,又需要能及時調整工作狀態(tài),時刻保持旺盛的工作精力和勞動激情等等。舉個簡單的例子,有一些軟件測試人員,在部門里就經(jīng)常不受軟件開發(fā)部門人員的待見,就是因為他們經(jīng)常會發(fā)現(xiàn)出一些大大小小來自開發(fā)部門的軟件產(chǎn)品的問題或缺陷,并且直接或間接地反映到了開發(fā)組的上層領導那里,造成了不少來自領導的負面壓力。在與開發(fā)人員工作相處中,很多軟件測試人員都曾面臨過兩難的抉擇,或多或少的承受著一些不明事理的開發(fā)人員的抵觸情緒與負面評價。

      面對種種工作問題帶來的壓力,測試人員除了要利用好“溝通”這一重要的工作技巧外,還需要具備良好的情緒自我控制和管理的能力,需要學會利用自主調節(jié),表面扮演,深層扮演以及失調扮演者四種自我管理策略[7],避免由于工作中遇到的困難而造成自身的心理健康問題和工作倦怠問題,力求高效,圓滿地完成好軟件測試工作。

      案例三:

      2000年初的時候曾經(jīng)在北京的中軟村科技園附近有這么一家規(guī)模較小的民營軟件企業(yè)X公司,公司內部的員工普遍都很年輕,是一個富有朝氣的年輕創(chuàng)業(yè)企業(yè)。當時新近招來一批剛畢業(yè)的大學生,被分派到測試組進行軟件測試。新來了一個項目,時間緊迫,所有測試組和開發(fā)組的員工都比較緊張,經(jīng)常加班加點。開發(fā)組完成的一組模塊,送到測試組,很快就完成了測試。但是測試結果不是很理想,發(fā)現(xiàn)了很多BUG。兩個小組針對產(chǎn)品BUG專門開會進行了探討。結果對某個BUG是否需要修復,年長的開發(fā)組和年輕一些的測試組人員產(chǎn)生了意見分歧。會議從早晨一直開到晚上,由于是夏天,天氣炎熱,空調又不是很給力,與會的人開始有些心情躁動。幾個年輕的員工,由于言語用詞過激,開始產(chǎn)生了爭執(zhí)。由于領導未能及時制止,最終兩個小組發(fā)生了群架事件。事情過后,有的人選擇辭職,有的人申請調離了該項目。不得已,大領導只能從其他小組臨時抽調人手,并繼續(xù)從社會上招聘新人,結果項目被拖延了很長時間。X公司也因此蒙受了不小的損失,在跟其他公司的招投標項目競爭上敗下陣來。

      這個案例給我們的教訓就是沒有良好的情緒管理和溝通技巧,不僅不會帶來好的質量保證,還會影響軟件測試的工作進度,為軟件產(chǎn)品的發(fā)布帶來更高的潛在風險。

      3 結論(Conclusion)

      軟件測試既是一門高腦力活動的經(jīng)驗型技術,又是一個匯集各種非技術因素的講求藝術性和實踐性的社會活動。在信息爆炸,軟件產(chǎn)品膨脹發(fā)展的今天,人們迫切需要提高軟件產(chǎn)品的測試質量和測試效率。本文對軟件測試以心理學的角度進行了分析和案例描述,意在幫助人們擺脫單純的依靠純技術手段解決測試瓶頸問題的理念,以非計算機技術的角度分析了影響軟件測試質量的心理學相關的種種因素,并指導人們如何揚長避短的發(fā)揮心理學在軟件測試活動的作用,為軟件測試領域提供了更加寬廣的技術規(guī)范和研究范疇。

      參考文獻(References)

      [1] 宮云站.軟件測試教程[M].北京:機械工業(yè)出版社,2008.

      [2] 王立福,孫艷春,劉學洋.軟件工程(第3版)[M].北京:北京大學出版社,2009.

      [3] Glenford J.Myers,Tom Badgett,Corey Sandler.張曉明,黃琳, 譯.軟件測試的藝術[M].北京:機械工業(yè)出版社,2012.

      [4] 馬曉莉.注意定勢對未注意盲視和注意捕捉的影響[D].河南大學碩士論文,2007.

      [5] 尹瑜新,張加明.創(chuàng)新思維原理和方法[M].武漢:湖北人民出 版社,2011.

      [6] 張慶林,邱江.思維心理學[M].重慶:西南師范大學出版社,2007.

      [7] 劉永芳.管理心理學[M].北京:清華大學出版社,2008.

      猜你喜歡
      問題解決動機思維
      Zimbabwean students chase their dreams by learning Chinese
      思維跳跳糖
      思維跳跳糖
      思維跳跳糖
      思維跳跳糖
      二語動機自我系統(tǒng)對動機調控策略及動機行為的影響研究
      “問題解決”課堂教學模式
      淺談小學數(shù)學問題解決認知模型
      如何培養(yǎng)小學生的數(shù)學問題解決能力
      高中化學“問題解決”課堂教學模式的研究與實踐
      民丰县| 武陟县| 奉贤区| 从江县| 临武县| 侯马市| 张家界市| 海阳市| 察哈| 鹰潭市| 贺兰县| 英山县| 大兴区| 鄂州市| 阿合奇县| 闵行区| 麻城市| 永平县| 乌兰察布市| 固原市| 宿迁市| 安陆市| 乐业县| 昌都县| 花莲县| 孝义市| 通化市| 辰溪县| 晴隆县| 榆林市| 盐津县| 楚雄市| 通江县| 萨迦县| 宁津县| 荥阳市| 婺源县| 平和县| 牡丹江市| 二连浩特市| 若尔盖县|