服務熱線:  0755-26905154
 
 
 
Service 顧問文章:軟件自動化測試實施難點分析

共創力咨詢/楊學明

?

????隨著國內企業軟件開發及測試水平的提升,許多企業開始嘗試開展自動化測試的應用,以提高測試效率和測試質量。雖然在國外自動化測試工具應用已經很普遍,但國內許多企業對于軟件自動化測試的理解還停留在表面上,沒有深入的理解到企業實施自動化測試所要具備的條件以及自動化測試本身的局限性,導致自動化并沒有給企業帶來多少實際的價值,反而還浪費了資源。 下面是兩個企業推行自動化失敗的案例:

???案例1:L公司是中國一家專注醫療設備與軟件研發的高科技企業,產品包括超聲,放射,檢驗和醫療IT。醫療IT軟件產品包括超聲工作站、放射工作站、叫號工作站、信息系統等。整個軟件產品線有80多名工程師,測試工程師有15人。以前公司的測試大部分是手工測試,現在由于軟件的版本發布較多,測試團隊很難跟上開發的節奏。產品線王總找到測試部經理李華,看是否能開展自動化測試,并要求在下個季度完成自動化技術的預研和實踐。測試部經理李華經過與部門兩名自動化測試工程師的討論,決定使用QTP和Winrunner作為測試工具,經過三個月的預研之后,工具可以使用了,但在使用過程中遇到了以下的問題:

1)?自動化工具在錄制腳本的時候很多對象無法識別。

2)?由于軟件的需求變更較多,程序界面變更較快,原來錄制的腳本很難重用。

3)?軟件程序的BUG很多,使用測試工具時出現很多的異常,無法順利跑完腳本。。。。

???案例2: K公司是一家主要從事網絡游戲咨詢服務及相關游戲增值業務,是全球著名,中國最大的游戲增值服務提供商之一,主要提供游戲點卡、游戲裝備、虛擬貨幣、網游賬號等網上交易服務。該公司開發團隊采用的開發模式為敏捷開發,每周需要發布一個版本,對軟件測試團隊的要求較高,不但需要快速的測試每一個新版本,而且要找出BUG,這樣對于本來偏向于手工測試的質量保證團隊是一個非常大的挑戰,負責質量的陳副總為了提高測試的效率,直接從IBN公司挖了一個自動化測試高手劉軍過來,作為整個測試部門的負責人,意在提高公司自動化測試技術和軟件質量水平。但劉軍經過6個月的努力,發現自動化測試在K公司根本派不上用場,大部分的項目帶是采用手工測試,原本想把測試效率提升一下的劉軍,在6個月之后,選擇離職。。。。。究其原因,有以下幾個:

1)劉軍雖然是自動化測試高手,但對于K公司的業務不太熟悉。

2)敏捷開發過程中自動化測試很難派上用場。

3)企業對于自動化能帶來的收益過于短視,沒有給予一定的時間進行技術積累。

????以上兩個案例,是目前中國軟件企業遇到的普遍性的問題,一方面想提高軟件測試的效率,一方面又不想增加測試資源,想走捷徑,比如通過一些自動化工具進行輔助測試等等。上個月筆者在北京測試公開課上也遇到了一家中國互聯網企業的研發總監,他們面臨的問題跟以上兩家企業的問題基本上類似,想開展自動化測試但不知從何下手,如:自動化測試團隊與開發人員的關系,自動化測試人員的績效指標,自動化測試團隊究竟需要領導哪些支持?自動化測試的人員如何培養?自動化測試能做到什么程度。。。。。。。

