被炒上天了的AI,嗨得太離譜!
去年年底,仿佛一夜之間,人工智能又嗨起來(lái)了,先是DALL-E2的生成圖像惟妙惟肖,那副“騎馬的宇航員”讓人過(guò)目難忘,緊接著是StableDiffusion這個(gè)文本生成圖像的公開(kāi)版權(quán)的作圖AI,最后的“王炸”:出道即巔峰的ChatGPT,給OpenAI賺足了面子。甚至春節(jié)期間,很多互聯(lián)網(wǎng)人都在感嘆“岌岌可?!?,生怕這波人工智能的高潮,真要搶走飯碗了。然而,現(xiàn)實(shí)真的會(huì)這樣嗎?AI會(huì)讓計(jì)算機(jī)應(yīng)用軟件迎來(lái)復(fù)興時(shí)刻嗎?本文以一個(gè)具體的領(lǐng)域應(yīng)用為例,闡述AI被工具化的三個(gè)階段,并說(shuō)明AI不應(yīng)該,也不可能發(fā)展成完全自主的幾點(diǎn)理由。此外,筆者還分享了真正的AI角色應(yīng)該是怎樣的。我們需要警惕,但無(wú)須驚慌。
“有了人工智能,交付時(shí)間將從幾分鐘減少到幾秒鐘!”“供應(yīng)商和客戶將重回到廉價(jià)和用戶友好的體驗(yàn)的時(shí)代,計(jì)算機(jī)應(yīng)用軟件將迎來(lái)復(fù)興時(shí)刻!”
可打臉的是,廉價(jià)的存儲(chǔ)空間、高速的處理速度、隨時(shí)可用的AI訓(xùn)練設(shè)備以及互聯(lián)網(wǎng)已經(jīng)將這一承諾變成了夸大其詞的炒作。
以軟件測(cè)試為例,搜索“人工智能在軟件測(cè)試中的應(yīng)用”,系統(tǒng)會(huì)返回一系列向潛在買家承諾的“神奇”的解決方案。許多解決方案提供了減少手工勞動(dòng)、提高質(zhì)量和降低成本的方法。有些奇葩的是,有些廠商承諾他們的AI方案能完美解決軟件測(cè)試問(wèn)題,用詞更是驚掉下巴——軟件測(cè)試的“圣杯”ーー想法是這樣說(shuō)的ーー就是把人們從伴有困難和煩惱的軟件開(kāi)發(fā)循環(huán)中解脫出來(lái),使測(cè)試周期更短、更有效、更簡(jiǎn)單。
AI真可以化身成萬(wàn)能的“圣杯”嗎?而且,我們也該讓AI全替代人類嗎?這些近乎荒誕的炒作,實(shí)在是該歇歇了。
1、現(xiàn)實(shí)的真相
在現(xiàn)實(shí)世界中,將人類排除在軟件開(kāi)發(fā)過(guò)程之外要復(fù)雜得多,也令人望而生畏。不管使用瀑布、快速應(yīng)用開(kāi)發(fā)、DevOps、敏捷和其他方法,人們?nèi)匀皇擒浖_(kāi)發(fā)的中心,因?yàn)樗麄兌x了他們創(chuàng)建的軟件的邊界和潛力。在軟件測(cè)試中,由于業(yè)務(wù)需求通常不明確且不斷變化,所以“目標(biāo)”總是在變化。用戶要求改變可用性,甚至開(kāi)發(fā)人員對(duì)軟件可能性的期望也會(huì)發(fā)生變化。
軟件測(cè)試的最初標(biāo)準(zhǔn)和方法(包括術(shù)語(yǔ)質(zhì)量保證)來(lái)自制造產(chǎn)品測(cè)試領(lǐng)域。在這種情況下,產(chǎn)品是定義良好的,二者相比,測(cè)試更加機(jī)械化,但軟件的特性是可塑的,并且經(jīng)常變化。軟件測(cè)試不適用于這種保證質(zhì)量的統(tǒng)一的機(jī)器方法。
在現(xiàn)代軟件開(kāi)發(fā)中,許多事情是開(kāi)發(fā)人員無(wú)法預(yù)料和知悉的。例如,用戶體驗(yàn)(UX)期望可能在軟件的第一次迭代之后就已經(jīng)改變了。具體的比如:人們對(duì)更快的屏幕加載時(shí)間或者更快的滾動(dòng)需求有更高的期望、用戶不再想要冗長(zhǎng)的向下滾動(dòng)屏幕,因?yàn)樗辉倭餍小?/p>
種種原因表明,人工智能永遠(yuǎn)無(wú)法獨(dú)自預(yù)測(cè)或測(cè)試,連它的創(chuàng)造者都無(wú)法預(yù)測(cè)的東西。所以在軟件測(cè)試領(lǐng)域,不可能有真正自主的人工智能。創(chuàng)建軟件測(cè)試“終結(jié)者”可能會(huì)激起吃瓜者和潛在買家的興趣,但這種部署注定是海市蜃樓。相反,在人工智能與人類協(xié)同工作的背景下,軟件測(cè)試自主性更有意義。
2、AI需要經(jīng)歷三個(gè)成熟階段
軟件測(cè)試AI開(kāi)發(fā),基本上分為三個(gè)成熟的階段:
操作性階段(Operatinal)
過(guò)程性階段(Process)
系統(tǒng)性階段(Systemic)
目前絕大多數(shù)基于人工智能的軟件測(cè)試都處于操作性階段。最基本的操作測(cè)試包括創(chuàng)建模仿測(cè)試人員執(zhí)行數(shù)百次的例程的腳本。這個(gè)例子中的“AI”遠(yuǎn)遠(yuǎn)不夠智能,它可以幫助縮短腳本創(chuàng)建、重復(fù)執(zhí)行和存儲(chǔ)結(jié)果。
過(guò)程性AI是操作性AI的一個(gè)更成熟的版本,測(cè)試人員使用過(guò)程AI進(jìn)行測(cè)試生成。其他用途可能包括測(cè)試覆蓋范圍分析和建議、缺陷根本原因分析和工作量估計(jì),以及測(cè)試環(huán)境優(yōu)化。過(guò)程AI還可以促進(jìn)基于模式和用法的合成數(shù)據(jù)創(chuàng)建。
過(guò)程性AI的好處顯然易見(jiàn),它提供了一雙額外的“眼睛”,以抵消和對(duì)沖掉測(cè)試人員在設(shè)置測(cè)試執(zhí)行策略時(shí)所承擔(dān)的一些風(fēng)險(xiǎn)。在實(shí)際應(yīng)用中,過(guò)程性AI可以讓修改代碼后的測(cè)試變得更容易。
手動(dòng)測(cè)試,經(jīng)常會(huì)看到測(cè)試人員重新測(cè)試整個(gè)應(yīng)用程序,查找代碼更改時(shí)的意外后果。
另一方面,過(guò)程性AI可以建議對(duì)單個(gè)單元(或有限影響區(qū)域)進(jìn)行測(cè)試,而不是對(duì)整個(gè)應(yīng)用程序進(jìn)行大規(guī)模重新測(cè)試。
在這個(gè)級(jí)別的人工智能,我們發(fā)現(xiàn)在開(kāi)發(fā)時(shí)間和成本方面有明顯的優(yōu)勢(shì)。
然而,目光切換到第三階段——系統(tǒng)性AI時(shí),畫風(fēng)就會(huì)朦朧起來(lái),因?yàn)?,未?lái)可能會(huì)成為一個(gè)滑坡的、無(wú)回報(bào)的承諾而已。
3、不靠譜的系統(tǒng)性AI
系統(tǒng)性(或者說(shuō)完全自主的)AI測(cè)試,之所以不可能(至少目前不可能),原因之一是AI將需要大量的培訓(xùn)。測(cè)試人員可以確信過(guò)程AI將建議一個(gè)單元測(cè)試來(lái)充分保證軟件質(zhì)量。然而,對(duì)于系統(tǒng)AI,測(cè)試人員無(wú)法高度自信地知道該軟件將滿足所有需求。
如果這個(gè)級(jí)別的人工智能真的是自主的,它將不得不測(cè)試所有可以想象到的要求——甚至是那些人類沒(méi)有想象到的要求。然后,他們需要審查自主AI的假設(shè)和結(jié)論。要證實(shí)這些假設(shè)是正確的,需要花費(fèi)大量的時(shí)間和精力,才能提供高度可信的證據(jù)。
自主軟件測(cè)試永遠(yuǎn)不可能完全實(shí)現(xiàn)。因?yàn)槿藗儾粫?huì)信任它,而這就相當(dāng)于失去了實(shí)現(xiàn)完全自主的目標(biāo)與前提。
4、人工智能需要調(diào)教
盡管完全自主的人工智能是一個(gè)神話,但支持和擴(kuò)展人類在軟件質(zhì)量方面的努力的人工智能是一個(gè)值得追求的目標(biāo)。在這種情況下,人類可以支持人工智能:測(cè)試人員依舊需要保持耐心地監(jiān)督、糾正和教導(dǎo)人工智能以及其依賴的不斷進(jìn)化的訓(xùn)練集。挑戰(zhàn)在于如何訓(xùn)練人工智能,同時(shí)為測(cè)試軟件中的各種bug分配風(fēng)險(xiǎn)。這種訓(xùn)練必須是持續(xù)的,不僅限于測(cè)試領(lǐng)域。自動(dòng)駕駛汽車制造商訓(xùn)練人工智能,以區(qū)分一個(gè)人究竟是在過(guò)馬路還是在騎自行車。
測(cè)試人員必須用過(guò)去的數(shù)據(jù)訓(xùn)練和測(cè)試人工智能的軟件,以建立他們對(duì)人工智能能力的信心。同時(shí),真正自主的人工智能在測(cè)試中需要預(yù)測(cè)未來(lái)的條件ーー開(kāi)發(fā)人員引導(dǎo)和用戶引導(dǎo)ーー這是它無(wú)法根據(jù)歷史數(shù)據(jù)做到的。相反,訓(xùn)練者往往會(huì)根據(jù)自身的偏見(jiàn),基于數(shù)據(jù)集訓(xùn)練人工智能。這些偏見(jiàn)限制了人工智能探索的可能性,就好比盲人為了確定性,會(huì)阻止馬匹偏離既定路徑一般。人工智能表現(xiàn)的越有偏見(jiàn),可信度就會(huì)越糟糕。人工智能所能接受的最好訓(xùn)練,就是處理風(fēng)險(xiǎn)概率,并得出最終由人類評(píng)估的風(fēng)險(xiǎn)緩解策略。
5、風(fēng)險(xiǎn)緩解措施
說(shuō)到底,軟件測(cè)試關(guān)乎測(cè)試人員的成就感和自信心。它們衡量和評(píng)估,初始實(shí)現(xiàn)的可能結(jié)果以及可能給開(kāi)發(fā)人員和用戶帶來(lái)問(wèn)題的代碼更改。但不可否認(rèn)的是,即便軟件測(cè)試已經(jīng)充分探索了應(yīng)用程序崩潰的每一種可能性,可信度都不可能是100%的。無(wú)論是人工執(zhí)行還是自動(dòng)執(zhí)行,在所有軟件測(cè)試中都存在風(fēng)險(xiǎn)因素。
測(cè)試人員必須根據(jù)代碼引起問(wèn)題的可能性來(lái)決定測(cè)試覆蓋率。他們還必須使用風(fēng)險(xiǎn)分析來(lái)決定哪些領(lǐng)域應(yīng)該集中在覆蓋范圍之外。即使人工智能確定并顯示了軟件在用戶活動(dòng)鏈中任何一點(diǎn)發(fā)生故障的相對(duì)概率,但測(cè)試人員仍然需要手動(dòng)確認(rèn)計(jì)算結(jié)果。
人工智能為受歷史偏差影響的軟件連續(xù)性提供了可能性。然而,人們對(duì)人工智能的風(fēng)險(xiǎn)評(píng)估和降低風(fēng)險(xiǎn)的秘方,仍然沒(méi)有很高的信心。
支持AI的軟件測(cè)試工具應(yīng)該是實(shí)用和有效的,以便幫助測(cè)試人員產(chǎn)生真實(shí)的結(jié)果,同時(shí)減輕測(cè)試人員的手工勞動(dòng)。
人工智能在軟件測(cè)試中最令人興奮(也可能具有破壞性)的部署,是處于人工智能開(kāi)發(fā)成熟度的第二級(jí):過(guò)程性AI。正如Katalon的一位研究人員指出的那樣,“應(yīng)用于軟件測(cè)試的AI最大的實(shí)際用途是在過(guò)程級(jí)別,即自主測(cè)試創(chuàng)建的第一階段。這將是我能夠創(chuàng)建自動(dòng)化測(cè)試的時(shí)候,這些測(cè)試可以由我創(chuàng)建,也可以服務(wù)于我?!?/p>
自主和自我導(dǎo)向的人工智能,取代所有人類參與軟件測(cè)試過(guò)程等云云的話,皆是炒作。期望人工智能能夠擴(kuò)大和補(bǔ)充人類的努力并縮短測(cè)試時(shí)間,這是更為現(xiàn)實(shí)和可取的。
來(lái)源:51CTO技術(shù)棧