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