移動端測試入門系列:測試基礎理論 (一)[第三期]

Jwong發表於2020-05-31


以下內容,也是從眾多測試基礎理論中摘選的。選取的原則:面試中常被問到的,專案開發測試交流中常被提到的。如果你剛入門測試,這些基礎理論你必須瞭解,至少它能夠幫忙你和研發同事交流暢通。當然軟體測試理論眾多,小夥伴有時間還是要多擴充自己的知識面。

軟體的概念:
計算機系統中與硬體相互依存的一部分,它是包括程式、資料及其相關文件的完整集合。

軟體測試的定義:
它是軟體工程中的一個非常重要的環節,是開發專案整體的一部分。是有計劃有組織的,是伴隨軟體工程的誕生而誕生的,軟體測試不是萬能的,不可能發現全部缺陷,軟體測試是有侷限性的。

軟體質量的定義:
軟體質量就是 “軟體與明確的、隱含的定義的需求相一致的程度”。
明確的需求:軟體符合明確敘述的功能和效能需求、文件中明確描述的開發標準;
隱含的需求:所有專業開發的軟體都應具有的隱含特徵的程度,比如:符合行業標準;

軟體的生命週期:
需求分析 —》可行性分析 —》概要設計 —》詳細設計 —》編碼實現 —》除錯和測試 —》軟體驗收與應用 —》維護升級 —》廢棄

軟體測試目的:
測試的目的不僅僅是為了發現軟體缺陷與錯誤,而且也是對軟體質量進行度量和評估,以提高軟體的質量。

軟體測試階段:

單元測試:
單元測試是指對軟體中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如 C 語言中單元指一個函式,Java 裡單元指一個類,圖形化的軟體中可以指一個視窗或一個選單等。
總的來說,單元就是人為規定的最小的被測功能模組。單元測試是在軟體開發過程中要進行的最低階別的測試活動,軟體的獨立單元將在與程式的其他部分相隔離的情況下進行測試。


整合測試:
整合測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模組按照設計要求(如根據結構圖〕組裝成為子系統或系統,進行整合測試。
事實表明,一些模組雖然能夠單獨地工作,但並不能保證連線起來也能正常的工作。程式在某些區域性反映不出來的問題,在全域性上很可能暴露出來,影響功能的實現。


系統測試:
系統測試是將已經確認的軟體、計算機硬體、外設、網路等其他元素結合在一起,進行資訊系統的各種組裝測試和確認測試。系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案
系統測試發現問題之後要經過除錯找出錯誤原因和位置,然後進行改正。是基於系統整體需求說明書的黑盒類測試,應覆蓋系統所有聯合的部件。物件不僅僅包括需測試的軟體,還要包含軟體所依賴的硬體、外設甚至包括某些資料、某些支援軟體及其介面等。


驗收測試:
驗收測試是一項確定產品是否能夠滿足合同或使用者所規定需求的測試。這是管理性和防禦性控制,主要確認軟體是否按合同要求進行工作,既是否滿足軟體需求規格說明書中的要求。

軟體測試流程:
需求分析 —》需求評審 —》設計測試用例 —》用例評審 —》測試計劃 —》搭建測試環境 —》測試執行 —》缺陷修復 —》迴歸測試 —》測試報告 —》跟進上線

軟體測試模型:

瀑布流:
瀑布模型是最正宗最規範的流程。計劃—>需求分析—>設計—>編碼—>測試—>執行維護

特點:
1、軟體開發的各項活動嚴格按照線性方式進行;
2、當前活動接受上一項活動的工作結果;
3、當前活動的工作結果需要進行驗證;
缺點:
1、由於開發模型是線性的,增加了開發的風險;
2、早期的錯誤可能要等到開發後期的階段才能發現;


V 字形:

V 模型是基於瀑布模型的。
缺點:就是將測試放在整個開發的最後階段,沒有讓測試今早介入開發,沒有在需求階段就進入測試。 測試與開發序列。


W 字型(雙 V):

W 模型是由兩個 V 模型組成,一個是開發階段,一個測試階段。可以看出,在 W 模型中開發和測試是並行的關係 。
特點:測試與開發並行,讓測試今早介入開發環節,使測試今早發現問題今早解決。
缺點:雖然開發與測試並行了,但是在整個開發階段,仍然是序列的,上一階段未完全完成無法進入下一階段,不支援敏捷模式的開發。


敏捷(Scrum):
特點:
1、短週期開發、增量開發;
2、由程式設計師和測試人員編寫的自動化測試來監控開發進度;
3、透過口頭溝通、測試和原始碼來交流系統的結構和意圖;
4、編寫程式碼之前先寫測試程式碼,也叫做測試先行;
缺點:
1、團隊的組建較難,人員素質要求較高;
2、對測試員要求完全掌握各種指令碼語言程式設計,能執行單元測試、自動化測試;

BS/CS 架構:
C/S 是 Client/Server 或客戶/伺服器模式。如:微信,QQ 等
B/S 是 Brower/Server 的縮寫。如:慕課網、知乎等

軟體測試分類:

按照開發階段劃分:單元測試、整合測試、系統測試、驗收測試

按照測試實施組織劃分:開發方測試、使用者測試 (Alpha 測試,Beta 測試)、第三方測試

按照測試技術劃分:白盒測試、灰盒測試、黑盒測試

TDD(測試驅動開發)
測試試驅動開發的基本思想就是在開發功能程式碼之前,先編寫測試用例。也就是說在明確要開發某個功能後,首先思考如何對這個功能進行測試,並完成測試程式碼的編寫,然後編寫相關的程式碼滿足這些測試用例。然後迴圈進行新增其他功能,直到完成全部功能的開發。

下一期預告:
測試基礎理論(二)之 缺陷(BUG)

相關文章