搜尋
首頁科技週邊人工智慧機器學習助力高品質軟體工程
機器學習助力高品質軟體工程Apr 14, 2023 pm 04:31 PM
機器學習開發工程項目

譯者 | 朱先忠

審校 | 孫淑娟

引言

一般來說,軟體測試往往是比較簡單的:每個輸入=>已知輸出。然而,縱觀整個軟體測試的歷史,會發現許多測試往往都停留在猜測層面。也就是說,測試時由開發者構思出使用者的操作流程,估計可能出現的負載並分析需要耗費的時間,然後執行測試,並將目前結果與基準答案進行比較。如果我們發現不存在迴歸,那麼就認為目前建置方案是正確的;然後,繼續後面的測試。如果存在回歸,就返回。大多數時候,我們已經知道了輸出結果,儘管它需要更好的定義——回歸的邊界清晰,而且不那麼模糊。其實,這正是機器學習(ML)系統和預測分析的切入點——結束歧義。

測試完成後,性能工程師所做的工作不僅是查看結果的算術平均值和幾何平均值,他們還會查看有關百分比數據。例如,系統運作過程中,往往10%最慢的請求都是由系統錯誤導致的-這個錯誤會產生一個總是影響程式運作速度的條件。

雖然我們可以手動關聯資料中可用的屬性,但是ML可能會比您以更快的速度連結資料屬性。在確定導致10%的錯誤請求的條件後,效能工程師便可以建立測試場景來重現該行為。在修復之前和之後執行測試能夠幫助確定修復已經修正。

機器學習助力高品質軟體工程

圖1:對績效指標的整體信心

機器學習與資料科學的表現

機器學習有助於促進軟體開發,使相關開發技術更堅固、更好地滿足使用者在不同領域和行業的需求。我們可以透過將管道和環境中的資料輸入到深度學習演算法來揭露因果模式。預測分析演算法與效能工程方法結合,可實現更有效率、更快的吞吐量,深入了解終端用戶如何在自然場景下使用軟體,並幫助開發者降低帶有缺陷的產品應用於生產環境的可能性。透過及早發現問題及其原因,您可以在開發生命週期的早期進行問題糾正,並防止對生產產生影響。整體來看,您可以透過以下方式利用預測分析來提高應用程式效能。

  • 確定根本原因。 您可以使用機器學習技術來確定可用性或效能問題的根本原因,從而專注於其他需要注意的領域。然後,預測分析可以分析每個群集的各種特徵,提供我們需要進行更改的見解,以達到理想的效能並避免瓶頸。
  • 監視應用程式運作狀況。 使用機器學習技術執行即時應用程式監控,有助於企業能夠及時發現系統效能降級並迅速回應。大多數應用程式依賴多個服務來獲得完整應用程式的狀態;預測分析模型能夠在應用程式運作正常時關聯並分析數據,以識別傳入資料是否為異常值。
  • 預測使用者負載。 我們依靠峰值用戶流量來調整基礎設施的規模,以適應未來訪問應用程式的用戶數量。這種方法有局限性,因為它不考慮變化或其他未知因素。預測分析有助於顯示使用者負載,並更好地做好應對準備,幫助團隊規劃其基礎設施需求和容量利用率。
  • 在為時已晚之前預測停機。 在應用程式停機或停電發生之前預測它們將有助於採取預防措施。預測分析模型將遵循先前的停電情況,並繼續監測類似情況,以預測未來的故障。
  • 停止查看閾值,開始分析資料。 可觀測性和監控產生的大量資料每週最多需要幾百兆位元組。即使使用現代分析工具,您也必須事先知道自己在尋找什麼。這導致團隊不直接查看數據,而是設定閾值作為行動的觸發因素。即使是成熟的團隊也會尋找例外情況,而不是鑽研他們的數據。為了緩解這種情況,我們將模型與可用資料來源整合。然後,模型將篩選數據併計算隨時間推移的閾值。使用這種技術,模型被饋送並彙總歷史數據,提供基於季節性而不是由人類設定的閾值。基於演算法來設定閾值有助於觸發更少的警報;另一方面,這也帶來更好的可操作性和更高價值。
  • 跨資料集分析與關聯。 您的資料大多是時間序列,因此可以更輕鬆地查看隨時間變化的單一變數。許多趨勢來自多種措施的相互作用。例如,只有在同一目標同時進行各種事務時,回應時間才會下降。對人類來說,這幾乎是不可能的,但經過適當訓練的演算法卻有助於發現這些相關性。

