感司軟件測試

曾經對軟件測試很輕視,因爲我那時很無知,只是一名普通的中國程序員,這也是絕大多數程序員的心態,最講究“編程纔是硬道理”。

如今卻非常熱愛軟件測試,包括軟件測試工具,方法,理論,技術。因爲測試工作中,深刻體會到軟件測試的重要性和趣味性。此時,我已經跳出了“小程序員”的圈子,以軟件系統工程以及項目管理、UML、ERP的更大視角審視軟件測試這項工作。

爲什麼要進行軟件測試?軟件測試的前途如何?軟件測試的工具和思想誰更重要?軟件測試的最高境界是什麼?很長時間以來我一直被這幾個問題而困惑,有些問題至今仍然只是具有膚淺的認識,而且隨着測試項目越多,閱讀的測試書籍越多,我越感到我對軟件測試理解的越膚淺。因爲我越來越感受到軟件測試的廣度和深度的無限性,它像大海寬廣,像宇宙那樣深邃。

當今軟件測試在大部份人心目中是整天做着相同的工作,相當枯燥無味的,但卻是很容易做的事。但其實不然。要成爲一名稱職的優秀的軟件測試員並不是件容易的事。因爲他需要你在各方面都具有很強的專業知識且較高的心理素質及交際能力。具體來說,從項目管理的角度看,優秀的測試工程師應具有如下能力:

1、溝通能力
  一名理想的測試者必須能夠同測試涉及到的所有人進行溝通,具有與技術(開發者)和非技術人員(客戶,管理人員)的交流能力。既要可以和用戶談得來,又能同開發人員說得上話,不幸的是這兩類人沒有共同語言。和用戶談話的重點必須放在系統可以正確地處理什麼和不可以處理什麼上。而和開發者談相同的信息時,就必須將這些話重新組織以另一種方式表達出來,測試小組的成員必須能夠同等地同用戶和開發者溝通。切記提出問題不要複雜化。


2、技術能力

就總體言,開發人員對那些不懂技術的人持一種輕視的態度。一旦測試小組的某個成員作出了一個錯誤的斷定,那麼他們的可信度就會立刻被傳揚了出去。一個測試者必須既要明白被測軟件系統的概念又要會使用工程中的那些工具。比如說面向對象的開發語言工具、數據庫管理工具、項目管理工具等。

3、自信心與耐心

開發者指責測試者出了錯是常有的事,測試者必須對自己的觀點有足夠的自信心,要具備很高的心理素質,容許別人對自己指東指西,但不要讓程序員,以“這種情況不可能發生”這句話說服你,相反,你應該去說服他,告訴他在客戶心裏,並不是這樣的。並抱着打破砂鍋問到底的精神,對於只出現過一次的bug,一定找出原因,不解決誓不罷休,相信自己能重演bug並能克服碰到的所有問題。

4、外交能力

當你告訴某人他出了錯時,就必須使用一些外交方法。機智老練和外交手法有助於維護與開發人員的協作關係,測試者在告訴開發者他的軟件有錯誤時,也同樣需要一定的外交手腕。如果採取的方法過於強硬,對測試者來說,在以後和開發部門的合作方面就相當於"贏了戰爭卻輸了戰役"。

5、幽默感

在遇到狡辯的情況下,一個幽默的批評將是很有幫助的。能和開發小組很好的溝通是測試工作的關鍵,試着給你的開發小組找一個“BUG殺手”,或對他們說“我簡直不敢相信,你寫的程序居然到現在沒有找到BUG”。

6、很強的記憶力

一個理想的測試者應該有能力將以前曾經遇到過的類似的錯誤從記憶深處挖掘出來,這一能力在測試過程中的價值是無法衡量的。因爲許多新出現的問題和我們已經發現的問題相差無幾。

7、懷疑精神

