- QTP自動(dòng)化測(cè)試進(jìn)階
- 陳能技編著
- 2211字
- 2018-12-30 11:16:54
2.4 實(shí)用性自動(dòng)化測(cè)試策略
自動(dòng)化測(cè)試永遠(yuǎn)是測(cè)試人員心中的痛。一方面,測(cè)試人員在長(zhǎng)期的手工測(cè)試中已經(jīng)不勝其煩,夢(mèng)想著使用測(cè)試工具輕松地實(shí)現(xiàn)自動(dòng)化測(cè)試;另一方面,一旦嘗試了自動(dòng)化測(cè)試,又會(huì)發(fā)現(xiàn)有太多的阻礙,這些阻礙來(lái)自工具、管理和人。
2.4.1 自動(dòng)化測(cè)試工具的問(wèn)題
首先碰到的問(wèn)題是測(cè)試工具的問(wèn)題,現(xiàn)在很多商業(yè)上的工具都存在這樣或那樣的問(wèn)題,大部分會(huì)有以下缺點(diǎn)。
1.廠商腳本語(yǔ)言
大部分商業(yè)測(cè)試工具會(huì)指定某種語(yǔ)言,例如:WinRunner(TSL),SilkTest(4test), Robot(Test Basic),但是,一些新的工具也開(kāi)始使用標(biāo)準(zhǔn)語(yǔ)言,例如QTP(VB Script), XDE Tester(Java)。
所以,在選擇測(cè)試工具時(shí)要考慮這點(diǎn)。最好選擇支持標(biāo)準(zhǔn)語(yǔ)言的測(cè)試工具,而且,盡量與所在項(xiàng)目組的開(kāi)發(fā)人員所使用并熟悉的語(yǔ)言一致。這樣可以充分利用現(xiàn)有的編程知識(shí)和語(yǔ)言知識(shí),而不需要花時(shí)間去熟悉廠商特定的語(yǔ)言(這些語(yǔ)言只能在這個(gè)工具上使用),并且可以借助開(kāi)發(fā)人員豐富的開(kāi)發(fā)知識(shí)來(lái)協(xié)助進(jìn)行測(cè)試腳本的設(shè)計(jì)和編寫。
2.對(duì)新平臺(tái)、個(gè)性化控件的支持不夠好
大部分商業(yè)測(cè)試工具沒(méi)能很好地支持新的平臺(tái)和很多的第三方控件、個(gè)性化控件。例如,新的.NET版本、操作系統(tǒng),以及普遍使用的第三方控件,如Component One、Infragistics、Janus等。
如果項(xiàng)目中使用這些較新的平臺(tái)或大量使用這些第三方控件的話,就要小心選擇測(cè)試工具了,否則會(huì)導(dǎo)致后面的腳本編寫難度加大。建議在選用之前,充分評(píng)估并在項(xiàng)目的應(yīng)用程序上試用。
3.與源代碼控制的結(jié)合不好
很多工具沒(méi)有與源代碼控制工具集成,使用臨時(shí)文件和目錄(WinRunner),有些則把信息存儲(chǔ)在外部的庫(kù)中,例如Rational。
源代碼控制對(duì)于測(cè)試腳本的管理非常重要,除非希望每個(gè)測(cè)試員使用自己的一套腳本,或者通過(guò)原始的復(fù)制方式來(lái)進(jìn)行共享和管理。
在選用工具時(shí),還會(huì)碰到選擇商業(yè)工具還是開(kāi)源工具的問(wèn)題。在這里,同樣需要考慮項(xiàng)目的上下文,還有成本問(wèn)題。目前,開(kāi)源社區(qū)的測(cè)試工具大部分是單元測(cè)試工具,成熟的自動(dòng)化測(cè)試工具還不多,如果選用這些工具的話,需要考慮維護(hù)和修改調(diào)整工具的成本。
2.4.2 自動(dòng)化測(cè)試的管理規(guī)范
當(dāng)興沖沖地拿到測(cè)試工具準(zhǔn)備大展拳腳時(shí),先停一停,考慮一下自動(dòng)化測(cè)試如何開(kāi)展。首先,對(duì)測(cè)試人員的培訓(xùn)是必不可少的,培訓(xùn)需要包括工具的內(nèi)部培訓(xùn)、腳本語(yǔ)言的培訓(xùn)、自動(dòng)化測(cè)試規(guī)范的培訓(xùn)。
選用開(kāi)源的測(cè)試工具一般不會(huì)有培訓(xùn)課程,即使是購(gòu)買的測(cè)試工具也未必會(huì)附帶培訓(xùn)課程。所以對(duì)于工具的內(nèi)部培訓(xùn),一般可由前期負(fù)責(zé)工具選型和試用的人員進(jìn)行內(nèi)部培訓(xùn)。熟悉工具附帶的幫助文檔和 Sample 文件會(huì)對(duì)工具的學(xué)習(xí),還有腳本語(yǔ)言的學(xué)習(xí)有很大的幫助。
培訓(xùn)還包括制定出自動(dòng)化測(cè)試規(guī)范,并對(duì)參與測(cè)試的人員進(jìn)行培訓(xùn)。規(guī)范可以從以下幾方面進(jìn)行制定。
1.測(cè)試用例的選擇
并不是所有測(cè)試用例都能用自動(dòng)化的方式執(zhí)行,自動(dòng)化測(cè)試適合在機(jī)械化的執(zhí)行和比較中使用,讓一個(gè)自動(dòng)化測(cè)試對(duì)用戶界面規(guī)范性進(jìn)行檢查,那是“不可能完成的任務(wù)”。另外,還要注意測(cè)試用例自動(dòng)化實(shí)現(xiàn)的順序,優(yōu)先實(shí)現(xiàn)簡(jiǎn)單的、主體的,例如,按以下順序來(lái)實(shí)現(xiàn)測(cè)試用例自動(dòng)化:
遍歷所有界面的冒煙測(cè)試->測(cè)試用例中的主成功場(chǎng)景->擴(kuò)展場(chǎng)景、擴(kuò)展流程->……
2.腳本命名規(guī)范、注釋規(guī)范
為了讓測(cè)試腳本的維護(hù)性、可讀性更強(qiáng),應(yīng)該制定出命名規(guī)范和注釋規(guī)范。例如,要求在每個(gè)腳本函數(shù)前面注明測(cè)試目的,簡(jiǎn)要的測(cè)試過(guò)程描述等;對(duì)腳本中的主要步驟、復(fù)雜代碼進(jìn)行注釋。
3.對(duì)公用測(cè)試數(shù)據(jù)的維護(hù)
如果測(cè)試涉及的數(shù)據(jù)在不同測(cè)試人員編寫的很多腳本都要使用到,則應(yīng)該制定出相應(yīng)的數(shù)據(jù)維護(hù)規(guī)范,例如,要求測(cè)試腳本對(duì)數(shù)據(jù)的操作要考慮數(shù)據(jù)的備份和恢復(fù)等問(wèn)題。
另外,還要考慮自動(dòng)化腳本編寫方法,不同的腳本編寫方法對(duì)腳本的可維護(hù)性、開(kāi)發(fā)成本的影響程度不一樣,對(duì)測(cè)試員的編程技能要求程度也不一樣。
2.4.3 自動(dòng)化測(cè)試中人的因素
在進(jìn)行自動(dòng)化測(cè)試時(shí),除了要做好準(zhǔn)備,制定好規(guī)范和策略外,還少不了對(duì)人的管理,項(xiàng)目整體管理流程的配合。
(1)測(cè)試人員有時(shí)候會(huì)不知不覺(jué)地陷在測(cè)試腳本的編寫中,沒(méi)有很好地評(píng)估測(cè)試的時(shí)間要求,沒(méi)有選擇合適的測(cè)試腳本編寫方法。這其實(shí)也是阻礙自動(dòng)化測(cè)試成功進(jìn)行的因素之一。
例如,對(duì)一些測(cè)試工具支持不是很好的控件,有時(shí)候會(huì)出現(xiàn)無(wú)法識(shí)別的問(wèn)題,這時(shí)候不要花太多的時(shí)間去研究為什么不能識(shí)別,或嘗試其他很多識(shí)別的辦法,而是先用最簡(jiǎn)單的方法解決,即使方法看起來(lái)比較老土,例如,很多無(wú)法識(shí)別的控件都可以通過(guò)鍵盤操作、Tab鍵定位等方式解決。
(2)造成自動(dòng)化測(cè)試艱難進(jìn)行的問(wèn)題,很可能是軟件的可測(cè)試性問(wèn)題,也就是說(shuō),軟件提供的可測(cè)試性接口不夠強(qiáng)大,或者是在設(shè)計(jì)時(shí)沒(méi)有很好地考慮可測(cè)試性問(wèn)題,而這些都是開(kāi)發(fā)人員可以為自動(dòng)化測(cè)試提供的,可以讓開(kāi)發(fā)人員提供對(duì)軟件的編程接口、Hook、更換一個(gè)等同效果但是測(cè)試工具可以識(shí)別的控件等。
技巧
與其悶頭苦干,編寫非常復(fù)雜的測(cè)試腳本來(lái)處理這些問(wèn)題,倒不如在設(shè)計(jì)階段就考慮可測(cè)試性的問(wèn)題,找程序員提供更多、更好、更實(shí)用的測(cè)試接口,從而降低自動(dòng)化測(cè)試的難度。
(3)配置管理。項(xiàng)目的配置管理沒(méi)有做好也可能會(huì)影響到自動(dòng)化測(cè)試。有些開(kāi)發(fā)人員喜歡時(shí)不時(shí)地調(diào)整一下自己的代碼,重構(gòu)一下設(shè)計(jì),如果這些方面沒(méi)有控制好的話,可能造成自動(dòng)化測(cè)試的腳本大面積作廢和修改,雖然在開(kāi)發(fā)方面看來(lái)這些重構(gòu)和調(diào)整是那么的輕而易舉和微小。例如,對(duì)控件的命名的更改就可能導(dǎo)致大部分操作這些控件的測(cè)試腳本的修改。
因此,軟件的配置管理工作,對(duì)被測(cè)試系統(tǒng)的源代碼控制有時(shí)候可能成為自動(dòng)化測(cè)試成功的關(guān)鍵。應(yīng)該確保被測(cè)系統(tǒng)的更改得到評(píng)審和通知,評(píng)審要把對(duì)自動(dòng)化測(cè)試的影響納入考慮范圍。
- 潮流:UI設(shè)計(jì)必修課
- Practical Data Science Cookbook(Second Edition)
- Rake Task Management Essentials
- .NET 4.0面向?qū)ο缶幊搪劊夯A(chǔ)篇
- Getting Started with CreateJS
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- Mastering Predictive Analytics with Python
- TypeScript項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)
- HTML5+CSS3網(wǎng)頁(yè)設(shè)計(jì)
- C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)指導(dǎo)與習(xí)題解答
- 算法訓(xùn)練營(yíng):提高篇(全彩版)
- Windows Server 2016 Automation with PowerShell Cookbook(Second Edition)
- Gradle for Android
- 碼上行動(dòng):用ChatGPT學(xué)會(huì)Python編程
- Apache Spark 2.x for Java Developers