預測分析中資料的重要性

「大數據」通常指的是資料集。不錯,是大數據集,速度提升很快,內容變化也很大。對於這樣數據的分析需要專門的方法,以便我們能夠從中提取模式和資訊。近年來,儲存、處理器、進程並行化以及演算法設計的改進都使得系統能夠在合理的時間內處理大量數據,從而允許更廣泛地使用這些方法。為了獲得有意義的結果,您必須確保數據的一致性。

例如,每個項目必須使用相同的排名系統,因此,如果一個項目使用1作為關鍵值,而另一個項目使用5——就像人們使用「DEFCON 5 」表示「DEFCON 1」時一樣;那麼,必須在處理之前對這些值進行規範化處理。預測演算法由演算法及其輸入的數據組成,而軟體開發產生了大量數據,直到最近,這些數據仍處於閒置狀態,等待刪除。然而,預測分析演算法可以處理這些文件,針對我們無法檢測到的模式,根據這些數據提出和回答問題,例如:

  • 我們是否在浪費時間測試未使用的場景嗎?
  • 效能改進如何與使用者幸福感相關聯?
  • 修復特定缺陷需要多長時間?

這些問題及其答案就是預測分析的用途——更能理解可能發生的事情。

演算法

預測分析的另一個主要組成部分是演算法;您需要仔細選擇或實作它。從簡單開始是至關重要的,因為模型往往會變得越來越複雜,對輸入資料的變化越來越敏感,並有可能扭曲預測。它們可以解決兩類問題:分類和迴歸(見圖2)。

  • 分類:分類用於預測集合的結果,方法是從輸入資料推斷標籤(如「向下」或「向上」)開始,將集合劃分為不同的類別。
  • 迴歸:當輸出變數是一組實值時,迴歸用於預測集合的結果。它將處理輸入資料來進行預測——例如,使用的記憶體量、開發人員編寫的程式碼行等。最常用的預測模型是神經網路、決策樹以及線性和邏輯迴歸。

機器學習助力高品質軟體工程

#圖2:分類與迴歸

神經網路

#神經網路透過實例學習,並使用歷史資料和當前資料來預測未來價值。它們的架構允許它們識別隱藏在資料中的複雜關係,以複製我們大腦偵測模式的方式。它們包含許多層,這些層接受數據、計算預測並作為單一預測提供輸出。

決策樹

決策樹是一種分析方法,它將結果呈現在一系列「if/then」選項中,以預測特定選項的潛在風險和收益。它可以解決所有分類問題並回答複雜問題。

如圖3所示,決策樹類似於由演算法產生的自頂向下的樹,該演算法能夠識別將資料分割成分支狀劃分的各種方式,以說明未來的決策並協助識別決策路徑。

如果載入時間超過三秒,樹中的一個分支可能是放棄購物車的使用者。在這一條之下,另一個分支可能會指示她們是否屬於女性。 「yes」的回答會增加風險,因為分析表明,女性更容易衝動購買,而這種延遲會讓人陷入沉思。

機器學習助力高品質軟體工程

圖3:決策樹範例

#線性與邏輯迴歸

迴歸是最受歡迎的統計方法之一。在估算數字時,這一點至關重要,例如在「黑色星期五」大促活動期間,我們需要為每項服務增加多少資源。許多迴歸演算法被設計來估計變數之間的關係,在龐大的和混合的資料集中找到關鍵模式,以及它們之間的關係。它的範圍從簡單的線性迴歸模型(計算擬合資料的直線函數)到邏輯迴歸(計算曲線)(圖4)。

#線性與邏輯迴歸#總體對比

#線性回歸

#

邏輯迴歸

用於定義連續範圍內的值,例如接下來幾個月用戶流量峰值的風險。

這是一種統計方法,其中參數是根據舊的集合預測的。它最適合二進位分類:y=0或1的資料集,其中1表示預設類別。它的名字來自於它的轉換函數是一個邏輯函數#)

它表示為y=a bx,其中x是用來決定輸出y的輸入集。係數a和b用來量化x和y之間的關係,其中a是截距,b是直線的斜率。

它由邏輯函數表示:


其中β0是截距,β1#是速率。它使用訓練資料來計算係數,將預測結果與實際結果之間的誤差最小化。

目標是擬合最接近大多數點的直線,減少y和直線之間的距離或誤差。

它形成S形曲線,其中應用閾值將機率轉換為二進位分類。

機器學習助力高品質軟體工程

圖4:線性迴歸與邏輯迴歸

