學習測試理論基礎第一天

2021-09-29 17:56:56 字數 3595 閱讀 4414

1.為什麼需要軟體測試

(1)為了保證軟體的功能是可用的,我們必須進行測試。

(2)需求有了更高的要求,所以需要我們對軟體進行大量的測試。

2.我們為什麼選擇軟體測試

(1)測試人員需求慢慢變大

(2)創造世界-開放,希望世界更加完美-測試。

3.為什麼不讓開放自己做測試

(1)專業度:測試和開放是二個不同的技術方向。所以專人做專事對質量更加***。

(2)思維定義:在軟體的開放週期中,程式設計師他們大部分時間都是思考如何實現具體的軟體功能。不會從使用者的角度考慮去「奇葩」的使用這些功能。

(3)測試力度:對開放來說,產品相當於他們的「孩子」。所以「下手」不會那麼的狠。

4.軟體測試定義

(1)通過手工或者工具對「被測物件」進行測試操作,從而驗證實際結果與預期結果是否存在差異。

5.軟體測試的作用

(1)通過測試工作可以發現並修復軟體當中存在的缺陷,從而提高使用者對產品的使用信心。

(2)測試可以記錄軟體執行過程中產生的一些資料,從而為決策提供資料支援。

(3)測試可以降低同型別產品開放遇到問題的風險。

6.軟體測試的七個原則

所謂的測試的原則就是我們在執行測試工作時必須要遵守的一些規則。

(1)測試顯示軟體存在缺陷 (testing shows presence of defects)

測試只能證明軟體中存在缺陷,但並不能證明軟體中不存在缺陷。

(2)窮盡測試是不可能的 (exhaustive testing is impossible)

軟體的規模越來越大,複雜度越來越高,想做到完全性的測試是不可能的。在測試階段,測試人員可以根據風險和優先順序來進行集中和高強度的測試,從而保證軟體的質量。

(3)測試盡早介入 (testing early)

為什麼,保證軟體質量,降低風險和成本。缺陷發現越早,修復的成本就越小。

(4)缺陷集群性 (2/8原則) (defect clustering)

缺陷集群性表明小部分模組包含大部分的缺陷。軟體測試中存在帕累託pareto原則:80%的缺陷發現在20%的模組中。

乙個功能模組發現的缺陷越高,那存在的未發現的缺陷也越高,故發現的缺陷也未發現的缺陷成正比。

(5)殺蟲劑悖論 (pesticide paradox)

如果一直使用相同的測試方法或手段,可能無法發現新的bug。

為了解決這個問題,測試用例應當定期修訂和評審,增加新的或不同的測試用例幫助發現更多的缺陷。

測試人員不能一直依賴於現有的測試技術,而要不斷的提公升測試方法以提高測試效率。

(6)測試活動依賴於測試內容 (testing is context dependent)

根據業務的不同,軟體測試內部也分為不同的行業。所以軟體測試的活動開展依賴於所測試的內容。

(7)沒有錯誤是好事謬論 (absence of error - fallacy)

軟體測試不僅是找出缺陷,同時也需要確認軟體是否滿足需求。

7.測試物件

(1)我們可以將軟體分為三個部分組成:功能集合+使用說明+配置資料。

(2)對於軟體來說從無到有需要不同的過程。我們將過程分為不同的階段,然後每個階段都會相應有測試物件。

1.需求分析階段:各種需求規格說明說。

2.軟體架構設計:api介面文件(介面測試)。

3.編碼實現階段:源**(白盒測試,單元測試)。

4.系統功能使用:軟體功能主體(當前行業做的最多的一種測試)。

8.測試級別

(1)單元測試 (ui unit test)

指的就是組成最小的底層**結構,一般就是類,函式,元件(當下的軟體測試行業,不會刻意要求測試人員對源**進行測試)。

(2)整合測試 (it system ingertaion test)

將多個單元模組組合在一起,然後驗證他們之間溝通的「橋梁」是否能正常工作(介面測試)。

(3)系統測試

