亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        芻議心理學(xué)對軟件測試活動的影響

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

        葉鵬

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

        關(guān)鍵詞:心理定勢;問題解決;功能固著;動機(jī);思維

        中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼: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)

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

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

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

        2 與軟件測試活動密切相關(guān)的心理學(xué)問題(The

        psychology issues closely related with software

        testing activities)

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

        2.1 定勢心理學(xué)對軟件測試的影響

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

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

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

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

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

        2.2 思維心理學(xué)對軟件測試的影響

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

        2.2.1 問題解決

        問題解決是人類的一種基本認(rèn)知能力,也是人類思維的一種重要形式[6]。軟件測試人員在進(jìn)行軟件測試項(xiàng)目的時(shí)候,必然會遇到各種各樣的問題,如何快速,高效的解決他們手頭遇到的問題,是衡量他們測試能力的一個(gè)重要標(biāo)準(zhǔn)。是什么會對測試人員的問題解決造成影響呢?

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

        案例一:

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

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

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

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

        案例二:

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

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

        2.2.2 創(chuàng)造性思維

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        優(yōu)點(diǎn) 缺點(diǎn)

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

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

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

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

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

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

        觀察測試輸出很困難;

        使人誤解涉及和測試可以交疊進(jìn)行;

        會導(dǎo)致特定模塊測試的完成延后

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

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

        優(yōu)點(diǎn) 缺點(diǎn)

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

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

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

        指導(dǎo)最后一個(gè)模塊添加進(jìn)去,程序才形成一個(gè)整體

        2.3 管理心理學(xué)對軟件測試的影響

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

        2.3.1 動機(jī)管理

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

        通常情況下,正確的、強(qiáng)烈的測試動機(jī),會帶來很多令人吃驚的工作效率,達(dá)到理想的測試效果和測試質(zhì)量。

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

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

        2.3.2 情緒管理

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

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

        案例三:

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

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

        3 結(jié)論(Conclusion)

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

        參考文獻(xiàn)(References)

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

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

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

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

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

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

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

        猜你喜歡
        問題解決動機(jī)思維
        Zimbabwean students chase their dreams by learning Chinese
        思維跳跳糖
        思維跳跳糖
        思維跳跳糖
        思維跳跳糖
        二語動機(jī)自我系統(tǒng)對動機(jī)調(diào)控策略及動機(jī)行為的影響研究
        “問題解決”課堂教學(xué)模式
        淺談小學(xué)數(shù)學(xué)問題解決認(rèn)知模型
        如何培養(yǎng)小學(xué)生的數(shù)學(xué)問題解決能力
        高中化學(xué)“問題解決”課堂教學(xué)模式的研究與實(shí)踐
        国产成av人在线观看| 亚洲av中文无码字幕色三| 9191在线亚洲精品| 蜜桃在线观看免费高清完整版| 青青草视频在线观看入口| 日韩精品少妇专区人妻系列| 国产一级黄色录像大片| 国产乱子伦| 国产精品一区二区久久精品| 欧美一级鲁丝片免费一区| 亚洲国产精品悠悠久久琪琪| 国产无遮挡又爽又刺激的视频老师| 中文字幕亚洲欧美日韩在线不卡| 精品一区二区三区人妻久久| 精品国产一区二区三区av麻| 蜜臀av999无码精品国产专区| 色吧综合网| 亚洲人妖女同在线播放| 亚洲一区二区三区四区精品在线| 国产成人涩涩涩视频在线观看| 国产中文aⅴ在线| 在线观看国产精品一区二区不卡| 日本伊人精品一区二区三区| 免费xxx在线观看| 中文字幕乱码人妻无码久久久1 | 国产精品美女主播在线| 美国少妇性xxxx另类| 精品人人妻人人澡人人爽牛牛| 国产亚洲成年网址在线观看| 亚洲国产成人久久精品一区| 久久精品国产视频在热| 动漫在线无码一区| 我的极品小姨在线观看| (无码视频)在线观看| 久久久久久av无码免费看大片| 国产精品一级av一区二区| 丝袜美腿av在线观看| 免费国产黄网站在线观看| 国产成人久久精品激情91| 国产美腿丝袜一区二区| 巨茎中出肉欲人妻在线视频|