偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

機(jī)器學(xué)習(xí)助力高質(zhì)量軟件工程

譯文 精選
人工智能 機(jī)器學(xué)習(xí)
本文旨在探討借助機(jī)器學(xué)習(xí)技術(shù)實(shí)現(xiàn)軟件工程項(xiàng)目的性能預(yù)測(cè),從而幫助開發(fā)團(tuán)隊(duì)能夠正確地進(jìn)行方向調(diào)整。

譯者 | 朱先忠

審校 | 孫淑娟

引言

一般來(lái)說(shuō),軟件測(cè)試往往是比較簡(jiǎn)單的:每個(gè)輸入=>已知輸出。然而,縱觀整個(gè)軟件測(cè)試的歷史,會(huì)發(fā)現(xiàn)很多測(cè)試往往都停留在猜測(cè)水平上。也就是說(shuō),測(cè)試時(shí)由開發(fā)者構(gòu)想出用戶的操作流程,估計(jì)可能出現(xiàn)的負(fù)載并分析需要耗費(fèi)的時(shí)間,然后運(yùn)行測(cè)試,并將當(dāng)前結(jié)果與基準(zhǔn)答案進(jìn)行比較。如果我們發(fā)現(xiàn)不存在回歸,那么就認(rèn)為當(dāng)前構(gòu)建方案是正確的;然后,繼續(xù)后面的測(cè)試。如果存在回歸,就返回。大多數(shù)時(shí)候,我們已經(jīng)知道了輸出結(jié)果,盡管它需要更好的定義——回歸的邊界清晰,并不那么模糊。其實(shí),這正是機(jī)器學(xué)習(xí)(ML)系統(tǒng)和預(yù)測(cè)分析的切入點(diǎn)——結(jié)束歧義。

測(cè)試完成后,性能工程師所做的工作不僅是查看結(jié)果的算術(shù)平均值和幾何平均值,他們還會(huì)查看有關(guān)百分比數(shù)據(jù)。例如,系統(tǒng)運(yùn)行過程中,往往10%的最慢請(qǐng)求都是由系統(tǒng)錯(cuò)誤導(dǎo)致的——該錯(cuò)誤會(huì)產(chǎn)生一個(gè)總是影響程序運(yùn)行速度的條件。

雖然我們可以手動(dòng)關(guān)聯(lián)數(shù)據(jù)中可用的屬性,但是ML可能會(huì)比您以更快的速度鏈接數(shù)據(jù)屬性。在確定導(dǎo)致10%的錯(cuò)誤請(qǐng)求的條件后,性能工程師便可以構(gòu)建測(cè)試場(chǎng)景來(lái)重現(xiàn)該行為。在修復(fù)之前和之后運(yùn)行測(cè)試能夠幫助確定修復(fù)已經(jīng)得到更正。

圖1:對(duì)績(jī)效指標(biāo)的總體信心

機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)的性能

