當前位置:
首頁 > 最新 > 人工智慧測試初探

人工智慧測試初探

【前言】

AI系統與傳統軟體系統存在著很大的不同,如何保障AI系統的質量是我們面臨的新的課題。近期一直在找公司內相關專家進行交流,也查找了一些有關AI測試的資料,其中一篇文檔對人工智慧測試深有啟發。

文檔名稱是《testing-of-artificial-intelligence_sogeti-report》,出自SOGETI公司,我司曾經在測試領域與其合作過,該公司是一個技術諮詢與服務機構,在傳統的結構化測試領域提出了TMap、TMap Next等結構化測試方法論,這些方法論得到了廣泛的應用,形成了結構化測試的事實標準。現在與時俱進,也進入了AI測試的領域。

下面把這篇文檔中的關鍵信息列出來,文檔的詳細內容可參考附件。一個是原文,一個是翻譯後的。(註:翻譯的工作主要由谷歌翻譯完成,我大概對其中20%的內容進行了調整,整體上內容還算順暢。建議英語好的同事還是直接看原文比較好。

KM1:人工智慧測試的不同涵義

文中首先區分了兩個概念:「人工智慧的測試」-testing OF AI,「使用人工智慧進行測試」-testing WITH AI。

1、「人工智慧的測試」-testing OF AI

人工智慧軟體系統作為被測對象,測試面臨新的挑戰。

2、「使用人工智慧進行測試」-testing WITH AI

隨著對軟體快速交付的需求不斷增加,諸如敏捷和DevOps等戰略已經普遍使用。由人工智慧提供的機器學習能夠幫助測試能力的進一步提升。

從另外的資料裡面也有類似對人工智慧測試相關概念的區分說明,例如:

(鏈接:https://www.aitesting.org/)

1、methods to test AI systems-TESTING AI

2、development of AI systems to test software-AI TESTING

3、(ultimately designing software that is capable of)self-testing and self-healing-SELF-TESTING

KM2:人工智慧系統測試與

傳統軟體系統測試的區別

主要的區別在於,AI系統輸出的結果不是確定的,而是存在一個容差範圍;

AI系統的輸出由輸入訓練數據與訓練模型密切相關,因此針對這些內容的測試是核心活動;

人工智慧系統應用後所帶來的對業務流程和業務結果的影響可能與傳統IT系統的業務影響有很大的不同並且難以預料;

Tips:這裡對測試帶來新的挑戰,對於不確定和難以預料的結果,在實驗室更加難以進行驗證,在實驗室內部的驗證測試對測試環境以及人員能力的要求會更高,並且更多的測試內容需要在現網進行實際部署與應用後才能進行測試,測試的重心會向後端偏移;

人工智慧系統中的組件特別是它們的角色和屬性與傳統軟體解決方案是不同的,機器學習中的測試對象包括下面內容:

n 數據集:數據集包含機器學習解決方案可用的所有數據。通常這是一個公司的歷史數據,需要處理才能達到可用標準;

n 訓練數據;訓練數據是數據集的一個子集。這些數據用於在開發過程中訓練模型;

n 測試數據;測試數據是數據集的另一個子集。它用於驗證模型是否按預期工作。不能使用訓練數據作為測試數據,因為驗證AI是否已經學會了執行其決策所需的內容,這需要與訓練數據不同的數據。

n 模型:模型包括正在使用的演算法,AI根據該演算法從給定的數據中學習得到模型;

n 訓練(階段):訓練是演算法從數據中學習並做出預測的過程;

n 推理(階段):模型訓練完成後,可以根據輸入數據進行推理;

n 源代碼:機器學習解決方案的代碼行數比傳統解決方案少得多。不過,有源代碼可能有錯誤,因此必須進行單元測試和其他相關測試;

n 基礎設施:基礎設施必須適配非功能性的要求,因此必須對其進行檢查和測試;

n 需求:應該仔細檢查這個領域的需求。這項技術是新的,所以有可能這些期望是不現實的,或者超出了法律或倫理的界限;

n 輸入/輸出值:最基本的測試對象是輸入和輸出值。這是需要被確認的驗收標準。機器學習解決方案中的輸入值至關重要,因為數據處理的方式不得而知;

Tips:基於人工智慧系統開發與交付的過程和特點,其測試對象的範疇相比傳統軟體系統有很大的不同,其中最關鍵的幾個測試對象包括數據、模型、訓練和推理階段(過程)以及輸入/輸出值,針對這些測試對象如何進行測試需要繼續深入研究;

KM3:AI質量工程需要的新技能

Tips:在很多方面,AI系統的測試技能相比傳統軟體系統的測試技能的要求更高。包括:

(1)在諸如Python,Scala,R,Spark等最著名的機器學習語言中,強大的編程技能是必需的,並且需要使用Go和C ++等語言,以及像Tensorflow這樣的開源軟體庫;

(2)強大的數學技能,特別是統計學,微積分,線性代數和概率是理解機器學習的核心;

(3)機器學習,大數據和雲計算技能;

(4)有關計算機硬體體系結構的知識對於確定所選模型的性能至關重要;

(5)生物學,經濟學,社會科學和心理學能夠在數據科學家的工作中發揮作用;

(6)一旦物理機器人也參與其中,團隊成員需要機械和電子領域的額外技能;

AI測試技術:

1、A/B 測試(A/B testing)

2、測試輸入值(Testing the input values)

提供特定的輸入數據以查看AI如何學習(Feeding specific input data to see how the AI learns)

3、蛻變測試(Metamorphic testing)

非功能需求測試(Testing the nonfunctional requirements)

Tips:以上AI測試技術需要繼續進行深入分析與研究並轉化為切實可落地的方法、工具;

KM4:AI中數據的安全性與隱私

1、數據中毒(Data poisoning)

可以操縱訓練數據來訓練機器學習模型,這是攻擊者想要的。如果成功,該模型將按照攻擊者的意圖進行預測。這會產生嚴重的後果。

2、對抗樣本(Adversarial examples)

模型的輸入值可以被操控導致錯誤的預測。例如,你在圖片上看到一個杯子,但機器學習模型將它分類為摩天大樓(skyscaper)。原因是,模型中被增加了噪音數據。

3、監視AI的輸入(Monitoring the input of the AI)

監視學習器的實際行為並查看其輸出是否保持在預先設置的邊界內。

除了監測結果外,監測輸入並查看其是否保持在正常輸入容差範圍內同樣重要。

在控制輸入時,測試人員必須觀察機器學習中過度擬合和擬合不足的影響。欠擬合數據、過擬合數據。

Tips:需要關注AI訓練數據本身的質量,另外對於推理階段需要關注推理平台工具的安全性,避免由於系統平台安全性問題導致產生不適合的數據,這些數據輸入模型從而導致產生難以預期的結果;

KM5:總結AI測試

對人員能力與技能的要求

軟體工程,信息學,應用統計學或相關領域的教育背景

具有使用R,Python,C ++,Java等編程語言實施分析解決方案的經驗,可用於解決工程中的分析問題

深入理解統計和預測建模概念,機器學習方法,聚類和分類技術以及推薦和優化演算法

能夠定義要解決的關鍵業務問題,制定數學方法並收集數據來解決這些問題,開發,分析/得出結論

熱衷於解決業務問題,並在結構化和非結構化數據中找到模式和見解

洞察AI的六個質量角度以及這些角度如何影響測試活動

能夠提出分析策略和解決方案,挑戰並擴大周圍所有人的思維

數據分析功能

在整個軟體開發生命周期中全面了解質量保證

對單元測試,系統測試,系統系統測試,回歸測試,性能測試,安全測試等各種測試品種有深入的了解。

熟悉測試方法,策略,業務流程,測試工具和測試自動化

熟悉計算機晶元架構及其對不同機器學習方法的性能影響

Tips:以上內容可以作為AI測試人員招聘、培訓培養內容的參考;

人工智慧園地

更多信息,請您關注公眾號

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 人工智慧園地 的精彩文章:

TAG:人工智慧園地 |