自動(dòng)化測(cè)試面面觀
自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程。通常,在設(shè)計(jì)了測(cè)試用例并通過(guò)評(píng)審之后,由測(cè)試人員根據(jù)測(cè)試用例中描述的規(guī)程一步步執(zhí)行測(cè)試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過(guò)程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測(cè)試效率,便引入了自動(dòng)化測(cè)試的概念。
一、項(xiàng)目測(cè)試的自動(dòng)化
自動(dòng)化是測(cè)試工程師必須掌握的技能,不管是使用自動(dòng)化測(cè)試工具還是開(kāi)發(fā)自動(dòng)化測(cè)試工具,都是軟件測(cè)試發(fā)展的方向,因此測(cè)試工程師一定要掌握這方面的技能。
雖然說(shuō)項(xiàng)目的臨時(shí)性特征使得項(xiàng)目不太適合做自動(dòng)化測(cè)試,但是客戶(hù)要求我們做自動(dòng)化測(cè)試,況且自動(dòng)化測(cè)試也是軟件測(cè)試技術(shù)發(fā)展的最終目標(biāo),所以有必要學(xué)習(xí)和運(yùn)用自動(dòng)化測(cè)試技術(shù),以提高測(cè)試的效率。
二、自動(dòng)化測(cè)試面面觀
自動(dòng)化測(cè)試就是指通過(guò)測(cè)試工具或其他手段,能夠按照預(yù)定計(jì)劃對(duì)軟件系統(tǒng)進(jìn)行自動(dòng)的測(cè)試。它是軟件測(cè)試的一個(gè)重要組成部分,它能夠完成許多手工測(cè)試無(wú)法完成或者難以實(shí)現(xiàn)的一些測(cè)試工作。
自動(dòng)化測(cè)試是相對(duì)于手工測(cè)試來(lái)說(shuō)的,所以說(shuō)只要使用了工具執(zhí)行的測(cè)試,都可以稱(chēng)之為自動(dòng)化測(cè)試。軟件測(cè)試自動(dòng)化涉及到測(cè)試流程、測(cè)試體系、自動(dòng)化編譯,以及自動(dòng)化測(cè)試等方面的整合。
現(xiàn)在很多外包項(xiàng)目都要求對(duì)系統(tǒng)進(jìn)行自動(dòng)化測(cè)試,對(duì)自動(dòng)化測(cè)試本身的要求也是越來(lái)越高。但是在外包項(xiàng)目進(jìn)行期間,要把自動(dòng)化測(cè)試進(jìn)行好,需要做好前期的規(guī)劃和技術(shù)準(zhǔn)備工作。
1.適用情形
可以采用的自動(dòng)化測(cè)試情況有以下幾種:
外包項(xiàng)目周期大于3個(gè)月,欲投入資源相對(duì)估算的外包項(xiàng)目工作量有余量。
對(duì)基本穩(wěn)定的系統(tǒng)進(jìn)行測(cè)試。功能、技術(shù)和界面都要不輕易改變,否則維護(hù)腳本的代價(jià)會(huì)超過(guò)自動(dòng)化測(cè)試帶來(lái)的好處。
系統(tǒng)中有數(shù)據(jù)量大、重復(fù)度高的測(cè)試。
對(duì)于結(jié)果可預(yù)測(cè)的系統(tǒng),如果自動(dòng)化測(cè)試中可驗(yàn)證的結(jié)果不可以預(yù)測(cè),那么進(jìn)行自動(dòng)化測(cè)試的意義不大。
系統(tǒng)人機(jī)交互界面能夠被自動(dòng)化工具所識(shí)別,支持自動(dòng)化腳本錄制。
外包項(xiàng)目管理層要考慮進(jìn)行自動(dòng)化測(cè)試所要投入的資源,包括是否已經(jīng)具備了自動(dòng)化測(cè)試所需要的流程和方法,自動(dòng)化測(cè)試工具是否具備,是否有測(cè)試工程師熟悉自動(dòng)化技術(shù)且具有外包項(xiàng)目經(jīng)驗(yàn)等。
2.自動(dòng)化測(cè)試優(yōu)勢(shì)
自動(dòng)化測(cè)試的優(yōu)勢(shì)有如下幾點(diǎn)。
1)自動(dòng)提高測(cè)試質(zhì)量
軟件開(kāi)發(fā)的過(guò)程就是一個(gè)持續(xù)集成和改進(jìn)的過(guò)程,而每一次修改都有可能產(chǎn)生錯(cuò)誤。因此,當(dāng)軟件產(chǎn)品的一部分或者全部應(yīng)用環(huán)境被修改時(shí)都需要對(duì)軟件產(chǎn)品重新進(jìn)行測(cè)試,其目的是驗(yàn)證修改后的系統(tǒng)或者產(chǎn)品的質(zhì)量是否符合規(guī)格說(shuō)明。例如,對(duì)于產(chǎn)品型的軟件來(lái)說(shuō),每發(fā)布一個(gè)新的版本,其中大部分功能與界面都和上一個(gè)版本相似或完全相同,這部分功能特別適合于自動(dòng)化測(cè)試。
由于自動(dòng)測(cè)試工具提供了簡(jiǎn)便的回歸測(cè)試,能以便利的方式驗(yàn)證是否有新的錯(cuò)誤進(jìn)入軟件產(chǎn)品,這樣既節(jié)省了重復(fù)手工輸入的工作量,又保證了測(cè)試案例的一致性,避免了人為因素的干擾,也可以讓測(cè)試達(dá)到每個(gè)質(zhì)量特性的目的,從而提高軟件測(cè)試的質(zhì)量。
2)提高測(cè)試效率,縮短測(cè)試工作時(shí)間
軟件系統(tǒng)的規(guī)模越來(lái)越大,功能也越來(lái)越多,達(dá)到幾千個(gè)甚至上萬(wàn)個(gè),因此人工測(cè)試非常耗時(shí)和煩瑣,這樣必然會(huì)導(dǎo)致測(cè)試效率低下,而使用自動(dòng)化測(cè)試工具可以較好地執(zhí)行這些頻繁的測(cè)試任務(wù)。在充分并合理使用了測(cè)試工具以后,可以減輕測(cè)試工程師的手工測(cè)試工作,同時(shí),測(cè)試工具還可以把控制和管理引入整個(gè)測(cè)試過(guò)程,從而保證測(cè)試的進(jìn)度。
3)提高測(cè)試覆蓋率
通過(guò)自動(dòng)化測(cè)試工具的錄制回放及數(shù)據(jù)驅(qū)動(dòng)來(lái)測(cè)試功能,可以提高測(cè)試覆蓋率。通過(guò)測(cè)試工具的輔助分析功能,可以提高測(cè)試的深度。
4)執(zhí)行手工測(cè)試不能完成的測(cè)試任務(wù)
有些非功能性方面的測(cè)試(如壓力測(cè)試、負(fù)載測(cè)試、大數(shù)據(jù)量測(cè)試、崩潰性測(cè)試等)是人工測(cè)試不可能實(shí)現(xiàn)的。例如,找若干臺(tái)電腦和同樣數(shù)目的操作人員在同一時(shí)刻進(jìn)行操作,然后用秒表記錄下反應(yīng)的時(shí)間。這樣的手工作坊式的測(cè)試方法不切實(shí)際,且無(wú)法捕捉程序內(nèi)部變化的情況。
5)更好地重現(xiàn)軟件缺陷的能力
自動(dòng)化測(cè)試具有更好的一致性和可重復(fù)性。由于每次自動(dòng)化測(cè)試運(yùn)行的腳本是相同的,所以每次執(zhí)行的測(cè)試具有一致性,這是人工很難做到的。由于自動(dòng)化測(cè)試具有一致性,因此很容易發(fā)現(xiàn)被測(cè)軟件的任何改變。
6)更好地利用資源
理想的自動(dòng)化測(cè)試能夠按計(jì)劃完全自動(dòng)地運(yùn)行,在開(kāi)發(fā)人員和測(cè)試人員不可能實(shí)行三班倒的情況下,自動(dòng)化測(cè)試可以勝任這個(gè)任務(wù)。例如,完全可以在周末或者晚上的時(shí)間執(zhí)行測(cè)試。這樣可以充分利用資源,也避免了開(kāi)發(fā)和測(cè)試之間的沖突。
7)增進(jìn)測(cè)試人員與開(kāi)發(fā)人員之間合作伙伴的關(guān)系
測(cè)試工程師為了更好地使用自動(dòng)化測(cè)試工具,需要對(duì)開(kāi)發(fā)技術(shù)有深入的理解和實(shí)踐,因此測(cè)試工程師也有了與開(kāi)發(fā)工程師更多、更平等的交流機(jī)會(huì),自動(dòng)化測(cè)試為測(cè)試工程師與程序開(kāi)發(fā)人員協(xié)同工作提供了一個(gè)便利的手段,雙方將有更多的合作。
3.自動(dòng)化測(cè)試的局限性
我們應(yīng)根據(jù)外包項(xiàng)目情況來(lái)確定是否采用自動(dòng)化測(cè)試,如下幾種情況不適合進(jìn)行自動(dòng)化測(cè)試:
定制外包項(xiàng)目。由于這種外包項(xiàng)目周期一般比較短,采用自動(dòng)化測(cè)試需要的投入會(huì)超過(guò)手工測(cè)試的投入。
不穩(wěn)定的軟件由于其不穩(wěn)定因素會(huì)導(dǎo)致自動(dòng)化執(zhí)行失敗,因此不適合進(jìn)行自動(dòng)化測(cè)試。
周期很短的外包項(xiàng)目。外包項(xiàng)目周期很短,相應(yīng)的測(cè)試周期也很短,因此花大量精力準(zhǔn)備的測(cè)試腳本不能得到重復(fù)的利用。當(dāng)然,為了某種特定的測(cè)試目的專(zhuān)門(mén)執(zhí)行的測(cè)試任務(wù)除外,比如針對(duì)特定應(yīng)用的性能測(cè)試等。
業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象。業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象有復(fù)雜的邏輯關(guān)系和運(yùn)算關(guān)系,工具很難實(shí)現(xiàn),或者要實(shí)現(xiàn)這些測(cè)試過(guò)程,需要投入的測(cè)試準(zhǔn)備時(shí)間比直接進(jìn)行手工測(cè)試所需時(shí)間更長(zhǎng)。
人體感觀與易用性測(cè)試。界面的美觀、聲音的體驗(yàn)、易用性的測(cè)試,無(wú)法用測(cè)試工具來(lái)實(shí)現(xiàn)。
期望通過(guò)自動(dòng)測(cè)試發(fā)現(xiàn)大量缺陷替代人員投入。
涉及物理交互的系統(tǒng)或業(yè)務(wù)規(guī)則非常復(fù)雜的系統(tǒng)。
【編輯推薦】