国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

十年測試工程師敘述自動化測試學(xué)習(xí)思路

這篇具有很好參考價值的文章主要介紹了十年測試工程師敘述自動化測試學(xué)習(xí)思路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

自動化測試介紹

自動化測試(Automated Testing),是指把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的過程。實際上自動化測試往往通過一些測試工具或框架,編寫自動化測試用例,來模擬手工測試過程。比如說,在項目迭代過程中,持續(xù)的回歸測試是一項非??菰锴抑貜?fù)的任務(wù),并且測試人員在每天重復(fù)勞動的工作之下,也絲毫得不到成長。此時開展自動化測試就能夠幫助測試人員從重復(fù)、枯燥的手工測試中解放出來,提高測試效率,縮短回歸測試時間。一般來說,自動化測試通常都會跟持續(xù)集成系統(tǒng)(比如Jenkins)配合使用。

但在自動化實踐過程中,往往會發(fā)現(xiàn)理想和現(xiàn)實之間的差距很大。自動化測試的劣勢,主要體現(xiàn)在以下幾方面:

  1. 相對手工測試,自動化測試對測試人員的要求相對較高;
  2. 測試用例需要根據(jù)版本迭代進行更新,有一定維護成本;
  3. 不能指望自動化測試去發(fā)現(xiàn)更多新的BUG,自動化測試能發(fā)現(xiàn)的缺陷遠遠比手工測試少;
  4. 自動化測試的產(chǎn)出價值往往在于長期的回歸測試,短期內(nèi)發(fā)揮的作用可能不明顯;

希望借助自動化流程解決的問題

  1. 測試時間緊張,手工測試可能覆蓋不全,容易錯過某些邊界情況;
  2. 模塊間強耦合時,單純從頁面進行測試時,比較難深入的發(fā)現(xiàn)問題;
  3. 回歸測試時,需要投入較大的人力/工時;
  4. 實現(xiàn)手工測試無法達成的測試任務(wù);
  5. 通過編寫測試用例,加深對業(yè)務(wù)/數(shù)據(jù)的認知,有助于下階段迭代中發(fā)現(xiàn)隱藏的問題;

引入自動化測試的前提條件

項目周期長,需求變動不頻繁
測試用例的穩(wěn)定性決定了自動化測試的維護成本。如果軟件需求變動過于頻繁,測試人員需要根據(jù)變動的需求來更新測試用例以及相關(guān)的測試腳本,而腳本的維護本身就是一個代碼開發(fā)的過程,需要修改、調(diào)試。如果所花費的成本不低于利用其節(jié)省的測試成本,那么自動化測試便是失敗的。

項目中的某些模塊相對穩(wěn)定,而某些模塊需求變動性很大。我們便可對相對穩(wěn)定的模塊進行自動化測試,而變動較大的仍是用手工測試。

自動化測試腳本可重復(fù)使用
如果費盡心思開發(fā)了一套近乎完美的自動化測試腳本,但是腳本的重復(fù)使用率很低,致使其間所耗費的成本大于所創(chuàng)造的經(jīng)濟價值,自動化測試便毫無意義。

測試任務(wù)手工測試難以實現(xiàn)
比如壓力測試,大數(shù)據(jù)或者大量重復(fù)數(shù)據(jù)測試,必須有自動化工具的支持。

做自動化測試需要具備的能力

  • 擁有編碼能力
    至少要熟悉自動化工具/框架的代碼語言,最好有一定的編碼能力,同時代碼邏輯要清晰,否則不僅不能保證用例的邏輯性、業(yè)務(wù)性與健壯性等要素,也不能保證效率;
  • 熟悉被測系統(tǒng);
    熟悉被測系統(tǒng)對任何測試人員來說都是最起碼的要求;
  • 掌握一個自動化測試框架/工具;
    可以根據(jù)所掌握的代碼,學(xué)習(xí)一門自動化測試的框架,如 Selenium/Appoum/Robot Framework/Nunit/TestNG等;
  • 不斷學(xué)習(xí),善于學(xué)習(xí),知其然知其所以然;
    “落后就要挨打?!?/li>

