在軟件測試領(lǐng)域工作10年中,我曾有幸直接見證這個領(lǐng)域在相對短時間內(nèi)跨越性的改變。在我剛進入這個領(lǐng)域的時候,除去軟件開發(fā)周期里面所說的,大家剛開始真正意識到軟件測試的重要性和把它從“應(yīng)該做”提升到“必須做”。
在過去,由于會產(chǎn)生額外的成本,軟件測試從來沒有被真正重視。為了進行測試活動,人們需要被雇傭和培訓(xùn),時間表必須被延長以包含測試時間,必須購買和維護更多的機器和軟件;并且,也許在增加這些成本后,只會讓軟件運行得更好和讓顧客更加開心。為了保持“質(zhì)量成本”,到底有多少固定成本需要增加,并且增加到多少能到達平衡點而我們開始會看到好處?
同時,人們對于“你測試這個軟件僅僅是因為你不能寫代碼”的誤解使得人們并不僅僅只瞄準軟件測試,進而降低了軟件測試概念的地位。我需要承認,這個情況在很多場景中是真實的。從一流學(xué)位畢業(yè)的軟件工程師進入工作環(huán)境時擁有非常少、甚至沒有編程技能,因此選擇軟件測試職位。這些測試人員會繼續(xù)變得對自己的空間感到安逸,并不再努力去學(xué)習(xí)和提升。他們詳細他們所知道的并且到目前為止所做的工作已經(jīng)足夠。他們覺得這樣就足夠了。他們變得自滿。
在測試人員看不到的地方,消費市場仍在進化——人們的集中力持續(xù)時間變短,快速部署得需求變得更重要,技術(shù)的迅速變化使得難以持續(xù)保持某個標簽(keep tabs on)。業(yè)界要求用更少的時間完成更多的事情。敏捷測試的概念變得流行。我承認我也希望融入敏捷這個流行元素。在我的職業(yè)生涯中,我曾受命去創(chuàng)建一個測試部門,我有很好的主意去實施敏捷測試方法,使用精益流程和快速測試周期達到盡可能低的缺陷率。我決定保持團隊在一個小的規(guī)模,因為我們將對所有事情進行自動化,并且在生產(chǎn)環(huán)境中測試產(chǎn)品!(譯者注:就是每發(fā)一個新版本就自動進行自動化測試,用機器代替人工實現(xiàn)更敏捷的反應(yīng)和擁有更多的測試時間和覆蓋率)
就像我們陷入凹槽一樣,我們也會陷入無聊且致命的手工測試的陷阱。進入這個陷阱十分簡單,因為這不需要努力和腦力。但正視它,并擺脫它并不簡單。秘訣就是在一開始的時候就不要陷入這個陷阱。
下面的列表就是一個測試人員必須具備的最重要的五項優(yōu)勢:
1. 持續(xù)不斷的自我提升
軟件測試人員必須持續(xù)學(xué)習(xí)。技術(shù)的世界并不遲緩。在眨眼之間它都在變化。今天,我們正在討論把人通過噴射飛機在太空中飛行實現(xiàn)3小時內(nèi)從英國轉(zhuǎn)送到澳大利亞。
我不是說每個人需要退出來并開始學(xué)習(xí)航空科技。我說的是測試人員不應(yīng)該坐在他們舒適的區(qū)域,并用世界上著名的自衛(wèi)格言“我只測試這個”為他們?nèi)狈δ芰M行辯護。在這么多東西之中,其中測試人員需要學(xué)習(xí)的最重要的東西之一就是持續(xù)增長產(chǎn)品領(lǐng)域的知識。測試人員普遍存在一個錯覺:產(chǎn)品知識等同于領(lǐng)域知識。這是完全錯誤的。了解產(chǎn)品固然非常重要,但擁有領(lǐng)域知識也是至關(guān)重要的。不了解所測試系統(tǒng)所在的領(lǐng)域不僅不負責(zé)任而且十分危險。
2. 編程技能
軟件測試人員需要了解一些基礎(chǔ)的編程知識。一個不會編程——至少了解編程基礎(chǔ)——不能真正成為一個軟件測試人員。我記得在我第一個工作的公司,有一個產(chǎn)生相同作用的規(guī)定:要成為一個測試人員,必須先完成一個程序的開發(fā)。這個規(guī)定的意義在于,測試人員在測試的時候能聯(lián)想到代碼結(jié)構(gòu),這個在測試階段能為開發(fā)人員和系統(tǒng)工程師帶來巨大的價值。這是一個測試團隊真正為他們測試的產(chǎn)品帶來的增值服務(wù)。
3. 創(chuàng)新思維
測試人員必須持續(xù)思考他們怎么完成,并正確地完成以下兩件事:
a) 豐富測試用例
b) 優(yōu)化測試方法
裝備上這兩項技能,豐富測試用例現(xiàn)在變成只是制定戰(zhàn)略層面上的問題。實施已經(jīng)不是一個問題了。這個解放了測試人員,讓他們集中注意力在制定測試計劃,而不是測試工作的細節(jié)。他們停止“為小事煩惱”,抱歉我沒找到更好的形容(原文如此:for the lack of better words)。很多軟件測試工具和程序就是這種向前思考的產(chǎn)物。
4. 交流能力
根據(jù)我的經(jīng)驗,測試人員很多時候認為他們是“處于辦公室后面”的人群,因此不需要想“處于辦公室前方”的人那樣說那么多話。在一些環(huán)境下,他們也許是對的,但并不代表一個測試人員需要減少交流。在幾乎所有環(huán)境中,交談和交流是兩項完全不同的事物。
一個測試人員必須能夠清晰地交流,用詞精準并展示出高超的理解能力。 交流技能在這里包括一系列活動,如閱讀和理解產(chǎn)品說明書,把它們轉(zhuǎn)化為結(jié)構(gòu)化的測試用例,報告軟件缺陷(bug),并清晰、簡明地寫出給管理者的測試報告,但并不僅僅如此。在會議中,測試人員必須能合理地討論,并用具有邏輯、清晰的方法傳達他們的發(fā)現(xiàn)。一句話,為了在企業(yè)中保持優(yōu)勢,一個軟件測試人員必須擁有超常的說和寫的技能。
5. 責(zé)任感
這是一個很多我在過去一起共事的軟件測試人員可能感到不大舒服的詞。我通過兩種不同的方式來表達這個詞:
a) 對于你測試的產(chǎn)品負責(zé)任。許多測試者在早上來到辦公室,完成他們的任務(wù),然后在晚上離開辦公室。當(dāng)他們完成當(dāng)天的任務(wù)后,他們就會收拾東西并離開。聽起來很正常?是的,而我也曾讀到和看到很多人實際上都在努力達成這種“常規(guī)”的工作方式。然而,這并不是我想說的重點(也許另一天就會有另一個文章說這事)。
我的重點是,大部分時候測試人員看不到他們的產(chǎn)品實際上在怎么樣的大環(huán)境下工作。他們是怎么影響經(jīng)濟和市場的,商業(yè)和商業(yè)運作,顧客和最終用戶,等等。要是測試人員可以了解到這些并明白他們正在創(chuàng)造的貢獻,他們正在做的工作有這么大的意義,他們將會由于發(fā)展而來的擁有感而工作得更好。
b) 對你制造的錯誤(errors or mistakes)負責(zé)任。人們普遍認為測試人員就是找其他人的錯誤的人。并且測試人員也樂于相信這個概念。但是,測試人員(和其他普通人一樣)也會犯錯。承認這些錯誤的是正直的測試人員。
我經(jīng)常說,承認自己錯誤、不會說不必要的解釋來浪費大家的時間和精力的測試人員是可靠的測試人員。我們馬上就會從責(zé)備轉(zhuǎn)變成專注于如何解決這個問題。用手指指別人活著轉(zhuǎn)而責(zé)備其他人也是很危險的。我曾經(jīng)經(jīng)歷過這個事情:測試人員發(fā)現(xiàn)其他人在責(zé)備他們的錯誤,然后不斷地解釋或不承認,最后導(dǎo)致了很多不必要的情形和不好的感受。你只需要承認這個錯誤然后繼續(xù)前進。
世界在不斷往前走,企業(yè)也在往前走,測試人員也需要往前走并不被落下。“學(xué)習(xí),提升,創(chuàng)新”。
-
測試工程師
+關(guān)注
關(guān)注
6文章
124瀏覽量
12489
發(fā)布評論請先 登錄
相關(guān)推薦
評論