做過幾年軟件測試和質量管理方面的工作,一直都想好好寫點東西,來表達自己對軟件測試職業的心得及看法。
上世紀末,國內軟件企業大多數還處在規模小、缺乏規范、客戶不成熟的狀態,軟件行業處于一個飛速發展的階段,各種軟件公司如雨后春筍般的出現,到2004年底,據有關部門統計國內大大小小軟件公司共計達8000多家,而其中大部分都在50人規模以下的小企業。同質化競爭、乃至惡性競爭嚴重損害了行業的整體利益,再加上國際寡頭的步步進逼,這些小企業的生存狀態越來越難。一些具有深厚的客戶關系的企業,生存狀況還可以。然而,更多的小企業不得不面對這么一個殘酷的現實,即隨著客戶越來越成熟,客戶對產品的質量和售后服務的要求越加苛刻。另外,一些企業將市場瞄準到日本及歐美的海外市場,質量管理的需求也日益強烈。面對著激烈的市場競爭,企業要么創新以開拓新的市場,要么在現有資源內縮減成本。更多的國內企業選擇了第二種手段。于是,軟件測試人才和質量保證人才的需求開始多了起來。
軟件測試工程師,這個工種是最近五到十年逐漸開始出現的,現在逐漸成為熱門職業。在這之前,除了少數行業,如航天有專職測試工程師以外,國內大多數軟件企業并沒有軟件測試工程師這個崗位,軟件系統在編碼完成后由程序員交叉測試,或者干脆在客戶驗收階段由客戶試用,并派人長期駐守于客戶方,以隨時進行修改??梢?,那時候軟件測試未能得到軟件開放商的重視,軟件系統的所有問題都在項目的后期才發現。很多大型項目因此而宣告失敗。
可喜的是現在很多企業的管理決策層已經意識到,軟件測試是軟件開發過程中不可缺少一道環節。據統計,軟件測試占整個軟件開發過程進度的50%-60%。軟件測試質量的好壞,直接關系到軟件產品的質量。軟件測試是軟件質量保證的重要手段。然而,具有質量意識并不能立刻給企業帶來受益,軟件測試的價值是很難評估的,它與軟件開發——這種創造性的工作特性形成了鮮明的反差。我認為,軟件測試價值評估需要建立在完善的軟件開發過程之中,諸如CMM質量模型的意義便是在于量化管理的不斷深入,通過對過程數據進行復雜的統計才能得出科學的結論??墒?,CMM適和小企業嗎?經驗告訴我們CMM在大企業中推廣較多,效果較好。因此,我們可以說,目前的行業狀況是,大家已經認識到軟件測試是重要的,但是并不知道軟件測試有多么重要!軟件測試工作到底該如何開展?每個從業人員都需要去摸索。然而在摸索之前,有幾個觀念需要正本清源,那便是對軟件測試價值的認識。
我認為軟件測試存在的根本價值有兩點:
1)為間接客戶-開發組織,提高質量、縮短交貨時間,從而降低成本。
2)為直接客戶-最終用戶,提供滿足需求的軟件系統。
作為測試從業者,首先要認清楚自己的“衣食父母”是誰,明確軟件測試的立足之本,才能估計軟件測試的價值為幾何,才能夠知道如何去創造更大的價值。只有了解大環境的發展趨勢,只有對自身定位明確清晰,才能不受外界干擾,一步一個腳印的走自己的路。從產業發展的角度來看,軟件測試的發展取決于軟件產業的發展,這個過程是伴隨著市場的成熟、開發商的成熟及客戶的成熟。因此,軟件測試的發展是一個任重道遠的過程。如果我們從經濟學的角度看待軟件測試,我們會悲觀地發現軟件測試人員是一個附庸的角色,無論是過去、現在還是將來,都無法擺脫這個命運。軟件測試機構無法直接生產滿足各行業需求的產品(測試工具和測試服務都不算)。測試組織生存的前提條件是開發組織具備開發、創造符合客戶需求的軟件產品,脫離了開發機構,測試組織沒有任何價值。
原文轉自:http://www.anti-gravitydesign.com