帶著這些問題,筆者根據以往在華為和阿里巴巴兩家著名公司的測試管理經歷,和近期對多家企業進行自動化測試輔導的經驗,分別從“技術、組織、流程、人”四個方面對自動化測試實施難點進行簡要的分析:

  1. 從技術方面,目前國內從事自動化測試的工程師還不多,這跟國內一種浮燥的開發氛圍有關系。因為企業開展自動化測試,不但需要購買工具,還需要招聘具備開發能力的測試工程師,并且回報周期較長,有的需要半年,有的需要一兩年,這一點是很多企業無法實現的。國內自動化測試做得比較好的企業騰訊、阿里巴巴、百度等公司,無不投入了較高的成本,自動化測試技術包括測試工具開發和自動化測試工具應用兩類。 測試工具開發是指開發適合自已產品的測試工具,像一些腳本語言PHP、PYTHON、TCL/TK、SHELL等等,主要用于集成測試和單元測試;另一種自動化測試技術是指自動化測試工具的應用,主要是應用各種成熟的測試工具,如QTP,LR,Silktest等等, 這類技術只需要掌握工具即可。由于國內“重開發、輕測試”思想依然存在,很多企業不愿花錢購買自動化測試工具和招聘高素質自動化測試人才。導致測試水平低下,測試跟不上開發的情況屢見不鮮。 企業要想實施自動化測試,必須先過技術關,案例1中的L公司顯然技術的積累不夠,沒有成功自動化測試經驗的技術人員很可能導致自動化測試失敗。

  2. 組織方面,很多公司都建立了系統測試部,但真正有獨立自動化測試小組的公司廖廖無幾,有的公司也試圖讓系統測試人員來從事自動化測試,這是一個誤區。因為系統測試人員往往偏向于黑盒測試, 他們對于代碼邏輯和模塊接口方面了解非常少, 很難從事測試工具的開發和自動化測試工具的應用。漢捷咨詢認為, 自動化測試小組應獨立于測系統測試團隊, 自動化測試小組更多的職責在于提高測試用例的自動化率, 和維護自動化測試腳本。測試工具開發小組可以獨立于測試工具應用小組, 因為前者更偏向于開發, 這個團隊的身份其實跟開發團隊沒有什么兩樣,他們負責收集自動化工具開發需求,并進行設計開發和驗證。后者主要負責工具應用, 他們需要把工具應用到公司的業務中去。自動化測試工具應用小組可以參與一部分的系統測試工作,以撐握和熟悉具體的業務知識, 更好的提高軟件自動化率。因此,在組織方面,漢捷建議企業開發過程中自動化測試和手工測試分開, 自動化測試分為兩個小組, 一個是做工具開發, 一個是自動化工具的應用,兩個小組如果人數不多,可以合二為一, 如果人數超過一定規模, 如10個以上, 則可以成立兩個單獨的小組。

  3. 在流程方面, 自動化測試需要有相關測試流程的保障。自動化測試不再跟手工測試一樣, 在軟件打完包之后進行測試, 自動化測試在編寫腳本或寫測試用例的時候需要跟開發人員人間作深入的溝通, 了解軟件的邏輯實現和模塊之間的接口, 如UI的控件實現方式變化之后,開發人員應及時通知測試開發人員, 對測試的腳本進行調整和維護, 對開發人員提交文檔的規范性有更高的要求。案例2中的K公司采用了敏捷開發模式, 對于自動化測試工具的應用,顯然不太適合, 因為頻繁的UI變更,將導致測試用例的維護工作量較大, 還不如做手工測試, 針對K公司這種情況, 漢捷建議除了使用自動化測試做一些后臺的測試之外,前臺依然采用手工測試。

  4. 在人方面,自動化測試如何得到保障呢? 最近筆者統計了一下目前研發職位的招聘情況,軟件測試人員的招聘職位較多,尤其是高級測試工程師供不應求, 究其原因, 目前很多企業已經意識到了測試這塊短板, 但缺乏高水平的測試工程師, 懂開發的工程師都不愿從事測試, 從事測試的工程師基本不懂開發。。。。。這是一種不好的現象, 在華為公司,許多測試工程師同樣懂軟件開發,在進入公司前需要考查C++基本編程,而且,測試人員的工資待遇不比開發人員差,這就為公司開展各項自動化測試提供了一個基本條件,人員可以得到保證。國內除了幾家大公司如華為,中興,邁瑞,阿里,騰訊等之外,許多公司的測試人員都是不懂開發的,很難真正的推行自動化測試。。。。。

綜上所述, 企業要推行軟件自動化測試,不是一件容易的事, 領導不但需要支持建立測試開發團隊,而且需要招聘有經驗的自測試化測試人員,并樹立自動化測試部門的權威性,真正給企業帶來效益,降低人工測試的成本。隨著國內軟件企業對質量意識的提升,相信自動化測試逐漸會取代一部分的手工測試,自動化測試的地位也將逐漸顯現出來。

最后,筆者根據多年的自動化測試實踐經驗, 總結出一些經驗和教訓, 給大家分享:

?

  1. 并不是所有的軟件都適合自動化測試, 像有些需要人機界面進行測試的, 只能使用手工測試。如需要通過眼睛判斷顏色或通過人操作鍵盤等等。

  2. 自動化測試工具并不能幫助我們找出更多的BUG, 而只能提高測試的效率和質量。自動化測試工具也是需要人去操作和維護的,它只能機械的重復人的動作,而并不比人聰明。

  3. 對于版本頻繁變更或需求變化較快的軟件,盡量不要使用自動化測試工具,因為使用工具維護的成本太高。

  4. 對于自動化測試盡量在版本穩定后進行,如前面三輪采用人工測試,軟件基本穩定后再使用自動化工具進行回歸測試,如果版本不穩定,使用自動化工具將事倍功半,得不償失。

  5. 對于自動化測試技術,需要做長期的規劃,針對自身業務的發展狀況和開發技術的規劃,組織自動化測試小組研究測試方面新的技術,在產品測試的過程中,慢慢積累,不斷總結,讓測試技術得以沉淀。

  6. 自動化測試工程師最好有開發的背景和經驗,對于自動化測試工具應用的工程師最好有成功的工具實踐經驗。因為只有具備成功的經驗,對于自動化工具在軟件開發過程中的應用會如魚得水,取得事半功倍的效果。


地址:深圳市寶安中心區前海卓越時代廣場C棟

          2508室

電話: 0755-26905154
傳真: 0755-26906101
郵編: 518000
掃二維碼關注官方公眾號
版權所有: 深圳市共創力企業管理咨詢有限公司       
犀牛云提供云計算服務
国产自产2020最新桃花源