將傳統(tǒng)大型主機(jī)應(yīng)用的代碼和數(shù)據(jù)遷移到現(xiàn)代化技術(shù)架構(gòu)上,被業(yè)界認(rèn)為是企業(yè)信息系統(tǒng)數(shù)字化發(fā)展的關(guān)鍵階段。尤其是在追求提高效率和可擴(kuò)展性的過(guò)程中,這種轉(zhuǎn)變通常會(huì)涉及到從傳統(tǒng)的大型主機(jī)環(huán)境,轉(zhuǎn)移到更加靈活的云計(jì)算、或是在內(nèi)部部署方案中。
不過(guò),隨著業(yè)務(wù)環(huán)境的動(dòng)態(tài)變化,也會(huì)使得遷移過(guò)程變得更加復(fù)雜。這不僅僅是技術(shù)上的資源重新部署,而且是一種根本性的轉(zhuǎn)變,因此往往需要經(jīng)歷嚴(yán)格的測(cè)試,以確保各項(xiàng)功能的等效,進(jìn)而保持應(yīng)用在運(yùn)行上的完整性和性能上的標(biāo)準(zhǔn)化。
同時(shí),在遷移之后,應(yīng)用程序經(jīng)常會(huì)在新的要求、業(yè)務(wù)戰(zhàn)略的演變、以及監(jiān)管標(biāo)準(zhǔn)變化的驅(qū)動(dòng)下,被迫進(jìn)行大量的修改。而每一次修改,無(wú)論是微小的調(diào)整、還是重大的“翻修”,都必須經(jīng)過(guò)嚴(yán)密的測(cè)試。其中最關(guān)鍵的挑戰(zhàn)就在于,如何確保新的變化能夠與現(xiàn)有的功能和諧集成,而不會(huì)造成意想不到的后果或中斷。可見(jiàn),驗(yàn)證新功能和保留現(xiàn)有功能的雙重要求,凸顯了在遷移后自動(dòng)化測(cè)試套件的重要性。
近年來(lái),生成式AI(GenAI)的廣泛應(yīng)用,已輻射到了各個(gè)領(lǐng)域。如果將其引入大型主機(jī)的現(xiàn)代化過(guò)程,不但有望讓企業(yè)在軟件質(zhì)量、運(yùn)營(yíng)效率等方面取得顯著改善,而且能夠帶來(lái)軟件開(kāi)發(fā)和質(zhì)量保證理念上的根本轉(zhuǎn)變,進(jìn)而讓企業(yè)最終獲得可觀(guān)的投資回報(bào)。
下面,我將和您探討如何通過(guò)合適的自動(dòng)化測(cè)試方法、工具和最佳實(shí)踐,實(shí)現(xiàn)在技術(shù)平穩(wěn)過(guò)渡中,確保現(xiàn)代化大型主機(jī)應(yīng)用的固有質(zhì)量和性能。
傳統(tǒng)的手動(dòng)測(cè)試?yán)砟?/strong>
一直以來(lái),大型主機(jī)環(huán)境并不愿意接受自動(dòng)化的測(cè)試方式。由Compuware和Vanson Bourne聯(lián)合開(kāi)展的2019年全球調(diào)查顯示,僅有7%的受訪(fǎng)者為大型主機(jī)應(yīng)用采用了自動(dòng)化的測(cè)試用例,這足以說(shuō)明業(yè)界對(duì)此的態(tài)度。
手動(dòng)測(cè)試的困境
作為對(duì)比,手動(dòng)測(cè)試則是許多企業(yè)普遍采用的傳統(tǒng)方法。不過(guò),在復(fù)雜的大型主機(jī)現(xiàn)代化過(guò)程中,該方法越來(lái)越顯得力不從心,而且容易出錯(cuò)。畢竟,測(cè)試工程師需要手動(dòng)驗(yàn)證每個(gè)方案和業(yè)務(wù)規(guī)則。這一過(guò)程就充滿(mǎn)了人為出錯(cuò)的可能性。而且,鑒于許多大型主機(jī)應(yīng)用的高風(fēng)險(xiǎn)性和關(guān)鍵任務(wù)性特點(diǎn),我們一旦在測(cè)試過(guò)程中忽略了某個(gè)細(xì)微的錯(cuò)誤,則可能會(huì)導(dǎo)致嚴(yán)重的生產(chǎn)問(wèn)題、大量的停機(jī)時(shí)間、乃至經(jīng)濟(jì)損失。因此,該缺點(diǎn)會(huì)變得尤為突出。此外,人工測(cè)試還存在著如下缺陷:
1.遺漏與不準(zhǔn)確:手動(dòng)處理大量測(cè)試用例,會(huì)增加遺漏關(guān)鍵場(chǎng)景、以及數(shù)據(jù)驗(yàn)證不準(zhǔn)確的風(fēng)險(xiǎn)。
2.耗時(shí)性:手動(dòng)方法需要大量時(shí)間對(duì)每個(gè)方面進(jìn)行徹底測(cè)試,因此在快節(jié)奏的開(kāi)發(fā)環(huán)境中效率不高。
3.可擴(kuò)展性問(wèn)題:隨著應(yīng)用程序的擴(kuò)展和演進(jìn),人工測(cè)試所需的工作量會(huì)成倍增加,更無(wú)法有效地識(shí)別錯(cuò)誤。
有的企業(yè)可能會(huì)直觀(guān)地想到擴(kuò)大人工測(cè)試團(tuán)隊(duì)。不過(guò),這并非一個(gè)可行的解決方案。此舉既會(huì)導(dǎo)致成本效率的低下,又無(wú)法解決人工測(cè)試流程的固有局限性。企業(yè)需要通過(guò)DevOps等現(xiàn)代方法,來(lái)整合自動(dòng)化測(cè)試流程,以提高效率并減少錯(cuò)誤。
測(cè)試自動(dòng)化的必要性
總的說(shuō)來(lái),通過(guò)在現(xiàn)代化大型主機(jī)應(yīng)用程序中集成自動(dòng)化測(cè)試流程,企業(yè)可以大幅提高遷移的效率和準(zhǔn)確性。當(dāng)然,大型主機(jī)環(huán)境中自動(dòng)化測(cè)試的采用率并不高。有的企業(yè)認(rèn)為這是挑戰(zhàn),但也有的企業(yè)視之為巨大的轉(zhuǎn)型機(jī)遇。畢竟,在測(cè)試中采用自動(dòng)化不僅僅是一種技術(shù)升級(jí),更是一種降低風(fēng)險(xiǎn)、節(jié)省時(shí)間和優(yōu)化資源利用的戰(zhàn)略舉措。
對(duì)于希望在快速發(fā)展的技術(shù)環(huán)境中,保持競(jìng)爭(zhēng)力和效率的企業(yè)來(lái)說(shuō),這一轉(zhuǎn)變至關(guān)重要。根據(jù)《DevOps狀態(tài)報(bào)告》顯示,自動(dòng)化測(cè)試在優(yōu)化操作工作流程和確保應(yīng)用程序可靠性等方面,能夠發(fā)揮巨大的作用。
什么是自動(dòng)化測(cè)試?
根據(jù)Atlassian的定義,自動(dòng)化測(cè)試是通過(guò)運(yùn)用軟件工具,自動(dòng)完成那些由人工驅(qū)動(dòng)的軟件產(chǎn)品的審查和驗(yàn)證過(guò)程。其速度、效率和精度,都超越了傳統(tǒng)人工測(cè)試方法的局限性。也就是說(shuō),自動(dòng)化測(cè)試有助于在加快應(yīng)用變化的同時(shí),確保其質(zhì)量和可靠性不受影響。自動(dòng)化測(cè)試不僅能夠簡(jiǎn)化新變化的驗(yàn)證過(guò)程,也可以監(jiān)控現(xiàn)有功能的完整性,從而在現(xiàn)代化應(yīng)用的無(wú)縫過(guò)渡和持續(xù)維護(hù)方面發(fā)揮關(guān)鍵性作用。
在追求優(yōu)化軟件測(cè)試流程的過(guò)程中,采用自動(dòng)化測(cè)試往往需要初始的人工投入,會(huì)涉及到測(cè)試工程師對(duì)于應(yīng)用程序底層錯(cuò)綜復(fù)雜的業(yè)務(wù)邏輯的理解。這種理解對(duì)于使用Selenium等框架有效地生成自動(dòng)化測(cè)試用例是至關(guān)重要的。該階段雖然會(huì)耗費(fèi)大量人力,卻是一項(xiàng)基礎(chǔ)性工作。畢竟后續(xù)的自動(dòng)化測(cè)試將大幅減少測(cè)試本身對(duì)于人工的依賴(lài),尤其是在重復(fù)和廣泛的測(cè)試場(chǎng)景中。而且,自動(dòng)化框架一旦被建立,就會(huì)成為對(duì)應(yīng)用程序進(jìn)行持續(xù)評(píng)估的強(qiáng)大機(jī)制。其優(yōu)勢(shì)在于,它善于識(shí)別因應(yīng)用更改而可能出現(xiàn)的錯(cuò)誤或bug。
大型主機(jī)現(xiàn)代化過(guò)程中的自動(dòng)化測(cè)試方法
在軟件工程領(lǐng)域,針對(duì)大規(guī)模的遷移或現(xiàn)代化大型主機(jī)應(yīng)用程序的自動(dòng)化測(cè)試,往往需要全面了解應(yīng)用程序中的所有業(yè)務(wù)規(guī)則,以便為通常由數(shù)百萬(wàn)行代碼組成的龐大代碼庫(kù),生成自動(dòng)化的測(cè)試用例。這是一項(xiàng)復(fù)雜而又相當(dāng)艱巨的任務(wù)。鑒于難以實(shí)現(xiàn)100%的代碼覆蓋率,我們需要在測(cè)試覆蓋深度與實(shí)際可行性之間實(shí)現(xiàn)平衡,以確保關(guān)鍵性的業(yè)務(wù)邏輯,能夠得到充分的測(cè)試覆蓋。
在這種情況下,GenAI等新興技術(shù)提供了一種可能性。它能夠自動(dòng)生成自動(dòng)化測(cè)試腳本,以簡(jiǎn)化大型主機(jī)現(xiàn)代化項(xiàng)目的測(cè)試流程,為軟件開(kāi)發(fā)中的質(zhì)量保證提供一種更高效、更準(zhǔn)確、更可擴(kuò)展的方法。
GenAI的廣泛利用
在深入研究GenAI如何在大型主機(jī)現(xiàn)代化中實(shí)現(xiàn)自動(dòng)化測(cè)試之前,讓我們簡(jiǎn)單了解一下GenAI。從根本上說(shuō),GenAI代表了人工智能的一個(gè)方面。它通過(guò)生成式模型,來(lái)生成各種文本、圖像或其他媒介。這些生成式人工智能模型善于學(xué)習(xí)輸入訓(xùn)練數(shù)據(jù)的模式和結(jié)構(gòu)元素,進(jìn)而生成能夠反映這些特征的新數(shù)據(jù)。顯然,此類(lèi)系統(tǒng)主要依賴(lài)機(jī)器學(xué)習(xí)模型,尤其是深度學(xué)習(xí)領(lǐng)域的模型。
自然語(yǔ)言生成(Natural Language Generation,NLG)是與大型主機(jī)現(xiàn)代化強(qiáng)相關(guān)的一種GenAI形式。它能夠在大語(yǔ)言模型(large language models,LLM)的支持下,產(chǎn)生出類(lèi)似人類(lèi)的文本。通常,LLM在大量文本數(shù)據(jù)的語(yǔ)料庫(kù)中接受訓(xùn)練,使之能夠辨別和復(fù)制語(yǔ)言的細(xì)微差別和結(jié)構(gòu)。因此,這種訓(xùn)練使得它們能夠執(zhí)行各種自然語(yǔ)言處理任務(wù),包括:文本生成、翻譯摘要、以及情感分析等。值得注意的是,LLM還能夠熟練地生成準(zhǔn)確的計(jì)算機(jī)程序代碼。
目前,大語(yǔ)言模型的著名用例包括:GPT-3(Generative Pre-trained Transformer 3)、BERT(Bidirectional Encoder Representations from Transformers)和T5(Text-to-Text Transfer Transformer)。這些模型通常建立在深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,尤其是那些采用了Transformer架構(gòu)的模型。因此,它們?cè)谔幚砦谋镜软樞驍?shù)據(jù)方面,表現(xiàn)出了卓越的功效。大量的訓(xùn)練數(shù)據(jù)(包括數(shù)百萬(wàn)、甚至數(shù)十億的單詞或文檔)使得這些模型能夠全面掌握各種編程語(yǔ)言。它們不僅在生成連貫且與上下文相關(guān)的文本方面表現(xiàn)出色,而且在預(yù)測(cè)語(yǔ)言模式(如完成句子或回答查詢(xún))方面也很優(yōu)秀。
當(dāng)前,某些大語(yǔ)言模型還可以理解和生成多種語(yǔ)言的文本,從而提高其在全球范圍內(nèi)的實(shí)用性,從為聊天機(jī)器人和虛擬助手提供“智力”,到支持內(nèi)容生成、語(yǔ)言翻譯與摘要等應(yīng)用領(lǐng)域,LLM的多功能性都能夠帶來(lái)不俗的表現(xiàn)。
如何使用GenAI生成自動(dòng)化測(cè)試腳本
在軟件測(cè)試領(lǐng)域,LLM可以幫助我們從應(yīng)用程序的代碼中提取業(yè)務(wù)邏輯,并將這些規(guī)則轉(zhuǎn)化為人類(lèi)可讀的格式,進(jìn)而生成相應(yīng)的自動(dòng)化測(cè)試腳本。同時(shí),它也能夠幫助我們遴選出必要數(shù)量的測(cè)試用例,以滿(mǎn)足代碼片段的各種潛在覆蓋率要求。
通常,使用GenAI生成應(yīng)用程序代碼的自動(dòng)化測(cè)試腳本,需要如下結(jié)構(gòu)化的三步流程:
1.使用GenAI提取業(yè)務(wù)規(guī)則:作為初始階段,我們需要使用GenAI從應(yīng)用程序中提煉業(yè)務(wù)規(guī)則。該流程會(huì)對(duì)提煉到的規(guī)則按照詳細(xì)程度進(jìn)行判定,并以人類(lèi)可讀的格式進(jìn)行詮釋。此外,GenAI也有助于全面了解給定代碼段的所有潛在結(jié)果。這些知識(shí)對(duì)于確保創(chuàng)建準(zhǔn)確、相關(guān)的測(cè)試腳本是至關(guān)重要的。
2.利用GenAI在功能層面生成自動(dòng)化測(cè)試腳本:根據(jù)提取到的業(yè)務(wù)邏輯,測(cè)試工程師能夠?qū)?yīng)用程序的功能擁有全面的了解,以便在功能層面上利用GenAI來(lái)開(kāi)發(fā)測(cè)試腳本。該步驟涉及到確定所需的測(cè)試腳本數(shù)量,并識(shí)別可能被排除在外的場(chǎng)景。當(dāng)然,此類(lèi)自動(dòng)化測(cè)試腳本的代碼覆蓋范圍,往往是由團(tuán)隊(duì)集體決定的。
3.由主題專(zhuān)家(Subject Matter Experts,SME)進(jìn)行驗(yàn)證和推理添加:在最后階段,一旦提取了業(yè)務(wù)邏輯,并生成了相應(yīng)的自動(dòng)化測(cè)試腳本,測(cè)試專(zhuān)家就會(huì)驗(yàn)證這些腳本,并有權(quán)進(jìn)行添加、修改或刪除等操作。此類(lèi)干預(yù)解決了GenAI輸出可能產(chǎn)生的潛在概率錯(cuò)誤,并提高了自動(dòng)化測(cè)試腳本的質(zhì)量確定性。
上述過(guò)程看似復(fù)雜,實(shí)際上卻能充分利用GenAI的能力,以簡(jiǎn)化測(cè)試腳本生成的流程,并確保自動(dòng)化的效率與人類(lèi)專(zhuān)業(yè)知識(shí)的完美結(jié)合。其中,測(cè)試人員在驗(yàn)證階段的參與尤為重要。這會(huì)讓人工智能生成的輸出結(jié)果,能夠建立在實(shí)際、真實(shí)的應(yīng)用知識(shí)之上,從而顯著提高測(cè)試腳本的可靠性和適用性。
小結(jié)
綜上所述,作為一種提高效率的工具,GenAI可以通過(guò)其N(xiāo)LG能力生成自動(dòng)化測(cè)試腳本,進(jìn)而提高大型主機(jī)現(xiàn)代化的軟件測(cè)試過(guò)程的準(zhǔn)確性和可靠性。同時(shí),GenAI需要通過(guò)結(jié)構(gòu)化的三步流程,來(lái)完善AI生成的輸出結(jié)果,并確保自動(dòng)化腳本不僅在技術(shù)上合理,而且在實(shí)踐中適用,從而體現(xiàn)AI能力與人類(lèi)專(zhuān)業(yè)知識(shí)的和諧統(tǒng)一。而這種融合對(duì)于解決現(xiàn)代化大型主機(jī)應(yīng)用程序的復(fù)雜性和動(dòng)態(tài)要求,顯然是至關(guān)重要的。