我們都從一些非常聰明的人那里聽(tīng)說(shuō)過(guò)用于軟件測(cè)試的AI,但是這個(gè)想法引起了很多困惑。本文解決了你可能會(huì)問(wèn)的一些問(wèn)題,比如使用AI進(jìn)行軟件測(cè)試是否需要成為天才?AI會(huì)取代我們成為測(cè)試員嗎?在我們的測(cè)試策略中AI適合哪些方面?用訓(xùn)練狗的簡(jiǎn)單類(lèi)比,了解AI如何適合測(cè)試。
首先,我要說(shuō)的是,我對(duì)數(shù)學(xué)和編碼沒(méi)有足夠的熱情,足以關(guān)心AI的內(nèi)在和技術(shù)方面。我認(rèn)為作為一個(gè)軟件測(cè)試人員,它對(duì)技術(shù)概念有很好的認(rèn)知,并且可以使用多種編程語(yǔ)言編寫(xiě)普通的代碼。我相信軟件測(cè)試是由人來(lái)完成的,并且我相信測(cè)試是通過(guò)探索和試驗(yàn)來(lái)了解產(chǎn)品來(lái)評(píng)估產(chǎn)品的過(guò)程。但是我也喜歡自動(dòng)化和工具。
讓我們解決你可能會(huì)問(wèn)的一些問(wèn)題,以便我們所有人都能更好地了解AI如何用于測(cè)試。
使用AI進(jìn)行軟件測(cè)試是否需要成為天才?
如上面所述,在AI的內(nèi)部運(yùn)作方面,我絕不是AI專(zhuān)家。信不信由你,由于我在訓(xùn)練狗方面的背景,我發(fā)現(xiàn)自己喜歡AI。
嚴(yán)肅地說(shuō),讓我們超級(jí)簡(jiǎn)化一下,把AI機(jī)器人與狗進(jìn)行比較。如果你曾經(jīng)養(yǎng)過(guò)小狗,我相信你有過(guò)這樣的經(jīng)驗(yàn),當(dāng)你要求讓它們坐下來(lái),但是它們只用困惑的臉抬頭看著你。所以你掏出了點(diǎn)心,當(dāng)它們的屁股撞到地上時(shí),你就獎(jiǎng)勵(lì)了它們。它們很快了解到“坐下”等于報(bào)酬。然后,你開(kāi)始在上面貼上標(biāo)簽。你會(huì)說(shuō)“坐下”,如果屁股撞到了地面,它們會(huì)得到一種獎(jiǎng)勵(lì),所以“坐下”意味著在地面上撞屁股,得到食物了!
同樣,人工智能機(jī)器人以一種雜亂的方式抓取你的應(yīng)用程序,嘗試不同的路徑并瀏覽不同的屏幕。只有當(dāng)機(jī)器人開(kāi)始為它們的行為獲得“獎(jiǎng)勵(lì)”時(shí),它們才開(kāi)始學(xué)習(xí)我們要它們做什么。一旦它們?yōu)g覽了應(yīng)用程序的一部分,它們便獲得了獎(jiǎng)勵(lì),我們標(biāo)記了該動(dòng)作,然后它們以可重復(fù)的方式執(zhí)行了該動(dòng)作。就是這么簡(jiǎn)單,無(wú)論你是用戶(hù)還是培訓(xùn)師。
你不需要成為一名獸醫(yī)就可以訓(xùn)練狗,但是對(duì)狗的思維方式和動(dòng)機(jī)有一個(gè)大致的了解確實(shí)有幫助。同樣,你無(wú)需能夠創(chuàng)建AI機(jī)器人來(lái)了解如何使用它們進(jìn)行軟件測(cè)試。但是,你應(yīng)該知道如何測(cè)試軟件,并對(duì)AI的工作原理有足夠的了解,以便正確使用它。
AI會(huì)取代我們成為測(cè)試員嗎?
繼續(xù)這個(gè)比喻,我們直接說(shuō)一個(gè)事實(shí),那就是仍然有積極從事工作的訓(xùn)犬師。狗還沒(méi)有學(xué)會(huì),也似乎沒(méi)有真正的欲望或意圖去開(kāi)始互相了解如何坐以待命。部分原因是它們不會(huì)說(shuō)我們所能理解的語(yǔ)言。
機(jī)器人的相似之處在于它們尚無(wú)法自我訓(xùn)練。即使它們可以,它們也缺乏理解軟件測(cè)試所需的上下文和目的的能力。因此,如果你認(rèn)為你可以雇用很多AI機(jī)器人來(lái)代替你的測(cè)試人員,或者如果你認(rèn)為自己將失去AI機(jī)器人的工作,那么你是完全錯(cuò)誤的。
AI在我們的測(cè)試策略中適合哪些方面?
如果你問(wèn)自己這個(gè)問(wèn)題,你將獲得獎(jiǎng)牌。關(guān)于人工智能,我一直注意到的準(zhǔn)入障礙之一是二進(jìn)制的想法:你要么必須選擇“人工智能所有事物!”或“沒(méi)有適合你的人工智能!”
任何事物都會(huì)貼近事實(shí)。正如我已經(jīng)解釋的那樣,AI不會(huì)取代軟件測(cè)試員。我還想解決那個(gè)問(wèn)題,就是AI無(wú)法而且不應(yīng)該做所有事情。
AI和自動(dòng)化是可以在軟件測(cè)試中使用的工具。它們不能自己測(cè)試軟件,很容易被濫用,但是應(yīng)使用它們來(lái)補(bǔ)充你的測(cè)試。就像私人助理一樣,它們會(huì)執(zhí)行我們沒(méi)有時(shí)間或渴望去做的事情,這使我們有時(shí)間專(zhuān)注于重要的事情。
許多公司都試圖“使所有事情自動(dòng)化”。我們?cè)S多人仍在嘗試使所有事情自動(dòng)化。有些事情不應(yīng)該自動(dòng)化。安吉·瓊斯(Angie Jones)對(duì)此進(jìn)行了精彩的演講和授課。就像自動(dòng)化一樣,人工智能不應(yīng)該用于“AI所有事物!”你可以將腳趾伸進(jìn)眾所周知的AI水里。
以狗訓(xùn)練類(lèi)比為基礎(chǔ),你不會(huì)要求狗開(kāi)汽車(chē)。我不會(huì)要求AI進(jìn)行復(fù)雜的組合自動(dòng)化。
你可能會(huì)想:“但是等一下。人工智能很聰明,所以我不應(yīng)該讓它去做困難的事情嗎?”?答案是,你絕對(duì)可以讓它完成艱巨的任務(wù)。但是你必須一遍又一遍地做些什么呢?你知道,這些東西令人無(wú)聊,高度可重復(fù)并且需要測(cè)試人員花費(fèi)很多個(gè)小時(shí)嗎?那真的是對(duì)測(cè)試人員大腦的最佳利用嗎?你是否雇用它們只是日復(fù)一日地按按鈕,還是雇用它們來(lái)做它們熟練的工作,這就是測(cè)試?
我供職的一家公司花費(fèi)大量資金支付我的測(cè)試團(tuán)隊(duì)在生產(chǎn)環(huán)境中進(jìn)行冗余UI檢查。這是我們大多數(shù)人都不喜歡的令人麻木的工作。使用AI,我們能夠連續(xù)運(yùn)行這些檢查,并為開(kāi)發(fā)和運(yùn)營(yíng)提供快速反饋。最重要的是,我們正在使用的AI服務(wù)提供的指標(biāo)包括CPU使用率,內(nèi)存使用率和性能。因此,在運(yùn)行自動(dòng)化程序的同時(shí),我們能夠?qū)σ恍┬阅苤笜?biāo)進(jìn)行趨勢(shì)分析并查看模式,而無(wú)需進(jìn)行額外的特定負(fù)載和性能測(cè)試。這是一個(gè)處理我們問(wèn)題的非常有效的解決方案。
人工智能的最佳用途可能只是處理測(cè)試人員不想做的所有事情。如果讓機(jī)器人執(zhí)行簡(jiǎn)單、可重復(fù)的任務(wù),則可以讓測(cè)試人員進(jìn)行實(shí)際測(cè)試。因此,你不必?fù)?dān)心每天都要按動(dòng)按鈕,而是要讓它們動(dòng)腦筋。
現(xiàn)在,你有了一個(gè)機(jī)器人,它在做測(cè)試人員以前在做的事情,除了更快、更有效之外,并且你有一個(gè)熱情的人在熱情地進(jìn)行測(cè)試。恭喜,你剛剛增加了你的產(chǎn)品范圍!
這就是為什么需要將AI納入測(cè)試策略的原因,就像將自動(dòng)化納入測(cè)試策略一樣。
總之,人工智能和人類(lèi)可以而且應(yīng)該一起測(cè)試軟件。使用AI進(jìn)行軟件測(cè)試不必成為天才。你只需要對(duì)此保持靈活。人工智能不是軟件測(cè)試的靈丹妙藥,因此不應(yīng)被這樣使用。通過(guò)戰(zhàn)略性地使用AI來(lái)補(bǔ)充其它測(cè)試工作,你可以大大提高產(chǎn)品覆蓋率。而且,如果你使用AI來(lái)完成簡(jiǎn)單、可重復(fù)的任務(wù),則可以讓測(cè)試人員專(zhuān)注于它們擅長(zhǎng)的工作:測(cè)試,從而提高測(cè)試人員的士氣。