什麼是軟體測試

2020-09-19 慧樂課堂


軟體測試定義

在軟體應用程式或程序中發現錯誤,以使應用程式按照最終用戶的要求運行的過程或方法稱為軟體測試。

描述一種用來促進鑑定軟體的正確性、完整性、安全性和質量的過程。據此,您可能會想,軟體測試永遠不可能完整的確立任意電腦軟體的正確性。然而,在可計算理論(計算機科學的一個支派)一個簡單的數學證明推斷出下列結果:不可能完全解決所謂「死機」,指任意電腦程式是否會進入死循環,或者罷工並產生輸出問題。

還有一種定義:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。

從上面可以看出,換句話說,軟體測試是一種實際輸出與預期輸出間的審核或者比較過程。

軟體測試方法

軟體測試有許多方法,但對複雜的產品運行有效測試不僅僅是研究過程,更是創造並嚴格遵守某些呆板步驟的大事。測試的其中一個定義:為了評估而質疑產品的過程;這裡的「質疑」是測試員試著對產品做的事,而產品以測試者腳本行為反應作為回答。雖然大部分測試的智力過程不外乎回顧、檢查,然而「測試」這個詞意味著產品動態分析──讓產品流暢運行。程序質量可能,而且通常會,隨系統不同而有差異;不過某些公認特性是共通的:可靠性、穩定性、輕便性、易於維護、以及實用性。

軟體測試一般分為黑盒測試和白盒測試。

黑盒測試

黑盒測試(black-box testing),也稱黑箱測試,是軟體測試方法,測試應用程式的功能,而不是其內部結構或運作。測試者不需具備應用程式的代碼、內部結構和程式語言的專門知識。測試者只需知道什麼是系統應該做的事,即當鍵入一個特定的輸入,可得到一定的輸出。測試案例是依應用系統應該做的功能,照規範、規格或要求等設計。測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。

此測試方法可適合大部分的軟體測試,例如集成測試(integration testing)以及系統測試(system testing)。

白盒測試

白盒測試(white-box testing,又稱透明盒測試glass box testing、結構測試structural testing等)是一個測試軟體的方法,測試應用程式的內部結構或運作,而不是測試應用程式的功能(即黑盒測試)。在白盒測試時,以程式語言的角度來設計測試案例。測試者輸入數據驗證數據流在程序中的流動路徑,並確定適當的輸出,類似測試電路中的節點。

白箱測試可以應用於單元測試(unit testing)、集成測試(integration testing)和系統的軟體測試流程,可測試在集成過程中每一單元之間的路徑,或者主系統跟子系統中的測試。儘管這種測試的方法可以發現許多的錯誤或問題,它可能無法檢測未使用部分的規範。

測試的進程

Alpha測試

Alpha測試通常是階段性的開發完成後所開始進行,一直持續到進入Beta測試階段前的階段。Alpha測試是一種驗證測試,在模擬的環境中以模擬的數據來運行。

在這個階段中,通常是在開發單位由開發人員與測試的測試人員,以模擬或實際操作性的方式進行驗證測試。

Beta測試

在系統測試中通常先進行Alpha測試以驗證信息系統符合用戶以及設計需求所期望的功能。當Alpha階段完成後,開發過程進入到Beta階段,由公眾參與的測試的階段。Beta測試可稱為確認測試,在一個真實的環境中以實際的數據來運行測試,以確認性能,系統運行有效率,系統撤銷與備份作業正常,透過測試讓信息系統日後可以更趨完善。

封測與公測

封閉測試(Closed Beta,常簡作封測或CB)是軟體或服務等產品在開發完成後、將公開上市前的測試過程。相對於公開測試,封閉測試的主要用途是測試軟體的功能和檢查程序錯誤等等,因此通常只提供給少數人進行測試。有些公司會要求參與測試者籤署保密協議,以避免測試的產品提前外流。MMORPG的封測結束之後,遊戲公司常會將角色數據刪除,但也有少數不刪的。