機(jī)器學(xué)習(xí)有助于促進(jìn)軟件開發(fā),使有關(guān)開發(fā)技術(shù)更堅(jiān)固、更好地滿足用戶在不同領(lǐng)域和行業(yè)的需求。我們可以通過將管道和環(huán)境中的數(shù)據(jù)輸入到深度學(xué)習(xí)算法來(lái)暴露因果模式。預(yù)測(cè)分析算法與性能工程方法相結(jié)合,可實(shí)現(xiàn)更高效、更快的吞吐量,深入了解終端用戶如何在自然場(chǎng)景下使用軟件,并幫助開發(fā)者降低帶有缺陷的產(chǎn)品應(yīng)用于生產(chǎn)環(huán)境的可能性。通過及早發(fā)現(xiàn)問題及其原因,您可以在開發(fā)生命周期的早期進(jìn)行問題糾正,并防止對(duì)生產(chǎn)產(chǎn)生影響??傮w來(lái)看,您可以通過以下方式利用預(yù)測(cè)分析來(lái)提高應(yīng)用程序性能。

  • 確定根本原因。您可以使用機(jī)器學(xué)習(xí)技術(shù)來(lái)確定可用性或性能問題的根本原因,從而關(guān)注其他需要注意的領(lǐng)域。然后,預(yù)測(cè)分析可以分析每個(gè)集群的各種特征,提供我們需要進(jìn)行更改的見解,以達(dá)到理想的性能并避免瓶頸。
  • 監(jiān)視應(yīng)用程序運(yùn)行狀況。使用機(jī)器學(xué)習(xí)技術(shù)執(zhí)行實(shí)時(shí)應(yīng)用程序監(jiān)控,有助于企業(yè)能夠及時(shí)發(fā)現(xiàn)系統(tǒng)性能降級(jí)并迅速作出響應(yīng)。大多數(shù)應(yīng)用程序依賴于多個(gè)服務(wù)來(lái)獲得完整應(yīng)用程序的狀態(tài);預(yù)測(cè)分析模型能夠在應(yīng)用程序運(yùn)行正常時(shí)關(guān)聯(lián)并分析數(shù)據(jù),以識(shí)別傳入數(shù)據(jù)是否為異常值。
  • 預(yù)測(cè)用戶負(fù)載。我們依靠峰值用戶流量來(lái)調(diào)整基礎(chǔ)設(shè)施的規(guī)模,以適應(yīng)未來(lái)訪問應(yīng)用程序的用戶數(shù)量。這種方法有局限性,因?yàn)樗豢紤]變化或其他未知因素。預(yù)測(cè)分析有助于顯示用戶負(fù)載,并更好地做好應(yīng)對(duì)準(zhǔn)備,幫助團(tuán)隊(duì)規(guī)劃其基礎(chǔ)設(shè)施需求和容量利用率。
  • 在為時(shí)已晚之前預(yù)測(cè)停機(jī)。在應(yīng)用程序停機(jī)或停電發(fā)生之前預(yù)測(cè)它們將有助于采取預(yù)防措施。預(yù)測(cè)分析模型將遵循先前的停電情形,并繼續(xù)監(jiān)測(cè)類似情況,以預(yù)測(cè)未來(lái)的故障。
  • 停止查看閾值,開始分析數(shù)據(jù)。可觀測(cè)性和監(jiān)測(cè)產(chǎn)生的大量數(shù)據(jù)每周最多需要幾百兆字節(jié)。即使使用現(xiàn)代分析工具,您也必須事先知道自己在尋找什么。這導(dǎo)致團(tuán)隊(duì)不直接查看數(shù)據(jù),而是設(shè)置閾值作為行動(dòng)的觸發(fā)因素。即使是成熟的團(tuán)隊(duì)也會(huì)尋找例外情況,而不是鉆研他們的數(shù)據(jù)。為了緩解這種情況,我們將模型與可用數(shù)據(jù)源集成。然后,模型將篩選數(shù)據(jù)并計(jì)算隨時(shí)間推移的閾值。使用這種技術(shù),模型被饋送并匯總歷史數(shù)據(jù),提供基于季節(jié)性而不是由人類設(shè)定的閾值?;谒惴▉?lái)設(shè)置閾值有助于觸發(fā)更少的警報(bào);另一方面,這也帶來(lái)更好的可操作性和更高價(jià)值。
  • 跨數(shù)據(jù)集分析和關(guān)聯(lián)。您的數(shù)據(jù)大多是時(shí)間序列,因此可以更容易地查看隨時(shí)間變化的單個(gè)變量。許多趨勢(shì)來(lái)自多種措施的相互作用。例如,只有在同一目標(biāo)同時(shí)進(jìn)行各種事務(wù)時(shí),響應(yīng)時(shí)間才會(huì)下降。對(duì)于人類來(lái)說(shuō),這幾乎是不可能的,但經(jīng)過適當(dāng)訓(xùn)練的算法卻有助于發(fā)現(xiàn)這些相關(guān)性。

預(yù)測(cè)分析中數(shù)據(jù)的重要性