自動化用例一般在哪個階段完成

一般落后于新功能的手工測試階段,可以在手工用例執(zhí)行完成或功能上線后,再去補充自動化的用例。
自動化不是跟著新需求走,而是測變化的東西對不變東西的影響,一定不要做為了自動化而自動化的工作。

分層自動化測試

在理解分層自動化之前,我們先看一下經(jīng)典的測試金字塔。

十年測試工程師敘述自動化測試學(xué)習(xí)思路,軟件測試,測試工具,自動化,測試用例

  • UI層:界面自動化測試??梢钥闯鏊膬r值最小,它最接近用戶真實場景,也容易發(fā)現(xiàn)問題,但它的實現(xiàn)成本最高且太容易受外部依賴,容易影響腳本成功率。總體來說,適當(dāng)?shù)慕缑孀詣踊瘻y試是有必要的,但是沒有必要在UI層投入太多;

  • Service層:接口自動化測試。它的價值居中,覆蓋大多數(shù)主要的接口是比較合適的。這一層要求測試人員對系統(tǒng)的結(jié)構(gòu)和系統(tǒng)間的調(diào)度非常清楚,同時要了解接口邏輯關(guān)系,否則接口測試代碼很容易遺漏一些異常場景;

  • Unit層:單元測試。最有價值的測試,但是對測試人員要求比較高,一般由開發(fā)人員完成,否則只能采用結(jié)對編程。
    通常來說,手工測試是最基本的,可以做到接近100%,而對于自動化測試來說,它更像是一件"防彈衣",用來防護身體的主要部位。有人認為自動化率提高了,就可以節(jié)省人力,這實際是非常片面的,因為提高自動化率,意味著需要投入更大的人力在維護的成本上。因為系統(tǒng)的需求是在不斷變化的,每一個變化都會導(dǎo)致自動化測試用例需要更新調(diào)整。

    所以,自動化測試做到什么樣才算好,也要結(jié)合上面的測試金字塔來分析。對于UI層面的自動化測試,保證少量必要的主流程即可,切勿在這一層面將自動化測試的"防彈衣"變成臃腫的"宇航服";Service層面的接口自動化測試,可以考慮覆蓋大部分的流程;Unit層面的單測,做到100%是最好的,即使有需求變化,一般也很少影響到已有的用例。一般來說,單元測試可以發(fā)現(xiàn)80%的缺陷。

設(shè)計自動化用例的原則

基本原則

  • 自動化測試用例的范圍必須是相對核心的業(yè)務(wù)流程,即覆蓋主體功能的核心測試點和重復(fù)執(zhí)行率較高的模塊;
  • 在測試腳本和被測代碼都保持不變的情況下,測試用例的結(jié)果應(yīng)該是穩(wěn)定的,這一點非常重要;
  • 除非是必要的情況,否則任何用例都應(yīng)當(dāng)避免做持久化的操作,以保證環(huán)境始終是干凈的;
  • Once Written, Run Anytime as Desired ;
  • 不是所有的手工測試用例都可以使用自動化測試來實現(xiàn),自動化測試替代不了手工測試,兩者的有效結(jié)合是保證項目質(zhì)量的關(guān)鍵。
  • 回歸測試場景中,測試用例的選擇一般以正向為主,逆向為輔;

用例設(shè)計原則

保持Case的獨立性

通常來說,一個Test Suite下包含了一組相近的或者有關(guān)聯(lián)的Test Cases。而每一個 Test Case 應(yīng)該只測試一種場景,根據(jù)case復(fù)雜程度,不同場景同樣可大可,可以是某個單元的測試,也可以是端到端的測試(E2E),當(dāng)然也有特殊的寫法比如工作流測試和數(shù)據(jù)驅(qū)動。

