您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

05 facebook腳本×32下載(photoshop是什么如果要用應該在哪下載)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-08 04:18:00【】0人已围观

简介6;先讓我們⼀起看⼀下開發⼈員⾃⼰做測試都會遇到哪些問題和阻礙。1開發⼈員⾃⼰做測試會遇

6;先讓我們⼀起看⼀下開發⼈員⾃⼰做測試都會遇到哪些問題和阻礙。

1開發⼈員⾃⼰做測試會遇到哪些問題 ⼈性⾓度引發的問題

⾸先從⼈性的⾓度來看,開發⼈員通常是屬于“創造性思維”,⾃⼰開發的代碼就像是親⼉⼦⼀樣,怎么看都覺得實現很棒;⽽測試⼈員則屬于“破壞性思維”,測試⼈員的職責就是要盡可能多的找到潛在的缺陷,⽽且專職的測試⼈員通常已經在以往的測試實踐中積累了⼤量典型的容易出錯的模式,所以測試⼈員⽐起開發⼈員,往往更能客觀且全⾯做好充分的測試。

思維慣性的問題

剛才是從⼈性⾓度上來講的,如果從技術層⾯來看,由開發⼈員⾃⼰測試,會存在嚴重的“思維慣性”,通常開發⼈員在設計和開發過程中沒有考慮到的分⽀和處理邏輯,在⾃⼰做測試的時候同樣不會考慮到。⽐如對于⼀個函數,其中有⼀個 String 類型的輸⼊參數,如果開發⼈員在做功能實現的時候壓根沒有考慮到 String 存在 Null 值得可能性,那么代碼的實現⾥⾯也不會對 Null 值做處理,連帶結果就是測試的時候就更不會設計Null 值得測試數據,這樣的“⼀條龍”缺失就會給代碼的質量留下了缺陷隱患。更糟糕的是,對于這種情況,即便啟⽤了代碼覆蓋率指標去衡量測試完整程度,也不能有效暴露這類問題,因為處理 Null 值得代碼壓根沒有寫,⼜何來代碼覆蓋率⼀說吶。

被測試環境和測試執⾏環境的復雜性問題

有專職測試的時候,測試⼯作是專職測試⼈員完成的,專職測試⼈員通常會負責搭建被測試環境以及管理測試執⾏環境。被測試環境好理解,就是 System Under Test(SUT)。⽽測試執⾏環境是指⽤于執⾏測試⽤例的機器,⽐如對于 Web 的 GUI 測試,最簡單的測試執⾏環境就是你本地機器上的瀏覽器。但是對于⼤型互聯⽹企業,測試執⾏環境遠遠要⽐你想象的更復雜。通常都是⼀些⼤型的測試執⾏集群,甚⾄是內部的測試執⾏私有云,⽐如⽤Selenium Grid 搭建的GUI 測試執⾏環境,往往這樣的集群都會有成百上千臺機器,再⽐如⽤Appium+Selenium Grid 搭建的移動設備測試集群,也往往會有上千臺設備。現在沒有了專職的測試⼈員,那就需要開發⼈員⾃⼰去管理、維護和搭建這些測試基礎架構,這樣做其實是得不償失的,⼯作量本⾝并沒有減少,只是換了⼀批⼈來做同樣的事情,⽽且開發的精⼒往往更應該花在構建新的業務功能上,⽽不是⽤在維護測試基礎設施。

測試數據準備的問題

測試數據準備是測試過程中必不可少的關鍵步驟,有專職測試的時候,是由測試⼈員來準備測試數據的,⼀⽅⾯測試⼈員往往⽐開發⼈員在全局層⾯上更了解被測系統,所以對于測試數據的設計與⽣成也會更⾼效,另⼀⽅⾯測試⼈員在以往的測試過程中已經積累了很多測試數據⽣成的⽅法和⼩⼯具。現在這些都需要開發⼈員⾃⼰來完成了,⽆疑進⼀步加⼤了開發⼈員的⼯作量,⽽且開發⼈員往往對跨模塊,跨系統的測試數據準備缺乏系統性的理解,往往為了⽣成⼀條⾮⾃⼰業務領域的數據⽽花費⼤量的學習成本。舉個例⼦,假設現在“買家模塊”的開發⼈員需要測試“商品買⼊”的操作,那么就需要事先準備好“可以被賣的商品”,這就意味著“買家模塊”的開發⼈員需要明確知道“賣家模

塊”和“商品模塊”的細節,才能⽣成“可以被賣的商品”。這類問題在⽬前主流的微服務架構⾯前會更嚴重,原因是為了產⽣⼀條測試數據,可能會需要依次調⽤很多個服務。

