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