自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

功能測試vs.非功能測試:能否非此即彼地進行選擇?

譯文
開發(fā) 測試
功能測試和非功能測試是對不同類型的軟件測試進行分類的流行方法。這兩個類別指的是測試過程的本質(zhì)以及正在測試的內(nèi)容。如果以前從未深入研究過這兩個測試類別,那么需要了解什么是功能測試和非功能測試。

?譯者 | 李睿

審校 | 孫淑娟

功能測試和非功能測試是對不同類型的軟件測試進行分類的流行方法。這兩個類別指的是測試過程的本質(zhì)以及正在測試的內(nèi)容。如果以前從未深入研究過這兩個測試類別,那么需要了解什么是功能測試和非功能測試。

首先,功能測試和非功能測試之間的區(qū)分并不是一成不變的,對于某些測試類型來說,對它們進行分類并非易事。其次,功能測試和非功能測試對于軟件測試項目的成功都是至關(guān)重要的,盡管方式不同。以下將仔細研究功能性需求和非功能性需求之間的區(qū)別,這兩種類型的測試在軟件測試過程中的位置,以及它們?nèi)绾斡绊憸y試成本。  

什么是功能測試?  

根據(jù)國際軟件測試資質(zhì)認證委員會(ISTQB)的定義,功能測試是一種檢查組件或整個系統(tǒng)功能的測試。簡而言之,功能測試幫助企業(yè)確保軟件產(chǎn)品的特定功能完全按照預(yù)期工作。例如,如果采用車輛對軟件產(chǎn)品進行類比,其功能需求將是車輛從A點行駛到B點的能力。換句話說,這就是每次想使用該產(chǎn)品時都希望它完美地做到的事情以及使用該產(chǎn)品的原因。  

什么是非功能測試?  

國際軟件測試資質(zhì)認證委員會(ISTQB)將非功能測試定義為一種處理與系統(tǒng)功能無關(guān)組件的測試。非功能測試的范圍可能是無窮無盡的,并且很大程度上取決于產(chǎn)品的具體情況。非功能性需求更多地與產(chǎn)品為最終用戶工作的方式有關(guān),而不是與預(yù)期結(jié)果有關(guān)。如果以汽車作為類比,非功能性需求可以是任何事物,從汽車最高速度到在汽車收音機上找到所需電臺的步驟數(shù)。

為什么功能測試和非功能測試有區(qū)別?  

功能測試和非功能測試之間沒有區(qū)別,因為這兩種類型的測試相互獨立。它們對質(zhì)量保證(QA)工程師來說太重要了。對于大多數(shù)質(zhì)量保證工程師來說,重要的是測試的結(jié)果,是一個沒有錯誤、漏洞和不一致的軟件產(chǎn)品。  

質(zhì)量保證團隊負責(zé)人Igor Kovalenko說,“由于我們正在測試面向最終用戶的產(chǎn)品,因此非常關(guān)心用戶接收和交互產(chǎn)品的方式,這反過來又會為客戶提供所需的結(jié)果。”  

功能測試和非功能測試之間存在任何區(qū)別的最大原因是客戶的便利性。通過明確的類別和分組方法,客戶可以更輕松地選擇對其項目至關(guān)重要的測試類型,并不選擇與他們的需求特別相關(guān)的測試類型。  

功能測試vs.非功能測試:主要區(qū)別

哪些類型的功能測試和非功能測試是最重要的?為什么?  

如今有幾十種功能測試和非功能測試類型,每種類型都有其自身的重要性。因此不要貿(mào)然說某些類型的測試對一個項目比其他類型的測試更重要,因為沒有適用于每個項目的通用測試集。盡管如此,仍會特別頻繁地執(zhí)行幾種類型的功能測試和非功能測試,并且如果執(zhí)行得當,會對最終產(chǎn)品的質(zhì)量產(chǎn)生特別顯著的影響。以下是其中一些測試類型。  

(1)功能測試  

