破局者手冊 Ⅰ:測試開發核心基礎,解鎖未來測試密鑰!

目錄

一、引入背景

二、軟件測試基礎概念

2.1 軟件測試的定義

2.2 軟件測試的重要性

2.3 軟件測試的原則

三、測試類型

3.1 功能測試

3.2 接口測試

3.2.1 接口測試的概念

3.2.2 接口測試的重要性

3.2.3 接口測試的要點

3.2.4 接口測試代碼示例(Python + requests)

3.3 自動化測試

3.3.1 自動化測試的概念

3.3.2 自動化測試的優勢

3.3.3 自動化測試的適用場景

3.3.4 自動化測試代碼示例(Python + Selenium)

3.3.5 自動化測試框架介紹

3.4 性能測試

3.4.1 性能測試的概念

3.4.2 性能測試的重要性

3.4.3 性能測試的指標

3.4.4 性能測試工具使用示例(JMeter)

四、測試流程

4.1 需求分析階段

4.2 測試計劃階段

4.3 測試設計階段

4.3.1 測試用例編寫示例(表格形式)

4.4 測試執行階段

4.5 測試評估階段

五、測試工具介紹

5.1 JMeter

5.2 Postman

5.3 Selenium

六、匯總小結


一、引入背景

在當今快速發展的軟件開發領域,軟件質量是決定產品成敗的關鍵因素。測試開發作為保障軟件質量的核心環節,融合了軟件開發與測試的專業技能,致力于構建高效、可靠的測試工具和自動化測試體系。

二、軟件測試基礎概念

2.1 軟件測試的定義

軟件測試是運用人工或自動化手段,對軟件系統進行運行和評估的過程。其核心目標是驗證軟件是否滿足預先設定的需求,以及識別預期結果與實際結果之間的差異。例如,對于一款新開發的移動支付應用,通過軟件測試來檢查支付功能、賬戶管理功能等是否能按照設計要求正常工作。

2.2 軟件測試的重要性

  1. 保障軟件質量:通過嚴謹的測試流程,能夠發現軟件中潛在的缺陷和漏洞,確保交付給用戶的軟件具有較高的質量和穩定性,從而提升用戶體驗。例如,在一款社交軟件上線前,通過全面測試發現并修復消息發送延遲等問題,為用戶提供流暢的溝通體驗。
  2. 降低成本:在軟件開發的早期階段發現并修復問題,相較于軟件發布后再進行處理,能夠大幅降低修復成本。研究表明,后期修復缺陷的成本可能是早期的數倍甚至數十倍。比如,在項目開發初期發現并修復一個代碼邏輯錯誤,可能只需花費少量的時間和人力;而在軟件上線后才發現同樣的問題,可能需要投入大量的資源進行排查和修復,還可能面臨用戶流失等潛在損失。
  3. 增強用戶信任:經過充分測試的高質量軟件,能夠增強用戶對軟件的信任度,有助于提升軟件的口碑和市場競爭力。例如,一款經過嚴格測試的醫療軟件,能夠準確地提供診斷建議和治療方案,用戶會更愿意使用并推薦給他人。

2.3 軟件測試的原則

  1. 盡早測試:測試應在軟件開發的需求分析階段就開始介入,以便盡早發現問題并解決。例如,在需求分析階段對需求文檔進行評審,及時發現需求的模糊性或不一致性,避免在后續開發過程中產生更多的問題。
  2. 全面測試:盡可能覆蓋軟件的所有功能、各種邊界情況以及不同的運行環境,確保軟件在各種場景下都能正常工作。比如,對于一個電商平臺的訂單系統,不僅要測試正常的下單、支付流程,還要測試在網絡中斷、庫存不足等異常情況下系統的處理能力。
  3. 重點測試:根據軟件的業務邏輯和用戶使用頻率,確定重點測試區域,集中精力對關鍵功能進行深入測試。例如,對于一款在線教育平臺,課程播放和互動功能是用戶使用最頻繁的功能,應作為重點測試對象,確保其穩定性和流暢性。
  4. 獨立測試:測試人員應獨立于開發團隊,以客觀、公正的態度進行測試,避免因主觀因素而遺漏問題。例如,成立專門的測試團隊,獨立于開發團隊進行測試工作,確保測試結果的客觀性和公正性。
  5. 及時反饋:一旦發現問題,應及時向開發團隊反饋,以便迅速進行修復,同時詳細記錄問題的相關信息,便于后續跟蹤和分析。例如,使用缺陷管理工具,及時記錄和跟蹤缺陷的狀態,確保每個缺陷都能得到及時處理。

