《自動化測試基礎》由會員分享,可在線閱讀,更多相關《自動化測試基礎(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章 自動化測試基礎 本章內(nèi)容:q什么是自動化測試q常見的自動化測試架構(gòu)q自動化測試的基本流程q開源Web自動化測試q開源自動化測試的優(yōu)勢等 2021-5-25 3 1.1 自動化測試 n自動化測試:q自動化測試就是使用軟件來控件控制測試案例的執(zhí)行。它裝實際測試結(jié)果與預期結(jié)果進行比較,并提供測試預置條件設定、測試邏輯控制以及測試報告等重要功能。n自動化測試常見的方式:q代碼驅(qū)動測試:q圖形用戶接口測試 2021-5-25 4 代碼驅(qū)動測試通過大量不同的輸入?yún)?shù)和對應的返回結(jié)果,來驗證類、模塊或者庫文件的公共接口是否正確。趨勢:使用測試框架(Junit或Nunit)來進行單元測試,以便于判斷代
2、碼在不同配置環(huán)境下的表現(xiàn)是否符合預期。代碼驅(qū)動測試自動化? 2021-5-25 5 圖形用戶接口測試測試框架產(chǎn)生用戶接口事件(例如鍵盤、鼠標單擊等),并捕獲事件導致的圖形用戶接口改變,以便驗證可見的程序響應是否正確。很多自動化測試工具都支持錄制回放特性,它們允許用戶交互性地錄制自己的操作,在需要的時候進行回入,并將回放的實際結(jié)果與預期結(jié)果進行比較。 優(yōu)點:沒有大量的開發(fā)工作。Web自動化測試:Selenium和WebDriver 2021-5-25 08、09精英班6 是否需要對測試進行自動化?n自動化測試在一個長周期的迭代測試中,有如下優(yōu)點:q能夠支持頻繁的回歸測試;q能夠在軟件開發(fā)過程中盡
3、早發(fā)現(xiàn)缺陷;q能夠無限的循環(huán)執(zhí)行測試案例;q定制化的系統(tǒng)缺陷報告; q更好地支持敏捷和極限開發(fā)模式;q避免人為因素導致的漏測。 2021-5-25 7 1.2 常見的自動化測試架構(gòu)(1)n 1、數(shù)據(jù)驅(qū)動測試框架(The Data-Driven Testing Framework)q說明:n僅僅是將測試數(shù)據(jù)從測試腳本中分離出來,開始了非混沌狀態(tài)的第一步,這也是所有測試架構(gòu)中最簡單的一種n q優(yōu)點: n至少測試數(shù)據(jù)可以單獨維護了 q缺點:n任何被測試程序的變更所導致的工作量是所有架構(gòu)中最多的,因此維護成本非常高 2021-5-25 8 1.2 常見的自動化測試架構(gòu)(2)n 2、測試腳本模塊化框架(
4、The Test Script Modularity Framework)n n說明:q箭頭方向代表的是被調(diào)用和調(diào)用關系q測試腳本中包含了各功能點中涉及到的控件識別和業(yè)務邏輯操作,其中包含了外部測試數(shù)據(jù)的調(diào)用q測試腳本的維護由自動化測試開發(fā)工程師負責,要求必須懂自動化編程和業(yè)務邏輯q測試數(shù)據(jù)的維護由測試工程師負責 n優(yōu)點:q控件和業(yè)務邏輯一旦發(fā)生變化,要進行修改和維護的是底層的測試腳本(比無任何抽象封裝的自動化測試程序稍好一些)n缺點:q幾乎所有大的變更引起的工作量都由自動化測試開發(fā)工程師完成 q控件識別和業(yè)務邏輯本身屬于不同的領域,沒有很好進行抽象封裝 2021-5-25 1.2 常見的自動
5、化測試架構(gòu)(3)n 3、測試庫構(gòu)架框架(The Test Library Architecture Framework) n說明:q箭頭方向代表的是被調(diào)用和調(diào)用關系q將所有的針對測試系統(tǒng)本身的控件識別和控件支持的操作封裝在測試庫中q測試腳本調(diào)用測試庫的同時傳遞外部的測試數(shù)據(jù)q測試庫的編寫由自動化測試開發(fā)工程編寫(可以不懂業(yè)務),負責控件的變更和維護q測試腳本的編寫可由對業(yè)務比較掌握的自動化測試開發(fā)工程編寫,負責業(yè)務邏輯的變更和維護q測試數(shù)據(jù)由測試工程師維護(可以不懂自動化開發(fā))n優(yōu)點:q被測試系統(tǒng)無論是哪層發(fā)生變化,只需要相應的人員進行變更維護即可q完成了控件識別操作和業(yè)務邏輯的抽象分離 n缺
6、點:變更引起的工作量還是附加在自動化測試開發(fā)工程師身上 1.2 常見的自動化測試架構(gòu)(4)n 4、關鍵字驅(qū)動或表驅(qū)動測試框架(The Keyword-Driven or Table-Driven Testing Framework)。n說明:q說到關鍵字驅(qū)動,當然得說QTP。確實當對象庫(很類似測試庫架構(gòu)中的測試庫)添加完成后,測試case步驟的組織就相當于是在關鍵字試圖中選擇控件對象(Control),動作(Action),參數(shù)(Parameters)。 q框架到底用來做什么,最終的目的無非是將不同層次的對象和邏輯進行抽象和分離封裝,從而使得被測試程序的變更所導致的測試腳本框架的變更維護工作
7、量減少到最少,更進一步,如果不懂自動化編程的普通測試工程師能不需要了解測試工具和框架本身的知識就能維護控件對象和業(yè)務邏輯,這樣就可以將自動化測試工程的工作量進行很好的分攤。具體實施就是將控件對象,動作,參數(shù)等等從框架或工具本身剝離出來放在普通Excel表格中,組織成如下形式:2021-5-25 Window Control Action ArgumentsCalculator Menu View, StandardCalculator Pushbutton Click 1Calculator Pushbutton Click +Calculator Pushbutton Click 3Calc
8、ulator Pushbutton Click =Calculator Verify Result 4Calculator Clear Calculator Pushbutton Click 6Calculator Pushbutton Click -Calculator Pushbutton Click 3Calculator Pushbutton Click =Calculator Verify Result 3 n框架本身所要做的就是識別Excel表格中的這些控件對象以及Actionq注:以上表格中還可以將數(shù)據(jù)剝離出去,以單獨的數(shù)據(jù)Excel表格進行維護 n優(yōu)點:q極大的減少了自動化開發(fā)
9、工程師維護量,畢竟在測試團隊中,自動化開發(fā)工程師占的比較少q普通測試工程師,可以很好的維護自身負責的模塊中涉及的測試case和測試數(shù)據(jù)n 缺點: q框架的抽象程度比較高,對自動化測試工程師的開發(fā)能力比較高2021-5-25 1.3 自動化測試的基本流程 2021-5-25 n 1、制定測試計劃 q在展開自動化測試之前,最好做個測試計劃,明確測試對象、測試目的、測試的項目內(nèi)容、測試的方法、測試的進度要求,并確保測試所需的人力、硬件、數(shù)據(jù)等資源都準備充分。制定好測試計劃后,下發(fā)給用例設計者。n 2、分析測試需求 q用例設計者根據(jù)測試計劃和需求說明書,分析測試需求,設計測試需求樹,以便用例設計時能夠
10、覆蓋所有的需求點。一般來講,基于Web功能測試需要覆蓋一下幾個方面: q 1)頁面鏈接測試,確保各個鏈接正常;q 2)頁面控件測試,確保各個控件可靠;q 3)頁面功能測試確保各項操作正常;q 4)數(shù)據(jù)處理測試,確保數(shù)據(jù)顯示準確、處理精確可靠;q 5)模塊業(yè)務邏輯測試,確保各個業(yè)務流程暢通。 2021-5-25 08、09精英班 n 3、設計測試用例通過分析測試需求,設計出能夠覆蓋所有需求點的測試用例,形成專門的測試用例文檔。n由于不是所有的測試用例都能用自動化來執(zhí)行,所以需要將能夠執(zhí)行自動化測試的用例匯總成自動化測試用例。必要時,要將登陸系統(tǒng)的用戶、密碼、產(chǎn)品、客戶等參數(shù)信息獨立出來形成測試數(shù)
11、據(jù),便于腳本開發(fā)。n 4、搭建測試環(huán)境自動化測試人員在用例設計工作開展的同時即可著手搭建測試環(huán)境。n因為自動化測試的腳本編寫需要錄制頁面控件,添加對象。測試環(huán)境的搭建,包括被測系統(tǒng)的部署、測試硬件的調(diào)用、測試工具的安裝盒設置、網(wǎng)絡環(huán)境的布置等。 n 5、編寫測試腳本根據(jù)自動化測試用例和問題的難易程度,采取適當?shù)哪_本開發(fā)方法編寫測試用例。n一般先通過錄制的方式獲取測試所需要的頁面控件,然后再用結(jié)構(gòu)化語句控制腳本的執(zhí)行,插入檢查點和異常判定反饋語句,將公共普遍的功能獨立成共享腳本,必要時對數(shù)據(jù)驚醒參數(shù)化。當然還可以用其他高級功能編輯腳本。腳本編寫好了之后,需要反復執(zhí)行,不斷調(diào)試,知道運行正常為止。
12、腳本的編寫和命名要符合管理規(guī)范,以便統(tǒng)一管理和維護。 n 6、分析測試結(jié)果、記錄測試問題應該及時分析自動化測試結(jié)果,建議測試人員每天抽出一定時間,對自動化測試結(jié)果進行分析,以便盡早地發(fā)現(xiàn)缺陷。q如果采用開源自動化測試工具,建議對其進行二次開發(fā),以便與測試部門選定的缺陷管理工具緊密結(jié)合。理想情況下,自動化測試案例運行失敗后,自動化測試平臺就會自動上報一個缺陷。測試人員只需每天抽出一地你該時間,確認這些自動上報的缺陷,是否是真實的系統(tǒng)缺陷。如果是系統(tǒng)缺陷就提交開發(fā)人員修復,如果不是系統(tǒng)缺陷,就檢查自動化測試腳本或者測試環(huán)境。n 7、跟蹤測試測試記錄的BUG要記錄到缺陷管理工具中去,以便定期跟蹤處理
13、。 q開發(fā)人員修復后,需要對此問題執(zhí)行回歸測試,就是重復執(zhí)行一次該問題對應的較薄,執(zhí)行通過則關閉,否則繼續(xù)修改。如果問題的修改方案與客戶達成一致,但與原來的需求有所偏離,那么在回歸測試前,還需要對腳本進行必要的修改和調(diào)試。 1.4自動化測試腳本分類n腳本類型說明優(yōu)點缺點線性腳本簡單的錄制、回放開發(fā)成本低,對測試人員的要求低腳本健壯性不高,不易維護結(jié)構(gòu)化腳本使用判斷、分支、循環(huán)等測試邏輯,控制測試腳本的執(zhí)行過程維護成本較線性腳本低,測試更加靈活。對測試人員要求比較高,腳本健壯性依然不高數(shù)據(jù)驅(qū)動腳本數(shù)據(jù)與測試腳本分離,單獨存在于數(shù)據(jù)文件或者數(shù)據(jù)庫中測試腳本只包含測試邏輯,不包含測試數(shù)據(jù),修改測試數(shù)
14、據(jù),無須關聯(lián)修改測試腳本;腳本維護成本低,可以 針對不同測試數(shù)據(jù),使用相同測試邏輯,反復測試自動化測試設計工作量會加大;對測試人員編程技巧工求更高關鍵字驅(qū)動腳本把檢查點和執(zhí)行操作的控制都放在外部文件中腳本維護成本低;數(shù)據(jù)與腳本分離;綜合了數(shù)據(jù)驅(qū)動、共享、結(jié)構(gòu)化等腳本的優(yōu)點。需要更多的自動化測試設計工作量;依賴于測試工具對關鍵字驅(qū)動的支持情況公共腳本將系統(tǒng)基礎(公共)功能對應的測試腳本獨立出來,以便在其他腳本之間共享使用腳本維護成本低;可以減少腳本開發(fā)工作量,做到腳本復用。需要更多的自動化測試設計工作量;需要建立額外的框架或者測試支持庫;測試人員需要更多的編程技巧來維護測試支持庫。 1.5自動化
15、測試認知的誤區(qū)n誤區(qū)一:自動化測試是一種比人工測試更先進的高級測試。適合于自動化測試適合于人工測試1.測試任務明確,不會頻繁變動2.每日構(gòu)建后的測試驗證3.回歸測試、壓力測試、性能測試4.軟件系統(tǒng)界面穩(wěn)定,改動較少5.需要在多種平臺上運行的相同測試案例,組合遍歷型的測試、大量重復的測試任務。6.軟件維護周期很長。7.項目進度壓力不太大。 8.待測軟件系統(tǒng)開發(fā)比較規(guī)范,能夠保證系統(tǒng)的可測試性。9.具備大容量的自動化測試平臺10.測試人員具備較強的編程能力1.一次性的項目或者軟件維護周期很短。2.需求不明確,或者經(jīng)常發(fā)生變動3.界面頻繁變動,或者產(chǎn)品功能頻繁變化4.用戶驗收測試5.項目進度偏緊6.
16、測試范圍或者測試方法不明確7.測試人員不具備編程能力8.缺少穩(wěn)定的自動化測試平臺自動化測試與人工測試適合情況對比 n誤區(qū)二:測試應該追求100%的自動化q切忌追求100%的自動化測試,在可以預見的將來人工測試依然非常重要。片面地追求自動化,不僅無法提高軟件產(chǎn)品的質(zhì)量,還會讓測試人員疲于奔命,帶來更大的軟件質(zhì)量風險。 n誤區(qū)三:自動化測試能夠發(fā)現(xiàn)大量的缺陷,就發(fā)現(xiàn)缺陷而言,它比人工測試更有效率。q根據(jù)經(jīng)驗,自動化測試只能發(fā)現(xiàn)30%以下的缺陷,而人工測試能夠發(fā)現(xiàn)70%以上的缺陷。n誤區(qū)四:應該對一次性的軟件項目采取自動化測試q自動化測試的投入成本,至少要在34個發(fā)布版本之后才能收 回,因些針對一次
17、懷的軟件項目,應該避免采取自動化測試。n誤區(qū)五:商業(yè)自動化測試工具更好,一定要用商業(yè)自動化測試工具。 1.6Web自動化測試n當前常用的自動化測試工具工具名稱發(fā)布公司HP QuickTestProfessional HPIBM Rational Functional Tester IBM RationalParasoft SOAtest ParasoftRational robot IBM RationalSelenium OpenSource ToolSilkTest Micro FocusTestComplete SmartBear softwareTestPartner TestPartner WATIR Opensource Tool 是否選擇開源自動化測試n測試部門是否擁有非常充足的預算來購置商業(yè)自動化測試工具?n測試人員是否擁有基本的編程經(jīng)驗?n測試人員是否擁有良好的英文閱讀能力?n測試部門領導是否信任免費的開源測試工具? 練習n、常見的自動化測試架構(gòu)有哪些,各有什么特點?n、自動化測試的基本流程是什么?n、自動化測試腳本分哪些類型?