“大數(shù)據(jù)”通常指的是數(shù)據(jù)集。不錯(cuò),是大數(shù)據(jù)集,速度提升很快,內(nèi)容變化也很大。對(duì)于這樣數(shù)據(jù)的分析需要專門的方法,以便我們能夠從中提取模式和信息。近些年來(lái),存儲(chǔ)、處理器、進(jìn)程并行化以及算法設(shè)計(jì)的改進(jìn)都使得系統(tǒng)能夠在合理的時(shí)間內(nèi)處理大量數(shù)據(jù),從而允許更廣泛地使用這些方法。為了獲得有意義的結(jié)果,您必須確保數(shù)據(jù)的一致性。

例如,每個(gè)項(xiàng)目必須使用相同的排名系統(tǒng),因此,如果一個(gè)項(xiàng)目使用1作為關(guān)鍵值,而另一個(gè)項(xiàng)目使用5——就像人們使用“DEFCON 5”表示“DEFCON 1”時(shí)一樣;那么,必須在處理之前對(duì)這些值進(jìn)行規(guī)范化處理。預(yù)測(cè)算法由算法及其輸入的數(shù)據(jù)組成,而軟件開發(fā)產(chǎn)生了大量數(shù)據(jù),直到最近,這些數(shù)據(jù)仍處于閑置狀態(tài),等待刪除。然而,預(yù)測(cè)分析算法可以處理這些文件,針對(duì)我們無(wú)法檢測(cè)到的模式,根據(jù)這些數(shù)據(jù)提出和回答問題,例如:

  • 我們是否在浪費(fèi)時(shí)間測(cè)試未使用的場(chǎng)景嗎?
  • 性能改進(jìn)如何與用戶幸福感相關(guān)聯(lián)?
  • 修復(fù)特定缺陷需要多長(zhǎng)時(shí)間?

這些問題及其答案就是預(yù)測(cè)分析的用途——更好地理解可能發(fā)生的事情。

算法

預(yù)測(cè)分析的另一個(gè)主要組成部分是算法;您需要仔細(xì)選擇或?qū)崿F(xiàn)它。從簡(jiǎn)單開始是至關(guān)重要的,因?yàn)槟P屯鶗?huì)變得越來(lái)越復(fù)雜,對(duì)輸入數(shù)據(jù)的變化越來(lái)越敏感,并有可能扭曲預(yù)測(cè)。它們可以解決兩類問題:分類和回歸(見圖2)。

  • 分類:分類用于預(yù)測(cè)集合的結(jié)果,方法是從輸入數(shù)據(jù)中推斷標(biāo)簽(如“向下”或“向上”)開始,將集合劃分為不同的類別。
  • 回歸:當(dāng)輸出變量是一組實(shí)值時(shí),回歸用于預(yù)測(cè)集合的結(jié)果。它將處理輸入數(shù)據(jù)來(lái)進(jìn)行預(yù)測(cè)——例如,使用的內(nèi)存量、開發(fā)人員編寫的代碼行等。最常用的預(yù)測(cè)模型是神經(jīng)網(wǎng)絡(luò)、決策樹以及線性和邏輯回歸。

圖2:分類與回歸

神經(jīng)網(wǎng)絡(luò)

神經(jīng)網(wǎng)絡(luò)通過實(shí)例學(xué)習(xí),并使用歷史數(shù)據(jù)和當(dāng)前數(shù)據(jù)來(lái)預(yù)測(cè)未來(lái)價(jià)值。它們的架構(gòu)允許它們識(shí)別隱藏在數(shù)據(jù)中的復(fù)雜關(guān)系,以復(fù)制我們大腦檢測(cè)模式的方式。它們包含許多層,這些層接受數(shù)據(jù)、計(jì)算預(yù)測(cè)并作為單個(gè)預(yù)測(cè)提供輸出。

決策樹

決策樹是一種分析方法,它將結(jié)果呈現(xiàn)在一系列“if/then”選項(xiàng)中,以預(yù)測(cè)特定選項(xiàng)的潛在風(fēng)險(xiǎn)和收益。它可以解決所有分類問題并回答復(fù)雜問題。