三、測試類型

3.1 功能測試

功能測試是最基礎的測試類型,主要依據軟件的需求規格說明書,對軟件的各項功能進行驗證。檢查軟件在輸入各種數據時,是否能按照預期輸出正確的結果。例如,測試一個文本編輯器應用,驗證其文字輸入、格式設置、保存和打開等功能是否正常。

3.2 接口測試

3.2.1 接口測試的概念

接口測試用于檢測系統組件之間接口的正確性。在現代軟件開發中,尤其是前后端分離的架構模式下,接口測試顯得尤為重要。它主要關注系統外部與內部各個子系統之間的交互點,檢查數據的交換、傳遞和控制管理過程,以及系統間的相互邏輯依賴關系。比如,一個電商平臺的商品管理系統與訂單系統之間通過接口進行數據交互,接口測試就是要確保商品信息能夠準確無誤地傳遞到訂單系統,并且訂單狀態的更新能夠正確反饋給商品管理系統。

3.2.2 接口測試的重要性
  1. 保障系統集成:在復雜的系統中,各個模塊通過接口進行通信,接口測試能夠保證不同模塊之間的集成正常,確保整個系統的協同工作。例如,在一個大型企業資源規劃(ERP)系統中,財務模塊、采購模塊和庫存模塊之間通過接口進行數據交互,接口測試可以確保這些模塊之間的數據傳遞準確無誤,實現系統的整體功能。
  2. 發現潛在問題:接口往往是系統的薄弱環節,容易出現數據格式錯誤、權限控制不當等問題,接口測試可以提前發現這些潛在問題,避免在系統集成階段出現大規模的問題。例如,在一個 API 接口中,如果對輸入參數的格式沒有進行嚴格驗證,可能會導致系統在處理請求時出現錯誤,通過接口測試可以及時發現并修復這類問題。
  3. 支持持續集成:在持續集成的開發模式下,頻繁的代碼變更可能會影響接口的穩定性,接口測試能夠及時發現接口的異常,保障系統的持續集成和持續交付。例如,當開發人員對接口進行修改后,接口測試會自動運行,檢測接口是否仍然正常工作,如果發現問題,開發人員可以及時進行修復,避免影響整個項目的進度。
3.2.3 接口測試的要點
  1. 參數校驗:驗證接口接收到的輸入參數是否符合預期的格式、類型和范圍。例如,某個接口要求輸入的年齡參數必須是大于 0 且小于 150 的整數,接口測試就要檢查輸入的年齡參數是否滿足這一要求。
  2. 輸出結果驗證:確保接口返回的數據符合業務邏輯要求,包括響應碼、響應體的內容格式及其語義一致性。比如,一個查詢用戶訂單列表的接口,返回的響應碼應該是 200(表示成功),并且響應體中應包含正確的訂單信息,如訂單編號、商品名稱、訂單金額等。
  3. 異常處理:模擬各種異常情況,如輸入無效參數、網絡中斷、接口超時等,測試接口在這些情況下能否妥善處理錯誤,并給出恰當的錯誤提示信息,以便開發者能夠快速定位問題。例如,當網絡中斷時,接口應返回一個合適的錯誤信息,告知用戶當前無法連接到服務器。
  4. 權限控制:檢查接口是否實現了正確的權限控制,只有經過授權的用戶才能訪問特定接口,防止未授權的操作導致數據泄露或系統異常。例如,對于一個涉及用戶敏感信息的接口,只有具有相應權限的用戶才能訪問,接口測試需要驗證這一權限控制機制是否有效。
3.2.4 接口測試代碼示例(Python + requests)
import requests# 測試接口地址
url = "https://example.com/api/user/login"
# 測試參數
data = {"username": "testuser","password": "testpassword"
}# 發送POST請求
response = requests.post(url, json=data)# 打印響應狀態碼
print("響應狀態碼:", response.status_code)
# 打印響應內容
print("響應內容:", response.text)# 斷言響應狀態碼是否為200
assert response.status_code == 200
# 斷言響應體中是否包含預期的字段
response_json = response.json()
assert "token" in response_json