Case的獨立性有哪些需要關(guān)注的點呢?

首先Test Suite內(nèi)的Cases在執(zhí)行時不應(yīng)該相互影響,意思是說當(dāng)我們有隨機的跑其中某個Case或亂序的跑這些Cases時,測試的結(jié)果都應(yīng)該是準確的。Suite level和Directory level同樣要注意獨立性的問題。系統(tǒng)較為龐雜時,可能會將數(shù)百上千的Cases放在一起跑,Robot本身不會規(guī)定Case執(zhí)行的順序,所以從某種程度上來說同一層級的Cases是隨機執(zhí)行的。很典型的情況就是,測試用例在本地調(diào)試時怎么跑怎么過,放到Server上所有Cases一起跑的時候就會Fail,還可能是偶發(fā)的,這種情況下就很可能是由于其他Case的痕跡影響到了它,查找問題的根源往往比較耗時。

保持Case的可遷移性

Case的可遷移性主要考慮三點 : Case對執(zhí)行環(huán)境的依賴 ; Case對外部設(shè)備的依賴;Case對測試對象的依賴。

Case對執(zhí)行環(huán)境的依賴
盡量減少對執(zhí)行環(huán)境的依賴。舉一個例子,你在本地PC上使用rf框架編寫、調(diào)試用例后,上傳到Git,然后你的領(lǐng)導(dǎo)可能會拉取你的用例在他的本地運行,隨后又被部署到持續(xù)集成服務(wù)器上。所以你編寫的用例時就要盡量避免使用不同平臺的庫或者shell命令。

再舉個例子,如果你因為業(yè)務(wù)需要而修改了測試庫源碼的話,此時不管是組內(nèi)其他人還是CI服務(wù)器,肯定都會運行失敗,這種情況該怎么解決呢?這里提供兩個解決方法:

  1. 將修改后的庫做成測試庫,上傳到Git或者Pypi,對方可以通過pip安裝更新;
  2. 使用robotremoteserver做一個共享庫放在遠程主機上;

Case對外部設(shè)備的依賴
有時為了業(yè)務(wù)測試需要,我們會引入一些外部設(shè)備來輔助測試,外部設(shè)備可能會持續(xù)升級或者更換,在編寫用例時我們就需要考慮如何用一套Case更好的兼容這些測試設(shè)備。比如可以將外部設(shè)備的操作從測試用例中抽離出去,封裝成測試庫或關(guān)鍵字;

Case對測試對象的依賴
如果測試對象是一個軟件平臺,軟件平臺通常需要適配多種的設(shè)備,而設(shè)備的硬件配置可能是多種多樣的:CPU、內(nèi)存、組件的性能和數(shù)量都可能不同。對測試對象的依賴不僅要考慮在不同設(shè)備上的可執(zhí)行性,重點還要考慮測試覆蓋率。由于設(shè)備組件的增多你的用例可能無法覆蓋到這些組件,或者捕捉不到某個性能瓶頸,這樣測試結(jié)果的可靠性也大打折扣。

提升Case執(zhí)行效率

不同的case執(zhí)行時間相距甚遠,短則數(shù)秒長則持續(xù)數(shù)天。數(shù)秒鐘的簡單功能測試用例和耗時數(shù)天的穩(wěn)定性測試用例本身是沒有什么可比性的。但是我當(dāng)我們放眼某一個或者某一組case時,我們就需要重視Case的執(zhí)行效率。不論是敏捷流程還是持續(xù)集成都講究快速的反饋,開發(fā)人員能在提交代碼后快速的獲得測試結(jié)果反饋,測試人員能在最短的時間內(nèi)執(zhí)行更大范圍的測試覆蓋,不僅能提高團隊的工作效率,也可增強團隊的信心。

以使用rf為例,在編寫用例時可以通過以下方面來提高用例的執(zhí)行效率。

