軟件測試工程師工作總結(jié)(2)
5、 缺少針對(duì)性測試。軟件也可以分很多種,不同的軟件有不同的特點(diǎn),自然就需要針對(duì)性的測試了,
一年級(jí)語文家長會(huì)講稿%A(2011-11-25 11:26:53)
譬如GUI的軟件與嵌入式軟件的測試方法肯定有很大不同。最初我們?cè)谧鯰項(xiàng)目測試時(shí),就缺少針對(duì)性方法。有兩個(gè)教訓(xùn)讓我們刻骨銘心:1、界面測試,T軟件發(fā)布后沒多久,其他組同事就發(fā)現(xiàn)某界面一個(gè)按鈕的單詞拼寫錯(cuò)誤——“rollback”被寫成“roolback”;2、效率測試,軟件測試到后期才發(fā)現(xiàn)T軟件在實(shí)際環(huán)境中運(yùn)行效率很低,根本無法滿足達(dá)實(shí)際應(yīng)用的需要。從那以后我們就準(zhǔn)備了專門針對(duì)T軟件的測試項(xiàng)目,包括:界面測試、效率測試、資料測試、穩(wěn)定性測試等。
6、 溝通問題。自從工作開始,開發(fā)人員和測試人員的爭吵從來就沒有停止過。最初是什么問題都吵,很多沒有意義的爭吵甚至非理性的爭吵,慶幸的是現(xiàn)在的爭吵大多是有針對(duì)性的、理性的。個(gè)人覺得以前無為爭吵過多的原因是:開發(fā)人員、測試人員的工作技能和職業(yè)素養(yǎng)都比較欠缺。吵了大半年后,人員提升了工作技能和職業(yè)素養(yǎng)后,吵架都吵的比較有默契了。當(dāng)然最重要的是開發(fā)人員和測試人員的目標(biāo)要一致:保證產(chǎn)品的質(zhì)量,滿足客戶需求。
二、自動(dòng)化測試
06年過完年后,我被主管派到一個(gè)大組去學(xué)習(xí)自動(dòng)化測試技術(shù)。這個(gè)測試組是個(gè)比較大的測試組,總共有幾十號(hào)人,其中有很多牛人。他們的自動(dòng)化測試框架就是由幾個(gè)牛人耗時(shí)1年多開發(fā)出來的。到現(xiàn)在,他們的自動(dòng)化用例覆蓋率約50%,應(yīng)用率好像有70%,總之這個(gè)自動(dòng)化測試框架還是滿牛X的,不過就是整個(gè)框架實(shí)現(xiàn)太復(fù)雜了,涉及的編程腳本就用了三種 : (
下面簡單介紹一下該GUI自動(dòng)化測試框架。
測試工具:IBM Rational Robot
自動(dòng)化測試技術(shù):第三代自動(dòng)化測試框架,叫什么DDE,具體什么意思已經(jīng)記不住了 : )
測試腳本:Robot中使用的是sqabasic腳本(基于basic的一種腳本),另外還使用了TCL、COM組建等,并自行開發(fā)了一個(gè)抓包工具用于自動(dòng)化測試。還有我們測試的產(chǎn)品界面是使用Java開發(fā)的,如果要讓Robot能夠正常識(shí)別界面,還需涉及到Java編程。呵呵,實(shí)現(xiàn)上可是夠復(fù)雜的 : (
學(xué)習(xí)自動(dòng)化的頭一個(gè)星期,我只是學(xué)習(xí)該測試組的產(chǎn)品知識(shí),學(xué)習(xí)如何使用自動(dòng)化測試。后面的幾個(gè)星期就開始承擔(dān)自動(dòng)化測試的建設(shè)任務(wù)了。想想當(dāng)初自己還是滿辛苦的,白天上班學(xué)習(xí)產(chǎn)品知識(shí),晚上回家就對(duì)著電腦看basic腳本的語法,周末還去公司無償加班看代碼。
在技術(shù)文檔的選擇上,我基本只看英文的,單詞不懂就拿金山詞霸查,實(shí)在看不懂了才會(huì)去找些中文的資料看。為什么要選擇英文的呢?因?yàn)楹芏嘀袊鴮憰娜撕芨≡辏幌胫禳c(diǎn)把書出版了好賺錢,所以很多中文的資料質(zhì)量很差。首先要貶低的就是那本譚教授的《C語言程序設(shè)計(jì)》。記得讀大學(xué)時(shí),照著譚教授的書敲程序,沒多少程序能編譯通過的,真是誤人子弟。
當(dāng)時(shí)帶我學(xué)習(xí)自動(dòng)化的導(dǎo)師姓L,他是個(gè)大忙人,有時(shí)一整天都在開會(huì)。L的師傅姓W,W是該自動(dòng)化創(chuàng)始人之一。我呢,充其量算是徒孫一輩,呵呵。由于L太忙,而且不那么愛說話,于是乎我就只能自己對(duì)著文檔看代碼。
當(dāng)時(shí)對(duì)我比較有用的文檔就只有兩篇:一篇是匯集型的chm文檔,是篇比較全面的介紹,其中包括自動(dòng)化框架的介紹,原理的介紹,各模塊介紹,自動(dòng)化執(zhí)行的流程等;另外一篇?jiǎng)t是由W寫的自動(dòng)化建設(shè)指導(dǎo)書,寫的還是滿不錯(cuò)的,在我有一定基礎(chǔ)后,照著指導(dǎo)書就能完成簡單的自動(dòng)化建設(shè)。
在我整個(gè)學(xué)習(xí)過程中,是按照以下的過程開展的:1、吳江裝修網(wǎng)初步了解整個(gè)自動(dòng)化和產(chǎn)品知識(shí),嘗試使用自動(dòng)化進(jìn)行測試;2、熟悉sqabasic語法;3、對(duì)著文檔讀代碼,嘗試調(diào)試腳本,跟蹤到代碼的最底層。木制仿真模型
其實(shí)最好的學(xué)習(xí)方式就是實(shí)踐,去做自動(dòng)化建設(shè)。當(dāng)有一定基礎(chǔ)后,去完成導(dǎo)師交給的自動(dòng)化建設(shè)任務(wù),就是最好的學(xué)習(xí)方式。后來,我教別人的時(shí)候,也是安排實(shí)際任務(wù)給他做,然后再進(jìn)行相應(yīng)的引導(dǎo)。
在我的學(xué)習(xí)期間,有件事情讓我滿討厭的。就是我必須給原部門的主管和測試組人員講課,然后那些家伙會(huì)不停的提問,以檢驗(yàn)我的學(xué)習(xí)效果。雖然這招很BT,但是對(duì)個(gè)人的成長還是滿有利的。假設(shè)你學(xué)會(huì)了一項(xiàng)技能,此時(shí)你可能只在第一個(gè)層次上,如果你能夠把這項(xiàng)技能教會(huì)別人,那么你的層次上升了一個(gè)檔次。
記得當(dāng)時(shí)是06年2月初去參加學(xué)習(xí)的,4月初就應(yīng)急被調(diào)回原測試組了??偣膊坏絻蓚€(gè)月的時(shí)間,我總共完成了3個(gè)模塊的自動(dòng)化建設(shè),第1個(gè)模塊搞了3個(gè)多星期,第2個(gè)模塊不到2個(gè)星期,第3個(gè)模塊一個(gè)星期就搞完了(第3個(gè)模塊算是友情支援呢,哈哈)。
4月初被調(diào)回原測試組后,就一直做救火的工作。差不多5月份的時(shí)候才正是開始做我們T項(xiàng)目的自動(dòng)化。其實(shí)也就是把我學(xué)習(xí)的自動(dòng)化框架移植過來,做T項(xiàng)目自動(dòng)化測試。
另我比較遺憾的是,T項(xiàng)目的測試一直都很緊,而自動(dòng)化測試并沒有被推廣和充分利用。直到我離職前,測試組為應(yīng)付測試部自動(dòng)化考核指標(biāo),才得到重視。
這里我談一下自己對(duì)自動(dòng)化測試的理解。
1、 自動(dòng)化測試用于提高測試效率;
2、 自動(dòng)化測試可以完成一些無法手工完成的測試,例如長時(shí)間不間斷的測試;
3、 自動(dòng)化雖然能夠發(fā)現(xiàn)問題,但主要是對(duì)繼承的功能進(jìn)行測試,保證以前的老功能。(這個(gè)跟項(xiàng)目有關(guān), GUI自動(dòng)化測試比較復(fù)雜,如果是嵌入式設(shè)備或芯片的自動(dòng)化測試,對(duì)自動(dòng)化測試的理解可能會(huì)不一樣)
三、開發(fā)小工具
我在自動(dòng)化學(xué)習(xí)期間,表現(xiàn)出來的專業(yè)技能和良好的學(xué)習(xí)能力,得到了同事和主管的認(rèn)可。鑒于此,在4月中旬的時(shí)候,測試組的Leader給我安排一個(gè)任務(wù),使用Excel表格開發(fā)一個(gè)工具,用于收集和統(tǒng)計(jì)記錄的數(shù)據(jù)。要求該工具能夠代替手工計(jì)算,提升測試效率。任務(wù)完成的截至日期是五一。給我安排的時(shí)間大概為一周。
該工具的實(shí)現(xiàn)方式并不難,就是設(shè)計(jì)一個(gè)Excel表格,然后在里面嵌入VBA腳本,以宏的方式代替手工計(jì)算。對(duì)我來說最大的挑戰(zhàn)就是:1、短時(shí)間內(nèi)學(xué)會(huì)VBA編程;2、提取需求,設(shè)計(jì)Excel表格的格式,使該工具具有較好的易用性。
當(dāng)我接到任務(wù)后,下班回家就開始到網(wǎng)上搜集關(guān)于VBA資料。當(dāng)時(shí)我找了一個(gè)星期,都沒有讓我滿意的文檔。最終只找到一篇國人寫的PDF文檔,但是那篇PDF文檔只是讓我初步了解了VBA是個(gè)什么東東,并不能滿足我的實(shí)際需求。最終,在寫VBA腳本期間,我還是參考微軟自帶的幫助文檔搞定的。(搞忘球當(dāng)初是否裝了MSDN)
本來計(jì)劃是在四月底的一個(gè)星期開展該項(xiàng)任務(wù),但實(shí)際上直到4月的最后兩天我才有時(shí)間。記得當(dāng)時(shí),我花了一天半的時(shí)間與我的客戶——也就是我的同事,共同討論需求,并設(shè)計(jì)Excel表格的格式,讓其評(píng)審。最終寫腳本花費(fèi)了4月的最后一個(gè)下午,以及五一期間的三個(gè)下午的時(shí)間,總計(jì)4個(gè)下午的時(shí)間,完成該工具的開發(fā)。而且我五一期間的工作并沒有申報(bào)加班,是無償勞動(dòng)啊 : (
另外,令我欣喜的是,從此我成了我們組的“牛人”,哈哈哈哈。。。。。。
其實(shí)工具開發(fā)完成后,還是有些問題,如:
1、 程序崩潰(不小心除了0,呵呵,加入異常處理就OK了);
2、 有1/3的功能基本沒有被使用(郁悶,花那么大精力。。。我的五一啊);
3、自動(dòng)生成的表格,奇丑無比(直到現(xiàn)在,我都沒改,哈哈)。
記得當(dāng)時(shí)有個(gè)做了5年以上C++的開發(fā)人員,看到我寫的Excel表格,居然說“誒,這東西還滿神奇的嘛”。我當(dāng)時(shí)的一個(gè)感覺就是,暈,這個(gè)家伙工作效率肯定不高。
Excel還真是好用,功能強(qiáng)大啊!
四、負(fù)責(zé)M項(xiàng)目測試
06年10月份,我開始獨(dú)立負(fù)責(zé)M項(xiàng)目的測試工作。M項(xiàng)目是個(gè)小項(xiàng)目,大體情況如下:
代碼量:大約10K行
開發(fā)語言:C#
軟件環(huán)境:Windows PPC 2003
硬件環(huán)境:hp的PDA(具體型號(hào)忘了,反正是便宜貨,大概1000塊)
人力投入:開發(fā)3人,測試就我1人
M項(xiàng)目的測試需求分析、測試設(shè)計(jì)、測試用例編寫、測試執(zhí)行到測試報(bào)告,全部由我一個(gè)人搞定
06年10月~12月中旬這段時(shí)間,主要是完成前期的測試分析與設(shè)計(jì)。12月中旬,就進(jìn)入了實(shí)際的測試階段,07年1月底,軟件發(fā)布?;仡欉@4個(gè)月的工作,有做的好的,也有做的差的。下面對(duì)這些進(jìn)行總結(jié)。
做的比較好的:
1、 測試進(jìn)度把握比較好,在規(guī)定時(shí)間內(nèi),甚至提前完成了測試任務(wù);
2、 與開發(fā)人員的溝通較好,使問題能夠較順利的解決,基本沒有內(nèi)耗,雙方合作愉快;
3、 測試的重點(diǎn)把握較好,把很多嚴(yán)重問題,在測試前期就給暴露出來了;
做的不好的,待改進(jìn)的:
1、 前期的測試分析能力較弱,測試規(guī)格分析不全,測試用例編寫質(zhì)量不是高。到后期測試時(shí),才發(fā)現(xiàn)很多規(guī)格沒有覆蓋到,需要補(bǔ)充測試用例。而且之前寫的測試用例與實(shí)際測試情況,有些偏差,用例的可用性差,又花了很多時(shí)間去修改用例。
2、 前期的測試計(jì)劃制定比較差,實(shí)際工作較之計(jì)劃偏差過大。吳江裝飾網(wǎng)反正10月、11月那段時(shí)間,M項(xiàng)目的工作是亂七八糟的,還好關(guān)鍵時(shí)間點(diǎn)的把握還算到位。
3、 測試對(duì)象選擇上疏忽,導(dǎo)致漏測。M程序是個(gè)工具軟件,主要用于查詢和設(shè)置設(shè)備的某些參數(shù)或配置。我當(dāng)時(shí)只考慮到對(duì)所有支持的設(shè)備進(jìn)行遍歷,卻未考慮到設(shè)備上所有單板的遍歷。結(jié)果技術(shù)支持工程師到香港試用該工具時(shí),發(fā)現(xiàn)某塊叫PM1D的單板無法識(shí)別。后續(xù),我們對(duì)大部分單板進(jìn)行了遍歷,還發(fā)現(xiàn)了很多隱藏的問題。這是一項(xiàng)較大的疏忽。
4、 在做內(nèi)部模擬試驗(yàn)局測試時(shí),對(duì)測試環(huán)境的選擇有較大疏忽,導(dǎo)致漏測。在做內(nèi)部試驗(yàn)局的時(shí)候,我為了偷懶只選擇了3個(gè)不同設(shè)備的組網(wǎng)測試,而沒有考慮到大規(guī)模組網(wǎng)情況下的測試。后來,技術(shù)支持工程師拿M軟件到廣州試用時(shí),程序的某項(xiàng)功能就不正常了,原因就是大規(guī)模組網(wǎng)時(shí),通信數(shù)據(jù)的傳輸是多包的,而M程序的底層函數(shù)沒有對(duì)多包的情況進(jìn)行處理,導(dǎo)致該項(xiàng)功能不正常。當(dāng)時(shí),在其他實(shí)驗(yàn)室是有類似環(huán)境的,而我卻為了偷懶 : (
雖然M項(xiàng)目的測試有很多不足,但是總體情況良好,我對(duì)產(chǎn)品的質(zhì)量有信心 : )
五、救火
大概是06年7月份時(shí),我們組組長跟我說,要派我到B組去學(xué)習(xí)3個(gè)星期。等我去了B組才發(fā)現(xiàn)自己是被派來救火的。來B組支援測試,主要是完成一項(xiàng)測試任務(wù),說具體點(diǎn),就是把一件事情干600多次,沒任何技術(shù)含量。我當(dāng)時(shí)真是郁悶壞了 : (
雖然心底是比較郁悶,但畢竟也就3個(gè)星期,想著忍忍就過去了。
具體的任務(wù)很簡單:大概有80種板子,每種板子大概有8套軟件,用T工具對(duì)80多塊板子把8套軟件都加一次,觀察軟件加載過程中,業(yè)務(wù)是否正常,板子加完軟件后,運(yùn)行是否正常。
還有一個(gè)也是其他組借調(diào)過來的新員工,跟我一起干這件事情。我600多次,他也差不多600次。還好這個(gè)家伙,心態(tài)很好,做事情也很勤奮。
最初B組給的方案是這樣的:先用第1套軟件把80多個(gè)板子加載一遍,再用第2套,第3套,直到第8套。
開始工作幾天,我們就按這種方案執(zhí)行,但按這種方案執(zhí)行的效率很差。主要因?yàn)閷?shí)驗(yàn)室常用的板子差不多只有30塊,其他的板子都藏在箱子里,而且有些板子B組根本沒有,需要到其他項(xiàng)目組去借,這樣針對(duì)軟件版本,對(duì)80多塊板子進(jìn)行輪循加載,效率就很低,因?yàn)槊考右惶总浖鸵ふ?0多塊板子。
當(dāng)時(shí),我和那個(gè)新員工都很愁,按照這種做法,這項(xiàng)任務(wù)3個(gè)星期根本就無法完成。B組負(fù)責(zé)帶我們的兩個(gè)員工,也表示比較無奈。
郁悶過的第2天一早,我就直接找B組的老大談話,“按照你們提供的這種方案,我們?cè)谌齻€(gè)星期內(nèi)根本無法完成任務(wù),而且還有諸多其他困難:1、部分板子是壞的;2、某些板子實(shí)驗(yàn)室里根本就沒有;3、對(duì)設(shè)備不熟悉。”
就這樣,B組老大把組內(nèi)相關(guān)骨干人員都叫過來開會(huì),重新商討了一套方案,并要求他們?nèi)χС治覀兊墓ぷ鳌?/p>
開了會(huì)后,B組的人就比較支持我們的工作了,啟用新的方案后,還提前了1天時(shí)間把工作完成 : )
這里我體會(huì)比較深的是:在做一份工作前,一定要弄清楚這項(xiàng)任務(wù)到底要做些什么、要怎么做、要做到什么程度,工作中還要定期匯報(bào)工作(基本上以日?qǐng)?bào)、周報(bào)的形式,用郵件發(fā)送),如果出現(xiàn)了解決不了的困難,一定要向老大匯報(bào),如果老大也解決不了,那他也不能責(zé)怪你無能 : )
六、工作中的陷阱
在辭職前的幾個(gè)月,有個(gè)師弟也是老鄉(xiāng)X君,得知我做過自動(dòng)化項(xiàng)目后,便來向我了解自動(dòng)化測試相關(guān)的情況。
從與X的聊天過程中了解到,他也正在做自動(dòng)化,他們組測試的產(chǎn)品規(guī)模比較大,不過做自動(dòng)化的只有兩個(gè)新人,而且是使用一種新的GUI測試工具。他在給我講他們具體工作時(shí),了解到他們的自動(dòng)化測試非常原始,就是針對(duì)一個(gè)用例錄制一套腳本,幾百個(gè)測試用例,大概錄制幾百個(gè)腳本,根本沒有對(duì)公共進(jìn)行提取,更別提有什么自動(dòng)化測試框架了。X君與另外一個(gè)人,在自動(dòng)化方面都是新手,沒有相關(guān)經(jīng)驗(yàn),他們不知道這樣做會(huì)給后期的維護(hù)帶來多大的麻煩。而且他們主管也不太懂GUI測試的自動(dòng)化,只是每天要他們匯報(bào)工作進(jìn)度,期望在兩個(gè)月內(nèi)完成那幾百個(gè)腳本。
經(jīng)過我細(xì)致詢問后,我猜測他們做這項(xiàng)自動(dòng)化工作,基本上是為了應(yīng)付部門自動(dòng)化考核而做的,而并非為了提高測試效率,保證產(chǎn)品質(zhì)量。
我也可以體諒X君主管的難處:測試組人力本來就緊張,而部門又要考核自動(dòng)化指標(biāo),他只有弄兩個(gè)人來應(yīng)付一下部門的考核了。
這樣說來,X君和他另外一位同事就是受害者了,被安排做一件這么沒意義的事情。對(duì)他們我只能表示同情了。
對(duì)于這類BT主管吩咐的沒啥意義的事情,我的體會(huì)就是能推掉不做就不做,如果實(shí)在推不掉,就完全按照他的意思做,他要怎么做就怎么做,要做成什么樣就做成什么樣。實(shí)在搞郁悶了就老板炒魷魚吧。
七、其他
記得剛進(jìn)公司那一陣,對(duì)我們新員工有這樣那樣的培訓(xùn),估計(jì)轉(zhuǎn)正前至少被培訓(xùn)了20門課吧。具體講的都是產(chǎn)品知識(shí)、測試技能、編程方面的東東。那些講課的老師水平也參差不齊,PPT寫的水準(zhǔn)也有好有壞??傮w感覺就是那些培訓(xùn)是在浪費(fèi)時(shí)間,如果自己看這些資料效果都要好很多。
在轉(zhuǎn)正前,作為新員工要給部門的“老”員工講課,講自己所學(xué)習(xí)過的知識(shí),然后下面的“老”員工會(huì)發(fā)狂了似的問你問題?,F(xiàn)在我感覺這種方式真的是一種非常好的檢驗(yàn)方法,不但檢驗(yàn)了你的學(xué)習(xí)情況還鍛煉了你講解PPT的能力。
通過這種方式,我覺得自己在很多方面有提高:
1、 寫PPT的水平。后續(xù)工作中,寫PPT匯報(bào)工作,做的是又快,又漂亮。
2、 溝通能力。最初別人問我一個(gè)問題,我還沒完全理解他的意圖,就以自己的理解,淅瀝嘩啦的說了一堆別人不想知道的東東,搞得別人一頭霧水。此后,別人每問我一個(gè)問題,我都會(huì)先把他的意圖或意思搞搞清楚了,確認(rèn)后,再以最精練的語言來回答他的問題。
3、 懂就是懂,不懂就別亂說。記得最早“老”員工問我一個(gè)我自己不是很懂的問題,我通常是按自己的理解方式,跟他胡吹一通。結(jié)果他再一細(xì)問,我就傻了。知道就知道,不知道就別亂說,這點(diǎn)很重要,尤其是在參加面試的時(shí)候,如果自己不是很動(dòng),別人一問你就會(huì)露餡。
看了軟件測試工程師工作總結(jié)的讀者還看了: