自動化測試介紹自動化測試(Automated Testing),,是指把以人為驅動的測試行為轉化為機器執(zhí)行的過程。實際上自動化測試往往通過一些測試工具或框架,,編寫自動化測試用例,,來模擬手工測試過程,。比如說,在項目迭代過程中,,持續(xù)的回歸測試是一項非??菰锴抑貜偷娜蝿眨⑶覝y試人員在每天重復勞動的工作之下,,也絲毫得不到成長,。此時開展自動化測試就能夠幫助測試人員從重復、枯燥的手工測試中解放出來,,提高測試效率,,縮短回歸測試時間。一般來說,,自動化測試通常都會跟持續(xù)集成系統(tǒng)(比如Jenkins)配合使用,。 但在自動化實踐過程中,往往會發(fā)現(xiàn)理想和現(xiàn)實之間的差距很大,。自動化測試的劣勢,,主要體現(xiàn)在以下幾方面:
希望借助自動化流程解決的問題
引入自動化測試的前提條件項目周期長,,需求變動不頻繁 項目中的某些模塊相對穩(wěn)定,,而某些模塊需求變動性很大,。我們便可對相對穩(wěn)定的模塊進行自動化測試,而變動較大的仍是用手工測試,。 自動化測試腳本可重復使用 測試任務手工測試難以實現(xiàn) 做自動化測試需要具備的能力
自動化用例一般在哪個階段完成一般落后于新功能的手工測試階段,可以在手工用例執(zhí)行完成或功能上線后,,再去補充自動化的用例,。 分層自動化測試在理解分層自動化之前,,我們先看一下經(jīng)典的測試金字塔。
設計自動化用例的原則基本原則
用例設計原則保持Case的獨立性通常來說,,一個Test Suite下包含了一組相近的或者有關聯(lián)的Test Cases,。而每一個 Test Case 應該只測試一種場景,根據(jù)case復雜程度,,不同場景同樣可大可,,可以是某個單元的測試,也可以是端到端的測試(E2E),,當然也有特殊的寫法比如工作流測試和數(shù)據(jù)驅動,。 Case的獨立性有哪些需要關注的點呢? 首先Test Suite內的Cases在執(zhí)行時不應該相互影響,意思是說當我們有隨機的跑其中某個Case或亂序的跑這些Cases時,,測試的結果都應該是準確的,。Suite level和Directory level同樣要注意獨立性的問題。系統(tǒng)較為龐雜時,,可能會將數(shù)百上千的Cases放在一起跑,,Robot本身不會規(guī)定Case執(zhí)行的順序,,所以從某種程度上來說同一層級的Cases是隨機執(zhí)行的。很典型的情況就是,,測試用例在本地調試時怎么跑怎么過,,放到Server上所有Cases一起跑的時候就會Fail,還可能是偶發(fā)的,這種情況下就很可能是由于其他Case的痕跡影響到了它,,查找問題的根源往往比較耗時,。 保持Case的可遷移性Case的可遷移性主要考慮三點 : Case對執(zhí)行環(huán)境的依賴 ; Case對外部設備的依賴;Case對測試對象的依賴。 Case對執(zhí)行環(huán)境的依賴 再舉個例子,如果你因為業(yè)務需要而修改了測試庫源碼的話,,此時不管是組內其他人還是CI服務器,,肯定都會運行失敗,這種情況該怎么解決呢,?這里提供兩個解決方法:
Case對外部設備的依賴 Case對測試對象的依賴 提升Case執(zhí)行效率不同的case執(zhí)行時間相距甚遠,,短則數(shù)秒長則持續(xù)數(shù)天,。數(shù)秒鐘的簡單功能測試用例和耗時數(shù)天的穩(wěn)定性測試用例本身是沒有什么可比性的。但是我當我們放眼某一個或者某一組case時,,我們就需要重視Case的執(zhí)行效率,。不論是敏捷流程還是持續(xù)集成都講究快速的反饋,開發(fā)人員能在提交代碼后快速的獲得測試結果反饋,,測試人員能在最短的時間內執(zhí)行更大范圍的測試覆蓋,,不僅能提高團隊的工作效率,也可增強團隊的信心,。 以使用rf為例,,在編寫用例時可以通過以下方面來提高用例的執(zhí)行效率。 1.如果有對執(zhí)行條件的檢查,,若檢查失敗,,則盡快退出執(zhí)行; 自動化用例編寫規(guī)范命名規(guī)范Keyword命名第一個單詞應以小寫字母作為開頭,后面的單詞則用大寫字母開頭,。 如:getProjectId, connectDB 常量命名常量的名字應該都使用大寫字母,并且指出該常量完整含義,。如果一個常量名稱由多個單詞組成,,則應該用下劃線來分割這些單詞。 如:MAX_CHAR_LENGTH 參數(shù)命名參數(shù)的命名規(guī)范和方法的命名規(guī)范相同,,請在盡量保證參數(shù)名稱為一個單詞的情況下使參數(shù)的命名盡可能明確,。如:${account} , ${investorName} 使用TagsRF提供了通過在Settings中設置tags來管理用例的方法。Tag的應用非常的廣泛和靈活,,比如可以用來做用例篩選,、版本管理、統(tǒng)計策略等,。 怎么打tag看起來會更便捷,?
image
讓case具有文檔性在考慮Coding Style時我們可以設置一些固定的規(guī)則,大家只要按照這個規(guī)則來做,實踐幾次之后Coding Style就會趨于統(tǒng)一. 而考慮將Case寫的如同文檔一般則需要更多的主觀能動性,。 敏捷開發(fā)(Agile Development)在國內的發(fā)展已經(jīng)越完善,伴隨之而來的便是敏捷測試(Agile Testing),。敏捷思想強調以人為核心,,在整個開發(fā)流程中,只寫有必要的文檔或盡量少寫文檔,,這也是它與傳統(tǒng)的瀑布模型的差別,。
需求設計不斷的更新,而文檔往往不能被很及時的更新,,那這樣的話怎么才能讓測試人員如何快速的掌握某個功能或者產品的需求和當前狀態(tài)呢? 'Tests as Documentation.' 清晰易懂的用例名在實際的工程中,,我們可能會新建一個目錄來存儲測試點相近的測試用例。每一個Case都對應一個測試點,,而用例名則應該概括總結對應測試點的核心內容,,這樣當我們在瀏覽一組用例時,僅僅通過用例名就能大致了解里面的測試內容,也方便尋找某個Case。 清晰易懂的用例名在實際的工程中,,我們可能會新建一個目錄來存儲測試點相近的測試用例,。每一個Case都對應一個測試點,而用例名則應該概括總結對應測試點的核心內容,,這樣當我們在瀏覽一組用例時,僅僅通過用例名就能大致了解里面的測試內容,也方便尋找某個Case,。 |
|
來自: liang1234_ > 《自動化測試》