3.3 自動化測試

3.3.1 自動化測試的概念

自動化測試是使用自動化測試工具或編寫測試腳本,模擬人工測試操作,自動執行測試用例的過程。它可以大大提高測試效率,減少人工測試的重復性勞動,并且能夠在短時間內執行大量的測試用例。例如,使用 Selenium 自動化測試工具來測試網頁應用的功能,通過編寫腳本自動模擬用戶在網頁上的點擊、輸入、滾動等操作。

3.3.2 自動化測試的優勢
  1. 提高測試效率:自動化測試能夠快速執行大量測試用例,大大縮短測試周期,尤其適用于回歸測試場景,當軟件進行頻繁的版本迭代時,自動化測試可以迅速驗證新的變更是否對原有功能產生影響。例如,在一個大型電商平臺的日常維護中,每天都有大量的功能更新和修復,使用自動化測試可以在短時間內對所有功能進行回歸測試,確保系統的穩定性。
  2. 保證測試準確性:自動化測試不會像人工測試那樣因為疲勞、疏忽等因素而出現漏測或誤測的情況,能夠保證每次測試執行的一致性和準確性。例如,在進行大量數據輸入的測試時,人工測試可能會因為輸入錯誤或遺漏而導致測試結果不準確,而自動化測試可以準確地按照預設的測試腳本進行操作,確保測試結果的可靠性。
  3. 可重復性強:自動化測試腳本可以隨時重復執行,方便在不同的環境或不同的時間點進行測試,確保軟件在不同條件下的穩定性。例如,在不同的操作系統或瀏覽器版本上進行測試時,只需要運行自動化測試腳本,就可以快速得到測試結果,而不需要人工重復進行測試操作。
  4. 降低人力成本:對于一些重復性高、工作量大的測試任務,自動化測試可以節省大量的人力,使測試人員能夠將精力集中在更有價值的測試工作上,如測試用例的設計和優化。例如,在進行軟件的兼容性測試時,需要在多個不同的設備和操作系統上進行測試,使用自動化測試可以大大減少人工測試的工作量,提高測試效率。
3.3.3 自動化測試的適用場景
  1. 回歸測試:當軟件進行功能迭代或修復缺陷后,需要對原有功能進行回歸測試,自動化測試能夠快速驗證原有功能是否仍然正常工作。例如,在一個手機應用的更新版本中,修復了一個支付功能的漏洞,使用自動化測試可以對支付功能以及與之相關的其他功能進行回歸測試,確保修復漏洞的同時沒有引入新的問題。
  2. 高并發測試:在模擬大量用戶并發訪問的場景下,人工測試難以實現,而自動化測試工具可以輕松模擬高并發的用戶行為,對系統的性能進行測試。例如,在一個在線搶購活動中,需要模擬大量用戶同時訪問服務器進行搶購操作,使用自動化測試工具可以模擬這種高并發場景,測試系統的性能和穩定性。
  3. 數據驅動測試:當測試用例需要使用大量不同的數據進行驗證時,自動化測試可以通過數據驅動的方式,方便地讀取不同的數據文件,執行相應的測試用例。例如,在測試一個數據處理系統時,需要使用大量不同格式和內容的數據進行測試,使用自動化測試的數據驅動功能可以從數據文件中讀取數據,自動執行測試用例,提高測試效率。
  4. 持續集成和持續交付(CI/CD):在 CI/CD 的開發流程中,自動化測試是不可或缺的環節,它能夠在代碼提交后自動觸發測試,及時反饋代碼質量問題,保障軟件的持續集成和持續交付。例如,當開發人員將代碼提交到代碼倉庫后,CI/CD 系統會自動觸發自動化測試,只有當測試通過后,代碼才能繼續進行后續的構建和部署操作。
3.3.4 自動化測試代碼示例(Python + Selenium)
3.3.5 自動化測試框架介紹