這是當前行業做的最多的一種測試。由測試人員充當使用者然後對軟體的功能主體進行測試。

(4)驗收測試

α測試----內測

β測試----公測

uat(user acceptance test)測試----由客戶派出對於業務非常精通的人員來使用該軟體,從而對功能進行測試。

驗收測試的核心就是讓使用者為當前軟體「買單」

9.系統測試分類

(1)功能測試 :驗證當前的軟體主體功能是否可用

(2)相容性測試 :驗證當前的軟體在不同的環境下是否還可以使用

(3)安全測試 :驗證軟體是否只是能授權使用者提供功能使用

(4)效能測試 :相當於當前軟體消耗的資源,它的產出能力

10.常見的系統測試方法

(1)按測試物件進行分類

1.白盒測試:這種測試的主體就是軟體底層**,不在意外在的介面是否ok,只要求底層功能實現,同時邏輯正確

2.黑盒測試:這種測試就是指測試軟體外在主體功能是否可用

3.灰盒測試:介於兩者之間(介面測試)

4.注意:上述三種方法當中的「盒」指的就是被測物件(也就是我們所說的軟體)

(2)按測試物件是否執行分類

1.靜態測試:測試物件不執行(一般測文件,純介面靜態展示性質的)

2.動態測試:將軟體執行在真實的使用環境中進行測試

(3)按測試手段進行分類

1.手工測試:由測試人員手動的對被測物件進行驗證,優點就是可以靈活的改變測試操作及環境。

2.自動化測試:所謂自動化主要有兩種形式,一種是自己寫測試指令碼,另一種就是通過第三方工具對被測物件進行測試。優點就是可以高效率的去執行一些人工無法實現的操作

11.軟體質量特性

iso這個組織制定的,軟體質量的6大特性

1.功能性:軟體需要滿足使用者顯示或者隱藏式功能

2.易用性:軟體易於學習和上手使用

3.可靠性:指的就是軟體必須實現需求當中指明的具體功能

4.效率性:類似於軟體的效能

5.可維護性:要求軟體具有將某個功能修復之後繼續使用的能力

6.可移植性:當前軟體可以從乙個平台移植到另乙個平台上去使用的能力

12.軟體測試流程

(1)常見的兩種架構模式就是b/s c/s

b----browser 瀏覽器

c----clent 客戶端

s----server 伺服器

(2)比較

標準:相對於cs架構來說bs架構的兩端都是在使用現成的成熟產品。所以bs會顯的標準一些

效率:相對於bs架構來說cs中的客戶端可以分擔一些資料處理,因此執行效率會高一些

安全:bs架構當中的資料傳輸都是以http協議進行輸出,而http協議又是明文輸出。可以被抓包,所以相對於cs架構來說bs就顯得不那麼安全

公升級:bs架構只需要在伺服器端將資料進行更新,前台只需要重新整理頁面就可以完成公升級,而cs架構當中必須要將兩端進行更新

開放成本:相對於bs架構來說cs當中的客戶端需要自己開放,所以相對於成本來說會高一些

python基礎學習第一天

python和c語言熟練 所有程式都是順序執行的 python開發規範,每一行不能超過80個字元 python 注釋與c語言差別較大 單行注釋 多行注釋 input預設接受的是字串 注意型別的轉換 條件語句 例子 猜年齡遊戲 usr bin env python coding utf 8 autho...

LUA基礎學習第一天

迭代器 ipairs pairs function 函式 區域性,全域性,算數運算子 單行注釋 多行注釋 ctrl lua的8大資料結構 使用者,表,線,布,函,空,數,字,number 數值型別 string 字串型別 boolean 布林型別 function 函式 nil 空型別 table ...

go基礎學習第一天

package main import fmt func main 解讀 每乙個go原始碼的開頭都是使用package宣告 表示該go 所屬的包 包是go語言裡最基本的分發單位 也是工程管理中依賴關係的體現 要生成go可執行程式,必須要建立乙個名字為main的包 並且在該包中包含乙個叫main的函式...