測試執⾏與 CI/CD 集成問題

對于不同的業務開發團隊,各個階段采⽤的⾃動化測試框架可能都不同,⽐如有些會使⽤基于Java 的Selenium,也有些會使⽤基于JavaScript 的 Nightwatch 等,有專職測試的時候,各種不同的測試框架與 CI/CD 的集成,都是由各個業務團隊的測試⼈員和 CI/CD 的⼈員⼀起完成的,現在沒有了專職測試,這部分⼯作就需要開發⼈員⾃⼰和 CI/CD ⼈員⼀起完成,這就要求開發⼈員不僅需要⾮常熟悉⾃動化測試框架的細節(很多時候為了更好地和 CI/CD 集成,會對開源測試框架或者是⾃研測試框架做⼆次開發,⽐如改進 retry 機制,增加覆蓋率統計等等),還必須了解 CI/CD 的流⽔線設計以及腳本設計,然后再將需要⽀持的⾃動化測試框架的運⾏命令⾏和需要暴露的參數(測試⽤例 Git 路徑、測試執⾏環境、測試報告路徑等等)寫進 CI/CD 的腳本。這些⼯作在很⼤程度上分散了開發的精⼒,對于提⾼開發⾃⾝效率是⾮常不利的。

失敗測試⽤例歸屬問題

有專職測試的時候,開發⼈員往往只關注⾃⼰修改部分相關的測試⽤例,模塊或者服務的全回歸測試中如果有失敗的測試⽤例,通常是由測試⼈員跟進去分析具體原因,并協調解決然后才能發布上線。但是現在開發⼈員負責所有測試,他就必須關注全局的測試。舉個實際的例⼦來看,⽐如“⽤戶登錄”服務的開發⼯程師修復了⼀個缺陷,然后本地⾃測通過后遞交了代碼,然后很不幸,在CI/CD 的流⽔線上全回歸測試卻發現有部分⽤例失敗了,雖然這些失敗的⽤例和這次的代碼修改沒有任何關系,但是為了保證⾃⼰的修改能夠順利上線(CI/CD 的流⽔線要求只有全回歸測試 100% 通過才可以上線),他必須挨個去分析失敗的測試⽤例然后⾃⼰去找到對應的⼈去協調解決,這顯然是⾮常不合理和不敏捷的做法。

歸根結底,這些問題的本質都會直接影響開發⼈員本質⼯作的進度和效率,那么我們應該如何解決或者在⼀定程度上緩解這些問題呢?這就是接下來要討論的問題,⼯程效能團隊如何賦能開發⼈員,幫助開發⼈員⾼效地完成⾼質量的測試。

2⼯程效能團隊賦能開發⼈員進⾏⾼效率⾼質量的測試

賦能的基本思路是能夠讓開發⼈員更專注于測試本⾝,⽽從那些輔助測試的⼯作(⽐如搭建測試執⾏環境、CI/CD 集成等)上解放出來,這些輔助測試的⼯作由“⼯程效能”服務或者相關⽀持⼯具鏈來統⼀解決。這個思想和和⽬前⾮常流⾏的Service Mesh 的設計思想不謀⽽合,Service Mesh 也是可以讓服務的開發⼈員可以把所有的精⼒集中在業務功能的實現上,⽽不需要去關⼼服務間通信的基礎設施,像類似于服務的注冊與發現,熔斷機制等都會統⼀由 Service Mesh 以對業務應⽤透明的⽅式來實現。這些“⼯程效能”服務或者相關⽀持⼯具鏈通常都會由原本從測試開發轉型過來的⼯程效能團隊來設計和開發。那么我們接下來看⼀下可以提供哪些“⼯程效能”服務或者相關⽀持⼯具鏈,并且能以什么樣的⽅式來解決或緩解上⾯提到的開發⾃⼰測試帶來的問題。

測試執⾏服務(Test Execution Service)

CI/CD 各個階段所有的測試執⾏發起都通過測試執⾏服務(TES,Test Execution Service),TES 通過統⼀的 Web Service 接⼝與 CI/CD 以解耦的⽅式進⾏集成。⽆論是 CI/CD 流⽔線,還是開發⼈員執⾏測試,都通過 TES 來發起,唯⼀的區別是開發⼈員⼀般使⽤ TES 的 UI 界⾯發起測試,⽽ CI/CD 是直接在流⽔線腳本⾥⾯調⽤ TES 的 Restful API 發起測試。測試執⾏服務的輸⼊參數也很簡單直觀,通常只包括測試框架名字、測試⽤例

很赞哦!(7627)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:福建福州长乐市

工作室:小组

Email:[email protected]