常見的自動化測試框架有 Robot Framework、TestNG 等。以 Robot Framework 為例,它是一個基于 Python 的通用測試自動化框架,具有易于理解的語法和豐富的庫支持。使用 Robot Framework,測試人員可以通過簡單的關鍵字驅動方式編寫測試用例,無需深入的編程知識。例如:

*** Settings ***
Library    SeleniumLibrary*** Test Cases ***
Login TestOpen Browser    https://example.com/login    chromeInput Text    id=username    testuserInput Text    id=password    testpasswordClick Button    id=login-buttonSleep    3sTitle Should Be    首頁Close Browser

Robot Framework 通過定義測試用例、設置測試庫和使用關鍵字來實現自動化測試,使得測試腳本更具可讀性和可維護性。

3.4 性能測試

3.4.1 性能測試的概念

性能測試主要關注軟件系統在不同負載條件下的性能表現,包括響應時間、吞吐量、并發用戶數、資源利用率等指標。通過性能測試,可以評估軟件系統是否能夠滿足實際業務的性能需求,發現系統在性能方面存在的瓶頸和問題。例如,測試一個在線購物網站在高并發訪問時的響應速度,以及服務器的 CPU、內存等資源的利用率情況。

3.4.2 性能測試的重要性
  1. 滿足用戶體驗:在當今快節奏的互聯網時代,用戶對軟件的響應速度和性能要求越來越高。通過性能測試,確保軟件在高并發情況下也能快速響應用戶請求,提供流暢的用戶體驗,避免因性能問題導致用戶流失。例如,一個新聞資訊類 APP 如果加載速度過慢,用戶可能會選擇使用其他競品應用。
  2. 優化系統設計:性能測試能夠發現系統在架構設計、代碼實現、數據庫設計等方面存在的性能瓶頸,為系統的優化提供依據,幫助開發團隊針對性地進行改進,提高系統的整體性能。比如,通過性能測試發現數據庫查詢語句執行效率低,開發團隊可以對其進行優化,提升系統的響應速度。
  3. 保障業務穩定:對于一些關鍵業務系統,如銀行核心交易系統、電商平臺的訂單處理系統等,性能的穩定性至關重要。性能測試可以模擬各種業務場景下的負載情況,確保系統在實際運行中能夠穩定可靠地工作,避免因性能問題引發業務中斷。例如,銀行系統在處理大量交易時,必須保證交易的準確性和及時性,性能測試可以驗證系統在高負載下的穩定性。
3.4.3 性能測試的指標
  1. 響應時間:指從用戶發出請求到系統返回響應結果所需要的時間,是衡量用戶體驗的關鍵指標。一般來說,響應時間越短,用戶體驗越好。例如,一個搜索功能的響應時間應控制在 1 秒以內,否則用戶可能會感到不耐煩。響應時間又可細分為平均響應時間、最大響應時間和最小響應時間等。
  2. 吞吐量:單位時間內系統能夠處理的請求數量或數據量,它反映了系統的處理能力。例如,一個文件下載服務器的吞吐量可以用每秒下載的文件大小來衡量。在 Web 應用中,吞吐量通常以每秒處理的請求數(TPS)來表示。
  3. 并發用戶數:指在同一時刻同時訪問系統的用戶數量。并發用戶數是評估系統在高負載情況下性能的重要指標,通過模擬不同的并發用戶數,可以測試系統的并發處理能力。例如,一個在線考試系統需要支持同時 1000 名考生進行考試,就需要通過性能測試來驗證系統在 1000 個并發用戶時的性能表現。
  4. 資源利用率:主要包括 CPU 利用率、內存利用率、磁盤 I/O 利用率、網絡帶寬利用率等。通過監控資源利用率,可以了解系統在不同負載下各種資源的使用情況,判斷是否存在資源瓶頸。例如,當 CPU 利用率持續超過 80% 時,可能意味著系統存在性能問題,需要進一步優化。
