成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

?譯者 | 李睿

審校 | 孫淑娟

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

首先,功能測試和非功能測試之間的區分并不是一成不變的,對于某些測試類型來說,對它們進行分類并非易事。其次,功能測試和非功能測試對于軟件測試項目的成功都是至關重要的,盡管方式不同。以下將仔細研究功能性需求和非功能性需求之間的區別,這兩種類型的測試在軟件測試過程中的位置,以及它們如何影響測試成本。  

什么是功能測試?  

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

什么是非功能測試?  

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

為什么功能測試和非功能測試有區別?  

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

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

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

功能測試vs.非功能測試:主要區別

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

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

(1)功能測試  

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

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

(2)非功能測試  

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

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

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

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

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

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

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

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

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

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

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

但是,在某些情況下,文檔缺失或不足。在這種情況下,QA工程師將首先在探索性測試之旅的幫助下進行探索性測試。它通常被視為一種獨立的測試技術,不包括在功能或非功能測試類別中。它幫助工程師規劃測試過程,并決定需要測試的產品功能和非功能需求。或者,當軟件產品具有相對標準的規范和架構時,可以執行基于清單的測試。

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

變更相關測試及其重要性  

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

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

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

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

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

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

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

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

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

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

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

QA團隊負責人Andrii Nikitenko說,“項目的持續時間取決于產品的復雜性,需求的明確度,團隊之間的溝通水平,客戶回答問題的準備程度、項目規模、技術范圍、平臺的種類和屏幕的數量。項目的成本取決于類似的因素。”  

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

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

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

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

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

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

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

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

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

如果談論的是一個抽象的軟件產品,那么確實如此,如果缺乏資源,有時可以縮小測試范圍。但是,企業的測試項目仍然需要包括功能測試和非功能測試。  

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

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

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

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

QA團隊負責人Igor Kovalenko說,“在這個時代,幾乎沒有任何行業或產品類型能夠將非功能測試視為事后的想法,因為產品的每一個新特性都是為最終用戶而設計的。” 

結論

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

如果企業希望其產品按照功能要求工作并受到客戶的好評,那么跳過任何一種類型的測試或將其重要性最小化將會是一個最終適得其反的結果。另一方面,企業根據其項目規范和內部資源設計一個全面的測試計劃是一種最終會得到回報的策略。  

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

責任編輯:華軒 來源: 51CTO
相關推薦

2012-07-31 16:31:56

云計算

2017-06-13 16:12:49

大型機云計算

2015-05-04 17:29:03

云計算大數據分析

2020-04-10 16:46:01

VueAngular框架

2021-12-29 21:15:08

軟件測試軟件開發

2015-09-07 14:31:33

云計算SDNNFV

2009-12-11 16:15:01

VS2008功能

2024-09-18 00:00:05

Grid場景技術

2024-09-12 22:45:47

2018-03-09 09:16:58

混合云存儲問題

2021-01-07 13:46:01

安全訪問零信任網絡安全

2023-04-21 18:55:17

工程系統停機

2024-10-21 11:45:00

模型訓練

2025-05-21 03:00:00

RAG微調大模型

2018-08-10 08:46:20

2018-04-26 14:25:03

2010-06-22 11:00:26

虛擬化工作環境

2009-12-11 15:13:15

VS 2010驅動

2009-05-20 14:43:38

ibmdwEasyMock測試

2023-11-22 13:05:12

Pytest測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费一区二区 | 成人福利视频网站 | 亚洲免费毛片 | 国产精久久久久久 | 精品成人免费视频 | 夜夜骑首页 | 中文字幕在线第一页 | 91久久久久久久久 | www.狠狠干 | 国产精品一区二区三区久久久 | 91在线综合| 成年人免费在线视频 | 亚洲永久免费 | 久久久国产一区二区三区四区小说 | 亚洲精久久 | 欧美自拍网站 | 国产一二三视频在线观看 | 国产精品久久a | 国产精品看片 | 日韩欧美不卡 | 日韩福利电影 | 中文字幕一区二区三区精彩视频 | 亚洲国产精品va在线看黑人 | 国精产品一区二区三区 | 国产aaaaav久久久一区二区 | www亚洲成人 | 亚洲精品视频在线 | 欧美性猛交一区二区三区精品 | 男女羞羞视频网站 | 91视视频在线观看入口直接观看 | 高清成人免费视频 | 欧美三级在线 | 色婷婷一区二区三区四区 | 国产精品欧美一区二区 | 亚洲精品欧美 | 久久久一二三 | 欧美一区免费在线观看 | 偷拍第一页 | 男女羞羞视频在线观看 | av网站在线看 | 999精品视频 |