1.如果有對執(zhí)行條件的檢查,若檢查失敗,則盡快退出執(zhí)行;
2.將數(shù)據(jù)準備或環(huán)境清除等工作抽取成關(guān)鍵字放到更高的層級中,,抽取時可能需要做一些組合, 但不允許出現(xiàn)重復(fù)的建刪操作;
3. 用例中盡量少的出現(xiàn)sleep,建議用"wait until ..."來代替;
4. 可以采用并發(fā)執(zhí)行用例的方法來提升效;

自動化用例編寫規(guī)范

命名規(guī)范

Keyword命名

第一個單詞應(yīng)以小寫字母作為開頭,后面的單詞則用大寫字母開頭。 如:getProjectId, connectDB

常量命名

常量的名字應(yīng)該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組成,則應(yīng)該用下劃線來分割這些單詞。 如:MAX_CHAR_LENGTH

參數(shù)命名

參數(shù)的命名規(guī)范和方法的命名規(guī)范相同,請在盡量保證參數(shù)名稱為一個單詞的情況下使參數(shù)的命名盡可能明確。如:${account} , ${investorName}

使用Tags

RF提供了通過在Settings中設(shè)置tags來管理用例的方法。Tag的應(yīng)用非常的廣泛和靈活,比如可以用來做用例篩選、版本管理、統(tǒng)計策略等。

十年測試工程師敘述自動化測試學(xué)習(xí)思路,軟件測試,測試工具,自動化,測試用例

怎么打tag看起來會更便捷?

  • 可以在各個文件夾下打文件夾名字的tag,這樣就可以根據(jù)tag單獨的跑該文件夾下的用例,查看測試報告也更好看些;
  • 在一些重要的用例上打上tag,可以單獨跑關(guān)鍵用例;
  • 某些用例如果不想執(zhí)行,可以打上tag,設(shè)置不執(zhí)行。

十年測試工程師敘述自動化測試學(xué)習(xí)思路,軟件測試,測試工具,自動化,測試用例

image

讓case具有文檔性

在考慮Coding Style時我們可以設(shè)置一些固定的規(guī)則,大家只要按照這個規(guī)則來做,實踐幾次之后Coding Style就會趨于統(tǒng)一. 而考慮將Case寫的如同文檔一般則需要更多的主觀能動性。

敏捷開發(fā)(Agile Development)在國內(nèi)的發(fā)展已經(jīng)越完善,伴隨之而來的便是敏捷測試(Agile Testing)。敏捷思想強調(diào)以人為核心,在整個開發(fā)流程中,只寫有必要的文檔或盡量少寫文檔,這也是它與傳統(tǒng)的瀑布模型的差別。

為了不造成誤解,這里有必要插入的說一下敏捷測試的幾個特點:

  • 敏捷測試應(yīng)該是敏捷開發(fā)的一部分;
  • 敏捷測試具有鮮明的敏捷開發(fā)的特征,如測試驅(qū)動開發(fā)(TDD),驗收測試驅(qū)動開發(fā)(ATDD)。也就是說,單元測試是敏捷測試的基礎(chǔ),如果沒有足夠的單元測試,就無法應(yīng)對將來需求的快速迭代,也無法實現(xiàn)快速而穩(wěn)定的持續(xù)交付;
  • 優(yōu)秀的敏捷測試是基于自動化測試的;
  • 敏捷測試無時不在,無處不在。

需求設(shè)計不斷的更新,而文檔往往不能被很及時的更新,那這樣的話怎么才能讓測試人員如何快速的掌握某個功能或者產(chǎn)品的需求和當(dāng)前狀態(tài)呢?

"Tests as Documentation."

清晰易懂的用例名

在實際的工程中,我們可能會新建一個目錄來存儲測試點相近的測試用例。每一個Case都對應(yīng)一個測試點,而用例名則應(yīng)該概括總結(jié)對應(yīng)測試點的核心內(nèi)容,這樣當(dāng)我們在瀏覽一組用例時,僅僅通過用例名就能大致了解里面的測試內(nèi)容,也方便尋找某個Case。