3.4.4 性能測試工具使用示例(JMeter)
  1. 創建測試計劃:打開 JMeter,在 “測試計劃” 上右鍵,選擇 “添加” -> “線程(用戶)” -> “線程組”,設置線程數(模擬并發用戶數)、循環次數等參數。例如,設置線程數為 100,循環次數為 10,表示模擬 100 個用戶并發訪問,每個用戶執行 10 次請求。
  2. 添加 HTTP 請求:在線程組上右鍵,選擇 “添加” -> “取樣器” -> “HTTP 請求”,填寫請求的 URL、請求方法(如 GET、POST)、請求參數等信息。比如,要測試一個登錄接口,填寫登錄接口的 URL,選擇 POST 方法,并設置用戶名和密碼等參數。
  3. 添加監聽器:在線程組上右鍵,選擇 “添加” -> “監聽器”,可以添加 “聚合報告”“圖形結果” 等監聽器,用于查看性能測試結果,如響應時間、吞吐量等指標。聚合報告中會顯示請求的平均響應時間、最大響應時間、最小響應時間、吞吐量等詳細信息。
  4. 運行測試:點擊工具欄上的 “啟動” 按鈕,開始執行性能測試,測試完成后查看監聽器中的結果數據。根據測試結果分析系統的性能瓶頸,如響應時間過長可能是因為服務器處理能力不足或網絡延遲等問題。

四、測試流程

4.1 需求分析階段

在這個階段,測試人員需要與產品經理、開發人員等密切合作,深入理解軟件的需求規格說明書。對需求進行詳細的分析,明確軟件的功能需求、性能需求、安全需求等,識別出測試的重點和難點。同時,根據需求分析結果,制定初步的測試策略和測試計劃。例如,對于一個新開發的社交軟件,測試人員需要了解其各種社交功能(如添加好友、聊天、發布動態等)的具體需求,以及對性能(如消息發送的及時性、系統的并發處理能力)和安全(如用戶信息的加密存儲、防止惡意攻擊)方面的要求。

4.2 測試計劃階段

根據需求分析的結果,制定詳細的測試計劃。測試計劃包括測試目標、測試范圍、測試資源、測試進度安排、測試風險評估等內容。明確測試團隊的分工,確定每個測試人員的職責和任務。同時,選擇合適的測試工具和技術,為后續的測試工作做好充分準備。例如,確定使用 JMeter 進行性能測試,Selenium 進行自動化功能測試,并安排好測試人員在不同階段的工作任務和時間節點。

4.3 測試設計階段

在測試設計階段,測試人員根據測試計劃和需求規格說明書,設計具體的測試用例。測試用例是對軟件測試行為的詳細描述,包括測試步驟、輸入數據、預期結果等。通過精心設計測試用例,能夠全面覆蓋軟件的各種功能和場景,確保測試的充分性和有效性。例如,對于一個登錄功能,需要設計不同用戶名和密碼組合的測試用例,包括正確的用戶名和密碼、錯誤的用戶名或密碼、用戶名和密碼為空等情況,以及考慮各種邊界值和異常情況。

4.3.1 測試用例編寫示例(表格形式)
用例編號測試模塊測試用例名稱測試步驟輸入數據預期結果
TC - 001登錄功能正確用戶名和密碼登錄1. 打開登錄頁面;
2. 輸入用戶名和密碼;
3. 點擊登錄按鈕
用戶名:testuser,密碼:testpassword成功登錄,跳轉到首頁
TC - 002登錄功能錯誤用戶名登錄1. 打開登錄頁面;
2. 輸入錯誤用戶名和正確密碼;
3. 點擊登錄按鈕
用戶名:wronguser,密碼:testpassword提示用戶名或密碼錯誤

4.4 測試執行階段

按照測試計劃和測試用例,執行各項測試任務。在測試執行過程中,記錄測試結果,包括通過的測試用例和發現的缺陷。對于發現的缺陷,要詳細描述缺陷的現象、重現步驟、嚴重程度等信息,并及時提交給開發團隊進行修復。同時,對修復后的缺陷進行回歸測試,確保缺陷已經被成功修復,并且沒有引入新的問題。例如,使用自動化測試工具執行測試用例,記錄測試結果,并將發現的缺陷提交到缺陷管理系統中,跟蹤缺陷的修復進度。

4.5 測試評估階段

在完成所有測試任務后,對測試結果進行評估。分析測試覆蓋情況、缺陷分布情況、軟件的性能指標等,判斷軟件是否達到了預定的質量標準。根據測試評估結果,編寫測試報告,向項目團隊和相關利益者匯報測試工作的完成情況和軟件的質量狀況。例如,統計測試用例的執行通過率、缺陷的數量和嚴重程度,評估軟件在功能、性能、穩定性等方面是否滿足需求,為軟件的發布或進一步改進提供決策依據。

