從程式設計師到測試工程師(一)

2021-04-13 01:36:10 字數 2892 閱讀 7393

這篇是2023年底《程式設計師》雜誌上的一篇文章,雖然時間早了點,但值得一看。

------------

前言:軟體測試一門非常嶄新的學科,目前研究的內容還很不深入,仍然處於嬰兒階段。軟體測試需要什麼樣的專業基礎還沒有定論,而且目前還沒有一種很好的標準來衡量測試人員。但無可置疑,軟體測試越來越受到軟體公司的重視,軟體測試工程師的作用也逐漸被人們所認可。這一點已經在像微軟這樣的國外大型軟體企業中所證實,在微軟,乙個開發人員相對應著一至兩個測試人員。現在,就讓我們走近軟體測試工程師,關注他們的成長之路。

從程式設計師到軟體測試工程師

特別策劃/本刊編輯部 撰文/閆輝

國內軟體公司對軟體測試的態度令人擔憂。軟體測試工程師不足,開發測試人員比例不合理。據調查,最好的企業中測試人員和開發人員的比例是1:8,有的是1:20,甚至沒有專職的測試工程師。

曾經參與微軟windows95、exchange server4.0和4.5、internet explorer 4.0和5.0、sql server 2000開發與測試工作陳巨集剛博士儘管已經公升任微軟亞洲研究院商務及高校關係高階經理,但仍然對國內軟體測試水平的落後深有感觸。

國內很多企業還處在探索階段,小企業的運作方式造成其主要精力是要盡快完成初始資本積累。有些企業也了解軟體測試的重要性,很努力、很認真的在學,但因為很多原因而學不到精髓,不知道如何去做。於是只能侷限於書本上學來的簡單的黑箱、白箱測試而已。很多人知道有壓力測試和效能測試,但針對產品具體如何去做就不清楚了。

陳巨集剛表示,重視測試首先需要有開放性的軟體文化,而在很多公司中,測試工程師只是絕對服從的聽命角色,沒有開發他們的積極性和創造性。一些管理人員對軟體開發的流程管理經驗不足,仍然用傳統企業的方法進行管理,再加上對軟體質量的控制理解不對,認為編完程式經過簡單的程式設計師自己測試就可以使用了,而沒有認識到軟體測試是控制質量最好的方法。

不過,國內還是有一些大型公司和專業公司已經在軟體測試方面走上正規。2023年開始接包ibm軟體測試專案,2023年軟體測試成為公司主體軟體外包業務之一的和騰軟體就是其中之一。因為客戶就是ibm這樣的大型軟體公司,騰軟體高階副總裁劉忠表示,它們在軟體測試管理上,經同國外的公司相差不大,同時也研究和應用了多種軟體測試技術。

軟體測試工程師

一提到軟體測試工程師,很多人就會想到那些反覆使用軟體,試圖在頻繁操作中尋找到錯誤發生的低層次人員或者軟體使用者。其實這是一種錯誤的概念,軟體測試早已超越了使用者使用來發現bug的基本測試階段。

陳巨集剛介紹說,微軟的軟體測試工程師分為三種:測試執行者(basic software tester)、測試工具軟體開發工程師(software development engineer in test)和高階軟體測試工程師(ad_hoc tester)

測試執行者負責理解產品的功能要求,然後根據測試規範和測試案例對其進行測試,檢查軟體有沒有錯誤,決定軟體是否具有穩定性,屬於最低階的執行角色。

測試工具軟體開發工程師負責寫測試工具**,並利用測試工具對軟體進行測試;或者開發測試工具為軟體測試工程師服務。產品開發後的效能測試、提交測試等過程,都有可能要用到開發的測試工具。對技術要求最強的是這些人,因為它們要具備寫程式的技術。「因為不同產品的特性不一樣,對測試工具要求也是不同的,就像windows的測試工具不能用於office,office的也不能用於sqlserver,微軟很多測試工程師就是負責專門為某個產品寫測試程式的。」

