CI / CD/DevOps/讚助/做出了貢獻

移除持續性能測試的障礙

2021年5月13日12:00pm, by

沃爾夫岡坐
沃爾夫岡是Tricentis的創始人兼首席產品官。他是軟件測試創新的推動者,例如基於模型的測試自動化和線性擴展測試設計方法。

你不能讓一個新功能、更新或bug修複讓你前進兩步、後退三步。新功能必須完美地工作,而且不能破壞用戶已經依賴的現有功能。這就是為什麼您需要持續的性能測試。

不幸的是,當不同的團隊以不同的速度並行地在許多不同的體係結構上開發不同的組件時,很容易破壞某些東西。但是用戶和涉眾並不關心交付好的軟件是否困難。軟件故障現在就是業務故障,任何類型的問題都會影響運營效率、客戶或員工滿意度、收入和競爭優勢。

連續測試,部分

通過將基本測試集成到持續集成/持續交付(CI/CD)管道中,大多數組織在暴露最突出的功能問題方麵做得相當好。他們依靠“冒煙測試”來檢查應用程序在通過交付管道時是否會崩潰。這包括單元測試和一組選定的功能測試,從最終用戶的角度逐步檢查關鍵用例。冒煙測試通常由一組更廣泛的測試進行補充,從而使核心功能仍然產生預期的結果,從而使人安心。對於每個構建都執行這些健全測試是不實際的,但它們通常可以連夜運行。

通過結合持續冒煙測試和定期健全測試,如果功能從根本上被破壞,您通常會得到足夠的警告。但是性能問題呢?為什麼不把它們也檢查一下呢?畢竟,如果用戶因為延遲而感到沮喪,在完成一個流程之前就離開了應用程序,那麼該流程最終是否能夠產生正確的結果並不重要。但事實並非如此,因為用戶從未走到那一步。

然而,雖然功能測試已被廣泛接受為CI/CD過程的核心部分,但性能測試往往落後於此。這是一個後期周期活動,自從瀑布開發周期以來,它已經存在了很多年。從質量的角度來看,這沒有任何意義。功能正確性和性能特征(如可伸縮性、響應性和可用性)都是重要的標誌。這就像連續監測ICU病人的脈搏,但每周隻檢查一次他的呼吸頻率。

為什麼我們在一個測試領域取得的進展沒有轉移到另一個測試領域呢?

性能測試和功能測試

問題的根源在於功能測試和性能測試是根本不同的。即使您希望測試冒煙測試覆蓋的相同的核心用例集,您通常也需要為性能測試創建和維護一組完全不同的測試。這些測試是用一種完全不同的方式編寫的,使用不同的工具,通常由不同的人編寫,以一種明顯不同的方式訪問應用程序。

基於ui的冒煙測試就像人類一樣測試應用程序,模擬與屏幕上控件的交互。這是100%從用戶角度出發的。可以使用UI測試工具創建這些測試,這些工具允許直觀地創建測試自動化。然而,性能測試通常通過網絡層訪問應用程序來執行。這個過程不那麼直觀。此外,網絡層是非常不穩定的,這種不穩定意味著性能測試需要注意並對幾乎每一次測試運行進行調優。

僅僅為性能測試專門開發一組單獨的測試並不容易。但是讓它們與不斷發展的應用程序保持同步是一件永無止境的苦差事。大多數團隊都很難找到所需的時間和資源來維護一個緊湊的功能測試套件。使性能測試保持最新更加困難。它們甚至比UI測試更不穩定,UI測試因其不穩定而臭名昭著。更新它們也更加繁瑣,因為您是在技術協議層而不是直觀的UI層“底層”工作。這就是為什麼性能測試通常是專門的性能測試工程師的領域,他們通常將性能測試作為共享服務來操作。大多數都不在跨職能敏捷團隊的範圍內,無法進行例行的性能測試維護。

在每個sprint結束時更新核心性能測試腳本對於絕大多數團隊來說已經是一種延伸。實際上是在sprint執行中更新它們?這種情況很少見。

一個測試定義,無限可能

但是,請想象一下,如果性能測試不落後這麼多,您可以實現什麼。

開發人員簽入增量更改,然後運行功能測試。如果測試成功,您可以假設兩件事。首先,對於單個用戶,相應的應用程序功能按預期工作。第二,功能測試得到了適當的維護,這意味著它可以在負載下運行以進行性能測試,隻要功能測試可以用於性能測試。

然後執行相應的性能測試。團隊立即知道最新的更改是否對功能方麵的用戶體驗產生了負麵影響的性能。他們不需要等待幾周甚至幾個月的性能測試工程師來提醒他們可能有成百上千的更改導致了性能問題。他們不需要在問題出現的幾天、幾周甚至幾個月之後,浪費大量的時間去尋找問題的根源,並試圖解決問題。另外,他們可以立即停止交付過程中的構建。

哦,好消息。這在一個叫做NeoLoad的產品上是完全可行的。NeoLoad是由Neotys創建的,我非常興奮歡迎產品和公司加入Tricentis大家庭

NeoLoad進行功能測試,並將其轉換為性能測試,隻需單擊一次。這包括使用Selenium、Tricentis Tosca和其他功能測試工具構建的測試。這意味著您不需要為性能測試和功能測試維護兩組獨立的測試。隻要保持功能測試的最新狀態,就可以得到所需的內容。不需要額外的測試創建或維護。由於節省了所有的時間和精力,在CI/CD中進行性能測試突然變得可行。

通過這種方法,性能專家不必創建基本的性能測試。相反,他們可以專注於檢查發現的任何問題,並完成更高級的性能工程,創建複雜的工作負載模型,分析以微調應用程序等等。

從現有的功能測試中進行性能測試是相當有價值的。這很像當一個親密的朋友訪問他的祖國時尾隨其後。你不需要擔心額外的計劃和準備。你甚至不需要學習一門新語言。你隻會從陪伴中受益。

New Stack是Insight Partners的全資子公司,Insight Partners是本文中提到的以下公司的投資者:Neotys, Tricentis。

領導形象通過Pixabay

Baidu
map