功能測試技術(shù)幫助質(zhì)量保證(QA)團隊了解產(chǎn)品是否符合開發(fā)人員為其設(shè)定的初始要求。每天都會進行多種類型的功能測試,以下是最常見的三種。  

  • 用戶界面(UI)測試。在大多數(shù)情況下,圖形用戶界面是受眾與產(chǎn)品交互的唯一方式。錯誤的界面是阻止用戶訪問產(chǎn)品的某些功能甚至完全使用產(chǎn)品的致命障礙。從功能驗證到拼寫,有幾十個不同的用戶界面方面需要測試。  
  • 單元測試。在單元測試的幫助下,質(zhì)量保證(QA)工程師可以在測試新創(chuàng)建或最近更新的軟件產(chǎn)品時盡可能精確。單元測試處理最小的代碼片段,可以人工進行以實現(xiàn)最大精度,也可以自動進行以實現(xiàn)最大效率。  
  • 安全測試。軟件系統(tǒng)的安全性一直都很重要,但隨著2019年新冠疫情的爆發(fā),其重要性達到了歷史最高水平。由于風(fēng)險處于歷史最高水平,很多企業(yè)無法承受數(shù)據(jù)安全和品牌忠誠度方面的任何安全風(fēng)險。一些企業(yè)專門進行安全測試,但它也可以作為功能測試包的一部分來完成。  

(2)非功能測試  

非功能測試處理系統(tǒng)作為一個整體的運行方式,而不是它包含的特定功能。當然,系統(tǒng)的每個非功能性測試本身都很重要,但某些類型的非功能性測試適用于任何軟件項目:  

  • 用戶體驗(UX)測試。這種類型的測試有助于開發(fā)人員了解產(chǎn)品是否易于最終用戶操作。UX測試通常與UI測試一起被提及,但它們在用戶故事的不同級別上運行。雖然用戶UI測試確保界面的所有方面都存在并且正常工作,但UX測試確保它們都為令人滿意的用戶旅程做出貢獻。  

質(zhì)量保證(QA)團隊負責(zé)人Andrii Nikitenko說,“UX測試和UI測試是不同類型的測試,它們不能一起使用。UX是一種非功能測試,而UI是功能測試。沒有任何類型的產(chǎn)品可以跳過這些類型的測試。即使產(chǎn)品沒有用戶界面,最終用戶仍然會以某種方式與之交互,這就是為什么UX測試和UI測試都是必不可少的。而且它們也不能互換。例如一個應(yīng)用程序可以有一個從UI角度看起來很正常的按鈕,但它在某些屏幕上顯得太小了。當最終用戶主要在這些屏幕上使用產(chǎn)品時,用戶體驗就會受到影響?!?nbsp; 

  • 性能測試。性能測試既是一種測試,用于分析軟件產(chǎn)品的應(yīng)用程序大小、速度和可靠性;又是一組功能測試,可能包括壓力測試、負載測試、配置測試、峰值測試、可擴展性測試等。這些非功能測試可以確保在任何情況下都具有穩(wěn)定的性能。  
  • 兼容性測試。鑒于企業(yè)的軟件產(chǎn)品可以在多種平臺上使用,兼容性測試是項目要考慮的最重要的非功能測試類型之一。QA團隊將針對不同類型的硬件、軟件、移動設(shè)備、操作系統(tǒng)及其版本、瀏覽器和網(wǎng)絡(luò)測試企業(yè)的應(yīng)用程序,以確保它們的性能始終如一。

有時被忽視但仍然非常重要的測試類型  

根據(jù)軟件測試公司的經(jīng)驗,有兩種主要類型的客戶需要QA服務(wù)。第一種類型完全取決于QA團隊在流程每個階段的專業(yè)知識,包括測試類型的選擇和測試范圍。第二種類型有一組需要完成的特定要求和測試類型。但是,在第二種情況下,測試計劃中通常存在一些基本類型的測試缺失的風(fēng)險。這些是有時被忽視但不應(yīng)該被忽視的三種類型的測試:  

  • 安裝測試。用戶與產(chǎn)品交互的方式受到了很多關(guān)注,但它在應(yīng)用程序首次啟動之前就開始了。準確地說,當應(yīng)用程序或其他類型的軟件產(chǎn)品安裝到用戶的設(shè)備上時,它就會啟動。用戶在使用過程中遇到的障礙越少,他們對產(chǎn)品的滿意度就越高。
  • 本地化測試。很少有軟件產(chǎn)品(例如網(wǎng)站或應(yīng)用程序)僅用于單個國家或地區(qū)。企業(yè)的產(chǎn)品發(fā)布要覆蓋的世界越多,就越需要關(guān)心正確的本地化。它涉及從正確的時間和日期格式和貨幣設(shè)置到遵守各國的法律和法規(guī)的任何事情。  
  • 集成測試。在系統(tǒng)測試的層次結(jié)構(gòu)中,首先是單元測試,然后是集成測試,最后是系統(tǒng)測試。當然,沒有人會忽視單元測試以測試產(chǎn)品的各個組件或系統(tǒng)測試以了解它們?nèi)绾蜗嗷ソ换?。盡管如此,它仍然是集成測試,它處理被分成組的軟件模塊,這有時被錯誤地視為事后的想法。  