公開測試(Open Beta,常簡作公測或OB),一般常指軟體或服務等產品在正式上市前開放給不特定人試用,雖然原意是希望試用者能夠提報bug,但並不是把試用者當做真正的驗證人員。由於通常為免費性質,故常常能夠吸引到大批的試用者參與,可視為另一種營銷策略。另一方面也節省下測試人員的成本,和驗證穩定度(對於多人使用的帶寬及機器是否能負載,又稱壓力測試)的時間。

Gamma測試

Gamma測試是一個很少被提及的非正式測試階段,該測試階段對應的是對「存在缺陷」產品的測試。考慮到任何產品都可以被稱為「存在缺陷」的產品(測試只能發現產品中存在的問題,不能說明產品不存在問題),因此這個概念存在一定的不確定性。 對Alpha和Beta測試常見的一個誤解是「Beta測試=黑盒測試」。實際上,Alpha和Beta測試對應在軟體產品發布之前的Alpha和Beta階段,而白盒、黑盒和灰盒測試技術是從技術和方法層面對測試的描述,不應該將這兩部分概念混淆。

測試的類型

功能測試

按照測試軟體的各個功能劃分進行有條理的測試,在功能測試部分要保證測試項覆蓋所有功能和各種功能條件組合。

系統測試

對一個完整的軟體以用戶的角度來進行測試,系統測試和功能測試的區別是,系統測試利用的所有測試數據和測試的方法都要模擬成和用戶的實際使用環境完全一樣,測試的軟體也是經過系統集成以後的完整軟體系統,而不是在功能測試階段利用的每個功能模塊單獨編譯後生成的可執行程序。

極限值測試

對軟體在各種特殊條件,特殊環境下能否正常運行和軟體的性能進行測試。 特殊條件一般指的是軟體規定的最大值,最小值,以及在超過最大、最小值條件下的測試。 特殊環境一般指的是軟體運行的機器處於CPU高負荷,或是網絡高負荷狀態下的測試,根據軟體的不同,特殊環境也有過不同。

性能測試

性能測試是對軟體性能的評價。簡單的說,軟體性能衡量的是軟體具有的響應及時度能力。因此,性能測試是採用測試手段對軟體的響應及時性進行評價的一種方式。根據軟體的不同類型,性能測試的側重點也不同。

壓力測試

壓力測試常常和性能測試相混淆。它們主要不同點是,壓力測試要求進行超過規定性能指標的測試。例如一個網站設計容量是100個人同時點擊,壓力測試就要是採用120個同時點擊的條件測試。

壓力測試的通常判斷準則:

•系統能夠恢復。•壓力過程中不要有明顯性能下降。

測試的階段

單元測試

單元測試是對軟體組成單元進行測試,其目的是檢驗軟體基本組成單位的正確性,測試的對象是軟體設計的最小單位:函數。

集成測試

集成測試也稱綜合測試、組裝測試、聯合測試,將程序模塊採用適當的集成策略組裝起來,對系統的接口及集成後的功能進行正確性檢測的測試工作。其主要目的是檢查軟體單位之間的接口是否正確,集成測試的對象是已經經過單元測試的模塊。

系統測試

系統測試主要包括功能測試、界面測試、可靠性測試、易用性測試、性能測試。 功能測試主要針對包括功能可用性、功能實現程度(功能流程&業務流程、數據處理&業務數據處理)方面測試。

回歸測試

回歸測試指在軟體維護階段,為了檢測代碼修改而引入的錯誤所進行的測試活動。回歸測試是軟體維護階段的重要工作,有研究表明,回歸測試帶來的耗費佔軟體生命周期的1/3總費用以上。

與普通的測試不同,在回歸測試過程開始的時候,測試者有一個完整的測試用例集可供使用,因此,如何根據代碼的修改情況對已有測試用例集進行有效的復用是回歸測試研究的重要方向,此外,回歸測試的研究方向還涉及自動化工具,面向對象回歸測試,測試用例優先級,回歸測試用例補充生成等。

