淺談軟件測試自動化解決方案(2)

發表于:2011-09-15來源:未知作者:領測軟件測試網采編點擊數: 標簽:
最后,針對普通測試工程師的一些建議,在這樣的公司里,其實有著很多意想不到的優越性: (一)這樣的公司測試如果不正規,那么你就有更大更多的發揮

  最后,針對普通測試工程師的一些建議,在這樣的公司里,其實有著很多意想不到的優越性:

  (一)這樣的公司測試如果不正規,那么你就有更大更多的發揮空間。

  (二)你可以單獨學習自動化測試技術,自己先試著應用到日常工作的軟件項目中。

  (三)你可以直接和開發人員溝通,甚至向他們學習開發技術,這對將來的自動化測試中開發腳本很有好處。

  (四)每個優秀測試工程師的成長都是個循序漸進的過程。我遇到很多測試界的新手向我發牢騷,很慚愧我沒有什么可以告誡他們的,只是希望這樣的新人克服浮躁情緒,穩扎穩打練好基本功,想成為優秀的測試專家,就要經歷這個階段。

  軟件測試自動化的引入條件

  如果你的測試部門有意向引入自動化測試,那么首先要從思想上統一認識。

  自動化測試能大大降低手工測試工作,但決不能完全取代手工測試。完全的自動化測試只是一個理論上的目標,實際上想要達到 100% 的自動化測試,不僅代價相當昂貴,而且操作上也是幾乎不可能實現。一般來說,一個 40-60% 的利用自動化的程度已經是非常好的了,達到這個級別以上將過大的增加測試相關的維護成本。

  測試自動化的引入有一定的標準,要經過綜合的評估,絕對不能理解成測試工具簡單的錄制與回放過程。實際上,從實現成熟度來說,自動化測試分五個級別:

  級別 說明 優點缺點用法

  一級 錄制和回放 自動化的測試腳本能夠被自動的生成,而不需要有任何的編程知識 擁有大量的測試腳本,當需求和應用發生變化時相應的測試腳本也必須被重新錄制 當測試的系統不會發生變化時,實現小規模的自動化

  二級 錄制、編輯和回放 減少腳本的數量和維護的工作需要一定的編程知識;頻繁的變化難于維護回歸測試時,用于被測試的應用有很小的變化

  三級 編程和回放 確定了測試腳本的設計,在項目的早期就可以開始自動化的測試 要求測試人員具有很好的軟件技能,包括設計、開發 大規模的測試套件被開發、執行和維護的專業自動化測試

  四級數據驅動的測試 能夠維護和使用良好的并且有效的模擬真實生活中數據的測試數據 軟件開發的技能是基礎,并且需要訪問相關的測試數據 大規模的測試套件被開發、執行和維護的專業自動化測試

  五級使用動作詞的測試自動化 測試用例的設計被從測試工具中分離了出來 需要一個具有工具技能和開發技能的測試團隊 專業的測試自動化將技能的使用最優化的結合起來

  自動化測試能提高測試效率,快速定位測試軟件各版本中的功能與性能缺陷,但不會創造性的發現測試腳本里沒有設計的缺陷。測試工具不是人腦,要求測試設計者將測試中各種分支路徑的校驗點進行定制;沒有定制完整,即便事實上出錯的地方,測試工具也不會發覺。因此,制訂全面、系統的測試設計工作是相當重要的。

  自動化測試能提高測試效率,但對于周期短、時間緊迫的項目不宜采用自動化測試。推行自動化測試的前期工作相當龐大,將企業級自動化測試框架應用到一個項目中也要評估其合適性,因此決不能盲目的的應用到任何一個測試項目中,尤其不適合周期短的項目,因為很可能需要大量的測試框架的準備和實施而會被拖跨。

  實施測試自動化必須進行多方面的培訓,包括測試流程、缺陷管理、人員安排、測試工具使用等。如果測試過程是不合理的,引入自動化測試只會給軟件組織或者項目團隊帶來更大的混亂;如果我們允許組織或者項目團隊在沒有關于應該如何做的任何知識的情況下實施自動化測試,那將肯定會以失敗告終。

  如果軟件企業有意向實施自動化測試,那么應該具備什么樣的條件才可以引入自動化測試呢,才可以最大可能的減少引入風險,并能夠可持續性的開展下去呢?

  ? 對企業自身現狀的評估分析

  第一,從企業規模上來說,沒有嚴格限制。無論公司大小,都需要提高測試效率,希望測試工作標準化,測試流程正規化,測試代碼重用化。所以第一要做到的,就是企業從高層CTO開始,直到測試部門的任何一個普通工程師,都要樹立實施自動化測試的堅定決心,不能抱著試試看的態度。一般來說,一個這樣的軟件開發團隊可以優先開展自動化測試工作:測試-開發人員比例合適,比如1:1到1:1.5;開發團隊總人數不少于10個。當然,如果你的公司只有三五個測試人員,要實施自動化測試絕非易事;不過可以先讓一個、兩個測試帶頭人首先試著開展這個工作,不斷總結、不斷提高,并和層層上司經常匯報工作的開展情況,再最終決定是否全面推行此事。

  第二,從公司的產品特征來說,一般開發產品的公司實施自動化測試要比開發項目的公司要優越些。原因很簡單,就是測試維護成本和風險都小。產品軟件開發周期長,需求相對穩定,測試人員可以有比較充裕的時間去設計測試方案和開發測試腳本;而項目軟件面向單客戶,需求難以一次性統一,變更頻繁,對開發、維護測試腳本危害很大,出現問題時一般都以開發代碼為主,很難照顧到測試代碼。但決不是說做項目軟件的公司不能實施自動化測試,當前國內做項目的軟件公司居多,有很多正在推行CMM等級標準,這是好事情;只要軟件的開發流程、測試流程、缺陷管理流程規范了,推行自動化測試自然水到渠成。

  第三,說說標準化的開發和管理流程。不管是CMM還是ISO,不管是開發流程、測試流程還是缺陷管理流程,這里不能一一闡述,可以參考RUP(Rational Unified Process, Rational 統一過程),可以參考很多業界文獻,我只說明一點,也是我們IT從業人員甚至任何從業人員一個很好的工作原則:

  把你想做的寫下來(計劃管理)

  按照你寫下來的去做(行為管理)

  把做的事情記錄下來(報告管理)

  出現的問題要設法解決(跟蹤管理)

  在測試流程里,這幾個要點都一一有所落實;如果你的軟件開發團隊據此開發軟件,那么完全具備實施自動化測試的條件。當然,也許一些公司的測試管理比較混亂,出了問題不知道誰負責,測試人員或開發人員整日碌碌卻無為,軟件缺陷不勝枚舉,那么筆者認為還是首先從管理角度來規范一下公司的開發流程和測試流程吧!

  第四,從測試人員個人素質和角色分配來說,除了有一個CTO級人物做后盾外,還應該有個具有良好自動化測試背景和豐富自動化測試經驗的測試主管,不僅在技術方面,更重要的是在今后的自動化測試管理位置起著領導的作用。還要有幾個出色的開發經驗良好的測試人員,當然也可以是開發工程師,負責編寫測試腳本、開發測試框架;他們不需要對產品業務了解深刻,但要具有將軟件業務邏輯轉化成可測試邏輯的分析能力,屬于自動化測試設計者。還有一些測試執行者,他們要對軟件產品業務邏輯相當熟練,配合測試設計者完成設計工作,并在執行自動測試時,敏銳的分析和判斷軟件缺陷。如果你的測試團隊具有這樣的人員角色雛形,那么具備了實施自動化測試的又一條件。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97