回覆列表
  • 1 # Tser

    作為一名測試人,我真心不擔心這個事情的發生,就是真有那一天,ai也是軟體,是軟體就有bug!找bug就是我們測試人員的專職

  • 2 # 蝸牛學院

    首先闡明本題觀點,軟體測試工程師絕非是首先被AI替代的職位。但是,隨著人工智慧在各個領域的不斷髮展,軟體測試也在悄悄的受到人工智慧的影響。

    相信大家有段時間肯定被一篇叫做《AlphaGo Zero:這個世界人類是多餘的》的文章刷屏。總之,就是一個詞, 生無可戀。

    從勞動(或者工作)的範疇來劃分,我們可以看到有以下的四個方面:

    體力勞動腦力勞動風險勞動情緒勞動

    也就是說你的工作的比例,基本上可以從上面的四個方面上來做一個分佈。

    想想你日復一日的點點點,榨乾腦力的自動化測試框架,上線前的程式猿祭天和讓產品經理立字據的勇氣,是不是和上面的四個方面各自有一個對應。

    Tim Urban在《AI革命-通往超智慧道路》一文中指出,人工智慧分為三類:

    弱人工智慧Artificial Narrow Intelligence (ANI): 弱人工智慧是擅長於單個方面的任務型驅動的人工智慧。例如能戰勝圍棋世界冠軍的人工智慧,但是它只會下圍棋,如果讓它解決怎樣更好地在硬碟上儲存資料的問題,它就無法做到。目前人工智慧的發展尚且達到了弱人工智慧階段。

    強人工智慧Artificial General Intelligence (AGI): 人類級別的人工智慧。強人工智慧是指在各方面都能和人類比肩的人工智慧,人類能幹的腦力活它都能幹。創造強人工智慧比創造弱人工智慧難得多,Linda Gottfredson教授把智慧定義為“一種寬泛的心理能力,能夠進行思考、計劃、解決問題、抽象思維、理解複雜理念、快速學習和從經驗中學習等操作。”強人工智慧在進行這些操作時應該和人類一樣得心應手。

    超人工智慧Artificial Superintelligence (ASI): 牛津哲學家,知名人工智慧思想家Nick Bostrom把超級智慧定義為“在幾乎所有領域都比最聰明的人類大腦都聰明很多,包括科學創新、通識和社交技能。”超人工智慧可以是各方面都比人類強一點,也可以是各方面都比人類強萬億倍的。超人工智慧將給人類世界帶來什麼樣的顛覆,是生存還是毀滅成為大眾關注的熱點。

    從嚴格意義上說,測試領域尚未達到真正意義上人工智慧的應用階段,只能說目前還在向類人工智慧方向發展,發展的方向可以如下圖所示:

    AI測試的進化.PNG

    測試領域必將經歷三個階段才能邁向人工智慧的世界:手工測試。該階段偏向於用人工來做測試執行。

    測試自動化(Automation Testing)。該階段偏向於測試執行的自動化,尤其將重複手工測試部分進行自動化,從而提高測試效率,降低人工成本。其本質是人工編寫指令碼,程式操作,屬於任務型程式。

    自動化測試(AutomatedTesting)。雖然跟測試自動化前後顛倒一下,然而意義完全不一樣,它是將測試過程自動化,其包括了測試需求、測試用例設計、測試資料準備、測試環境搭建、測試版本部署、測試執行及測試報告都將自動化。然而這個過程仍然是人工設計干預,確定輸入,只是把過程進行自動化,機器本身並沒有達到自我學習的能力水平,屬於過程管理程式。

    AI化測試(AI Testing)。進入人工智慧階段以後,測試人工智慧的流程和框架可能會發生顛覆性的改變,其過程及手段並不一定遵守當前的測試生命週期理論。

    AI化測試將進行階段性的發展,測試工程師這一職業或許將不再存在,測試工作任務將會被AI逐步代替,結合上面的人工智慧的分類,整個測試領域會將隨著人工智慧的發展分為弱AI化測試、強AI化測試和超AI化測試。

    弱AI化測試,測試工作任務化人工智慧,透過對人類提出的知識圖譜,根據知識點,處理結構或非結構化資料,並透過對程式程式碼的分析,計算出系統的可能的薄弱環節,自動提供測試方案,完成測試驗證,指出問題所在,給予問題解決方案,甚至修改好程式。測試階段會從過去的單元測試、整合測試、系統測試和驗收測試縮減為兩個階段:機器測試和使用者測試。由於最終使用者是人類,所以前端仍需要人類的介入,只是後端得到了整合,縮短了產品開發上市的時間。測試的本質還是基於傳統的“機器為人服務”的關係。

    強AI化測試,將進一步的向測試領域上游滲透,對測試需求,甚至產品需求進行自我認知與學習,透過對使用者使用資料的分析,挖掘使用者需求、產品特性,根據得出的結果,提出產品需求,開發實現產品,並執行相關測試,與需求進行匹配運算,確認產品質量。因此在強AI化測試階段,測試概念已經進化到“機器為機器服務”的關係。

    超AI化測試,對使用者的需求進行引導,使使用者在潛意識受到人工智慧的暗示做出決策,也就是說人工智慧引導需求,人類反而潛意識會認為這個需求是由自我產生。人工智慧的測試則演變成為人工智慧服務的工作,這已不是傳統意義的測試和驗證,更趨向於人類世界的醫生與病人的關係。測試已經演變成“人為機器服務”的階段了。

    以上是對未來的一個暢想,在現在的這個節點上,AI測試方面的探索,CC先生也只看到了一些相關的探索,還屬於 弱AI化測試:

    比如,瑞典的一家公司(http://King.com)採用Monte Carlo樹搜尋演算法、自動啟發式構建演算法、增強拓撲的神經元演化演算法 (Neuro Evolution of Augmenting Topologies,NEAT )來訓練 AI測試工具 (bots) ,模擬人類互動能力,完成對Candy Crush Soda遊戲的功能測試、穩定性測試和效能測試,並評估遊戲難度級別,預測遊戲的成功率。

    或者對於APP的測試,有一家NimbleDroid公司(創始人是華人)有一個爬蟲可以發現 APP 有什麼用例,然後對每個用例可以進行分析,看它的效能是什麼樣的,有沒有記憶體洩露、效能問題、卡頓等現象,還包括程式啟動慢有哪些原因。

    又或者,美國一家公司(Appdiff)推出測試機器人,能夠全面分析App應用中的每個介面、元素和操作流,進行效能測試和使用者體驗測試(懷疑嗎)。Appdiff的智慧機器人,可以克服經典的測試方法所存在的速度慢、開銷大的問題,具備類似人類的洞察力,就像魔術一樣快速完成測試,而且具有學習能力,App應用程式測試越多,工具會自動地變得越來越聰明。採用的AI,就可以替換過去指令碼的開發,讓自動化測試進行得更輕鬆,而且AI能處理的測試輸入,手工是無法相比的。

    那現在,我們可以拷問自己一個問題:AI已來,人類測試人員的核心競爭力到底是很什麼?

    我試圖從勞動的四象限裡去尋找一下答案。

    既然體力已經不是問題,腦力上AI是完勝人類的學習消耗曲線。(從Alpha zero的學習曲線裡面就可以看到端倪)

    風險上,AI也許比人類有更高一點的承受能力。

    剩下的,估計就是情緒勞動這一片領地了。試想一下,如果開發和產品經理還是人類的情況下,他們會更願意對著一個AI進行交流還是和一個有著很好溝通能力的人類測試人員呢?

    之前CC先生說過,測試人員需要的不僅是硬技能(比如程式設計,比如自動化技術等等),他/她還需要有各種的軟技能(溝通能力,總結能力等等)

    回到蘋果公司的CEO庫克對人工智慧的看法上:“我並不擔心人工智慧可以讓計算機像人類一樣思考。我擔心的是人類會像計算機一樣思考,沒有自己的價值觀或同情心,不考慮事情的後果。”

  • 中秋節和大豐收的關聯?
  • 月球知識30題?