相關焦點

  • 軟體測試工程師是什麼?
    IT行業至今還是如火如荼,軟體測試是IT行業的一個細分類目,軟體測試工程師是軟體測試工作的執行者。最近看tester指導猿的文章,學到了。1.什麼是軟體測試軟體測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。
  • 什麼是軟體測試工程師呢?
    近年來,在IT行業衍生出很多新的職業,軟體測試工程師就是其中一種。那什麼是軟體測試工程師呢?軟體測試工程師是指理解產品的功能要求,並對其進行測試,檢查軟體有沒有錯誤,決定軟體是否具有穩定性,寫出相應的測試規範和測試用例的專門工作人員。
  • 什麼是軟體測試?測試工程師前景好嗎?
    假如你沒有任何計算機基礎,也不是計算機專業,學習軟體測試基本都能就業,開發的風險就比較高,尤其是對那些沒有任何基礎或者學歷偏低的朋友來說,學開發無疑是一種挑戰,學測試可能更接近成功。軟體測試易入門上手快,而且學習過程中代碼內容相對較少,不需要精通Java、C等程式語言,從基礎學習,很容易學習,見效快。什麼是軟體測試?
  • 軟體測試培訓完有什麼證書,學習軟體測試需要考哪些證書?
    測試人才一將難求也吸引越來越多的人參加軟體測試培訓,那軟體測試培訓完有什麼證書,學習軟體測試需要考哪些證書?軟體測試培訓完有什麼證書?,多多少少還需要一些證書來證明自己的實力,學習軟體測試可以考取一些證書來見證自己。
  • 什麼是軟體測試?入門的都看看
    ,通過修正各種錯誤和缺陷提高軟體質量,避免軟體發布後由於潛在的軟體缺陷和錯誤造成的隱患所帶來的商業風險。軟體測試人員偏少,崗位缺口較大,不少企業以開發暫代測試,以作急用。從業者在擁有幾年的測試經驗背景後,可以逐步轉向管理或者資深測試工程師,擔當測試經理或者部門主管,所以職業壽命更長。另外,由於國內軟體測試工程師人才奇缺,並且一般只有大中型企業才會單獨設立軟體測試部門,所以很有保障,待遇普遍較高。
  • 小白學軟體測試,需要什麼基礎?
    很多軟體測試小白總是會問一個問題:做軟體測試需要什麼基礎?其實軟體測試入門門檻相對而言,是比較低的,入門的基礎也比較簡單,大概分為以下幾點。測試基礎測試基礎是軟體測試最最重要的部分,不管你做什麼測試,測試的基礎、理論知識都是必須學會的。 下面就來講一講測試的基礎有哪些需要知道的。
  • 軟體測試是幹什麼的?
    1、國內定位和發展前景:測試工程師,軟體質量的把關者,工作起點高,發展空間大。我國的軟體測試職業還處於一個發展的階段,所以測試工程師具有較大發展前景。目前傳統的軟體行業還是以軟體測試工程師為主,但是在新興的網際網路行業大多還是以QA來命名這個職位,也就是質量保證。
  • 軟體測試按照什麼分類?又是怎麼分類的?
    在實際項目測試過程中,選擇並確定測試模型只是我們實施測試的第一步。除此之外,還要弄清楚整個測試過程中需要做哪些類型的測試,並根據不同的測試類型進行相應的測試,比如我們耳熟能詳的功能測試、性能測試等,這樣我們的測試工作才能有效進行。那麼軟體測試按照什麼分類?又是怎麼分類的呢?
  • 什麼是軟體測試培訓?自學能學會嗎?
    現如今,每天都有各類應用產品層出不群,但是在產品上線之間必須要經過的一步就是軟體測試,測試合格之後才能產品才能上線,,所以軟體測試在企業中承擔著舉足輕重的作用,行業發展前景也是越來越好,很多人選擇參加軟體測試培訓來學習測試技能,那麼什麼是軟體測試培訓?自學能學會嗎?
  • 找軟體:測試快閃記憶體性能用什麼軟體?
    更多精彩相關文章推薦:  快閃記憶體做成啟動盤後應該如何還原  在Windows7上為快閃記憶體設置加密分區  簡單兩步輕鬆打造啟動加密二合一快閃記憶體  點擊查看更多軟體資訊>>  問:
  • 黑盒白盒軟體測試是什麼意思?兩種測試方法有哪些優缺點
    軟體測試是軟體開發過程中必不可少的階段,對於軟體測試人員來說,本職工作就是按照測試方法和測試工具查找程序bug的過程。說到測試方法,相信很多小夥伴對黑盒測試和白盒測試並不陌生,也有通俗一點的說法就是這兩種測試方法一個看得到代碼,一個看不到代碼。那麼黑盒白盒軟體測試究竟是什麼意思,對軟體測試工作有什麼影響呢?
  • 女生做軟體測試的利弊都有什麼?
    在我們的傳統的想法中,女生的編程思維可能會弱於男生,也導致好多女生會直接躲開編程領域,女程式設計師的數量也是比較少的,但是也並不是所有的IT行業女生數量都是少於男生的,比如說軟體測試,那么女生做軟體測試會有什麼利弊呢?
  • 上海北大青鳥:軟體測試需要學什麼
    很多想要轉行軟體測試的同學,想要找一家專業的培訓機構好好學習一下,現在面上大大小小的培訓機構數不勝數,不知道選擇哪一家學習。上海北大青鳥的的軟體測試培訓課程深入企業需求,以理論+實戰的教學模式貫穿課堂。
  • 「軟體測試基礎知識」SDK是什麼?
    1.首先,我們來了解SDK是什麼?官方一些的回答,客戶端SDK(英文全稱:Software Development Kit),它是為第三方開發者提供的軟體工具包。軟體開發工具包,一般是一些軟體工程師為特定的軟體包、軟體框架、硬體平臺、作業系統等建立應用軟體時的開發工具的集合。
  • 軟體測試需要學什麼?
    我將從四個階段講一下軟體測試都需要學什麼?第三階段是關於能力提升,路線發展的確定,(java、python、自動化測試、性能測試、安全測試)第四個階段主要是測試架構師的成長路第一階段 測試基礎測試的定義、測試的分類、測試的方法、測試的生命周期。
  • 低代碼開發對軟體測試有什麼影響?
    低代碼軟體開發可以使組織以有限的資源快速構建。但是對軟體測試有什麼影響?什麼是低代碼軟體開發?低代碼軟體開發可以與汽車製造裝配線相提並論。應用程式生命周期管理(ALM)軟體工具使開發人員可以在測試,登臺和生產過程中開發,調試,部署和維護軟體。
  • 軟體測試中的性能測試 負載測試 壓力測試
    1.之前有做過性能測試嗎,做過的話是做了哪些呢這個可以說使用常用的工具(jmeter,loadrunner)來完成,也可以說用的第三方軟體(這種普遍都是傻瓜型軟體,直接裝好就能用,騰訊gt等)。當然不知說這些,還要說在項目的哪一塊用過,有沒有遇到什麼問題之類的。
  • 「軟體測試」一般都在測試什麼你知道嗎?
    眾所周知,軟體測試人員的工作就是通過各種手段,發現和找出軟體的缺陷。最直接的作用就是確保了開發人員的錯誤能夠被儘早快速的發現,確保軟體是符合產品經理設計的。1、提高軟體的質量軟體測試的首要目的就是提高軟體的質量,也就是讓用戶對產品有更好的體驗,保證軟體的高質量。
  • 0基礎入門軟體測試該學些什麼?怎麼學?
    這個問題,就像大學報考專業一樣,很多人問選什麼專業比較好,將來畢業就業前景好,薪水起點高。我不會爭論這種思想如何不好,回到中國的一句諺語:360行,行行出狀元。假如你現在是做測試,你身邊同事是做開發,你們對比,肯定有傷害,是吧。會不會有一種,選擇了做測試,死路一條的感覺,後悔過沒有。後悔也沒用,關鍵是如何去彌補,我們和別人的差距。
  • 軟體測試入門都需要看什麼書,入門都需要學習什麼技術?
    軟體測試入門都需要看什麼書,軟體測試培訓入門都需要學習什麼技術?軟體測試入門都需要看什麼書?比較推薦的一本書是《軟體測試》,這是一本軟體測試的入門書,內容比較全面也很實用,講述的淺顯易懂,可作為軟體測試愛好者的自學用書,而且對於軟體測試工程師或者是其他程式設計師提升技術都有很好的參考作用。