這些都是軟體測試的一般通用概念。根據測試的目的和手段不同而各自定義的內容。下面小編為大家好好解釋一下:

功能測試:

就是對軟體的邏輯功能進行的一種測試。軟體是為了幫助用戶實現某些特定功能的,完成一定的目標作為其運行的基礎。所以軟體的功能測試就是從軟體的邏輯功能、界面、易用性、兼容性等方面進行的一種測試。多數時候是測試人員手工進行執行,少部分功能也會編寫測試代碼,進行自動化測試。是軟體最重要的一方面的測試。

介面測試

顧名思義,就是懟軟體之間進行數據交互的介面進行的一種測試。由於現在很多軟體都會使用大型的互聯網應用廠商提供的開放介面,例如:

有些應用可能使用合作網站的賬號進行登陸,其實就是其他網站和應用開放了自己的介面系統供別人調用的一種情形。當然了,介面測試不僅僅如此,還是一門很重要的學問呢。如果感興趣我們可以深入的探討。

自動化測試

廣義的自動化測試就是使用專門的工具軟體、或者測試人員自行編寫的程序代碼完成軟體測試的一種形式。一般常說功能自動化測試、性能自動化測試、介面自動化測試,這都是自動化測試中的一個小分支。

性能測試

就是對軟體運行過程中,在面對大量用戶使用、長時間運行、大量數據讀寫操作時的軟體系統,尤其是對系統的服務端運行狀態進行監控和評價的一種測試。性能測試是功能測試的延伸,功能測試一般注重能不能用,而性能測試則考慮的內容要更持久、更大量。性能測試是一種統稱,按照測試的目的不同包含了負載測試、壓力測試、穩定性測試、大數據量測試等。尤其是壓力測試,給系統不斷施加壓力直到系統崩潰為止,例如下圖:

就是一種系統的某項性能指標趨於或者達到飽和的一種表現。

安全測試

針對系統可能存在的漏洞進行探測、發現的過程,可以從系統的整個網路結構設計、操作系統的安全、資料庫的安全、系統程序代碼的安全、業務邏輯的安全等眾多方面進行開展。例如,下面就是從業務邏輯安全方面進行控制的:

再比如,登陸系統的時候,使用了不同地區的IP地址,系統提示不在經常使用的地區,也是系統安全性的表現。

還有從一些網路傳輸的參數的角度,說明系統安全性。例如下圖:

安全測試很多,有些是主動檢測自身的安全漏洞的,比如滲透測試,就是模擬黑客的攻擊的形式,對自身系統進行安全檢測測一種手段。還有一些是被動的安全測試,比如就有網路入侵檢測,通過對自己系統設定一些特定的數據和內容,查看自己的系統是不是被人入侵了。

測試是一個值得深入鑽研的工作和崗位。


話不多說,直接上圖


簡單來說一下,畢竟深的我也不會

1,功能測試,最簡單的功能測試就是點點點,通過人工點,發現app或者web上的bug,然後折磨開發

2,介面測試,我們打開一些軟體,跳轉頁面什麼的,其實是一個個介面連接起來的,我們能看到的都是界面設計,比如QQ打開著,我們進入QQ空間,這就是調了一個介面,介面測試就是用各種辦法測試介面有沒有問題

3,自動化測試,顧名思義,自動化也分功能自動化,介面自動化,就是可以代替手工,但是如果項目迭代週期太快的話,自動化的成本可能會很高,比如遊戲,就很少用自動化,因為一週變個需求,自動化太麻煩了

4,壓力測試,就是看軟體的承載力,比如12306搶票啊,這就是每天都承受著全國最大的壓力,所以不要再埋怨它卡了,它每天的運作量都相當於雙11的淘寶

5,性能測試,其實壓力測試也算一種性能測試,也是通過各種測試手法,測軟體。比如啟動時長,圖片載入所佔內存,運行長時間會不會崩潰。

6,滲透測試瞭解不多,不敢多bb,等大佬解答

7,安全測試也是比較深的,我沒做過,但是領導做過,咱也知道,像網站發送請求,中間這個TLS會不會被劫持,造成其他人用這個身份登入私有網站,一般為了安全,網站都採用https的方式,保密性高一些

反正是配合開發的,雖然和開發也打架,乾死幾個開發,測試工作也就完成了


上面這些總體分三類:功能測試、性能測試、安全測試

功能測試是對軟體的某個功能模塊進行測試,所謂點點點僅僅是功能測試的UI界面的功能測試,還有更多通過UI界面進行跳轉就是介面測試,這也是功能測試的一部分

性能測試是對軟體在不同硬體下的測試,有負載測試、壓力、並發等,比如一個手機軟體在蘋果手機上、華為手機上、電腦模擬器上等不同環境測試,壓力測試有的時候也會在介面測試上面進行

安全測試是負責搭建軟體安全環境和數據安全環境的,而滲透測試和安全測試的思路相反,但其目的也同樣是保證軟體和數據更加安全的

