- 什麼是人工智能?人工智能=大數據+機器學習;我理解的現階段的人工智能是使用機器學習算法在大量的歷史數據下進行訓練,從歷史數據中找到一定的規律並對未來做出的預測行爲
這個圖就是一個人工智能服務的略縮圖。 在歷史數據上訓練出模型,併發佈一個預測服務,這個預測服務可能就是一個http的接口。 然後新的數據過來以後,根據模型算出一個預測值。經過剛纔的說明,我們看到數據是人工智能的根本。擁有的數據越多,越豐富,越真實,那麼訓練出的模型效果越好
-
測試思路
- 數據測試
- 分層測試
- 訓練集與測試集對比
- 模型誕生的步驟:
- 數據引入
- 數據處理(清洗,拆分,拼接等)
- 特徵工程
- 模型訓練
- 模型上線
參考:https://www.sohu.com/a/226070300_453160
人工智能測試方法:
轉自:https://www.jianshu.com/p/3966b2a18610
- 對人工智能的理解:人工智能(AI)是研究、開發用於模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學(定義)。**人工智能利用機器學習技術**,通過對現有的經過處理(篩選、消噪、過濾等)的數據,不斷進行矯正(設置閥值等方法)機器模型的輸出,此過程稱爲訓練,期望通過訓練可以得到在未來新數據上有良好表現的模型,從而投入生產。
-
人工智能目前應用的一些領域:
-
語音識別:人工智能在語音識別方面的應用相對較好,如siri、多鄰國讀音識別等
-
圖像識別:如高速車牌識別、人臉識別等
-
個性化推薦:如亞馬遜、今日頭條根據用戶閱讀歷史做的推薦系統,利用人工智能進行調參數
二、AI相關測試
2.1、測試分析
1) 人工智能歸根結底也是利用對歷史數據的處理訓練出可以在將來數據上有良好輸出的模型。
2) 對於測試而言,應該關心數據模型在對待正常數據、邊界數據、異常數據作爲輸入時,模型的輸出是否能夠符合期望。
2.2、測試方法
1) 改變測試集:如輸入與訓練時一樣的數據、與訓練時完全不同的數據、訓練時的邊界值等,看是否達到期望輸出
2) 如在安卓平臺運行的代碼:通過不斷點擊運行、以及快速退出和快速進入、處理大量數據、空數據、等觀察性能指標的上升等
3) 模型是否有良好的用戶交互
4) 人工智能發展目前有一定的技術限制,但是無論如何都不能造成應用crash、卡死、內存溢出等現象
5) 具體使用時,應有良好的告知用戶的提示,不能一直loading等
6) 模型是否能夠根據處理數據的量從少到多而自動不斷優化、調整輸出
7) 觀察模型輸出是否是一直不變化的
8) 經過多次改變輸入(百次計算),再進行迴歸測試,觀察輸出是否有一定程度調優(或者更差了)
9) 模型在處理數據時的效率(學習過程,cpu佔用率、內存消耗等)
10) 模型有沒有人性化的參數調整入口,供運營人員以及測試人員對上線後、上線前進行調整
11) 模型上線後應具有一定的參數調整能力(例如某些權重的調整等。業界今日頭條的某些推薦方案一旦效果好,據說會立刻將所有的模型進行模擬升級(切換到相同的模式))。
12) 風險控制,當發現嚴重問題時如何良好的控制線上的模型,對其進行開關以及升級操作,如上線後若發現難以控制的風險,如需要緊急下線(政策等影響)等問題時,需要有立刻關閉的功能以及關閉前對用戶的良好的提示功能。
13) 若此模型並不是單獨使用,有沒有良好的兼容性(兼容其他模型),遇到錯誤的使用時如何變現(以及提示方式)
14) 如模型需要與其他模型進行合作才能工作,那應當分開單獨進行測試,此模型應該具有良好的接口,和期望輸出。測試方法參照上面。然後再測試與其他模型共同工作時的效果
三、AI測試舉例:
3.1、語音識別部分
1) 輸入正常的語音
2) 輸入有雜音的語音
3) 輸入空白語音
4) 輸入不同語言的語音
5) 輸入長時間語音
6) 輸入重複語音
結論:訓練好的模型應在使用上滿足一定程度的場景,不能答非所問的太離譜
3.2、自優化測試:
1) 將測試集分成2部分(或多部分),第一次輸入第一部分然後觀察結果,然後再輸入第二部分,然後再次輸入第一部分,觀察輸出是否有優化的體現
3.3、性能部分:
1) [在進行語音識別時,觀察cpu、內存等佔用情況
2) 在語音識別結束觀察cup、內存有沒有釋放等情況
3) 觀察識別的時間長短
3.4、友好度測試:
1) 觀察在使用時弱網絡情況下的提示
2) 觀察識別出錯時的提示
3) 觀察正常時的提示
3.5、風險測試:
1) 功能入口測試(展示和關閉),是否能通過遠程直接關閉或開啓語音識別功能,升級等