本文解釋了一個完整的自動化測試策略,如果它是可行的,并且自動化 QA 保證質量。 事實上,軟件測試非常耗費時間和資源??梢詮牟煌慕嵌扔^察軟件的測試。它可以根據(jù)我們正在測試的內容進行劃分。例如...
本文解釋了一個完整的自動化測試策略,如果它是可行的,并且自動化 QA 保證質量。
事實上,軟件測試非常耗費時間和資源??梢詮牟煌慕嵌扔^察軟件的測試。它可以根據(jù)我們正在測試的內容進行劃分。例如,項目中的每個可交付成果,如需求、設計、代碼、文檔、用戶界面等,都應該進行測試。此外,我們可以根據(jù)用戶和功能需求或規(guī)范對代碼進行測試,即黑盒測試。在這個級別,我們將代碼作為黑盒進行測試,以確保程序預期的所有服務都存在,按預期工作并且沒有問題。我們可能還需要測試代碼的結構,即白盒測試。測試也可以根據(jù)測試中的子階段或活動進行劃分,例如,測試用例的生成和設計,測試用例執(zhí)行和測試數(shù)據(jù)庫的驗證構建等。測試確保開發(fā)的軟件最終無錯誤。但是,沒有任何流程可以保證所開發(fā)的軟件是 100% 無錯誤的。
盡管手動測試通常會導致遺漏的錯誤、次優(yōu)的測試覆蓋率和人為錯誤,但即使在大型項目中,也無法用自動化測試完全取代它。UX、可用性、探索性等測試需要人為因素,因為自動工具無法模仿用戶行為。自動化測試也不適用于安全測試。自動漏洞掃描需要隨后的手動檢查,因為它會提供許多誤報。
在當今的現(xiàn)實場景中,應用程序會根據(jù)用戶反饋、Web 流量(性能/負載)、競爭、合規(guī)法律等頻繁變化。因此,要保持競爭優(yōu)勢,就需要創(chuàng)新、升級和增強您的產品,使一切自動化變得具有挑戰(zhàn)性。那么實施完整的自動化測試策略意味著什么呢?它甚至可行嗎?全自動 QA 能保證質量嗎?
觀看此網(wǎng)絡研討會,了解企業(yè)范圍內的可操作策略、自動化測試的注意事項以及有助于提高發(fā)布和測試速度的 DevOps 工具。
我們需要完整的自動化測試嗎?
自動化測試不是精確測試;它正在檢查事實。檢查是機器可決定的;測試需要感知。測試是一項調查活動,我們旨在通過探索獲得有關被測系統(tǒng)的新信息。測試(手動)需要人類對可用性做出合理的判斷。結果,我們可以注意到我們沒有預料到的違規(guī)行為。此外,在實施測試自動化解決方案時,除了編寫測試用例腳本之外,還有其他相關的開發(fā)活動。
通常,企業(yè)開發(fā)一個框架來演示測試用例選擇、報告等操作??蚣艿拈_發(fā)是一項艱巨的任務,需要熟練的開發(fā)人員,并且需要時間來構建。此外,即使有一個功能齊全的框架,編寫腳本自動檢查所花費的時間也比手動執(zhí)行相同的測試要長。
但是,企業(yè)不應該對其中一種寬容,因為這兩種方法都需要深入了解應用程序的質量。企業(yè)花費大量時間使用最佳工具和實踐來開發(fā)完美的測試自動化解決方案,但如果自動化檢查對團隊沒有幫助,那就無益了。我們不應該以取代人工 QA 為目標,而應該接受他們對團隊的優(yōu)勢。例如,自動化測試有助于騰出 QA 的時間進行更多探索性測試,并會發(fā)現(xiàn)錯誤。
哪些測試應該自動化?
團隊通常希望盡可能地自動化一切。但是當他們遇到各種問題時,這又會困擾他們。企業(yè)應該分析他們希望自動化的測試用例的類型以及不能自動化或不應該自動化的用例。團隊不應該僅僅為了測試而自動化測試。例如,如果您將需要大量維護的一整套測試自動化,那么您正在投入額外的時間和金錢,而這些時間和金錢您可能沒有。相反,如果您專注于采用基于風險的方法,這將有所幫助,這樣您就可以只自動化最有價值的測試。
讓我們看一下最可行的自動化測試場景:
回歸測試:回歸測試需要多次測試相同的變量,以確保新功能不會與舊功能混淆。回歸測試非常適合自動化。復雜的功能:企業(yè)可以自動化所有需要復雜計算的測試。冒煙測試:可以通過運行自動化測試為企業(yè)驗證重要功能的質量,這將快速分析功能是否需要更多測試。數(shù)據(jù)驅動測試:使用大量數(shù)據(jù)集重復測試功能也是考慮自動化測試的好方案。性能測試:在不同情況下監(jiān)控軟件性能的測試非常適合自動化測試。為手動測試團隊進行性能測試將非常詳細且耗時。功能測試:每當開發(fā)人員需要執(zhí)行快速執(zhí)行以獲得即時反饋的功能測試時,這是另一個有意義的自動化測試示例。如果沒有自動化,就不可能實現(xiàn)這一目標,尤其是在快速發(fā)展的組織中。自動化測試的問題
問題的癥結在于敏捷團隊不再進行測試。由于 DevOps 等開發(fā)實踐和文化,手動測試已經(jīng)失去了優(yōu)勢。QA 領域存在分歧——會編碼的和不會編碼的。大多數(shù)測試人員現(xiàn)在都在努力跟上自動化需求。在每個 sprint 中都存在自動化測試的壓力,并且沒有足夠的時間進行徹底的探索性測試。
敏捷開發(fā)中的問題是測試人員采用用戶流程并自動化其驗收標準。但是,在這樣做的同時,他們主要也是唯一的重點是與他們有限的編碼技能作斗爭以通過測試。因此,當您只對自動化測試感興趣并看到它在構建管道中通過時,這自然會產生狹窄的焦點。高期望大多數(shù)商業(yè)人士相信新的技術解決方案將化險為夷。測試工具也不例外!我們不能否認,如今的工具幾乎可以解決我們目前在測試自動化中面臨的所有問題。然而,這種不切實際的樂觀也導致了不切實際的期望。無論工具多么稱職,如果管理層的期望不切實際,它就不會滿足期望。自動化不必要的測試 不要僅僅為了測試而自動化測試。取而代之的是,在這個過程中投入一些想法。研究產品的高層和低層架構。問會出什么問題。分析集成點并尋找潛在的突破點。
在您的整體測試方法中采用基于風險的自動化方法。例如,某物發(fā)生故障的可能性有多大,故障的影響是什么?如果答案很高,那么這些場景應該在每次構建時自動化并執(zhí)行。有缺陷的安全性 僅僅因為測試工具沒有發(fā)現(xiàn)任何缺陷并不意味著軟件中沒有缺陷。至關重要的是要了解,如果測試包含缺陷,它們將帶來不正確的結果。自動化測試將無限期地保留那些不滿意的結果。忽略重要場景一個嚴重的問題經(jīng)常會泄漏到生產環(huán)境中,因為沒有人考慮過特定的場景。執(zhí)行多少自動化測試并不重要。如果忽略了一個場景,那么根據(jù) Sod 定律就會出現(xiàn)錯誤,即,如果某些事情可能會出錯,它就會出錯。結論
大多數(shù)測試自動化工程師花時間與自動化代碼作斗爭,并使測試在現(xiàn)代軟件開發(fā)中發(fā)揮作用。他們幾乎不專注于適當?shù)臏y試和探索系統(tǒng)。
沒有足夠的時間編寫自動化代碼和執(zhí)行探索性測試。團隊在沖刺后自動化沖刺,忘記大局。
通常企業(yè)最終會執(zhí)行大量自動化測試,但探索性測試會發(fā)現(xiàn)大多數(shù)錯誤。相反,企業(yè)應該根據(jù)風險評估選擇要自動化的內容。什么可能出問題,如果確實出問題會對業(yè)務產生什么影響?