文章編號:1672-5913(2008)10-0124-02
摘要:本文從軟件測試的教學(xué)實(shí)踐出發(fā),分析了測試工作的特點(diǎn)和對測試人員培養(yǎng)的要求,最后提出了一些測試教學(xué)中應(yīng)著力培養(yǎng)的方向。
關(guān)鍵詞:軟件測試;教學(xué)體會;團(tuán)隊(duì)精神
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
軟件生產(chǎn)過程中軟件質(zhì)量問題越來越多,軟件測試已經(jīng)和軟件的創(chuàng)意與開發(fā)一樣被提高到影響軟件生存的地位。隨著社會對該方向人才的需求越來越大,我們也在軟件系開設(shè)了軟件測試專業(yè),同時(shí)積累了初步的教學(xué)實(shí)踐經(jīng)驗(yàn)。下面就幾個(gè)方面談點(diǎn)心得。
1教育同學(xué)不把軟件測試作為逃避困難的避風(fēng)港
軟件專業(yè)的部分同學(xué)在學(xué)習(xí)了編程的課程以后,往往有畏難情緒,認(rèn)為軟件開發(fā)工作對人的腦力和體力的要求高,而且技術(shù)變化快,需要不停地學(xué)習(xí)更新知識,同時(shí)工作中還常加班,于是就產(chǎn)生了逃避心理,希望在分專業(yè)的時(shí)候選測試。他們認(rèn)為測試是挑別人產(chǎn)品的問題,總比自己創(chuàng)造容易。有很多同學(xué)帶著規(guī)避困難的情緒來到軟件測試專業(yè),這是一種不正確的心態(tài)。測試工作往往是入門容易,深入難。
1.1測試工作需要對行業(yè)有廣泛的知識面
軟件測試工作看起來起點(diǎn)低,好象不需要深入的專業(yè)知識就可以開始做了。測試人員往往剛?cè)腴T的時(shí)候是參加一些具體的項(xiàng)目,從項(xiàng)目中積累測試經(jīng)驗(yàn)。但是如果沒有良好的對計(jì)算機(jī)軟件和硬件的知識基礎(chǔ),經(jīng)驗(yàn)的積累容易限于表面,而不深入。
比如測試中比較熱的一個(gè)方向是性能測試,該方向?qū)浖捻憫?yīng)時(shí)間,資源占有進(jìn)行測試。性能測試往往使用測試工具。測試工具對軟件系統(tǒng)運(yùn)行中的測試結(jié)果進(jìn)行數(shù)據(jù)采集。而測試人員需要對結(jié)果進(jìn)行分析,剛開始的時(shí)候面對各種數(shù)據(jù)可能不知道如何分析,經(jīng)過經(jīng)驗(yàn)的積累,可以從數(shù)據(jù)中找到系統(tǒng)的瓶頸,提出改進(jìn)系統(tǒng)的意見。如果沒有對系統(tǒng)的全面了解,對專業(yè)數(shù)據(jù)的分析能力,是無法勝任工作的。
測試中還需要人員有很強(qiáng)的自學(xué)能力。因?yàn)樵S多時(shí)候我們使用自動化測試工具輔助測試人員完成可重復(fù)的測試任務(wù),往往它們都自帶一些腳本語言,測試人員要通過自學(xué)而掌握,所以也需要編程和調(diào)試的技巧。目前一些公司還開始重視開發(fā)自己軟件產(chǎn)品的測試工具,這樣要求從業(yè)人員擔(dān)當(dāng)開發(fā)和測試的兩重角色,是非常有挑戰(zhàn)的工作。
軟件測試員在做具體項(xiàng)目測試的時(shí)候,還需要對該項(xiàng)目的行業(yè)背景有所了解。一個(gè)專業(yè)測試師可能會接觸比軟件開發(fā)人員多得多的項(xiàng)目。他在做測試的初期需要對被測試項(xiàng)目做專業(yè)了解,可能就會接觸到各行各業(yè)的軟件。比如做金融行業(yè)軟件有什么特殊的要求,金融行業(yè)對信息的操作和信息安全方面要求怎樣,信息安全的技術(shù)有哪些等等。
我們的軟件測試方向教學(xué)中,也開始聘請工業(yè)界的行業(yè)專家為同學(xué)們講行業(yè)軟件開發(fā)的專題講座,以讓大家有更多機(jī)會了解行業(yè)背景。
從教學(xué)中大家都體會到該方向?qū)I(yè)知識領(lǐng)域的要求是相當(dāng)廣的,片面理解測試是一個(gè)比較低檔次的軟件工作不合適。
1.2測試人員和開發(fā)人員做的是一個(gè)工作的兩個(gè)方面
在軟件產(chǎn)品開發(fā)的工作中,好的測試人員和開發(fā)人員是在干一個(gè)工作的兩個(gè)方面。測試人員在清楚軟件產(chǎn)品的客戶需求的情況下,憑借自己敏銳的感覺和對軟件系統(tǒng)的深入了解,是在有一定批評和指導(dǎo)性地幫助設(shè)計(jì)和開發(fā)人員完成軟件產(chǎn)品生產(chǎn)活動。我們講授課程的時(shí)候強(qiáng)調(diào)這個(gè)觀點(diǎn),測試人員不是團(tuán)隊(duì)的二等公民,而是客戶的眼睛,是產(chǎn)品的鷹眼。
2測試員更需要培養(yǎng)團(tuán)隊(duì)精神
2.1尊重個(gè)性思維特點(diǎn),發(fā)揮團(tuán)隊(duì)優(yōu)勢
我們知道測試中有黑盒子和白盒子測試,黑盒子測試是測試人員在只知道軟件功能說明,不知道軟件內(nèi)部的實(shí)現(xiàn)具體細(xì)節(jié)的基礎(chǔ)上開發(fā)測試用例,進(jìn)行測試的過程;而
白盒子測試,是測試人員對軟件內(nèi)部代碼在明白其實(shí)現(xiàn)原理的情況下進(jìn)行的深入代碼內(nèi)部的測試。這兩種測試需要測試人員站在不同的角度看待被測試對象。測試團(tuán)隊(duì)中,測試人員的思維方式各不相同,配合好,可以很容易發(fā)現(xiàn)軟件產(chǎn)品各個(gè)方面的問題。比如黑盒子測試,適合讓一些有使用該類軟件經(jīng)驗(yàn)的人擔(dān)當(dāng),他們在該類軟件中的使用經(jīng)驗(yàn)將對測試帶來很好的旁觀者的意見,而白盒子測試適合參與編寫軟件的人,或者對系統(tǒng)代碼有一定掌握的人做。兩種方法產(chǎn)生的效果不同,前者人員不能陷入別人的思維定式,后者人員卻要非常注重細(xì)節(jié)。在課堂教學(xué)和實(shí)踐項(xiàng)目中,我們發(fā)現(xiàn)不同的同學(xué)有不同的思維特點(diǎn),測試人員的思維特征決定了他能夠怎樣發(fā)現(xiàn)缺陷和發(fā)現(xiàn)怎樣的缺陷。好的測試管理,應(yīng)該盡量發(fā)現(xiàn)每個(gè)人的長處,把他們放在合適的崗位上。
教學(xué)實(shí)驗(yàn)中的測試項(xiàng)目,同學(xué)們是團(tuán)隊(duì)完成的,大家感覺測試工作真是需要協(xié)作的工作,一個(gè)項(xiàng)目的測試結(jié)果,往往是整個(gè)團(tuán)隊(duì)所有人的努力。有一次課堂討論如何測試一個(gè)下棋軟件,喜愛軟件開發(fā)的同學(xué)想到最多的是如何測試它的功能點(diǎn),界面是否正確;有的女同學(xué)對外觀和美感敏感,提出了改進(jìn)意見,包括改進(jìn)界面的舒服度,顏色的搭配等;有的同學(xué)平時(shí)學(xué)棋譜,利用自己的棋藝特長和軟件比賽,發(fā)現(xiàn)了軟件算法的秘密;老師還介紹了這類智能下棋軟件的常用算法。大家感覺軟件創(chuàng)造非常有魅力。
我們感覺課堂是一個(gè)集體,同學(xué)的參與非常重要,而老師主要起著管理和協(xié)調(diào)的作用。老師在和大家的討論中發(fā)現(xiàn)了很多思想,和學(xué)生一起交流學(xué)習(xí)。這點(diǎn)在測試課堂上特別容易表現(xiàn)出來,因?yàn)槲覀冊谟迷u判的思維考察軟件產(chǎn)品,而不是單純的學(xué)習(xí)了。
2.2問題的解決是團(tuán)隊(duì)精神的體現(xiàn)
不同人的思維都不一樣,這樣可能一個(gè)項(xiàng)目測試的人越多,測試效果就越好。但是人一多,就產(chǎn)生矛盾和意見。學(xué)會尊重他人思想和意見是非常重要的,而管理協(xié)調(diào)人員的目標(biāo)是需要讓團(tuán)隊(duì)意識到這點(diǎn),找到最好途徑完成項(xiàng)目。
測試團(tuán)隊(duì)特別需要學(xué)習(xí)協(xié)調(diào)各個(gè)方面的關(guān)系。測試人員和開發(fā)人員發(fā)生矛盾是最常見的,測試團(tuán)隊(duì)內(nèi)部也可能會因?yàn)橐粋€(gè)問題的理解不同而產(chǎn)生分歧。我們在團(tuán)隊(duì)中需要尊重每個(gè)你的合作伙伴,而不是一味強(qiáng)調(diào)自己意見的正確而強(qiáng)制他人接受自己。比如定級一個(gè)軟件缺陷的級別,可能不同的人就有不同的看法,有人覺得很嚴(yán)重,有人覺得沒那么嚴(yán)重,如何能互相體諒的協(xié)調(diào)好工作,最終拿出合理解決方案是大家需要思考的。例如在討論一個(gè)任務(wù)調(diào)度的軟件測試時(shí),有的同學(xué)提出界面的結(jié)果數(shù)據(jù)在顏色上可以改得更漂亮,更豐富,更直觀些,這樣看起來容易讓人明白。而該項(xiàng)目的開發(fā)人員覺得自己使用的一致的顏色很好,界面太花俏不符合設(shè)計(jì)思想,而且修改起來技術(shù)上又費(fèi)點(diǎn)工作,不愿意,有的時(shí)候?yàn)檫@樣的小問題,大家都會不愉快,處理不好,會很大的影響工作進(jìn)度。這個(gè)時(shí)候項(xiàng)目組領(lǐng)導(dǎo)需要權(quán)衡利弊,讓小組成員最終達(dá)到統(tǒng)一的決定。
一個(gè)團(tuán)隊(duì)需要一種協(xié)調(diào)合作精神,問題的解決往往是團(tuán)隊(duì)精神的體現(xiàn)。
3計(jì)劃是測試成功的保障
測試工作要做的好,學(xué)會條理化自己的工作非常重要。測試管理那幾節(jié)課,我們專門講了如何做一個(gè)合格的測試經(jīng)理人。測試管理是軟件工程的一個(gè)部分,管理的目標(biāo)是管理你的測試團(tuán)隊(duì),讓他最大效率的工作。而做這樣的工作過程中,你如何確定你的被測試項(xiàng)目,該項(xiàng)目有哪些特點(diǎn),你還需要深入了解哪些方面,自己目前的資源有哪些,在確定了測試目標(biāo)后,怎樣確定測試計(jì)劃,同時(shí)怎樣實(shí)施你的計(jì)劃,在計(jì)劃落實(shí)的過程中,你如何監(jiān)督計(jì)劃的完成。同學(xué)們非常喜歡這樣的內(nèi)容。
但是測試經(jīng)理的工作又怎樣能夠做到井井有條,忙而不亂呢?可能需要從大學(xué)的學(xué)習(xí)中養(yǎng)成良好的計(jì)劃和完成計(jì)劃的習(xí)慣。許多同學(xué)發(fā)現(xiàn)良好的工作學(xué)習(xí)習(xí)慣特別有助于成功,比如把平時(shí)看到的想到的記錄下來,把想要做的工作記錄下來,給自己定個(gè)計(jì)劃,看自己完成的情況怎樣,在這個(gè)計(jì)劃實(shí)施過程中,有哪些地方?jīng)]做到,是否沒有毅力,還是說被其他什么事情占用了時(shí)間。應(yīng)該怎樣做計(jì)劃調(diào)整,或者對自我行為做調(diào)整。
4培養(yǎng)耐心做測試
測試工作看起來乏味,因?yàn)楫吘箾]有開發(fā)工作那么有挑戰(zhàn)和創(chuàng)造性。但是測試工作需要耐心和恒心,在這樣的工作中,你能夠培養(yǎng)自己的耐力。測試工作需要你付出自己的熱情和耐力,如果你為了刺激和新鮮,任何工作都有失去新鮮的時(shí)候。只有培養(yǎng)自己甘于寂寞,耐心塌實(shí)的心態(tài),方能把路走的長,走的寬。正如前面說的,測試和開發(fā)是一個(gè)工作的兩個(gè)方面,它們最終需要的都是個(gè)體從業(yè)人員的成熟和毅力。
5總結(jié)
軟件測試在軟件行業(yè)受重視的程度剛剛開始,該方向的教學(xué)活動也剛成為一個(gè)新亮點(diǎn),如何能夠健康地引導(dǎo)學(xué)生們走入這個(gè)方向,是值得大家共同探討的問題。筆者感覺測試教學(xué)不光要教會同學(xué)們一些專業(yè)知識,還要通過教學(xué)讓大家體會測試工作的行業(yè)精神,以及它對個(gè)體的行為和思想上的要求。
參考文獻(xiàn)
[1] Ron Patton. 軟件測試[M]. 北京:機(jī)械工業(yè)出版社.
[2] 柳純錄. 軟件評測師教程[M]. 北京:清華大學(xué)出版社.
[3] 段念. 軟件性能測試過程詳解與案例剖析[M]. 北京:清華大學(xué)出版社.
[4] Paul C. Jorgensen. 軟件測試[M]. 北京:機(jī)械工業(yè)出版社.
[5] 古樂. 軟件測試技術(shù)概論[M]. 北京:清華大學(xué)出版社.
[6] 王健,苗勇. 軟件測試員培訓(xùn)教材[M]. 北京:電子工業(yè)出版社.