功能測試和非功能測試:它們在測試過程中處于什么位置?  

制定詳細的測試計劃和設(shè)計測試過程是確保整個測試工作順利進行,并且系統(tǒng)的功能和非功能方面都是經(jīng)過測試的方法之一。但是功能性和非功能性測試與測試過程的關(guān)系在哪里呢?  

一般來說,關(guān)于測試過程需要了解的一個關(guān)鍵問題是,沒有適合每個項目和場景的通用方法。與其相反,在每一個新的測試項目中,工程師都會考慮幾十個不同的因素,從項目的規(guī)模到目標受眾。

根據(jù)軟件測試公司的經(jīng)驗,通過查看隨代碼附帶的文檔來開始每個測試項目。僅文檔就應(yīng)該提供足夠的信息來幫助正確設(shè)計測試過程,并確保它沒有遺漏任何重要的東西。  

但是,在某些情況下,文檔缺失或不足。在這種情況下,QA工程師將首先在探索性測試之旅的幫助下進行探索性測試。它通常被視為一種獨立的測試技術(shù),不包括在功能或非功能測試類別中。它幫助工程師規(guī)劃測試過程,并決定需要測試的產(chǎn)品功能和非功能需求?;蛘撸斳浖a(chǎn)品具有相對標準的規(guī)范和架構(gòu)時,可以執(zhí)行基于清單的測試。

一旦探索性測試產(chǎn)生了可觀的結(jié)果,工程師就可以看到即將到來的測試過程的大局和細節(jié)。通常情況下,將會先測試產(chǎn)品的功能,然后再進行非功能方面的測試。然而,這也不是唯一正確的做事方式。在功能測試或探索階段測試產(chǎn)品的某些非功能方面是可能的。例如,經(jīng)驗豐富的QA工程師已經(jīng)發(fā)現(xiàn)產(chǎn)品的可用性和UX問題,同時仍然定義測試范圍。

變更相關(guān)測試及其重要性  

雖然對軟件測試進行分類的最常見方法是將所有測試類型分為功能性測試和非功能性測試,但許多專業(yè)的QA工程師現(xiàn)在區(qū)分了第三類軟件測試,也就是與變更相關(guān)的測試。  

正如其名字所證明的那樣,與更改相關(guān)的軟件測試僅在對代碼進行多次更改后才會發(fā)生。這包括冒煙測試、健全性測試、回歸測試和重新測試。但是,從軟件測試過程的角度來看,與變更相關(guān)的測試可以在任何階段進行,無論是在產(chǎn)品的功能組件和非功能組件更改之后。  

執(zhí)行與變更相關(guān)的測試(最重要的是回歸測試)可能會讓企業(yè)的產(chǎn)品發(fā)布延遲幾周。但是,它是經(jīng)過良好測試的產(chǎn)品最關(guān)鍵的方面之一。與更改相關(guān)的測試可以幫助企業(yè)確保產(chǎn)品的功能或非功能方面都不會受到最近代碼更改的負面影響,并且不會在沒有及時回歸測試的情況下再次出現(xiàn)原有的錯誤。  

功能和非功能測試:成本方面  

無論企業(yè)是從頭開始開發(fā)軟件項目并最終對其進行測試,還是準備發(fā)布最近完成的產(chǎn)品并將軟件測試視為未完成項目和已完成項目之間的最終邊界,成本都很重要。  

(1)功能性和非功能性測試如何影響成本?  

對于大多數(shù)軟件產(chǎn)品所有者來說,測試項目的成本是繼測試服務(wù)質(zhì)量之后的下一個大問題。由于大量資源投入到開發(fā)過程中,大多數(shù)開發(fā)人員和產(chǎn)品所有者在測試方面無法承擔類似的費用。這就是為什么他們經(jīng)常想知道功能測試和非功能測試對測試項目總成本的影響的原因。  

這里要理解的重要一點是,企業(yè)的測試項目的預(yù)算不是由其選擇的合作模型需要執(zhí)行的功能和非功能測試來定義的。除了一些出色的測試類型(包括安全測試、UX測試和性能測試)之外,QA工程師不會對特定類型的測試收取更多費用。這就是為什么在預(yù)算項目時不應(yīng)該區(qū)分功能測試和非功能測試的原因。  