十年測試工程師敘述自動化測試學(xué)習(xí)思路,軟件測試,測試工具,自動化,測試用例

清晰易懂的用例名

在實際的工程中,我們可能會新建一個目錄來存儲測試點相近的測試用例。每一個Case都對應(yīng)一個測試點,而用例名則應(yīng)該概括總結(jié)對應(yīng)測試點的核心內(nèi)容,這樣當(dāng)我們在瀏覽一組用例時,僅僅通過用例名就能大致了解里面的測試內(nèi)容,也方便尋找某個Case。

十年測試工程師敘述自動化測試學(xué)習(xí)思路,軟件測試,測試工具,自動化,測試用例

【整整200集】超超超詳細的Python接口自動化測試進階教程合集,真實模擬企業(yè)項目實戰(zhàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-682463.html

到了這里,關(guān)于十年測試工程師敘述自動化測試學(xué)習(xí)思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 面了一個4年經(jīng)驗的測試工程師,自動化都不會也要15k,我也是醉了····

    在深圳這家金融公司也待了幾年,被別人面試過也面試過別人,大大小小的事情也見識不少,今天又是團面的一天, 一百多個人都聚集在一起,因為公司最近在談項目出來面試就2個人,無奈又被叫到面試房間。 整個過程我都是非常認真負責(zé)的,不管是有經(jīng)驗的還是沒經(jīng)驗的

    2024年02月02日
    瀏覽(23)
  • 【十年網(wǎng)絡(luò)安全工程師整理】—100滲透測試工具使用方法介紹

    ?滲透測試是指滲透人員在不同的位置(比如從內(nèi)網(wǎng)、從外網(wǎng)等位置)利用各種手段對 某個特定網(wǎng)絡(luò)進行測試,以期發(fā)現(xiàn)和挖掘系統(tǒng)中存在的漏洞,然后輸出滲透測試報告, 并提交給網(wǎng)絡(luò)所有者。網(wǎng)絡(luò)所有者根據(jù)滲透人員提供的滲透測試報告, 可以清晰知曉系統(tǒng)中存在的安

    2024年02月02日
    瀏覽(29)
  • 面了一個5年經(jīng)驗的測試工程師,自動化都不會也敢喊了16k,我也是醉了····

    面了一個5年經(jīng)驗的測試工程師,自動化都不會也敢喊了16k,我也是醉了····

    在深圳這家金融公司也待了幾年,被別人面試過也面試過別人,大大小小的事情也見識不少,今天又是團面的一天, 一百多個人都聚集在一起,因為公司最近在談項目出來面試就2個人,無奈又被叫到面試房間。 整個過程我都是非常認真負責(zé)的,不管是有經(jīng)驗的還是沒經(jīng)驗的

    2024年02月06日
    瀏覽(85)
  • Python之路:網(wǎng)絡(luò)工程師的自動化進階(第2版)

    Python之路:網(wǎng)絡(luò)工程師的自動化進階(第2版)

    ?? 個人網(wǎng)站:【 海擁】【神級代碼資源網(wǎng)站】【辦公神器】 ?? 基于Web端打造的:??輕量化工具創(chuàng)作平臺 ?? 想尋找共同學(xué)習(xí)交流的小伙伴,請點擊【全棧技術(shù)交流群】 I. 引言 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)工程師的角色已經(jīng)不再局限于傳統(tǒng)的操作和維護。自動化成為提高

    2024年02月04日
    瀏覽(24)
  • 自動化PLC工程師能否轉(zhuǎn)到c#上位機開發(fā)?

    自動化PLC工程師能否轉(zhuǎn)到c#上位機開發(fā)?

    成功從自動化PLC工程師轉(zhuǎn)向C#上位機開發(fā)的經(jīng)歷可能因人而異,以下是一些分享的思路和建議: 擴展編程技能:學(xué)習(xí)C#語言和相關(guān)的開發(fā)工具和框架,掌握語言的基礎(chǔ)知識和常用的編程技巧。可以通過在線教程、培訓(xùn)課程、書籍等途徑進行學(xué)習(xí),并積極實踐和項目經(jīng)驗。 系統(tǒng)

    2024年02月11日
    瀏覽(24)
  • 從零開始學(xué)python(十三)爬蟲工程師自動化和抓包

    從零開始學(xué)python(十三)爬蟲工程師自動化和抓包

    回顧之前講述了python語法編程 必修入門基礎(chǔ)和網(wǎng)絡(luò)編程,多線程/多進程/協(xié)程等方面的內(nèi)容,后續(xù)講到了數(shù)據(jù)庫編程篇MySQL,Redis,MongoDB篇,和機器學(xué)習(xí),全棧開發(fā),數(shù)據(jù)分析,爬蟲數(shù)據(jù)采集前面沒看的也不用往前翻,系列文已經(jīng)整理好了: 1.跟我一起從零開始學(xué)python(一)

    2024年02月14日
    瀏覽(29)
  • 作為爬蟲工程師,自動化和抓包你說不了解的selenium采集內(nèi)容篇!

    作為爬蟲工程師,自動化和抓包你說不了解的selenium采集內(nèi)容篇!

    前言 作為爬蟲工程師,掌握Selenium采集是非常有用的,因為有些網(wǎng)站采用了動態(tài)加載、javascript渲染或AJAX技術(shù),這些技術(shù)使得使用傳統(tǒng)的靜態(tài)HTML解析庫難以獲取到完整的數(shù)據(jù)。Selenium是一個自動化測試工具,它可以模擬用戶在瀏覽器中的交互行為,包括點擊、滾動、輸入等操

    2024年02月14日
    瀏覽(20)
  • 小白到運維工程師的自學(xué)之路 第五十四集 (ansible自動化運維工具)

    小白到運維工程師的自學(xué)之路 第五十四集 (ansible自動化運維工具)

    Ansible是一種開源的自動化工具,用于自動化任務(wù)的執(zhí)行、配置管理和應(yīng)用部署。它采用基于Python編寫的簡單、輕量級的語法,可以通過SSH協(xié)議遠程管理和配置多臺計算機。 Ansible的主要特點包括: 1、簡單易用:設(shè)計簡單,語法清晰,無需特殊培訓(xùn)即可上手使用。 2、基于模塊

    2024年02月16日
    瀏覽(19)
  • 【十年開發(fā)積累】STM32產(chǎn)品開發(fā)代碼案例合集,嵌入式物聯(lián)網(wǎng)工程師珍貴資料(物聯(lián)技術(shù)666)

    簡介 ??? 例程涵蓋:STM32各類功能配置,外圍傳感器初始化,模塊初始化,物聯(lián)網(wǎng)協(xié)議,操作系統(tǒng)移植,功能開發(fā),產(chǎn)品案例等等,十分具有參考價值。 0001基于STM32F103單片機GPIO實現(xiàn)控制LED燈閃爍的程序代碼0001.rar 0002基于STM32F103單片機GPIO實現(xiàn)按鍵KEY的檢測程序代碼0002.rar

    2024年02月21日
    瀏覽(36)
  • 軟件測試工程師

    軟件測試工程師

    一、什么是軟件測試? 1、定義:使用技術(shù)手段驗證軟件是否滿足使用需求 2、目的:減少軟件缺陷,保障軟件質(zhì)量。 二、主流技術(shù): 1、功能測試:驗證程序的功能是否滿足需求 2、自動化測試:使用代碼或工具代替手工,對項目進行測試 3、接口測試:有硬件接口、軟件接

    2023年04月10日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包