版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、淺談軟件測試自動化解決方案文章出處: 作者:張振興 發(fā)布時間:2005-10-19【摘要】 測試是軟件開發(fā)的一個重要環(huán)節(jié)。本文論述了軟件測試自動化測試的實施。從自動測試的好處. 影響軟件測試自動化實施的因素產(chǎn)生原因等幾個方面出發(fā).總結軟件自動化測試的方案。 【關鍵字】軟件測試 軟件自動化測試軟件測試自動化,已經(jīng)成為國內(nèi)軟件工程領域一個眾所周知的課題;不言而喻,軟件測試從業(yè)者都意識到軟件測試這項工作走向成熟化、標準化的一個必經(jīng)之路就是要實施自動化測試。也許您認為實施自動化測試不是必須,也許您認為測試的思想是開展該工作的精髓、而工具只是輔助,那么我要告訴你我的想法:從計算機這一龐大學科發(fā)展至今,它
2、最根本的意義是解決人類手工勞動的復雜性,成為替代人類某些重復性行為模式的最佳工具;我們不可推翻測試思維在測試工作中的指導思想地位,但如何將思想轉化成可操作的方案,本文也許會給您一些啟示。以前聽過北京中軟的一個業(yè)內(nèi)專家講一句話,覺得挺經(jīng)典:凡是說既是科學又是藝術的學科,就是說明它是不成熟的學科!他將軟件工程和建筑行業(yè)做類比,讓我們深深體會到軟件工程走向成熟化的任重與道遠。而軟件測試,更是一個新興的領域,雖然近幾年得到了快速發(fā)展,也隨著該領域從業(yè)者數(shù)量的與日俱增,培養(yǎng)了一批高級的人才;但是依然有多少企業(yè)和個人工作在迷茫中:這種困惑是因為工程師們手中的測試工作與理想的測試模式造成的強烈反差,這種無奈
3、是因為他們和開發(fā)人員一樣的努力卻有不同的待遇,這種迷茫是因為測試工作者不知道這個領域里是否還有自己的發(fā)展空間和人生價值的體現(xiàn)!筆者認為:如今的軟件測試行情,正處在群雄逐鹿的混戰(zhàn)歲月,每個人、每個有測試部門或從事測試業(yè)務的企業(yè),都該發(fā)揚百花齊放、百家爭鳴的精神,多多借鑒國內(nèi)外先進的測試經(jīng)驗,參考業(yè)界流行的行業(yè)標準,找到適合自己團隊的測試方法和模式,創(chuàng)造更大的社會價值,發(fā)揮更大的人生價值。 實施軟件測試自動化的理由分析 首先,測試人員的工作比以往任何時候都更加困難,因為公司和組織希望以更快的速度和更低的成本開發(fā)出高質量的應用程序。此外,在很多項目中,測試人員的所有任務實際上都是手動處理的,而實際上
4、,有很大一部分重復性強的測試工作,是可以獨立開來自動實現(xiàn)的。還有,在大型項目中測試團隊和其他的團隊之間沒有足夠的合作,無法促進彼此的工作。最后,從個人角度來說,測試人員通常很難花費大量時間來學習新技能;這是目前國內(nèi)測試從業(yè)者的現(xiàn)狀,太多的企業(yè)為了節(jié)約成本而將剛剛走出校門的畢業(yè)生作為測試工程師,他們每日做著繁忙的重復工作,又基于自身技能的不深,雖懷博覽群書的心愿卻不知從何出入手。所謂光陰似箭,因為一轉眼我們就說到未來的5年、10年后,我們這些技能不深的測試工程師能做什么呢?而軟件測試自動化,也是未來測試工程師或即將成為測試工程一項強有力的工作技能??梢哉f,實施測試自動化是軟件行業(yè)一個不可逆轉的趨
5、勢,如果在這個領域走在了前列,無論從企業(yè)的核心競爭力還是個人的工作技能來說,都有巨大的優(yōu)越性,而國內(nèi)眾多的軟件廠商也的確在紛至沓來的著手開展著這項工作。 當然國內(nèi)軟件測試自動化實施現(xiàn)狀分析 隨著眾多具有了一定優(yōu)秀實施自動化測試經(jīng)驗的企業(yè)陸續(xù)出現(xiàn),也伴隨著很多組織對這項工作依然是丈二的和尚摸不著頭腦。對當前國內(nèi)軟件企業(yè)實施或有意向實施測試自動化時面臨的主要問題,按實施的不同層次來說:干脆認為測試自動化是個遙不可及的事情,我們這樣的小公司不必實施,人員、資金、資源都不足,以后再說吧!熱血沸騰的實施測試自動化,購買了工具,推行了新的測試流程;幾個月后,工具放在那里成了共享資源,測試流程又濤聲依舊,回
6、到原來的模式。公司實施了自動化測試;然而開發(fā)與測試之間,甚至與項目經(jīng)理之間矛盾重重,出了事情不知如何追究責任;雖然還在勉強維持的自動化測試,但實施的成本比手工測試增加了,工作量比從前更大了,從而造成項目團隊人員怨聲載道,更懷念起那段手工測試的悠閑歲月,唉!那一場風花雪月的事,既然要結束又何必開始自動化測試實施相對比較成功,但或多或少還有些問題,比如工具選擇不準確,培訓不到位,文檔不完備,人員分配不合理,腳本可維護度不高等等,造成一種表面上的自動化測試流程,是一幅空架子,如同山間竹筍,嘴尖皮厚腹中空。 國內(nèi)軟件測試自動化實施不成功原因分析 公司高層意識不到軟件測試自動化的重要性;殊不知,其他競爭
7、對手們都大張旗鼓的開展這方面研究和策劃的時候,自己還對此持漠視態(tài)度,等到整個行業(yè)都提高到一個新的層次,那時再著手做,可能就是熱鍋上的螞蟻了。所謂凡事預則立,不預則廢。一個軟件企業(yè)實施測試自動化,絕對不是拍腦袋說干就能干好的,它不僅涉及測試工作本身流程上、組織結構上的調整與改進,甚至也包括需求、設計、開發(fā)、維護及配置管理等其他方面的配合。軟件開發(fā)是團隊工作,在這一領域要尤其注重以人為本;所以人員之間的配合、測試組織結構的設置非常重要,每個角色一定要將自己的責任完全擔負起來,這也是減少和解決前述團隊矛盾的必要手段。對開展自動化測試的監(jiān)督和評估相當重要,也包括對工作產(chǎn)品的檢查和人員的考核。一定要將自
8、動化測試全面深入的貫徹到測試工作中,不能敷衍了事,不能做表面工作。這項工作在CMM三級里規(guī)范的很好,只可惜我們的很多公司對CMM真的只是“過級”! 正確認識國內(nèi)未實施軟件測試自動化的根源 目前國內(nèi)的軟件公司,很多還是處于獲取資本的原始積累階段,我們不能說公司領導完全不重視測試,而是測試整體行業(yè)都沒有被重視起來,這是其一;其二是公司高層有更需要重視的環(huán)節(jié),例如尋找客戶簽訂單,或者開發(fā),這些是直接關系公司存亡的命脈性東西。即便企業(yè)重視測試,如果公司做一番比較全面的評估(在后續(xù)的測試自動化引入入條件里,再詳細說明),也不一定非要實施自動化測試。筆者認為一些中小軟件公司在大刀闊斧推行自動化測試之前,在
9、測試流程管理、測試缺陷流程、測試人員技能培訓等方面做工作,這樣可以用比較少的成本投入來獲取相對較大且長期的收益回報。最后,針對普通測試工程師的一些建議,在這樣的公司里,其實有著很多意想不到的優(yōu)越性:(一)這樣的公司測試如果不正規(guī),那么你就有更大更多的發(fā)揮空間。(二)你可以單獨學習自動化測試技術,自己先試著應用到日常工作的軟件項目中。(三)你可以直接和開發(fā)人員溝通,甚至向他們學習開發(fā)技術,這對將來的自動化測試中開發(fā)腳本很有好處。(四)每個優(yōu)秀測試工程師的成長都是個循序漸進的過程。我遇到很多測試界的新手向我發(fā)牢騷,很慚愧我沒有什么可以告誡他們的,只是希望這樣的新人克服浮躁情緒,穩(wěn)扎穩(wěn)打練好基本功,
10、想成為優(yōu)秀的測試專家,就要經(jīng)歷這個階段。 軟件測試自動化的引入條件 如果你的測試部門有意向引入自動化測試,那么首先要從思想上統(tǒng)一認識。自動化測試能大大降低手工測試工作,但決不能完全取代手工測試。完全的自動化測試只是一個理論上的目標,實際上想要達到 100% 的自動化測試,不僅代價相當昂貴,而且操作上也是幾乎不可能實現(xiàn)。一般來說,一個 40-60% 的利用自動化的程度已經(jīng)是非常好的了,達到這個級別以上將過大的增加測試相關的維護成本。測試自動化的引入有一定的標準,要經(jīng)過綜合的評估,絕對不能理解成測試工具簡單的錄制與回放過程。實際上,從實現(xiàn)成熟度來說,自動化測試分五個級別: 級別 說明 優(yōu)點 缺點
11、用法 一級 錄制和回放 自動化的測試腳本能夠被自動的生成,而不需要有任何的編程知識 擁有大量的測試腳本,當需求和應用發(fā)生變化時相應的測試腳本也必須被重新錄制 當測試的系統(tǒng)不會發(fā)生變化時,實現(xiàn)小規(guī)模的自動化 二級 錄制、編輯和回放 減少腳本的數(shù)量和維護的工作 需要一定的編程知識;頻繁的變化難于維護 回歸測試時,用于被測試的應用有很小的變化 三級 編程和回放 確定了測試腳本的設計,在項目的早期就可以開始自動化的測試 要求測試人員具有很好的軟件技能,包括設計、開發(fā) 大規(guī)模的測試套件被開發(fā)、執(zhí)行和維護的專業(yè)自動化測試 四級 數(shù)據(jù)驅動的測試 能夠維護和使用良好的并且有效的模擬真實生活中數(shù)據(jù)的測試數(shù)據(jù) 軟
12、件開發(fā)的技能是基礎,并且需要訪問相關的測試數(shù)據(jù) 大規(guī)模的測試套件被開發(fā)、執(zhí)行和維護的專業(yè)自動化測試 五級 使用動作詞的測試自動化 測試用例的設計被從測試工具中分離了出來 需要一個具有工具技能和開發(fā)技能的測試團隊 專業(yè)的測試自動化將技能的使用最優(yōu)化的結合起來 自動化測試能提高測試效率,快速定位測試軟件各版本中的功能與性能缺陷,但不會創(chuàng)造性的發(fā)現(xiàn)測試腳本里沒有設計的缺陷。測試工具不是人腦,要求測試設計者將測試中各種分支路徑的校驗點進行定制;沒有定制完整,即便事實上出錯的地方,測試工具也不會發(fā)覺。因此,制訂全面、系統(tǒng)的測試設計工作是相當重要的。自動化測試能提高測試效率,但對于周期短、時間緊迫的項目不
13、宜采用自動化測試。推行自動化測試的前期工作相當龐大,將企業(yè)級自動化測試框架應用到一個項目中也要評估其合適性,因此決不能盲目的的應用到任何一個測試項目中,尤其不適合周期短的項目,因為很可能需要大量的測試框架的準備和實施而會被拖跨。實施測試自動化必須進行多方面的培訓,包括測試流程、缺陷管理、人員安排、測試工具使用等。如果測試過程是不合理的,引入自動化測試只會給軟件組織或者項目團隊帶來更大的混亂;如果我們允許組織或者項目團隊在沒有關于應該如何做的任何知識的情況下實施自動化測試,那將肯定會以失敗告終。如果軟件企業(yè)有意向實施自動化測試,那么應該具備什么樣的條件才可以引入自動化測試呢,才可以最大可能的減少
14、引入風險,并能夠可持續(xù)性的開展下去呢? 對企業(yè)自身現(xiàn)狀的評估分析 第一,從企業(yè)規(guī)模上來說,沒有嚴格限制。無論公司大小,都需要提高測試效率,希望測試工作標準化,測試流程正規(guī)化,測試代碼重用化。所以第一要做到的,就是企業(yè)從高層CTO開始,直到測試部門的任何一個普通工程師,都要樹立實施自動化測試的堅定決心,不能抱著試試看的態(tài)度。一般來說,一個這樣的軟件開發(fā)團隊可以優(yōu)先開展自動化測試工作:測試開發(fā)人員比例合適,比如1:1到1:1.5;開發(fā)團隊總人數(shù)不少于10個。當然,如果你的公司只有三五個測試人員,要實施自動化測試絕非易事;不過可以先讓一個、兩個測試帶頭人首先試著開展這個工作,不斷總結、不斷提高,并和
15、層層上司經(jīng)常匯報工作的開展情況,再最終決定是否全面推行此事。第二,從公司的產(chǎn)品特征來說,一般開發(fā)產(chǎn)品的公司實施自動化測試要比開發(fā)項目的公司要優(yōu)越些。原因很簡單,就是測試維護成本和風險都小。產(chǎn)品軟件開發(fā)周期長,需求相對穩(wěn)定,測試人員可以有比較充裕的時間去設計測試方案和開發(fā)測試腳本;而項目軟件面向單客戶,需求難以一次性統(tǒng)一,變更頻繁,對開發(fā)、維護測試腳本危害很大,出現(xiàn)問題時一般都以開發(fā)代碼為主,很難照顧到測試代碼。但決不是說做項目軟件的公司不能實施自動化測試,當前國內(nèi)做項目的軟件公司居多,有很多正在推行CMM等級標準,這是好事情;只要軟件的開發(fā)流程、測試流程、缺陷管理流程規(guī)范了,推行自動化測試自然
16、水到渠成。第三,說說標準化的開發(fā)和管理流程。不管是CMM還是ISO,不管是開發(fā)流程、測試流程還是缺陷管理流程,這里不能一一闡述,可以參考RUP(Rational Unified Process, Rational 統(tǒng)一過程),可以參考很多業(yè)界文獻,我只說明一點,也是我們IT從業(yè)人員甚至任何從業(yè)人員一個很好的工作原則: 把你想做的寫下來(計劃管理) 按照你寫下來的去做(行為管理) 把做的事情記錄下來(報告管理) 出現(xiàn)的問題要設法解決(跟蹤管理) 在測試流程里,這幾個要點都一一有所落實;如果你的軟件開發(fā)團隊據(jù)此開發(fā)軟件,那么完全具備實施自動化測試的條件。當然,也許一些公司的測試管理比較混亂,出了問
17、題不知道誰負責,測試人員或開發(fā)人員整日碌碌卻無為,軟件缺陷不勝枚舉,那么筆者認為還是首先從管理角度來規(guī)范一下公司的開發(fā)流程和測試流程吧!第四,從測試人員個人素質和角色分配來說,除了有一個CTO級人物做后盾外,還應該有個具有良好自動化測試背景和豐富自動化測試經(jīng)驗的測試主管,不僅在技術方面,更重要的是在今后的自動化測試管理位置起著領導的作用。還要有幾個出色的開發(fā)經(jīng)驗良好的測試人員,當然也可以是開發(fā)工程師,負責編寫測試腳本、開發(fā)測試框架;他們不需要對產(chǎn)品業(yè)務了解深刻,但要具有將軟件業(yè)務邏輯轉化成可測試邏輯的分析能力,屬于自動化測試設計者。還有一些測試執(zhí)行者,他們要對軟件產(chǎn)品業(yè)務邏輯相當熟練,配合測試
18、設計者完成設計工作,并在執(zhí)行自動測試時,敏銳的分析和判斷軟件缺陷。如果你的測試團隊具有這樣的人員角色雛形,那么具備了實施自動化測試的又一條件。綜合分析上述四個條件,企業(yè)可以決定是否推行自動化測試;但是為了減少實施風險,我們還要預測到其他潛在的風險,做好事先解決思路。 對企業(yè)推行自動化測試的風險分析 其一是資金風險。雖然你的公司具備實施自動化測試的條件,但如果企業(yè)效益不好,還是先扭虧為盈吧。一款正版的測試工具價格龐大,企業(yè)要首先考慮資金是否允許購買正版的測試工具軟件,所以進行測試工具的成本估算,以及引入自動化測試后組織結構調整等方面的成本估算是很必要的。如果你的公司處在如同前面所言的自動化測試試
19、驗階段,可以使用試用版測試工具。當然具有實力的公司可以按照自身的工作流程自主開發(fā)測試工具,本文不考慮這種情況。其二是自動化測試對軟件功能類型的切入點的風險。企業(yè)開發(fā)的產(chǎn)品業(yè)務和功能是否需要自動化測試,包括白盒自動化測試、功能自動化測試和性能自動化測試。比如一些公司開發(fā)單機版軟件,只需要做功能測試,那便不必考慮第三種;有的公司開發(fā)簡單界面之類的軟件,例如搜索引擎,也可不必考慮第二種;而大多數(shù)國內(nèi)公司開發(fā)的軟件,由于各種原因,一般都不考慮第一種。也有可能公司開發(fā)的軟件特殊性很強,市場上根本沒有支持它的自動化測試工具,此時要另辟蹊徑。這種評估相當重要,要根據(jù)自身的產(chǎn)品功能特征來綜合評估。針對不同階段
20、采用自動化測試的種種優(yōu)勢,我引用一個表格供讀者參考: 測試階段描述 備注 單元測試/組件測試 這個測試工作通常是開發(fā)人員的職責,很多不同的方法能夠被使用,比如測試先行,它是一個測試框架,開發(fā)人員在編寫代碼前編寫不同的單元測試,當測試通過時,代碼也被完成了。 通過使用正式的單元測試,不僅能夠幫助開發(fā)人員產(chǎn)出更加穩(wěn)定的代碼,而且能夠是軟件的整體質量更加的好。 集成測試 這里的測試工作集中在驗證不同的組件之間的集成上。 這種類型的測試通常是被測試系統(tǒng)的更加復雜測試的基礎,大量的邊緣測試被合并以制造出不同的錯誤處理測試。 系統(tǒng)測試 這種測試是通過執(zhí)行用戶場景模擬真實用戶使用系統(tǒng),以證明系統(tǒng)具有被期望的
21、功能。 這里不需要進行自動化的測試。安裝測試、安全性測試通常是有手工完成的,因為系統(tǒng)的環(huán)境是恒定不變的。 其它兩種非常重要的測試 回歸測試 回歸測試實際上是重復已經(jīng)存在的測試,通常如果是手工完成的化,這種測試只在項目的結尾執(zhí)行執(zhí)行一到兩次。 這里完全有潛力應用自動化的測試,你能夠在每次構建完成后執(zhí)行自動化的回歸測試,以驗證被測試系統(tǒng)的改變是否影響了系統(tǒng)的其他功能。 性能測試 性能測試包括以下不同測試形式:- 負載測試- 壓力測試- 并發(fā)測試-. 如果沒有自動化的測試工具,你將不能執(zhí)行通過模擬用戶的負載實現(xiàn)的高密集度的性能測試。 其三是軟件自動化測試切入方式的風險。正如前面所言,一定要記住將自動
22、化測試與手工測試結合起來使用,不合理的規(guī)劃會造成工作事倍功半。首先,對于自動化測試率的目標是 10/90 (10% 的自動化測試和 90% 的手工測試)。當這些目標都實現(xiàn)了,可以將自動化測試的使用率提高。對于何種測試情況下引入自動化測試,何時依然采用手工測試,我們分開闡述。一般這樣的測試條件下使用自動化測試:項目沒有嚴格的時間壓力 具有良好定義的測試策略和測試計劃(知道要測試什么,知道什么時候測試) 對于自動化測試你擁有一個能夠被識別的測試框架和候選者 能夠確保多個測試運行的構建策略 多平臺環(huán)境需要被測試 擁有運行測試的硬件 擁有關注在自動化過程上的資源 如下條件下是宜采用手工測試: 沒有標準
23、的測試過程 沒有一個測試什么、什么時候測試的清晰的藍圖 在一個項目中,你是一個新人,并且還不是完全的理解方案的功能性和或者設計 你或者整個項目在時間的壓力下 在團隊中沒有資源或者具有自動化測試技能的人 沒有硬件 其四是企業(yè)軟件的開發(fā)語言風險。當前業(yè)界流行的測試工具有幾十種,相同功能的測試工具所支持的環(huán)境和語言各不相同,這里筆者總結了當前國際上流行的幾個軟件測試工具生產(chǎn)廠商及一些主要IDE產(chǎn)品,讀者可根據(jù)參考網(wǎng)址去了解列舉工具和更多工具的詳細資料。 生產(chǎn)廠商 工具名稱 測試功能簡介 網(wǎng)址鏈接 Mercury InteractiveCorporation winrunner 功能測試 Loadru
24、nner 性能測試 QuickTest Pro 功能測試 Astra LoadTest 性能測試 testdirector 測試管理 IBMRational Rational robot 功能測試和性能測試 products/index.shtml Rational xde tester 功能測試 Rational testmanager 測試管理 Rational purifyplus 白盒測試 compuware corporation QARun 功能測試 QALoad 性能測試 QADirecto 測試管理 DevPartner Studio Professional Edition
25、白盒測試 Segue software SilkTest 功能測試 SilkPerformer 性能測試 SilkCentral Test/Issue Manager 測試管理 Empirix e-Tester 功能測試 /Web+Test+Monitoring/Testing+SolutionsIntegrated+Web+Testing.html e-Load 性能測試 e-Monitor 測試管理 parasoft Jtest Java 白盒測試 C+test C/C+白盒測試 .test .NET 白盒測試 RadView WebLOAD 性能測試 WebFT 功能測試 MicroSoft WebApplication Stress Tool 性能測試 intranet/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州省貴陽市花溪區(qū)高坡民族中學2024-2025學年度第一學期12月質量監(jiān)測九年級數(shù)學試卷
- 2021年高考英語考點總動員系列-專題03-介詞和介詞短語(解析版)
- 【名師一號】2020-2021學年新課標化學必修一-綜合能力檢測4-非金屬及其化合物
- 四年級數(shù)學(上)計算題專項練習及答案
- 2021高考地理二輪專項突破:自然地理事物特征描述和原理闡釋(2)課后訓練及詳解
- 《肝硬化的臨床表現(xiàn)》課件
- 【名師一號】2020-2021學年蘇教版化學必修二雙基限時練21-蛋白質和氨基酸
- 【2022屆走向高考】高三數(shù)學一輪(北師大版)基礎鞏固:第4章-第7節(jié)-正弦定理、余弦定理的應用舉例
- 《甲狀腺術后的護理》課件
- 室內(nèi)配線工年終工作總結計劃匯報
- 四年級上冊信息技術教案-9演示文稿巧編輯 |人教版
- 2022年人力資源管理各專業(yè)領域必備知識技能
- 租賃(出租)物品清單表
- 提高聚氯乙烯卷材地面一次驗收合格率
- 【部編版】2022年語文七年級上:作文能力提升—謀篇布局(含答案)
- 甲型H1N1流感防治應急演練方案(1)
- 稀土高鐵鋁合金電力電纜應用參數(shù).
- 陳振明《公共管理學》(課堂PPT)
- LU和QR分解法解線性方程組
- 漏油器外殼的落料、拉深、沖孔級進模的設計【畢業(yè)論文絕對精品】
- 工會會計報表完整版(內(nèi)有6張表)
評論
0/150
提交評論