(2)影響測試成本的因素  

除了影響測試項目成本的最明顯因素之外,例如選擇的合作模式和項目規(guī)模,還有一些其他因素直接影響整體價格。以下在每個測試項目中都以一種或另一種方式出現(xiàn)的五個因素。  

  • 團隊的規(guī)模、資歷和位置。QA團隊的選擇是建立新測試項目(包括其成本)最關(guān)鍵的方面之一。團隊規(guī)模和資歷級別背后的邏輯很簡單,但團隊的位置也很重要。例如,在烏克蘭聘請QA團隊的薪酬將顯著低于在美國或西歐的同一團隊。  
  • 功能復(fù)雜性。企業(yè)的員工無需成為軟件工程師,而了解應(yīng)用程序具有的功能越多,進行徹底測試所需的資源就越多。例如,在包含數(shù)千種產(chǎn)品的電子商務(wù)網(wǎng)站上執(zhí)行測試總是比測試具有單一核心功能(例如鬧鐘)的應(yīng)用程序更昂貴。  
  • UX和UI的復(fù)雜性。企業(yè)的產(chǎn)品可能具有最具開創(chuàng)性的功能,但與無法導(dǎo)航、充滿錯誤或外觀和感覺過時的界面搭配使用時,它的價值并不高。企業(yè)的產(chǎn)品擁有的UI元素越多,用戶與產(chǎn)品交互的方式就越多,這部分測試的復(fù)雜性和成本就會越高。  
  • 人工和自動測試的數(shù)量。人工測試和自動測試的數(shù)量都會影響軟件測試項目的成本,但方式不同。許多QA工程師的共識是,雖然測試自動化的設(shè)置成本更高,但從長遠來看,它通常被證明更具成本效益,因為測試可以重復(fù)使用。相比之下,人工測試需要人工執(zhí)行,因此其成本不會隨著項目的進展而發(fā)生太大變化。 
  • 功能性和非功能性測試的數(shù)量。功能測試的范圍不僅僅是測試產(chǎn)品的功能。單元測試、系統(tǒng)測試和用戶驗收測試的數(shù)量會影響項目的成本。非功能測試也是如此。企業(yè)希望對安全性、性能、兼容性和其他類型的非功能測試進行得越徹底,其項目成本就越高。  

QA團隊負責(zé)人Andrii Nikitenko說,“項目的持續(xù)時間取決于產(chǎn)品的復(fù)雜性,需求的明確度,團隊之間的溝通水平,客戶回答問題的準備程度、項目規(guī)模、技術(shù)范圍、平臺的種類和屏幕的數(shù)量。項目的成本取決于類似的因素?!?nbsp; 

(3)功能測試和非功能測試的投資回報率  

投資回報率在軟件測試社區(qū)中是一個頗具爭議的話題。有人說沒有確定的方法來計算軟件測試的投資回報率,而另一些人甚至聲稱計算軟件測試的投資回報率是一個誤區(qū)。  

在通常情況下,真相就在其中。不幸的是,計算軟件測試工作的投資回報非常困難:可以確定測試項目的成本,但無法確切知道它如何影響企業(yè)的利潤。  

就其本身而言,功能性或非功能性軟件測試都不會產(chǎn)生利潤。但是在及時測試的幫助下,企業(yè)可以通過防止軟件錯誤、安全問題、可用性問題和其他對其產(chǎn)品在市場上的地位產(chǎn)生負面影響的因素來提高利潤。  

那么就投資回報率而言,功能測試和非功能測試有區(qū)別嗎?如果看一下這兩種測試在測試過程中的位置,就會發(fā)現(xiàn)功能測試通常比非功能測試發(fā)生得更早。越早發(fā)現(xiàn)錯誤,修復(fù)它們花費的資源就越少。此外,功能性錯誤通常更容易定位,尤其是當有足夠的文檔時。所有這些都使功能測試具有明顯的成本效益。  

另一方面,非功能測試通常發(fā)生在軟件產(chǎn)品開發(fā)的最后階段,有時甚至發(fā)生在其發(fā)布之后。在這一點上,修復(fù)錯誤需要花費更多的時間和費用。此外,非功能性錯誤通常更難發(fā)現(xiàn),因為它們涉及軟件產(chǎn)品操作的更精細方面。  