#這些是監督學習方法,因為演算法解決了特定的屬性。當你心中沒有特定的結果,但想確定可能的模式或趨勢時,可以使用無監督學習。在這種情況下,該模型將分析盡可能多的特徵組合,以找到人類可以採取行動的相關性。

機器學習助力高品質軟體工程

圖5:有監督與無監督學習

效能工程中的「左移」

使用先前的演算法來衡量消費者對產品和應用程式的看法,使得效能工程更加以消費者為中心。收集所有資訊後,必須透過適當的工具和演算法對其進行儲存和分析。這些數據可以包括錯誤日誌、測試案例、測試結果、生產事件、應用程式日誌檔案、專案文件、事件日誌、跟踪,等等。然後,我們可以將其應用於資料中,以獲得各種見解:

  • 分析環境中的缺陷
  • 評估對客戶體驗的影響
  • 確定問題模式
  • #建立更準確的測試場景,等等

此技術支援品質方面的左移(shift-left)方法,可讓您預測執行效能測試所需的時間、可能識別的缺陷數量以及可能導致生產的缺陷數量,從而實現效能測試的更好覆蓋,並創建真實的用戶體驗。可防止和修正可用性、相容性、效能和安全性等問題,而不會影響使用者。

以下是一些有助於提高品質的資訊類型的範例:

  • 缺陷類型
  • 在哪個階段發現了缺陷
  • 缺陷的根本原因是什麼
  • 缺陷是否可再現

一旦您了解了這一點,就可以進行更改並建立測試,以更快地防止類似問題。

結論

自從程式設計誕生以來,軟體工程師已經做出了成百上千的假設。但是,今天的數位用戶們更加意識到這一點,而且對錯誤和失敗的容忍度也進一步降低。另一方面,企業也在競相通過量身訂製的服務和越來越難測試的複雜軟體,試圖提供更具吸引力和完美的使用者體驗。

今天,一切都需要無縫運作,並支援所有流行的瀏覽器、行動裝置和應用程式。即使是幾分鐘的撞車事故也可能造成數千或數百萬美元的損失。為了防止問題,團隊必須在整個軟體生命週期中整合可觀測性解決方案和使用者體驗。管理複雜系統的品質和效能需要的不僅僅是執行測試案例和運行負載測試。趨勢可以幫助您判斷情況是否受到控制、改善或惡化,以及改善或惡化的速度。機器學習技術可以幫助預測效能問題,使團隊能夠正確進行方案調整。最後,讓我們來引用本傑明·富蘭克林(Benjamin Franklin)的一句話作為結束語:「一盎司預防抵得上一磅治療。」

譯者介紹

朱先忠,51CTO社群編輯,51CTO專家部落格、講師,濰坊一所大學電腦教師,自由程式設計界老兵一枚。

原文標題:#Performance Engineering Powered by Machine Learning,作者:

以上是機器學習助力高品質軟體工程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
解读CRISP-ML(Q):机器学习生命周期流程解读CRISP-ML(Q):机器学习生命周期流程Apr 08, 2023 pm 01:21 PM

译者 | 布加迪审校 | 孙淑娟目前,没有用于构建和管理机器学习(ML)应用程序的标准实践。机器学习项目组织得不好,缺乏可重复性,而且从长远来看容易彻底失败。因此,我们需要一套流程来帮助自己在整个机器学习生命周期中保持质量、可持续性、稳健性和成本管理。图1. 机器学习开发生命周期流程使用质量保证方法开发机器学习应用程序的跨行业标准流程(CRISP-ML(Q))是CRISP-DM的升级版,以确保机器学习产品的质量。CRISP-ML(Q)有六个单独的阶段:1. 业务和数据理解2. 数据准备3. 模型

2023年机器学习的十大概念和技术2023年机器学习的十大概念和技术Apr 04, 2023 pm 12:30 PM

机器学习是一个不断发展的学科,一直在创造新的想法和技术。本文罗列了2023年机器学习的十大概念和技术。 本文罗列了2023年机器学习的十大概念和技术。2023年机器学习的十大概念和技术是一个教计算机从数据中学习的过程,无需明确的编程。机器学习是一个不断发展的学科,一直在创造新的想法和技术。为了保持领先,数据科学家应该关注其中一些网站,以跟上最新的发展。这将有助于了解机器学习中的技术如何在实践中使用,并为自己的业务或工作领域中的可能应用提供想法。2023年机器学习的十大概念和技术:1. 深度神经网

基于因果森林算法的决策定位应用基于因果森林算法的决策定位应用Apr 08, 2023 am 11:21 AM