如圖3所示,決策樹類似于由算法生成的自頂向下的樹,該算法能夠識(shí)別將數(shù)據(jù)分割成分支狀劃分的各種方式,以說(shuō)明未來(lái)的決策并幫助識(shí)別決策路徑。

如果加載時(shí)間超過三秒,樹中的一個(gè)分支可能是放棄購(gòu)物車的用戶。在這一條之下,另一條分支可能會(huì)指明她們是否屬于女性。“yes”的回答會(huì)增加風(fēng)險(xiǎn),因?yàn)榉治霰砻?,女性更容易沖動(dòng)購(gòu)買,而這種延遲會(huì)讓人陷入沉思。

圖3:決策樹示例

線性和邏輯回歸

回歸是最流行的統(tǒng)計(jì)方法之一。在估算數(shù)字時(shí),這一點(diǎn)至關(guān)重要,例如在“黑色星期五”大促活動(dòng)期間,我們需要為每項(xiàng)服務(wù)增加多少資源。許多回歸算法被設(shè)計(jì)來(lái)估計(jì)變量之間的關(guān)系,在龐大的和混合的數(shù)據(jù)集中找到關(guān)鍵模式,以及它們之間的關(guān)系。它的范圍從簡(jiǎn)單的線性回歸模型(計(jì)算擬合數(shù)據(jù)的直線函數(shù))到邏輯回歸(計(jì)算曲線)(圖4)。

線性和邏輯回歸總體對(duì)比

線性回歸

邏輯回歸

用于定義連續(xù)范圍內(nèi)的值,例如接下來(lái)幾個(gè)月用戶流量峰值的風(fēng)險(xiǎn)。

這是一種統(tǒng)計(jì)方法,其中參數(shù)是根據(jù)舊的集合預(yù)測(cè)的。它最適合二進(jìn)制分類:y=0或1的數(shù)據(jù)集,其中1表示默認(rèn)類。它的名字來(lái)源于它的轉(zhuǎn)換函數(shù)是一個(gè)邏輯函數(shù)

它表示為y=a+bx,其中x是用于確定輸出y的輸入集。系數(shù)a和b用于量化x和y之間的關(guān)系,其中a是截距,b是直線的斜率。

它由邏輯函數(shù)表示:


其中β0是截距,β1是速率。它使用訓(xùn)練數(shù)據(jù)來(lái)計(jì)算系數(shù),將預(yù)測(cè)結(jié)果與實(shí)際結(jié)果之間的誤差最小化。

目標(biāo)是擬合最接近大多數(shù)點(diǎn)的直線,減少y和直線之間的距離或誤差。

它形成S形曲線,其中應(yīng)用閾值將概率轉(zhuǎn)換為二進(jìn)制分類。

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

這些是監(jiān)督學(xué)習(xí)方法,因?yàn)樗惴ń鉀Q了特定的屬性。當(dāng)你心中沒有特定的結(jié)果,但想確定可能的模式或趨勢(shì)時(shí),可以使用無(wú)監(jiān)督學(xué)習(xí)。在這種情況下,該模型將分析盡可能多的特征組合,以找到人類可以采取行動(dòng)的相關(guān)性。

圖5:有監(jiān)督與無(wú)監(jiān)督學(xué)習(xí)

性能工程中的“左移”

使用以前的算法來(lái)衡量消費(fèi)者對(duì)產(chǎn)品和應(yīng)用程序的看法,使得性能工程更加以消費(fèi)者為中心。收集所有信息后,必須通過適當(dāng)?shù)墓ぞ吆退惴▽?duì)其進(jìn)行存儲(chǔ)和分析。這些數(shù)據(jù)可以包括錯(cuò)誤日志、測(cè)試用例、測(cè)試結(jié)果、生產(chǎn)事件、應(yīng)用程序日志文件、項(xiàng)目文檔、事件日志、跟蹤,等等。然后,我們可以將其應(yīng)用于數(shù)據(jù)中,以獲得各種見解:

  • 分析環(huán)境中的缺陷
  • 評(píng)估對(duì)客戶體驗(yàn)的影響
  • 確定問題模式
  • 創(chuàng)建更準(zhǔn)確的測(cè)試場(chǎng)景,等等

