AI測試的迷思
近年來,我一直關注AI相關的測試,並積極參與多個全國性測試社群和社群。在這些社群中,我與不同公司和領域的測試專家交流探討AI測試相關主題,包括業界頂尖公司的專家和國內知名測試學者。我也參加了多個大會,聆聽了許多關於AI測驗的主題分享,並嘗試了多款AI相關的測驗工具,從中獲得了許多知識和感悟。
在這些測試社群和社群中,我遇到了許多關於AI測試的問題,例如什麼是AI測試,如何進行AI測試,AI測試有哪些工具與方法等。然而,當我在網路上搜尋AI測試相關的書籍時,卻發現大量的AI開發相關書籍,卻鮮有專門介紹AI測試的書籍。這說明測試業界仍在混沌中不斷摸索前進。
為了分享我所學到的AI測試相關知識和經驗,我梳理了自己的學習經歷,嘗試回答了一些我遇到的關於AI測試的常見問題,並將這些內容整理成文章,與大家一起交流探討。
AI測試的迷思
在討論AI測試時,通常會有兩種理解:
- 第一種是利用AI輔助目前的軟體測試,例如使用AI系統學習測試分析和測試設計,進而自動產生測試案例並自動化實現這些測試案例。
- 第二種則是對AI系統進行測試。儘管業界對於AI系統進行測試仍然使用常規測試手段,如功能測試、性能測試和安全測試等,但測試其功能有效性時往往難以獲取明確的測試數據和驗收條件。在這種情況下,只能透過對演算法的深入理解和根據經驗產生或尋找數據,並大致評估功能測試結果的有效性來進行測試。
而利用AI輔助目前的自動化測試則是一個新興領域。使用AI(如深度學習)系統來幫助測試工作絕對是近幾年最熱門的測試趨勢之一,其中包括自動生成並執行自動化測試、大規模測試結果分析、自動化探索性測試、缺陷定位等。
美國已經有多家公司推出了商用的AI測試工具。在朱少民老師的公眾號「軟體品質報道」中,有一篇名為《未來已來,人工智慧測試勢不可擋:介紹9款AI測試工具》的文章,介紹了9款基於AI的測試工具。但這些AI測試工具普遍存在測試用例準確性和大規模測試用例可維護性等問題。
第一個問題:AI輔助測試真的能用嗎?
雖然許多公司已經開始研究AI輔助測試,並且有許多工具問世,但它們都有一個顯著問題:準確性。由於現有的AI學習演算法本身的限制,學習並產生的測試案例和驗證條件的準確率都不是非常高。我曾參加過幾個大會,其中一些中國一線網路廠商分享的AI輔助測試的準確率僅略高於80%,不到90%。這種準確率在金融等某些對精度要求高的系統中很難被認可。
其次,當自動化測試案例規模很大時,測試案例的維護工作很難依靠人工完成,只能依靠工具。由於AI測試工具的不準確性,導致維修工作的準確性也不是十分理想。
儘管如此,在品質要求不高的大型系統中,AI輔助測試可以大幅降低測試成本,因此在這些系統中,AI輔助自動化測試已經被應用。此外,在品質要求高且資源充足的專案中,AI輔助測試可以作為人工自動化測試的擴展,作為自動化探索性測試的一種工具,可以進一步確保軟體品質。
第二個問題:AI輔助測驗已經發展到什麼程度了?
目前,AI輔助測試仍處於初步階段。我將AI輔助測試分為三個階段:
- 第一階段是透過深度學習模型自動產生測試案例的輸入,然後透過手動驗證輸出結果的正確性。
- 第二階段是透過深度學習模型自動產生測試案例的輸入,並透過規則模型自動驗證輸出結果的正確性。
- 第三階段是透過深度學習模型自動產生測試案例的輸入和輸出,並自動驗證輸出結果的正確性。
目前業界已經基本實現了第一階段,有些公司也已經開始實現第二階段。然而,只有極少數的大公司已經實現了第三階段,而這些公司的準確性仍有待提高。因此,AI輔助測試仍有很長的路要走。
第三個問題:哪些軟體系統能用AI輔助測試?
理論上,任何軟體系統都可以使用AI來輔助自動化測試工作。然而,由於目前AI測試系統的現狀,它還不能真正用於所有類型的軟體系統。許多實際項目只在某些特定係統的特定介面層上使用AI測試,例如Web Service API等。
在不同產業領域中,AI測試的使用情況也不同。例如,在金融和軍工等對品質要求很高的行業中,AI測試目前只能作為目前已有功能自動化測試的擴展部分。而在網路等品質要求不高的產業中,一些技術能力強的公司已經將AI測試作為主要的自動化測試方式之一。不過,AI輔助自動化測試無疑是自動化測試的未來!
總結
透過上面對問題的回答,希望能解決大家對於AI測試的困惑,包括了解什麼是AI測試,自己的專案是否適合使用AI測試,以及未來是否需要在AI測試上投資等問題。
綜上所述,AI測試目前仍處於發展初期,因此不適合大規模使用,只有在特定專案中才可以考慮使用。無論是使用AI還是人工方式實施自動化測試,核心都是測試的有效性和測試結果的準確性,以及測試案例的可維護性。這些都是大規模自動化測試成功與否的關鍵因素。
因此,無論是AI自動測試還是人工自動測試,其核心本質都是一樣的:靠知識學習、分析、總結等一系列人的思維來解決測試分析、測試設計和自動化測試實現的工作。但目前AI系統本身的發展還不足以很好地替代人在測試分析和測試設計方面的工作,導致AI實現的自動化測試的準確性以及可維護性比人工方式更差。不過,AI測試在時間和成本方面有明顯的優勢,這也是其越來越受歡迎的原因。
因此,在測試領域,AI需要更加努力才能真正取代人的工作。在考慮使用AI測試之前,應該仔細評估專案的特定需求和條件,以確定是否適合使用AI測試。未來,隨著AI技術的不斷發展和完善,AI測試將成為自動化測試的重要趨勢,而投資於AI測試的相關技術和人才也將是一個明智的選擇。
以上是AI測試的迷思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。
