隨著北京聚華軟件自動(dòng)化測試在2021年9月開班以來,同學(xué)們對軟件自動(dòng)化測試還是需要更多了解。
在軟件測試日新月異發(fā)展的今天,自動(dòng)化測試正在成為軟件測試領(lǐng)域里的一個(gè)非常矚目的趨勢和潮流,很多軟件公司正在或已經(jīng)在企業(yè)測試團(tuán)隊(duì)內(nèi)部實(shí)施軟件自動(dòng)化測試流程和框架,同時(shí)也把自動(dòng)化技能作為人才衡量和業(yè)績考核的重要技能指標(biāo),這些都不是偶然的事情,因?yàn)椋?/p>
1、軟件質(zhì)量的重視和提高
軟件產(chǎn)業(yè)雖然只有短短幾十年的歷程,但是其應(yīng)用范圍已經(jīng)從最初的科研專用轉(zhuǎn)變?yōu)闈B透入我們社會(huì)生產(chǎn)、生活各個(gè)方面,起著非常重要的作用,我們?nèi)祟惿鐣?huì)對軟件的依賴正在越來越強(qiáng),根據(jù)牛頓的反作用力定律,那么軟件問題對我們的影響也在越來越大。比如2007年發(fā)生的奧運(yùn)訂票網(wǎng)站在開通首日不能登陸的問題,導(dǎo)致上百萬人購票失??;中國工商銀行黃金交易系統(tǒng)出現(xiàn)漏洞,兩名大學(xué)生通過低買高賣獲利三千多萬元,這樣的新聞在報(bào)紙或網(wǎng)絡(luò)上還能找到很多,要避免這樣的事情發(fā)生,就要使這些問題能夠在軟件上線之前被發(fā)現(xiàn)和解決,換句話說,軟件質(zhì)量必須要提高,而軟件測試就是**軟件質(zhì)量的一個(gè)重要并且非常有效的手段。因此現(xiàn)在軟件公司越來越重視軟件測試,體現(xiàn)在老板那里就是對軟件測試”舍得花錢,舍得投人“,測試執(zhí)行起來就是”多測“,”測多”,“多測”就是時(shí)間上測試執(zhí)行頻率加快,以前一個(gè)版本測一輪,現(xiàn)在一次編譯就要測一輪,“測多”就是測試更加完整,覆蓋更多的功能模塊。這就為軟件自動(dòng)化測試提供了強(qiáng)有力的需求和生長空間。
2、軟件系統(tǒng)規(guī)模的擴(kuò)大,復(fù)雜性的提高
我們記得在單機(jī)系統(tǒng)時(shí)代時(shí),幾千行代碼就能寫出一個(gè)商業(yè)軟件,比如WPS,CCED這些一代軟件梟雄。但隨著網(wǎng)絡(luò)時(shí)代的到來,分布式系統(tǒng)的發(fā)展,軟件系統(tǒng)越來越重視交互和協(xié)作,多個(gè)模塊服務(wù)的交叉調(diào)用,網(wǎng)間的交互安全等等,這大大提高了軟件系統(tǒng)的復(fù)雜度和規(guī)模。Oracle曾經(jīng)開發(fā)過一個(gè)郵件客戶端 Outlook的插件,這個(gè)插件是安裝在outlook上,提供一些常用功能,比如收發(fā)mail,calendar創(chuàng)建等等。但oracle的測試部門僅僅為這個(gè)插件就設(shè)計(jì)了6000多個(gè)test case!這個(gè)數(shù)目是如此巨大,使得測試執(zhí)行和產(chǎn)品周期產(chǎn)生了深刻的矛盾。這個(gè)矛盾體現(xiàn)在:當(dāng)每個(gè)新版本發(fā)布時(shí),如果做一遍完整測試,一個(gè)人手工測試執(zhí)行一遍6000多個(gè)test case就要半個(gè)月,而產(chǎn)品版本的發(fā)布周期也就一周左右,也就是說測試的速度遠(yuǎn)遠(yuǎn)跟不上產(chǎn)品的發(fā)布速度。在這種情形下,如果沒有自動(dòng)化測試幫忙,手工測試只能望洋興嘆了!
以上兩個(gè)軟件的根本現(xiàn)狀,決定了軟件測試自動(dòng)化的趨勢不是人云亦云,曇花一現(xiàn),而會(huì)蓬勃發(fā)展,強(qiáng)勁有力,成為勢不可擋的潮流。很多軟件公司已經(jīng)看到了這個(gè)潮流,很早就開始做軟件自動(dòng)化測試的預(yù)研和實(shí)施,比如微軟,oracle等已經(jīng)在企業(yè)內(nèi)部測試團(tuán)隊(duì)整合了自動(dòng)化測試流程,實(shí)施了自動(dòng)化測試框架,并且已經(jīng)按時(shí)更新?lián)Q代,進(jìn)入穩(wěn)定應(yīng)用的周期。但在國內(nèi),由于軟件自動(dòng)化測試時(shí)間不長,測試人員技能水平等因素影響,軟件自動(dòng)化測試的研究和實(shí)施大多還處于一個(gè)起步摸索的階段,我們看到普遍的情形是”做的人不少,成功的不多“,這種現(xiàn)狀一方面有技術(shù)的問題,另外也有方向上的問題。因?yàn)樵跇I(yè)界可供借鑒的成功實(shí)施經(jīng)驗(yàn)或案例比較少,所以在起步階段可能就會(huì)走彎路,這是摸索必然要付出的”學(xué)費(fèi)“。
那么怎樣能夠把握軟件自動(dòng)化測試方向和思路呢?下面結(jié)合業(yè)界的現(xiàn)狀分析,以及未來展望,對軟件自動(dòng)化測試的作出三個(gè)層次的劃分:
第 一階段:測試的自動(dòng)化
這是最原始的起步階段,其目的就是將原先手工測試所作的工作轉(zhuǎn)化為自動(dòng)化代勞。顯著的特征就是以工具為中心,比如QTP的應(yīng)用,原先靠人工來執(zhí)行的測試案例,比如點(diǎn)擊,錄入等,現(xiàn)在由QTP來完成,如果QTP不能支持我們的系統(tǒng),我們就要尋找解決方案,或改用其他工具,總之大多數(shù)的自動(dòng)化工作重點(diǎn)是在每個(gè)case上,也就是技術(shù)層面上的問題。但隨著技術(shù)上的解決,自動(dòng)化測試規(guī)模的進(jìn)一步增大,我們很快就面臨下面的問題之一或全部:
1、自動(dòng)化測試腳本的類型和數(shù)量越來越多,怎樣有效管理和復(fù)用這些腳本?比如有1000個(gè)腳本,有QTP的,有Winrunner的,還有perl的等等,每 種腳本又實(shí)現(xiàn)了多個(gè)case,那我們怎樣統(tǒng)一管理和調(diào)度這些腳本,使之能夠組成一個(gè)大的自動(dòng)化測試目標(biāo)?要知道單個(gè)的測試腳本和單個(gè)的測試案例一樣,對于公司的老板來說,他們是不關(guān)心這些細(xì)節(jié)的,只有它們組合起來成為一個(gè)壯麗的圖本,才能體現(xiàn)出來它們的價(jià)值。也許老板們剛開始對自動(dòng)化的執(zhí)行感到新奇和驚喜,但當(dāng)他們意識(shí)到這些并不能為他帶來什么價(jià)值時(shí),他就會(huì)厭倦并放棄。
2、自動(dòng)化測試如何與手工測試整合?我們知道自動(dòng)化測試是不能100%完全替代手工測試的,那么自動(dòng)化測試必須要和手工測試整合在一起,才能反映出其價(jià)值。這意味著,自動(dòng)化測試要全方位和手工測試執(zhí)行,包括前期的案例管理,測試的執(zhí)行,以及最 后的報(bào)告呈現(xiàn)。
這些問題是助產(chǎn)士,它們促成軟件自動(dòng)化測試第二個(gè)階段的到來。
第二階段:自動(dòng)化的測試
如果說第 一階段是在一個(gè)點(diǎn)上下功夫,那么第二階段就是在一條線上作戰(zhàn)了?!白詣?dòng)化的測試”的內(nèi)涵更加豐富,它意在將軟件測試?yán)锏乃婕暗母鱾€(gè)環(huán)節(jié)作為一個(gè) 統(tǒng)一的整體考慮,從測試案例的管理,測試案例的執(zhí)行到測試報(bào)告的展現(xiàn)都有相應(yīng)的策略及自動(dòng)化實(shí)現(xiàn),故稱“自動(dòng)化的測試”。在這里,自動(dòng)化測試框架橫空出 世,自動(dòng)化測試框架是一系列策略思想,規(guī)范和代碼的集合。它要解決第 一個(gè)階段的困局,就要回答下面這些問題:
1、怎樣管理多個(gè)自動(dòng)化測試案例?
2、怎樣無人職守地運(yùn)行測試腳本?
3、怎樣呈現(xiàn)自動(dòng)化測試報(bào)告?
AC(Automation Center)是提供的基于QTP的軟件自動(dòng)化測試框架,它的回答是:
1、回答:測試組件的創(chuàng)建和劃分
2、回答:增強(qiáng)自動(dòng)化測試的健壯性,提供re-run機(jī)制,抓圖策略等等
3、回答:采用web服務(wù)接口和標(biāo)準(zhǔn)的xml技術(shù),既可web頁面展現(xiàn),又可靈活地與手工測試報(bào)告整合
其中在Oracle等公司已經(jīng)成功實(shí)施了AC,并取得了非常好的效果。
第三階段:軟件流程框架
這個(gè)階段可以說是軟件自動(dòng)化測試爐火純青的時(shí)候了,達(dá)到了”天人和一”,經(jīng)過多年修煉,在這里軟件自動(dòng)化測試和軟件開發(fā)再次做一個(gè)整合,從自動(dòng)化流程上, 能夠達(dá)到真正的測試驅(qū)動(dòng)開發(fā),比如coding與unit testing做整合。目前已經(jīng)達(dá)到這個(gè)階段的有微軟,IBM等。
目前國內(nèi)軟件公司軟件自動(dòng)化測試的實(shí)施情況大多處于第 一階段或從第 一向第二過渡的階段。,預(yù)示著我國還需要大量的軟件測試人員,我們的前途一片光明,未來可期。