五、測試工具介紹

5.1 JMeter

JMeter 是一款由 Apache 組織開發的開源性能測試工具,基于 Java 語言開發。它可以用于測試 Web 應用程序、FTP 服務器、數據庫等各種系統的性能。JMeter 具有以下特點:

  1. 功能強大:支持多種協議的測試,如 HTTP、HTTPS、FTP、JDBC 等,能夠模擬大量并發用戶訪問系統,進行負載測試、壓力測試、容量測試等多種性能測試場景。
  2. 易于使用:提供了直觀的圖形化界面,方便用戶創建和編輯測試計劃、添加各種測試元件(如線程組、HTTP 請求、斷言等),即使沒有編程經驗的測試人員也能快速上手。
  3. 可擴展性:JMeter 支持插件擴展,可以通過安裝各種插件來增強其功能,滿足不同的測試需求。例如,可以安裝 JMeter - Plugins 插件來獲取更多的監聽器和測試元件。
  4. 開源免費:作為開源軟件,JMeter 無需支付任何費用,降低了企業的測試成本,并且其源代碼公開,用戶可以根據自己的需求進行定制和擴展。

5.2 Postman

Postman 是一款功能強大且廣受歡迎的 API 開發與測試工具,它不僅適用于接口測試,還貫穿 API 從設計、測試到文檔生成的全生命周期。

  1. 操作界面與功能:Postman 擁有簡潔直觀的圖形界面,用戶可以輕松創建 HTTP 請求。通過界面可快速設置請求方法(GET、POST、PUT、DELETE 等)、填寫請求 URL、配置請求頭和請求體。例如,在進行 POST 請求時,只需在請求體區域選擇合適的數據格式(如 JSON、表單數據),并填寫對應參數,即可模擬真實的 API 調用場景。
  2. 測試功能:Postman 支持添加斷言,用于驗證 API 響應是否符合預期。例如,可斷言響應狀態碼為 200,或響應體中特定字段的值滿足條件。同時,它還具備環境變量和全局變量功能,方便在不同測試環境(如開發環境、測試環境、生產環境)中切換測試配置,極大提升了測試的靈活性和可復用性 。
  3. 團隊協作與文檔生成:Postman 提供團隊空間,團隊成員能夠共享 API 測試集合和環境配置,實現高效協作開發與測試。并且,它可以根據測試用例自動生成 API 文檔,包含 API 接口的詳細信息,如請求參數說明、響應示例等,有助于團隊成員之間的溝通和 API 的維護。

5.3 Selenium

Selenium 是 Web 應用自動化測試的重要工具,支持多種編程語言,如 Java、Python、C# 等。它可以模擬用戶在瀏覽器中的各種操作,如點擊、輸入、下拉選擇等。Selenium 的優勢包括:

  1. 跨瀏覽器支持:Selenium 可以在不同的瀏覽器(如 Chrome、Firefox、Edge 等)上運行測試腳本,確保 Web 應用在各種主流瀏覽器上的兼容性。
  2. 多語言支持:由于支持多種編程語言,測試人員可以根據自己熟悉的語言來編寫自動化測試腳本,提高開發效率。例如,Python 語言簡潔易讀,很多測試人員選擇使用 Python 結合 Selenium 來進行 Web 自動化測試。
  3. 豐富的插件和工具:Selenium 生態系統中有許多插件和工具可供使用,如 Selenium IDE(一個用于錄制和回放瀏覽器操作的插件)、Selenium Grid(用于分布式測試的工具,可以在多個瀏覽器和操作系統上并行執行測試腳本)等,進一步增強了其自動化測試能力。
  4. 與持續集成工具集成:Selenium 可以與常見的持續集成工具(如 Jenkins、GitLab CI/CD 等)集成,在持續集成的環境中自動執行 Web 自動化測試,及時反饋代碼變更對 Web 應用功能的影響。

六、匯總小結

