如何提高軟件測試的水平

 “什麼叫成熟產品?只要有一個成功案例的產品就是成熟產品!”某國內大型軟件公司CEO的這個經典觀點廣爲流傳,但其中的邏輯錯誤將風險帶給了客戶也帶給了軟件企業本身。國內一些軟件企業居然一夜間成了萬能公司,ERP ? CRM ?OA?WorkFlow?我們都行!然而這些企業對 軟件測試 的重要性大多認識不足,重開發輕測試的現象過於嚴重,很多公司沒有專門的測試部門,測試工程師太少,開發人員兼作測試 工作 的現象十分普遍,在這種狀況下推出的缺少嚴格測試等環節的軟件產品只能給客戶帶來悲劇。
  近年來,我國的軟件企業已越來越意識到軟件測試的重要性,逐漸加大軟件測試在整個軟件開發的系統工程中的比重。據調查統計,在成本上一般來說是“需求分析”和“規劃確定”各佔3%,“設計”佔5%,“編程”佔7%,“測試”佔15%,“投產和維護”佔67%.近些年來,測試成本的比例更有上升趨勢 .
  不成熟軟件帶來的風險
  不成熟的軟件產品是把測試成本交給了用戶:企業往往是出於項目週期安排不當,或者根本沒有安排專門測試,匆匆完成編碼設計就將產品交付使用了。這樣的後果自然是用戶覺得產品漏洞百出,項目執行過程也遙遙無期,最後,項目雙方都筋疲力盡,用戶覺得受騙,而軟件商則毀了聲譽,追加了大量項目實施費用,可謂是“賠了夫人又折兵”。
  企業邏輯的軟件實現高於計算機 技術 :很多軟件企業在沒有做透前期調研的前提下就匆匆開始建設自己想象中的“大廈”,結果可想而知。當用戶建立起真正的企業應用。才發現軟件違背了企業邏輯,不得不進行修改。這樣閉門造車無疑會給“大廈”帶來致命傷害。
  注重軟件產品的質量和成熟度纔會良性循環:有人把不成熟的軟件產品比作是焦油坑中垂死掙扎的猛獸,布魯克斯《人月神話》展示的可怕一幕在軟件研發過程中屢見不鮮。很多軟件企業常常將軟件質量視爲一種奢侈,如果有必要的話,爲了更多功能、更快速開發或者更低成本,測試就可以被犧牲掉。然而,在實踐中,如果軟件開發組織對質量有一個堅定承諾,實際上可以加快開發,減少成本,並更容易地增加新的特性。在“已完成”的產品缺陷修復上花費的代價要比從一開始就修復高出很多倍。相反,一個從開始就加強產品質量的組織,是有遠見和創新精神的,市場中的高質量軟件將更具競爭力。
  找出測試管理中的誤區
  筆者曾經從事專業的軟件項目管理與實施,項目管理感受很深刻。有一些切身體會與讀者分享。
  吸取“前輩”經驗。IBM在 軟件自動化測試 技術核心的三個最佳成功經驗是:儘早測試、連續測試、自動化測試,並在此基礎上提供了完整的軟件測試流程和一整套的軟件自動化測試工具,組建一個測試團隊,基於一套完整的軟件測試流程,使用一套完整的自動化軟件測試工具,完成全方位的軟件質量驗證。
  別去“挖東牆補西牆”。由於項目研發期的“缺斤短兩”,使項目實施和投入運行的初期 漏洞百出,時間一長用戶會發瘋,項目實施者也會發瘋,國內前幾年的衆多的ERP項目失敗的原因多出於此。項目實施的遙遙無期,將嚴重挫傷用戶的耐性和信心。
  代碼與文檔哪個值錢?多數項目管理者忽視了文檔的重要性。對於大型軟件的研發項目,還需要專業的測試過程管理軟件來支撐大規模的信息交流和自動測試、代碼的更新和版本的提交。這些文檔和信息的價值從某種意義上甚至超出了程序代碼本身。
  全程還是後期?軟件的設計階段往往沒有軟件測試人員的參與,事實上設計上的缺陷往往是耗用成本最高,也是最難在開發後期修復的缺陷。而一個軟件的質量與它有多大的設計缺陷有着密不可分的聯繫。而有經驗的測試人員的質量意識,安全意識,對用戶需求的瞭解及分析能力,對於打造高品質的軟件設計都有着不可忽視的作用。
  專職還是兼職?在傳統的開發方式中,由於缺乏必要的配置管理和變更控制,測試工作根本無法提出具體的測試要求,加之開發人員的遮醜,測試工作往往是走走過場,測試結果既無法考覈又無法量化,當然就無法對以後的開發工作起指導作用。事實上,每個軟件項目都需要專業的測試人員進行相對獨立的測試工作,從而保證軟件項目的質量。
  居安思危,控制風險。需求變更給測試帶來的問題可能是災難性的,客戶需求不是變動的唯一來源。有時團隊自身也能引起範圍變動。團隊的成員可能聽說或“假設”解決方案因客戶的實際要求而發生了變動。加強溝通和協作,隨時瞭解變更的狀態。
  誰爲產品質量買單?質量和質量控制應該是軟件項目的的一項重要內容。但是,無論在消費類軟件還是大型軟件的測試領域,國內軟件產品的質量掌控體系和標準都很模糊。質量控制越來越依託於公司在產品交付用戶之前的測試工作的成敗。
  沒有厚度就沒有重心。軟件測試過程的歷史數據缺失是大多數軟件項目失敗的關鍵所在,這樣的結論也許使很多人感到吃驚,但事實就是如此。因爲這些歷史數據是反映軟件項目實施軌跡的第一手資料,是項目延續和反饋的基石。
  省錢還是費錢?事實上,作爲軟件開發企業來說,投入人力,資金搞軟件測試的最終目的還是離不開經濟效益。而對與測試項目的管理也不能離開這個大前提。軟件測試的經濟效益主要來自以下兩個方面。一是滿足用戶需求,提高產品的競爭力,最終提高產品的銷售量。二是儘早發現缺陷,降低售後服務成本。而軟件測試的最終目的就是使它帶來的經濟效益最大化。有一些專業的測試工具的購買、測試人員的配備和培訓還需要一定的經濟投入,項目決策者們可以選擇適合自己的配置,但決不能沒有這些方面的投入。
  溝通還是對立?溝通是開發和測試人員必備的素質。但傳統的思想認爲,測試人員是找麻煩,是開發的“剋星”。其實,項目管理者應該清楚,爲軟件的質量和品質努力的工作目標是一致的。溝通和建立溝通渠道是項目管理者的重要工作。
  如何提高軟件測試水平
  要提高我國的軟件測試行業的發展水平,首當其衝要解決軟件測試隊伍的問題。某著名國際軟件企業的軟件測試人員與軟件開發人員的比率達到了3:5左右,並且在實踐過程已經證明了這種人員結構的合理性。但國內公司顯然一時很難達到,但更重要的是重視程度,在這個基礎上壯大軟件測試隊伍,提高測試人員的素質。
  其次是要 學習 借鑑國外完善的測試機制,包括豐富的軟件測試經驗,強大的測試工具,優秀的測試管理水平。真正解決測試手段落後、測試方法單一和測試工具欠缺的問題,在企業內部形成一個嚴密有效的糾錯系統,使國內的測試工作流程、 技術水平接近國外先進水平,這樣才能提高國內軟件開發與測試的整體管理水平,增加軟件產品的競爭力。
  此外,要重視第三方的測試力量。第三方的專業測試企業是靠技術與服務來贏得客戶信任的,也因此更加註重測試方法與質量。對於軟件企業來說,從無到有地去建立測試部門,並完善測試體系,需要較大投入,將研發出來的軟件產品交給實力強勁的第三方專業測試公司,在提高軟件產品的質量問題同時,還節約了產品測試成本。  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章