該技術(shù)支持質(zhì)量方面的左移(shift-left)方法,允許您預(yù)測(cè)執(zhí)行性能測(cè)試所需的時(shí)間、可能識(shí)別的缺陷數(shù)量以及可能導(dǎo)致生產(chǎn)的缺陷數(shù)量,從而實(shí)現(xiàn)性能測(cè)試的更好覆蓋,并創(chuàng)建真實(shí)的用戶體驗(yàn)。可防止和糾正可用性、兼容性、性能和安全性等問題,而不會(huì)影響用戶。

以下是一些有助于提高質(zhì)量的信息類型的示例:

  • 缺陷類型
  • 在哪個(gè)階段發(fā)現(xiàn)了缺陷
  • 缺陷的根本原因是什么
  • 缺陷是否可再現(xiàn)

一旦您了解了這一點(diǎn),就可以進(jìn)行更改并創(chuàng)建測(cè)試,以更快地防止類似問題。

結(jié)論

自編程誕生以來(lái),軟件工程師已經(jīng)做出了成百上千的假設(shè)。但是,今天的數(shù)字用戶們更加意識(shí)到這一點(diǎn),而且對(duì)錯(cuò)誤和失敗的容忍度也進(jìn)一步降低。另一方面,企業(yè)也在競(jìng)相通過量身定制的服務(wù)和越來(lái)越難測(cè)試的復(fù)雜軟件,力圖提供更具吸引力和完美的用戶體驗(yàn)。

今天,一切都需要無(wú)縫工作,并支持所有流行的瀏覽器、移動(dòng)設(shè)備和應(yīng)用程序。即使是幾分鐘的撞車事故也可能造成數(shù)千或數(shù)百萬(wàn)美元的損失。為了防止出現(xiàn)問題,團(tuán)隊(duì)必須在整個(gè)軟件生命周期中整合可觀測(cè)性解決方案和用戶體驗(yàn)。管理復(fù)雜系統(tǒng)的質(zhì)量和性能需要的不僅僅是執(zhí)行測(cè)試用例和運(yùn)行負(fù)載測(cè)試。趨勢(shì)可以幫助您判斷情況是否得到控制、好轉(zhuǎn)或惡化,以及改善或惡化的速度。機(jī)器學(xué)習(xí)技術(shù)可以幫助預(yù)測(cè)性能問題,使團(tuán)隊(duì)能夠正確進(jìn)行方案調(diào)整。最后,讓我們來(lái)引用本杰明·富蘭克林(Benjamin Franklin)的一句話作為結(jié)束語(yǔ):“一盎司預(yù)防抵得上一磅治療?!?/span>

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。

原文標(biāo)題:??Performance Engineering Powered by Machine Learning??,作者:

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2013-01-09 16:21:56

醫(yī)療護(hù)理成功案例

2023-07-06 14:51:30

開發(fā)高質(zhì)量軟件

2010-04-02 10:48:39

CentOS系統(tǒng)

2011-05-31 13:43:46

外鏈

2017-07-14 09:54:47

代碼函數(shù)程序

2022-07-06 08:34:17

前端單測(cè)項(xiàng)目

2023-01-27 23:46:36

嵌入式軟件技巧

2021-08-08 14:26:24

SQL數(shù)據(jù)庫(kù)開發(fā)

2021-04-07 23:05:45

存儲(chǔ)

2023-05-12 16:10:13

數(shù)字經(jīng)濟(jì)

2011-06-24 14:59:41

外鏈

2015-08-19 08:54:23

Android開發(fā)框架

2011-07-20 15:26:52

C++

2023-10-15 12:07:09

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)