通過本教程,我們全面學習了測試開發的基礎知識,涵蓋軟件測試概念、測試類型(功能測試、接口測試、自動化測試、性能測試)、測試流程、常用測試工具等內容。測試開發是軟件質量保障的關鍵環節,隨著技術的不斷發展,如人工智能在測試中的應用、云測試等新興技術的出現,測試開發人員需要不斷學習和提升自己的技能,以適應日益復雜的軟件測試需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79784.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79784.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79784.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ 適配器模式詳解

適配器模式(Adapter Pattern)是一種結構型設計模式,它允許不兼容的接口之間能夠協同工作。 概念解析 適配器模式的核心思想是: 接口轉換:將一個類的接口轉換成客戶希望的另一個接口 兼容性:使原本由于接…

【NLP】 28. 語言模型的評估方式:MRR, PERPLEXITY, BLEU, WER從困惑度到實際效果

語言模型的評估方式:從困惑度到實際效果 評估語言模型(LLM)是否有效,并不僅僅是看它生成句子是否“聽起來通順”,我們需要定量的指標對模型性能做出系統性評價。評估方法主要分為兩大類: 內在評價&#x…

Java 企業級開發設計模式全解析

Java 企業級開發設計模式全解析 在 Java 企業級開發的復雜領域中,設計模式如同精湛的工匠工具,能夠幫助開發者構建高效、可維護、靈活且健壯的軟件系統。它們是無數開發者在長期實踐中總結出的解決常見問題的最佳方案,掌握這些模式對于提升開…

小剛說C語言刷題—1038編程求解數學中的分段函數

1.題目描述 編程求解數學中的分段函數。 …………x1 (當 x>0 )。 yf(x)…0 (當 x0 )。 ………x?1 (當 x<0 )。 上面描述的意思是&#xff1a; 當x>0 時 yx1 ; 當 x0 時 y0 ; 當 x<0 時 yx?1 。 輸入 輸入一行&#xff0c;只有一個整數x(?30000≤x≤30…

滾珠螺桿的精度如何保持?

滾珠螺桿通常用于需要精確定位的地方&#xff0c;高機械效率、低傳遞扭矩和幾乎為零的軸向游隙&#xff0c;使滾珠螺桿成為工具定位和飛機副翼驅動等應用中的重要設備。但是&#xff0c;連續工作產生的阻力和熱量會導致較大的摩擦力和定位誤差。那么&#xff0c;滾珠螺桿的精度…

在 Laravel 中深度集成 Casbin 到原生 Auth 系統

在 Laravel 中深度集成 Casbin 到原生 Auth 系統需要實現多層次的融合&#xff0c;以下是專業級實現方案&#xff1a; 一、核心集成架構 #mermaid-svg-WYM1aoAyHrR5bCdp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-…

JavaScript 實現輸入框的撤銷功能

在 Web 開發中&#xff0c;為輸入框添加撤銷功能可以極大地提升用戶體驗&#xff0c;方便用戶快速回滾到之前的輸入狀態。本文將通過一段簡單的 HTML、CSS 和 JavaScript 代碼&#xff0c;詳細介紹如何實現輸入框的撤銷功能。 整體實現思路 利用 JavaScript 監聽輸入框的inpu…

計算機視覺與深度學習 | 點云配準算法綜述(1992-2025)

點云配準算法綜述(1992-2025) 點云配準 點云配準算法綜述(1992-2025)一、傳統方法(1992-2020)1. **ICP(Iterative Closest Point)**2. **NDT(Normal Distributions Transform)**3. **4PCS(4-Points Congruent Sets)**二、深度學習驅動的方法(2018-2025)1. **Poin…

數據庫的二級索引

二級索引 10.1 二級索引作為額外的鍵 表結構 正如第8章提到的&#xff0c;二級索引本質上是包含主鍵的額外鍵值對。每個索引通過B樹中的鍵前綴來區分。 type TableDef struct {// 用戶定義的部分Name stringTypes []uint32 // 列類型Cols []string // 列名Indexes …

Java IO流核心處理方式詳解

一、IO流概述 Java IO&#xff08;Input/Output&#xff09;流是處理輸入輸出操作的核心機制&#xff0c;通過流&#xff08;Stream&#xff09;的形式實現設備間的數據傳輸。所有操作都基于以下兩個核心抽象&#xff1a; InputStream/OutputStream&#xff1a;字節流基類 Re…

