持續(xù)測(cè)試的障礙(一):如何克服開(kāi)發(fā)團(tuán)隊(duì)缺乏專(zhuān)業(yè)知識(shí),加速交付高質(zhì)量項(xiàng)目成品
持續(xù)測(cè)試是一個(gè)過(guò)程,使團(tuán)隊(duì)能夠在軟件開(kāi)發(fā)中建立質(zhì)量,并加速交付高質(zhì)量的客戶體驗(yàn)。通過(guò)持續(xù)測(cè)試,團(tuán)隊(duì)使用自動(dòng)化測(cè)試獲得關(guān)于代碼健康的即時(shí)反饋。
持續(xù)測(cè)試使企業(yè)能夠評(píng)估商業(yè)風(fēng)險(xiǎn)。最近的行業(yè)調(diào)查顯示,用于跟蹤項(xiàng)目進(jìn)展和成功的首要指標(biāo):
- 高測(cè)試覆蓋率
- 增加缺陷修復(fù)
- 減少了生產(chǎn)中的缺陷
- 在開(kāi)發(fā)過(guò)程中建立質(zhì)量
如何實(shí)現(xiàn)速度和質(zhì)量的結(jié)合?答案是:持續(xù)測(cè)試。但它確實(shí)有其挑戰(zhàn)。本文就說(shuō)說(shuō)第一個(gè)挑戰(zhàn)或者說(shuō)障礙——團(tuán)隊(duì)中缺乏專(zhuān)業(yè)知識(shí)。
障礙一:團(tuán)隊(duì)中缺乏專(zhuān)業(yè)知識(shí)
最初,專(zhuān)業(yè)知識(shí)的缺乏不僅是團(tuán)隊(duì)缺乏知識(shí)和技能。它也是正在使用的工具的限制。
考慮一下用戶界面(UI)測(cè)試自動(dòng)化。這是一種常見(jiàn)的做法,也很可靠,但可重復(fù)使用的自動(dòng)化卻很困難。Selenium是事實(shí)上的標(biāo)準(zhǔn)。雖然是開(kāi)源和免費(fèi)的,但它有自己的采用曲線,而且需要經(jīng)驗(yàn)和時(shí)間來(lái)掌握。
Selenium測(cè)試可能是不可靠的,今天記錄的東西,第二天就不能再播放了。隨著越來(lái)越多的UI測(cè)試被自動(dòng)化,測(cè)試維護(hù)成為一個(gè)日益嚴(yán)重的問(wèn)題。Selenium需要進(jìn)一步的工具支持,以變得更容易使用和維護(hù)。
服務(wù)水平或API測(cè)試是一個(gè)相對(duì)較新的,但有價(jià)值的實(shí)踐。然而,它位于開(kāi)發(fā)人員和測(cè)試人員之間的無(wú)人區(qū)。開(kāi)發(fā)人員最了解API,但沒(méi)有動(dòng)力也沒(méi)有必要對(duì)其進(jìn)行測(cè)試,而測(cè)試人員缺乏進(jìn)行API測(cè)試所需的知識(shí)。
此外,重要的是,API測(cè)試自動(dòng)化超越了記錄(在操作期間)和回放(用于測(cè)試)。需要對(duì)行為和API之間的互動(dòng)進(jìn)行建模,也需要使用這些互動(dòng)來(lái)指導(dǎo)測(cè)試創(chuàng)建和管理過(guò)程。
性能測(cè)試通常被看作是由組織中的另一個(gè)團(tuán)隊(duì)完成的事情,也許是作為一個(gè)復(fù)選框項(xiàng)目執(zhí)行。但是,當(dāng)性能問(wèn)題出現(xiàn)時(shí),產(chǎn)品開(kāi)發(fā)可能已經(jīng)向前推進(jìn),可能需要一個(gè)破壞性的回滾。
理想情況下,性能測(cè)試需要在軟件開(kāi)發(fā)過(guò)程的早期完成,并利用已經(jīng)完成的自動(dòng)化功能測(cè)試的工作。同時(shí),團(tuán)隊(duì)采用API測(cè)試,他們可以利用這項(xiàng)工作,使性能測(cè)試向左轉(zhuǎn)移,使其成為開(kāi)發(fā)人員和測(cè)試人員的共同責(zé)任。
如何消除障礙,實(shí)現(xiàn)簡(jiǎn)化測(cè)試自動(dòng)化
開(kāi)發(fā)和測(cè)試團(tuán)隊(duì)缺乏專(zhuān)業(yè)知識(shí)和培訓(xùn)不應(yīng)該反映在團(tuán)隊(duì)本身,而是反映在采用測(cè)試自動(dòng)化和相關(guān)工具時(shí)的復(fù)雜性。有一些解決方案可以用來(lái)努力簡(jiǎn)化測(cè)試自動(dòng)化。這些解決方案使采用的破壞性更小,并更好地集成到現(xiàn)有的流程中。
創(chuàng)建可重復(fù)使用、可維護(hù)和可理解的測(cè)試腳本。Parasoft Selenic解決了采用Selenium的主要問(wèn)題:測(cè)試創(chuàng)建和維護(hù)。通過(guò)Chrome瀏覽器記錄UI交互,Selenium測(cè)試用例將根據(jù)這些交互自動(dòng)創(chuàng)建。此外,定位器是使用頁(yè)面對(duì)象模型記錄的,對(duì)用戶界面的變化更有彈性。Selenic使用AI驅(qū)動(dòng)的測(cè)試自我修復(fù),因此當(dāng)UI的變化破壞了現(xiàn)有的測(cè)試時(shí),該工具會(huì)做出智能假設(shè),以防止測(cè)試案例失敗。
通過(guò)記錄手動(dòng)和自動(dòng)UI交互來(lái)模擬真實(shí)世界的API測(cè)試場(chǎng)景。API測(cè)試的采用受到了創(chuàng)建測(cè)試能力的阻礙。Parasoft SOAtest使用現(xiàn)有的UI測(cè)試(包括Selenic創(chuàng)建的測(cè)試)來(lái)記錄應(yīng)用程序執(zhí)行期間發(fā)生的API交互。SOAtest內(nèi)的人工智能將這些記錄的互動(dòng)組織成可識(shí)別的場(chǎng)景,然后形成API測(cè)試庫(kù)的基礎(chǔ)。這些API場(chǎng)景可以被回放、編輯、克隆和重復(fù)使用,以形成一個(gè)全面的API測(cè)試套件。SOAtest所做的自動(dòng)化和人工智能驅(qū)動(dòng)的決策,使API測(cè)試更容易被采用、使用和維護(hù)。此外,它還有助于彌補(bǔ)開(kāi)發(fā)團(tuán)隊(duì)中的API測(cè)試知識(shí)差距。
重用現(xiàn)有的測(cè)試工件,有效地?cái)U(kuò)展負(fù)載、性能和安全測(cè)試,作為DevOps管道的一部分。隨著開(kāi)發(fā)團(tuán)隊(duì)對(duì)UI和API級(jí)別的測(cè)試自動(dòng)化越來(lái)越熟練,測(cè)試庫(kù)成為一個(gè)重要的可重用資源。測(cè)試可以被重復(fù)使用,用于負(fù)載和性能測(cè)試,并增加用例和代碼覆蓋率。
