軟件測試方法:質(zhì)量保證(QA)模型簡短指南
譯文【51CTO.com快譯】多年來,軟件測試的理念正在不斷發(fā)展和演變。這種演變不僅需要現(xiàn)代測試策略和工具,還需要一個包含測試方法的面向細節(jié)的過程。
然而,定義測試策略成功或失敗的重要因素是精確選擇工具、技術(shù)和方法為QA過程提供幫助。這就是大多數(shù)進入該行業(yè)的新手傾向于發(fā)現(xiàn)自動化功能測試是一項復(fù)雜操作的原因。因為進行這樣的操作需要一個精確的系統(tǒng),該系統(tǒng)可以幫助實現(xiàn)性能和功能性的最終目標,當然還要提供令人愉悅的用戶體驗。
另一方面,許多軟件測試愛好者依靠互聯(lián)網(wǎng)訪問測試實踐,但仍然沒有關(guān)于軟件測試方法和類型的分類數(shù)據(jù)。
本文將深入探討軟件測試方法和圍繞QA領(lǐng)域的各種測試類型的簡短而重要的細節(jié)。
軟件測試方法和軟件測試類型的差異
當談到軟件測試方法時,它們中的大多數(shù)都是在項目管理的場景中描述的。而且測試類型的分類根據(jù)視角不同而有所不同。例如,需要根據(jù)執(zhí)行時間定義測試類型的測試人員可能需要與一組特定的測試方法保持一致。此外,如果測試人員需要根據(jù)測試級別區(qū)分測試類型,他們可能需要使用另一種方法。
以下根據(jù)測試人員的測試目標挖掘QA團隊遵循的主要測試方法;進一步分為兩大類,稱為功能測試和非功能測試。
軟件測試方法和途徑
- 敏捷方法
敏捷測試方法在包含“sprints”的方法上運行,這種sprints可以定義為短迭代序列。
在通常情況下,敏捷實踐由一組成員或小型測試團隊進行,他們會考慮sprints的每個階段的測試需求,即計劃、分析和測試。大多數(shù)致力于敏捷方法的專家都使用它來降低風險。比如使用先前迭代的知識來支持所考慮的每個新迭代。
此外,敏捷過程中的每個sprint都涉及scrum,團隊旨在討論進度并計劃未來的測試sprint??偠灾艚轀y試原則通過將已完成迭代的知識用于正在進行的迭代,使測試人員更容易滿足可擴展目標。
- 瀑布方法
瀑布是另一種流行的方法,旨在逐步進行。瀑布模型的主要階段是記錄項目計劃以定義步驟,因為在完成之前定義的任務(wù)之前無法計劃進一步的步驟。
使用瀑布方法的主要缺點之一是由于其規(guī)則嚴格而無法進行快速修正。
- 驗證和確認
這是軟件測試的另一個分步模型,其中開發(fā)與測試過程并行進行。一旦實現(xiàn)了特定的開發(fā)部分,測試團隊就會立即著手測試已經(jīng)開發(fā)的產(chǎn)品組件。但是,該方法有利于測試人員,因為它允許他們對產(chǎn)品進行早期更改,從而節(jié)省時間和資源。
- 增量方法
增量測試過程遵循多次迭代,每次迭代都包含與功能和產(chǎn)品特性相關(guān)的一些價值。大多數(shù)情況下,增量方法包括三個階段:
①設(shè)計開發(fā)
②測試
③實施
與增量方法相關(guān)的顯著優(yōu)點是它為測試團隊提供了極大的靈活性,這使得測試和編輯過程更加順利。
- 螺旋方法
螺旋式方法經(jīng)常被稱為增量方法的一部分,它由相互遵循的周期組成。這些包括規(guī)劃、風險分析、工程和評估。該方法在上一個周期結(jié)束時開始下一個周期,使測試團隊能夠快速獲得質(zhì)量反饋。該模型甚至允許測試團隊在確定問題原因的同時立即識別和糾正錯誤。
- 極限編程
極限編程(XP)需要兩名測試人員密切合作,其中一名測試人員負責編寫代碼,而另一名測試人員負責審查代碼。最好的部分是XP方法在測試代碼時考慮每個階段的完成。這種方法甚至通過密切檢查代碼來幫助測試人員開發(fā)高質(zhì)量的代碼。
以下討論一下測試人員在使用上述定義的方法時通常遵循的測試類型。
功能軟件測試
功能測試允許測試人員檢查其相關(guān)的業(yè)務(wù)目標和規(guī)范,并且不會特別關(guān)注性能、安全性等。功能測試確保任何開發(fā)的解決方案都應(yīng)該按照業(yè)務(wù)分析師或設(shè)計團隊共享的需求運行。
然而,功能測試進一步分為三大類:
(1)煙霧測試
煙霧測試也稱為構(gòu)建驗證測試或攝入測試,煙霧測試是一個旨在測試其應(yīng)用程序以滿足功能要求的過程。基本上,煙霧測試根據(jù)設(shè)定的要求驗證產(chǎn)品的功能。
(2)關(guān)鍵路徑測試
關(guān)鍵路徑測試旨在分析響應(yīng)用戶典型日常行為的功能。例如,任何在標準操作上運行的電子商務(wù)應(yīng)用程序,如搜索產(chǎn)品、通過過濾器進行選擇、將產(chǎn)品添加到購物車、付款到結(jié)帳,關(guān)鍵路徑測試可以確保用戶在業(yè)務(wù)關(guān)鍵流程中不會遇到任何障礙。
(3)擴展測試
擴展測試旨在探索圍繞用戶業(yè)務(wù)需求的功能。這種類型的測試旨在檢查最低優(yōu)先級的功能。如果客戶覺得某些特定的特性沒有說服力,那么就需要測試人員和開發(fā)人員重新制作其中一部分。
非功能軟件測試
非功能測試用于檢查產(chǎn)品的性能、安全性、可靠性和整體可用性的基準。它不需要測試系統(tǒng)的功能,而是專注于測試系統(tǒng)的運行,因此是該過程的重要組成部分。
一些最常見的非功能性軟件測試類型包括性能測試、用戶界面(UI)測試、安全測試、兼容性測試、本地化測試以及可用性測試。
結(jié)語
當涉及到軟件測試方法時,測試人員會遵循很多不同的方法。此外,工具、技術(shù)和技術(shù)的選擇產(chǎn)生了最大的影響。
盡管如此,一些最重要的軟件測試方法(測試人員可以依賴于他們的項目需求)包括敏捷方法、瀑布方法、增量方法、螺旋方法、極限編程等。此外,了解這些方法,測試人員必須了解測試過程的所有優(yōu)點和缺點。
只要它與測試有關(guān),功能測試就可以滿足與產(chǎn)品要求和功能相關(guān)的合規(guī)性目標。另一方面,非功能測試旨在創(chuàng)建高性能、安全和可用的解決方案。
總而言之,方法和測試過程的選擇完全取決于測試團隊的要求和產(chǎn)品相關(guān)目標。當企業(yè)需要實現(xiàn)質(zhì)量保證和數(shù)字化轉(zhuǎn)型目標的基準時,找到最佳組合成為獲得成功的任務(wù)。
原文標題:Software Testing Methodologies: Short Guide To QA Models,作者:Hima Pujara
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】