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