自動化測試分為功能自動化測試和性能自動化測試,其反義詞是手工測試,自動化測試的目的就是來做人工無法做到的事情,比如介面測試需要確保上萬個數據傳輸,怎麼確認這上萬個數據的先後性,這種測試不可能用人工,就只能用自動化測試了,還有一個軟體迭代較快,一天兩三次,那麼回歸測試就會讓人忙死,需要測試一個軟體的最大承壓,人工完全達不到這種壓力,只有靠自動化來模擬,功能、測試、安全都可以用上自動化測試


樓主問的這些是從不同角度去分類的軟體測試,從目的性劃分來看,軟體測試分為功能測試,性能測試和安全測試。

其中自動化測試也屬於功能測試的一種,即對軟體的功能是否達到產品需求進行的測試;

性能測試的叫法會比較普通,壓力測試,並發測試,單點測試等等,其實都只為了測試軟體在某一環境下,是否可以滿足用戶的訪問及使用體驗;

安全測試顧名思義,即對軟體的安全性進行測試,不光需要測試代碼上是否存在安全問題,也需要兼顧伺服器及資料庫的安全,滲透測試只是安全測試的其中一個分類;

上述所說的介面測試,是對軟體的一部分的測試,其實也包涵三個方面,一方面是對介面的功能測試,舉個例子來說,某一個介面是實現文字轉化語音,這個介面能不能把文字轉化成相對應的語音,就是對其功能測試;晚上十點之後,大家喫完飯躺被窩,想把小說轉化成語音來聽,有1000人同時【注意,這裡說的同時,可能是在1s以內,諸如12306開啟搶票的時候,可能測試的就是500ms或者更短時間內】使用這個軟體的文字轉語音介面,那介面伺服器會不會處理不過來,從而導致cpu攀升,內存溢出等等,處理過慢【需要產品量化過慢標準】,甚至伺服器宕機,那對該介面,此方面的測試,就屬於性能測試當中的並發測試;再者,這個介面本身會不會涉及到過多的許可權,從而導致被黑~~~~這就屬於該介面的安全測試範疇。

做測試,首先就要自己思路清晰,判定測試分類並不難,也不是特別有必要,知道工作需要什麼,怎麼運用自己所學的知識,把工作在規定標準的前提下,完成的更好,纔是最主要的。

學習測試,不能單單只學習測試相關的內容,開發,資料庫,運維等等方面的技術隨著工作積累,慢慢推進,才會讓你穩步成長起來。


功能測試是最基礎的測試,就是在頁面或者app上點點點的,也是可替代性最強的一種。

介面測試事脫離頁面通過介面測試邏輯,這部分也最容易實現自動化測試。

自動化測試就是通過腳本實現程序幫助人測試,自動出測試結果。

壓力測試是性能測試的一種

滲透測試是安全測試的一種


按測試類型來說,功能測試就是黑盒測試,而介面測試,性能測試,滲透測試,安全測試,是專項測試,其中自動化測試含義有包括介面跟UI,至於壓力測試也是屬於性能測試一種。功能測試,這個就不在描述,也就是通過操作來產生相應問題。

介面測試就是api,基本就是服務端介面,來測試數據的增刪改查返回的值,可以通過介面工具,測試,這個要了解基礎的http請求;

性能測試:基本就是測試介面的相應以及伺服器,也就是要看承壓能力;當然在APP測試,有人把性能叫做專項,測試APP啟動,內存,流量等測試

滲透測試可說就是黑客攻擊,來看會不會被攻擊來獲取相應數據,存在漏洞

安全測試時從整體的設計架構,編碼等多方面入手,看是否存在問題,安全測試也可以包含滲透測試;

自動化測試,就是運行某個程序後,可以不用人工介入,可以保證功能沒有問題或者發現問題;


軟體測試分功能測試、性能測試和安全性測試,每個分類從不同角度又可以細分,如題主說的。

功能測試也叫黑盒測試,根據用戶需求文檔去測試軟體是否實現了需求中規定的功能,可以用手工的方式完成測試,也可以用自動化的方式去完成。舉個例子,如用戶登錄,輸入用戶名和密碼點擊登錄按鈕可以正常登錄,這個測試點就是功能測試。

介面測試可分為介面功能測試和介面性能測試,介面功能測試主要測試需求中定義的介面是否都實現了其功能。還以用戶登錄為例:用戶登錄介面從功能上測試的話,和用戶登錄功能測試的區別不是很大,只不過介面測試一般是通過工具或編碼進行測試的;介面的性能測試主要測試該介面的性能能否達到需求中的要求,如用戶登錄這個介面,能否按需求要求3秒內響應並且數據顯示正常。

自動化測試既白盒測試,用代碼或工具實現,讓程序自動執行並輸出測試結果,細分的話有UI自動化和介面自動化。

壓力測試是性能測試的一種,測試系統在一定飽和狀態下,系統能夠處理的會話能力,以及系統是否會出現錯誤,目的是檢查系統處於壓力下的性能 。

安全測試對軟體的安全性進行測試,保護用戶的數據不泄露,系統不易被攻擊。不光要測試代碼是否存在安全問題,也要兼顧伺服器及資料庫的安全,滲透測試是安全測試的一個分類。

希望可以幫助到您。


推薦閱讀:
相關文章