世界上沒有絕對正確的,總有錯誤的地方,測試員應具有叛逆心理,別人認爲不可能發生的事,我卻認爲可能發生。別人認爲是對的,我卻認爲不是對的。通常情況下,開發者會盡他們最大的努力將所有的錯誤解釋過去。測式者必須聽每個人的說明,但他必須保持懷疑直到多次驗證以後。

8、自我督促

幹測試工作很容易使你變得懶散。只有那些具有自我督促能力、保持一個良好的心情,並不把生活中的不愉快的情緒帶到工作中來的人才能夠使自己每天正常地工作,否則可能無法把測試作好。

9、洞察力

一個好的測試工程師具有"測試是爲了破壞"的觀點,捕獲用戶觀點的能力,強烈的質量追求,對細節的關注能力。應用的高風險區的判斷能力以便將有限的測試針對重點環節。

10、分析能力

考慮問題要全面,結合客戶的需求、業務的流程、和系統的構架,等多方面考慮問題,分析問題的根本所在。靈活一些,聰明一點,多分析,製造一些容易產生bug的例子。

11、細心

做測試時要細心,不是所有的bug都能很容易的找出,一定要細心才能找出這些bug。

12、追求完美

通常程序員只考慮到實現功能,卻忽視瞭如何將程序、功能做得更完美,運行速度更優化。測試員就應當指出存在的缺陷,即使是位置偏移了影響視覺的總體效果也應大膽提出。

優秀的測試工程師除了具備有以上能力以外,還應掌握測試的技巧。軟件測試雖然辛苦,但是掌握了一定的技巧之後將使你事半功倍。

1、邊界測試,測試用戶輸入框中的數值的最大數和最小數,以及爲空或空時的情況。

2、非法測試,例如在輸入數字的地方輸入字母。

3、跟蹤測試,跟蹤一條數據的流程,保證數據的正確性。

4、數據測試,在開始測試時應保證數據的正確性,然後在從系統中找出各種BUG。

5、接口測試,程序往往在接口的地方很容易發生錯誤,要在此模塊測試勿掉以輕心。

6、代碼重用測試,在開發過程中有些模塊功能幾乎相同,程序員在重用代碼時可能忘記在原有代碼上修改或修改不全面,而造成的錯誤。

7、突發事件測試,服務器上可能發生意外情況的測試。

8、外界環境測試,有些系統在開發時依賴於另外一個系統,當另外一個系統發生錯誤時, 這個系統所受到的影響的情況。

9、修復測試,在程序員剛修復Bug之後的地方,再找一找,往往程序員只修復報告出來的缺陷而不去考慮別的功能在修改時可能會引起其它的錯誤的產生。

10、重複測試,紀錄認真做好測試記錄在做完一天的測試記錄之後,第二天再根據第一天的測試記錄重複測試你會發現有未修正的錯誤。

11、文字測試,如果在系統中有用詞不當的地方,我想這是不應該的。

12、系統兼容測試,例如有些程序在IE6能運行正常,到IE5下不能運行。有些程序在WIN2000下能運行,而到WIN98卻不能運行。像一些很特別的用戶去使用系統,你很有可能發現BUG。

13、用戶的易用性測試,往往用戶的需求是不斷的變化的,而其中的一部份變化的原因,是有用戶操作上不方便引起的。

在項目管理中考慮的一些問題應該是在軟件測試時有些體現,體現的內容是軟件測試的一些側重點,具體說,軟件測試是事務性的,而項目管理是策略性,一些策略性的東西必須在一些事務性的事務上來實現。軟件測試的事務性操作很多,這些操作需要一個良好的心態去對待。工作中需要多總結,多剖析,對於毛病:“有則改之、無則加冕”。

到此你是不是對測試很有興趣呢?不過我要告訴你,測試過程中有酸甜苦辣,其中的滋味只有你自己知道;測試過程更像是在彈奏動人的音樂,能使人感受到喜怒哀愁,更能讓人心曠神怡,不信,你也來試試。

 
發佈了21 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章