你和你最喜歡的應用程序之間的每一次成功交互都是質量檢查團隊共同努力的結果。
您與您最喜愛的應用程序之間的每一次成功互動都是質量保證 (QA) 團隊共同努力的結果。這些孜孜不倦的問題獵手確保全球移動設備用戶日常需求所依賴的應用程序的每個方面都能在每次發布和更新中順利運行。
當您在早晨的鬧鐘聲中醒來、查看天氣或向所愛的人發送消息時,我們必須感謝這些通常是默默無聞的英雄。
當該團隊的努力失敗時,他們肯定會聽到這樣的消息:許多用戶會毫不猶豫地在流行(且非常明顯)的評論網站上提供負面反饋。
現代移動應用程序用戶——也就是我們現在幾乎所有人——的期望是完美,QA 團隊的主要目標是確保每次部署都沒有錯誤的產品。
錯誤和問題的存在會很快讓應用程序沉沒。不幸的是,要確保無錯誤的體驗絕非易事。而且它只會變得越來越復雜。今天的軟件開發世界變得越來越復雜,而針對這些復雜性帶來的許多潛力和場景進行測試意味著測試本身變得越來越復雜和資源密集。
鑒于移動應用程序開發的歷史,預計應用程序只會變得更加復雜并且需要更高級和更頻繁的測試是非常合理的。但一定要這樣嗎?我們是否注定需要越來越多的員工和越來越大的 QA 團隊?
1980 年代:手動測試
讓我們花點時間考慮一下我們是如何走到這一步的。直到最近——“哇——我猜這真的是很久以前的 1980 年代了”——軟件 QA 團隊嚴重依賴手動測試他們的設備,以確保推向市場的產品性能良好.
那是一個更簡單的時代,設備的功能和活躍場景都少得多,因此手動編碼是一種足夠的測試方式。雖然繁瑣的工作在徹底執行時會花費大量時間,但手動測試對測試人員來說效果很好。
但是技術作為不斷發展和改進的野獸,以自動化的形式迎來了變化,極大地改進了測試過程。軟件不斷進步并變得更加復雜。
1990 年代 – 2010 年代:編碼測試自動化
在接下來的幾十年里,測試的進步使 QA 測試人員擺脫了通過測試用例進行實際操作的要求。他們不再需要手動找出意大利面條式代碼堆中的錯誤。
他們在軟件問題的戰爭中有了新武器:大規模手動測試已經變得不切實際,如果任何 QA 團隊要在合理的時間內徹底測試一個可能發布的版本,他們需要通過以下方式執行測試腳本一種自動化工具。
那么,復雜性之戰贏了嗎?不完全的。最好不要將自動化測試視為一種革命性的創新,而應將其更多地視為與軟件不斷發展的復雜性進行軍備競賽的又一步。
時間在流逝,但地平線上還沒有明顯的勝利。隨著移動應用程序的流行并成為我們許多日常生活的核心工具,自動化測試逐漸失勢。幸運的是,一場期待已久的變革即將來臨,一場真正的革命。
2020 年代:無代碼測試自動化
直到最近,QA 測試團隊的困境確實變得相當可怕。為了確保高質量的產品發布,自動化測試需要越來越復雜的代碼工具,這意味著 QA 團隊需要將越來越多的程序員專門用于測試,而不是其他任務,例如生成新功能。這不僅成本越來越高,而且還意味著將發布日期越來越往后推。但另一種選擇,即災難性的發布,可能要昂貴得多(正如許多備受矚目的失敗發布所證明的那樣)。
但不可避免的事情來了。通過抽象原則——基于接口的表示為極其復雜的過程鋪平了道路(例如,考慮隱藏在你正在閱讀的文章后面的 1 和 0)——許多專家早就預示著一個新的抽象層,一場“無代碼革命”,這確實在過去幾年取得了成果。
最近出現了一些平臺,允許在各個行業中使用無代碼解決方案。無代碼革命的一個更明顯的例子是真正所見即所得的網站編輯器(想想 Squarespace 或 Wix)的流行,而在軟件測試的不那么明顯的領域,我創立的公司 Sofy 是一個獨特的平臺,可為移動應用程序提供無代碼測試。
無代碼革命帶來了翻天覆地的變化,讓非專家也能處理復雜的任務,讓專家有更多時間處理其他任務。因此,在不久的將來,我們無疑會看到越來越多的面向各個行業的無代碼解決方案。
2025?真正智能的自我測試軟件
也就是說,在事物的計劃中,無代碼革命只是向前邁出的又一步,我相信軟件測試的下一步是測試自身的軟件。
在這方面我并不孤單:就像無代碼革命一樣,自我測試軟件多年來一直是一個預期的現實。以技術的變化和增長速度,可以想象到 2025 年,無需人工干預即可測試 AI 運行的智能測試自動化(即自測試軟件)將大大擴展,這一點也不荒謬。
目前,智能測試的有限實施通過依賴機器學習 (ML) 和人工智能平臺提高了軟件發布的速度和質量。這允許進行快速和連續的測試(并由此提高投資回報率)。此外,AI 可以復制人類智能,而 ML 則可以讓計算機在沒有人為干預的情況下進行學習。
人工智能和機器學習采用基于深度學習的算法來訪問數據,并通過提取模式從數據中學習,從而更有效地進行調試和決策。此外,這項技術允許 QA 團隊跨各種設備和不同的外形規格執行許多測試。
不是幾天,而是幾小時。現在這是一場革命。
沒有代碼仍然需要人;人不是機器:他們會犯錯誤。即使沒有代碼——雖然大大減少了——人為錯誤仍然是導致嚴重問題的一個因素。考慮由人工測試引起的資源、時間和精力的過度使用。
智能測試自動生成和維護測試用例并產生有價值的收益,這些收益可以概括為提高生產力和輸出質量。但要實現智能測試自動化,必須首先結合以下要素:
- 從人類輸入中學習:當機器進行測試時,它必須像人類一樣行動。它必須了解人類需要和想要什么,以及人類如何使用設備。正如我們所討論的,這可能很難預測,復雜的應用程序意味著復雜的測試場景和模式。然而,機器必須從這個有利的角度理解和操作。
- 從實際使用的產品數據中學習:機器必須了解應用程序在不同生產環境中的使用方式。這包括了解可能正在使用的設備、設備設置的語言及其使用流程,包括菜單、屏幕和操作的使用。
- 訓練數據就像自動駕駛汽車(一個尚未破解的堅果)一樣,機器學習需要訓練數據來幫助概述軟件模式。
這三項必須內化并針對每次代碼更改進行徹底測試。然后,必須以無縫和智能的方式對它們進行聚合和優先級排序。這是一項不小的壯舉,但我們將繼續朝著下一步努力。
我們還沒有。在我們繼續前進之前,必須完成這些步驟中的每一步,但這實際上只是時間問題。
自我測試軟件只是第一步:我預測我們可以期待其他剛剛投放市場的無代碼示例向機器學習方向發展。我相信基于一些用戶指定的參數生成整個網站成為現實只是時間問題。今天,無代碼革命終于到來了,但隨之而來的是另一場革命的開始。