WidowX-250s 機械臂的簡單數字孿生案例

前面一段時間記錄了一下WidowX-250s機械臂的學習與遙操作演示&#xff0c;相關鏈接如下&#xff1a; WidowX-250s 機械臂學習記錄&#xff1a; https://blog.csdn.net/qq_54900679/article/details/145556979 WidowX-250s 機械臂遙操作演示記錄&#xff1a; https://blog.c…

uniapp 云開發全集 云開發的概念

一、云開發的概念 1.1 云開發介紹 云開發 unicloud 是 DCloud 聯合阿里云、騰訊云、支付寶云&#xff0c;為開發者提供的基于 serverless 模式和 js 編程的云開發平臺&#xff0c;可以使用極小的成本代價開發具輕松實現前后臺整體業務。 1.2 云開發的核心組成 云開發的核心組…

GGD獨立站的優勢

GGD模式(基于Google生態的獨立站模式)越來越受歡迎&#xff0c;主要有以下原因&#xff1a; 1. 全球化覆蓋 GGD獨立站依托Google強大的生態系統&#xff0c;能夠幫助企業輕松觸達全球用戶&#xff0c;實現國際化布局&#xff0c;拓展業務范圍。Google作為全球最大的搜索引擎&…

簽名去背景圖像處理實例

一、前言 在生活中我們經常用到電子簽名&#xff0c;但有時候我們所獲取的圖像的彩色圖像&#xff0c;我們需要獲取白底黑字的電子簽名&#xff0c;我們可以通過下面程序對彩色圖像進行處理達到我們的處理目的。 原始彩色圖像如下&#xff1a; 二、程序和運行結果 clear all;c…

WebAssembly(Wasm):現代Web開發的超級加速器

在當今的Web開發領域&#xff0c;性能和效率是開發者們永恒的追求目標。隨著Web應用的復雜度不斷增加&#xff0c;傳統的JavaScript在某些場景下已經難以滿足高性能計算和復雜邏輯處理的需求。此時&#xff0c;WebAssembly&#xff08;Wasm&#xff09;作為一種新興的Web技術&a…

簡單理解MCP:AI如何使用工具

簡單理解MCP&#xff1a;AI如何使用工具&#xff08;以天氣/新聞服務為例&#xff09; 你是否注意到人工智能(AI)助手正變得越來越智能&#xff1f;它們不再僅僅是聊天&#xff0c;還能執行實際操作&#xff0c;比如查詢天氣、在線搜索&#xff0c;甚至預訂會議。這通常涉及到…

護網奇談: 紅隊工程師手記

零、引言&#xff1a;在演練中活著&#xff0c;在現實中消失 人們常說&#xff0c;護網是網絡安全界的“大閱兵”。 每年一次&#xff0c;紅藍對陣&#xff0c;政企聯動&#xff0c;戰鼓擂響&#xff0c;態勢大屏高掛&#xff0c;PPT如潮&#xff0c;報告成山。 你在屏幕前看…

機器翻譯與數據集

機器翻譯與數據集 語言模型是自然語言處理的關鍵&#xff0c;而機器翻譯是語言模型最成功的基準測試。因為機器翻譯正是將輸入序列轉換成輸出序列的序列轉換模型&#xff08;sequence transduction&#xff09;的核心問題。序列轉換模型在各類現代人工智能應用中發揮著至關重要…

基于 HTML 和 CSS 實現的 3D 翻轉卡片效果

一、引言 在網頁設計中&#xff0c;為了增加用戶的交互體驗和視覺吸引力&#xff0c;常常會運用一些獨特的效果。本文將詳細介紹一個基于 HTML 和 CSS 實現的 3D 翻轉卡片效果&#xff0c;通過對代碼的剖析&#xff0c;讓你了解如何創建一個具有立體感的卡片&#xff0c;在鼠標…

C++ 中二級指針的正確釋放方法

C 中二級指針的正確釋放 一、什么是二級指針&#xff1f; 簡單說&#xff0c;二級指針就是指向指針的指針。 即&#xff1a; int** p;它可以指向一個 int*&#xff0c;而 int* 又指向一個 int 類型的變量。 常見應用場景 動態二維數組&#xff08;例如 int** matrix&#x…