但是,始終牢記不應(yīng)將非功能測試視為功能測試的次要內(nèi)容。這些測試類型直接影響企業(yè)的軟件產(chǎn)品的接受度,因此即使在投資回報率(ROI)與其預(yù)期不同的情況下,也不是限制測試工作的理由。  

(4)可以跳過某些類型的測試步驟節(jié)省成本嗎?  

在各種情況下,測試范圍都是在本文前面討論的因素定義的。然而,在大多數(shù)情況下,QA工程師對軟件產(chǎn)品運行功能測試和非功能測試。這樣做是為了使測試過程全面而有效,這將產(chǎn)生一個經(jīng)過徹底測試的產(chǎn)品,并將故障概率降至最低。  

如果談?wù)摰氖且粋€抽象的軟件產(chǎn)品,那么確實如此,如果缺乏資源,有時可以縮小測試范圍。但是,企業(yè)的測試項目仍然需要包括功能測試和非功能測試。  

只有在開發(fā)不打算與用戶交互的產(chǎn)品時,才能完全跳過非功能測試,例如沒有用戶界面的實用軟件產(chǎn)品。即使這樣,企業(yè)也可能需要測試它的性能、安裝、承受不同負載的能力以及其他影響軟件產(chǎn)品成功的因素。

為什么在投資時間和成本方面非功能測試與功能測試一樣重要  

對于功能測試的重要性通常不會引起太多爭論,因為它直接處理產(chǎn)品的預(yù)期功能——而這正是設(shè)計它的目的。然而,對于那些剛接觸軟件開發(fā)和測試的人來說,非功能性測試似乎并不重要。此外,由于非功能測試往往是資源密集型的,產(chǎn)品所有者經(jīng)常懷疑這是否值得投資。  

非功能測試不足或缺失的軟件產(chǎn)品在市場上的表現(xiàn)永遠不會像每個非功能方面都經(jīng)過盡可能的細節(jié)測試的產(chǎn)品那樣好。因此,在這里的工作不是試圖減少非功能性測試以減少資源消耗,而是找到一個適合企業(yè)的需求和預(yù)算的QA團隊。

QA團隊負責(zé)人Igor Kovalenko說,“在這個時代,幾乎沒有任何行業(yè)或產(chǎn)品類型能夠?qū)⒎枪δ軠y試視為事后的想法,因為產(chǎn)品的每一個新特性都是為最終用戶而設(shè)計的?!?nbsp;

結(jié)論

將測試分為功能性和非功能性只是對軟件測試進行分類的一種可能方法,但這是一個非常重要的區(qū)別。本文旨在展示功能測試和非功能測試對于企業(yè)的軟件項目的成功來說至關(guān)重要。  

如果企業(yè)希望其產(chǎn)品按照功能要求工作并受到客戶的好評,那么跳過任何一種類型的測試或?qū)⑵渲匾宰钚』瘜且粋€最終適得其反的結(jié)果。另一方面,企業(yè)根據(jù)其項目規(guī)范和內(nèi)部資源設(shè)計一個全面的測試計劃是一種最終會得到回報的策略。  

原文標題:??Functional vs. Non-functional Testing: Can You Have One Without the Other????,作者:Anna Smith?

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2012-07-31 16:31:56

云計算

2017-06-13 16:12:49

大型機云計算

2015-05-04 17:29:03

云計算大數(shù)據(jù)分析

2020-04-10 16:46:01

VueAngular框架

2021-12-29 21:15:08

軟件測試軟件開發(fā)

2015-09-07 14:31:33

云計算SDNNFV

2009-12-11 16:15:01

VS2008功能

2024-10-21 11:45:00

模型訓(xùn)練

2024-09-18 00:00:05

Grid場景技術(shù)

2023-04-21 18:55:17

工程系統(tǒng)停機

2018-03-09 09:16:58

混合云存儲問題

2024-09-12 22:45:47

2021-01-07 13:46:01

安全訪問零信任網(wǎng)絡(luò)安全

2018-04-26 14:25:03

2018-08-10 08:46:20

2009-05-20 14:43:38

ibmdwEasyMock測試

2023-11-22 13:05:12

Pytest測試

2020-05-18 07:00:00

性能測試壓力測試負載測試

2009-12-11 15:13:15

VS 2010驅(qū)動

2011-06-08 16:59:04

性能測試載測試壓力測試
點贊
收藏

51CTO技術(shù)棧公眾號