译者 | 朱先忠​审校 | 孙淑娟​在我之前的​​博客​​中,我们已经了解了如何使用因果树来评估政策的异质处理效应。如果你还没有阅读过,我建议你在阅读本文前先读一遍,因为我们在本文中认为你已经了解了此文中的部分与本文相关的内容。为什么是异质处理效应(HTE:heterogenous treatment effects)呢?首先,对异质处理效应的估计允许我们根据它们的预期结果(疾病、公司收入、客户满意度等)选择提供处理(药物、广告、产品等)的用户(患者、用户、客户等)。换句话说,估计HTE有助于我

使用PyTorch进行小样本学习的图像分类使用PyTorch进行小样本学习的图像分类Apr 09, 2023 am 10:51 AM

近年来,基于深度学习的模型在目标检测和图像识别等任务中表现出色。像ImageNet这样具有挑战性的图像分类数据集,包含1000种不同的对象分类,现在一些模型已经超过了人类水平上。但是这些模型依赖于监督训练流程,标记训练数据的可用性对它们有重大影响,并且模型能够检测到的类别也仅限于它们接受训练的类。由于在训练过程中没有足够的标记图像用于所有类,这些模型在现实环境中可能不太有用。并且我们希望的模型能够识别它在训练期间没有见到过的类,因为几乎不可能在所有潜在对象的图像上进行训练。我们将从几个样本中学习

LazyPredict:为你选择最佳ML模型!LazyPredict:为你选择最佳ML模型!Apr 06, 2023 pm 08:45 PM

本文讨论使用LazyPredict来创建简单的ML模型。LazyPredict创建机器学习模型的特点是不需要大量的代码,同时在不修改参数的情况下进行多模型拟合,从而在众多模型中选出性能最佳的一个。 摘要本文讨论使用LazyPredict来创建简单的ML模型。LazyPredict创建机器学习模型的特点是不需要大量的代码,同时在不修改参数的情况下进行多模型拟合,从而在众多模型中选出性能最佳的一个。​本文包括的内容如下:​简介​LazyPredict模块的安装​在分类模型中实施LazyPredict

Mango:基于Python环境的贝叶斯优化新方法Mango:基于Python环境的贝叶斯优化新方法Apr 08, 2023 pm 12:44 PM

译者 | 朱先忠审校 | 孙淑娟引言模型超参数(或模型设置)的优化可能是训练机器学习算法中最重要的一步,因为它可以找到最小化模型损失函数的最佳参数。这一步对于构建不易过拟合的泛化模型也是必不可少的。优化模型超参数的最著名技术是穷举网格搜索和随机网格搜索。在第一种方法中,搜索空间被定义为跨越每个模型超参数的域的网格。通过在网格的每个点上训练模型来获得最优超参数。尽管网格搜索非常容易实现,但它在计算上变得昂贵,尤其是当要优化的变量数量很大时。另一方面,随机网格搜索是一种更快的优化方法,可以提供更好的

人工智能自动获取知识和技能,实现自我完善的过程是什么人工智能自动获取知识和技能,实现自我完善的过程是什么Aug 24, 2022 am 11:57 AM

实现自我完善的过程是“机器学习”。机器学习是人工智能核心,是使计算机具有智能的根本途径;它使计算机能模拟人的学习行为,自动地通过学习来获取知识和技能,不断改善性能,实现自我完善。机器学习主要研究三方面问题:1、学习机理,人类获取知识、技能和抽象概念的天赋能力;2、学习方法,对生物学习机理进行简化的基础上,用计算的方法进行再现;3、学习系统,能够在一定程度上实现机器学习的系统。

超参数优化比较之网格搜索、随机搜索和贝叶斯优化超参数优化比较之网格搜索、随机搜索和贝叶斯优化Apr 04, 2023 pm 12:05 PM

本文将详细介绍用来提高机器学习效果的最常见的超参数优化方法。 译者 | 朱先忠​审校 | 孙淑娟​简介​通常,在尝试改进机器学习模型时,人们首先想到的解决方案是添加更多的训练数据。额外的数据通常是有帮助(在某些情况下除外)的,但生成高质量的数据可能非常昂贵。通过使用现有数据获得最佳模型性能,超参数优化可以节省我们的时间和资源。​顾名思义,超参数优化是为机器学习模型确定最佳超参数组合以满足优化函数(即,给定研究中的数据集,最大化模型的性能)的过程。换句话说,每个模型都会提供多个有关选项的调整“按钮

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中