而ad_hoc testet屬於比較有經驗,自己會找方向並做的很好的測試工程師,這要求具有很強的創造性。剛進入微軟時,老闆也是只給陳巨集剛乙個操作流程,每天就按照這個規程去做,幾天下來,乙個bug都沒有發現。陳巨集剛也很沮喪,覺得這樣挺對不起公司,後來自己問自己:為什麼非要這樣做!於是換了其他的方法試試,令他吃驚的是,一下就找到很多嚴重的bug,當時也不敢聲張。有一天,他找到10多個非常嚴重的bug,開發經理一下就驚呆了,怒沖沖的跑到陳巨集剛面前問:「你是不是改變了測試方式和測試步驟?」陳巨集剛有些嚇住,說道:「可能改變了一點。」對方說:「我非常生氣,但我不是生你的氣,而是因為以前測試人員水平太差,或者以前的測試方面有問題,軟體中有些bug存在了半年甚至一年,但直到現在才發現,現在修補這些錯誤要困難很多!」後來陳巨集剛得到了老闆的讚許,可以按照自己的想法去做測試。對此,陳巨集剛感受頗深:「一方面我體會到了微軟非常鼓勵創造的文化,同時也感到只遵守教條不是好的測試人員,就和使用者一樣了。做軟體測試工程師同樣需要開拓和創造性。」

在開發管理上,測試不應該歸屬於專案管理,也不應該歸屬開發人員。這三個部門應該是並駕齊驅,相互協作,測試工程師最終決定產品是否能夠發布。

軟體測試工程師的素質

因為軟體測試仍然處在發展階段,還沒有上公升到理論層次。對人員的評測,包括微軟在內,都還沒有乙個統一標準,因此評定軟體測試工程師只能根據工作實踐進行自然淘汰。

軟體測試對邏輯思維、學習能力、反應要求很高,是否有嚴密的思維和逆向思維也非常重要。陳巨集剛介紹說,在五六個人的測試小組時,一半以上的bug都是他找到的。他認為這同自己數學專業的背景關係密切,數學中有邏輯思維的培訓,要善於找出來各方面的因素。比如要證明乙個定理,各個方面都考慮到,乙個條件不滿足就無法證明;但如果證明其不成立,最常用的就是找到乙個反例,只要有一點證明不成立就可以了,軟體測試也是找這一點。

做測試還要考慮到所有出錯的可能性,還要做一些不是按常規做的、非常奇怪的事。除了漏洞檢測,測試還應該考慮效能問題,也就是要保證軟體執行得很好,沒有記憶體洩漏,不會出現執行越來越慢的情況;在不同的使用環境下,考慮軟體的相容性同樣重要。軟體測試同產品的規模也有很大的關係,因為軟體的bug往往出在大型軟體的連線處。

做軟體測試工程師需要對軟體抱有懷疑態度。這是因為開發人員喜歡想當然,總是找一些有利於自己程式執行的資料,有些開發人員甚至認為不利於程式執行的資料是對**的玷汙和褻瀆。而軟體測試卻要策略性的準備各種資料,從每個細節上設計不同的應用場景,不去想當然的假定任何乙個資料是可行的。

在職業素質和交際方面方面,並不是測試工程師愛挑別人毛病才好,反而這個工作要求很強的溝通能力。經常的和開發人員進行溝通,說話辦事要很得當,不能指責別人,否則會事倍功半。性格隨和才能和開發人員順暢的溝通,對人和對事是完全不同的兩個問題。

從程式設計師到測試工程師(轉貼)

這篇是2002年底 程式設計師 雜誌上的一篇文章,雖然時間早了點,但值得一看。前言 軟體測試一門非常嶄新的學科,目前研究的內容還很不深入,仍然處於嬰兒階段。軟體測試需要什麼樣的專業基礎還沒有定論,而且目前還沒有一種很好的標準來衡量測試人員。但無可置疑,軟體測試越來越受到軟體公司的重視,軟體測試工程師...

從程式設計師到軟體測試工程師

前言 軟體測試 一門非常嶄新的學科,目前研究的內容還很不深入,仍然處於嬰兒階段。軟體測試需要什麼樣的專業基礎還沒有定論,而且目前還沒有一種很好的標準來衡量測試人員。但無可置疑,軟體測試越來越受到軟體公司的重視,軟體測試工程師的作用也逐漸被人們所認可。這一點已經在像微軟這樣的國外大型軟體企業中所證實,...

從程式設計師公升級到工程師

大多數象我這樣對軟體有濃厚興趣的人,畢業後義無反顧地走進了企業,開始了程式設計師的生涯。那時,我們迷戀 大全 秘籍 一類的書籍,心中只有 當我看到一行行枯燥的 變成了能夠打 的裝置,變成了螢幕上漂亮的 變成了動聽的 成就感油然而生。我覺得自己也是乙個出色的程式設計師了。在使用者的機房中苦熬三晝夜解決...