【一】基本術語
【1】術語一:
(1)動態測試:透過執行軟體的元件或系統來測試軟體
==》需要不斷地去執行系統來檢測軟體是否存在bug或缺陷。 eg.執行抖音,騰訊課堂能否進入課堂等。
(2)靜態測試:對元件的規格說明書進行評審,對靜態程式碼進行走查。
》比如透過閱讀等方式去檢測軟體是否存在bug或缺陷。 eg.閱讀和看需求規格說明書,看程式碼是否有書寫錯誤。
(3)正式評審又叫組內評審:對評審過程以及需求文件的一種特定評審。
多次用例評審有三種方式:
交叉評審:在測試組內測試人員相互進行先評審(人員一般就是測試組裡面的)
組內評審(又稱正式評審):在專案組內進行評審(專案經理,測試經理,開發經理,開發人員等等與專案組相關的人員)
會議評審:有客戶方參與。
(4)度量:測試所使用的方法或者標準。用了哪些測試方法,版本迭代過程中是否 0 bug才能上線,bug率也會作為度量的指標,bug密度。》1000條測試用例出現了多少條bug也會作為度量當前產品的質量。
(5)評審員:參與評審的人,每個人都可以是評審員
(6)記錄員:記錄評審會議上的會議紀要。
【2】術語二:
(1)技術評審:同行間對技術進行的評審,目的是技術實現達成共識。
==》對當前更新或者迭代的功能程式碼進行一個評審
==》對介面的程式碼進行一個評審
(2)走查::由文件作者逐步陳述文件內容,以收集資訊並對內容達成一致
==》由產品經理對需求文件進行主講
==》由軟體測試工程師對測試用例進行主講
(3)複雜性:系統或元件的設計或內部結構比較複雜, 導致難以理解,維護或驗證的程度
(4)圈複雜度:程式中獨立路徑的數量。可以衡量一個元件模組的判定結構的複雜程度。(獨立路徑的數量就是圈複雜度)
==》開發人員編寫的程式碼越複雜,圈複雜度越高
==》開發人員編寫的程式碼越簡單,圈複雜度越低
獨立路徑:獨立路徑是指從入口到出口的路徑
1-4-6 ==》1指向4,4指向6
1-4-5-6
1-2-5-6
1-2-3-7-6
1-2-3-2-5-6 ==》不能1-2-3-2-3 ,走過一次就不能走了
一共5條獨立路徑 ==》圈複雜度等於5
1.圈複雜度的第一個通用計算公式:V = E - N + 2 (E:結構圖的邊數,N:節點數)
上面這個結構圖一共10條邊,7個節點
V = E - N + 2 = 10 - 7 + 2 = 5 ==》圈複雜度等於5
2.圈複雜度的第二個計算公式:V = 區域數
上面這個結構圖所有的節點和線將整個區域分為了5塊,最外面也屬於一塊區域。
3.圈複雜度的第三個計算公式:V = P + 1 (P是判定節點數,指向兩個或兩個以上的節點,判定節點指包含條件的節點,就是一個節點有是有否,一個節點有兩個不同的方向,比如1指向2和4,2指向3和5,所以1和2是判定節點,圖中一共有1,2,3,4四個判定節點 ==》4+1=5 ==》圈複雜度就是5)
練習:
圈複雜度等於3,獨立路徑:3條
單元測試,白盒測試
&與的符號:必須都滿足條件,||或的符號,滿足一個條件就可以了
a-d-g ==》(這條路徑是n不滿足的條件下走的)x=101,y=500,z=5000
a-b-c ==》(這條路徑是y滿足的條件下走的)輸入x=101,y=501
a-d-e-f ==》x=101,y=500,z=5001
(5)控制流:執行元件或系統的一系列順序的路徑,以下為控制流程圖(控制流圖也叫控制流程圖,是一個過程或程式的抽象表現)
==》開發人員根據要發生的場景畫出控制流程圖,比如登陸介面,輸入密碼失敗,進入到重置密碼介面,然後需要輸入手機驗證碼等一系列場景,根據這些場景畫出控制流程圖
(6)資料流:表示資料物件的順利或狀態發生變化的過程
==》資料流從哪裡來?從使用者哪裡來,使用者首次註冊的時候輸入的資料
==》資料流最終會到哪裡去?資料儲存到資料庫裡面去,下次使用者登陸的時候就會調取資料庫的資料。
(7)計算物件:計算物件是結構圖或程式圖,而程式圖又包括控制流圖與流程圖
【二】功能測試用例 設計方法 》等價類
常用的設計方法:
等價類(重點)
邊界值(重點)
判定表
因果圖
場景法(幾乎不用)
正交表(幾乎不用)
狀態遷移圖(幾乎不用)
軟體測試工程師》根據需求文件編寫測試點》根據測試點編寫測試用例或者測試案例》根據測試用例去執行,然後發現bug
在公司如何進行評審測試用例:==》公司中最多的還是組內評審(專案組成員進行評審)
組內評審 ==》用例評審的會議 ==》發會議邀約 ==》誰寫的用例誰主講
【1】等價類
指某個輸入域的集合,在集合中各個輸入的條件都是等效的
輸入域 ==》需求:考試成績在0-100分之間進行打分 ==》0-100就是一個輸入域 ==》0-100之間的數字屬於這個輸入域的集合
在0-100之間輸入2,55,99,88都是等效的 ==》等價類當中的等價都是等價的
(1)有效等價類:對程式規格說明有意義的、 合理的輸入資料(比如在0-100之間合理的輸入資料2,55)
(2)無效等價類:對程式規格說明無意義的 、 不合理的輸入資料(比如在0-100之間不合理的輸入資料102,-1,dcs,小明)
規定了輸入規則時,可以劃分出一個有效的等價類(符合 規則)和若干個無效等價類(從不同角度違反規則)
eg1.密碼由6-10位英文字元,或數字字元,或下劃線組成
有效等價類:密碼在6-10位字元之間
無效等價類:密碼小於6位,或密碼大於10位(從字元的長度方面違反),特殊字元,中文字元(從字元的型別方面違反)
eg2.輸入值為布林值(真或假)
有效等價類:輸入框輸入真或假
無效等價類:輸入框輸入非真或非假
eg2.規定了輸入資料的一組值(如文化程度:初 中、高中、 大學)
有效等價類:輸入框輸入初中,高中,大學
無效等價類:輸入框輸入小學或者研究生
【2】等價類劃分的測試用例的設計思路:
根據等價類用例設計方法去進行用例的設計
eg.QQ密碼由6-10位英文字元,或數字字元,或下劃線組成 ==》輸入條件
(1)找輸入條件
==》QQ密碼由6-10位英文字元,或數字字元,或下劃線組成
(2)為每個輸入條件找有效、無效等價類,併為每個等價類進行編號
(3)用最少的用例覆蓋最多的有效等價類
==》根據上面的需求開始編寫測試用例
1.在公司裡面一般會採用excel,xmind思維導圖,腦圖去編寫測試用例
2.有的公司可能直接會在用例管理工具裡面編寫
==》測試用例通常包括
1.用例編號:dcs_001,dcs_002,dcs_003
2.用例標題:通常以驗證開頭
3.用例步驟:驗證用例標題需要執行什麼樣的步驟,主要驗證的是密碼功能,賬號預設是正確的,輸入正確的密碼是從有效等價類1,2,3,4裡挑選組成的(輸入錯誤的密碼是從無效等價類5,6,7裡挑選組成的)
4.預期結果:
5.場景:正常場景:正向的,登陸成功的,裡面都是有效等價類,沒有包含無效等價類 / 異常場景:無效等價類
(4)每一個無效等價類都是一個用例
(5)並非所有有效等價類都有無效
(6)等價類的覆蓋可以重複覆蓋
【3】等價類測試用例編寫規範
看清楚需求,也就是要求,不要扣細枝末節然後把需求改了
(1)用例編號:dcs_001,dcs_002,dcs_003
(2)用例標題:
==》通常以驗證開頭
==》用例標題不能一直重複出現,要把明確的驗證點寫出來
==》用例標題不能出現或,一個用例標題只能存在一個條件。
驗證在檔案管理系統中輸入年月份長度大於6位的數字字元進行檢索,檢索失敗,1990011
驗證在檔案管理系統中輸入年月份長度為6位特殊字元(非數字)進行檢索,檢索失敗,@@%%¥¥
驗證在檔案管理系統中輸入年份小於1990,月份為01-12月之間進行檢索,檢索失敗,188702(此條用例包含一個無效等價類-->儘量每條用例包含一條無效等價類)
驗證在檔案管理系統中輸入年份小於1990,月份大於12月進行檢索,檢索失敗,188791(此條用例包含兩個無效等價類-->儘量不要讓一條用例包含兩條無效等價類)
(3)用例步驟:驗證用例標題需要執行什麼樣的步驟,主要驗證的是密碼功能,賬號預設是正確的,輸入正確的密碼是從有效等價類1,2,3,4裡挑選組成的(輸入錯誤的密碼是從無效等價類5,6,7裡挑選組成的)
》1)等價類當中的等價都是等價的,在編寫測試用例的時候,儘量不要重複相同的有效等價類,沒有什麼意義(例如有效等價類:密碼在6-10位字元之間,驗證輸入1234567和12345678是相同的效果,重複沒有什麼意義)》只需要驗證一次有效等價類就可以了
==》2)在編寫測試用例無效等價類的時候,例如密碼在6-10位字元之間,小於6位和大於10位無效等價類,各自驗證一次12345五位密碼和12345abcde十位密碼就可以了 》再去驗證1234四位密碼和123456abcde十一位密碼沒有什麼意義》只需要驗證兩次無效等價類就可以了
==》3)6-10位(從字元的長度方面違反),特殊字元,中文字元(從字元的型別方面違反)都要考慮到 ==》在編寫測試用例的時候,每個不同的有效等價類都要驗證一遍,不要漏掉 ==》QQ密碼由6-10位英文字元,或數字字元,或下劃線組成 ==》英文字元,數字字元,下劃線都要驗證到
》4)用例步驟用阿拉伯序號1,2,3表示就可以,用例步驟中例如 1.輸入正確的密碼如:1234567;》1234567後面不要加‘ ; ’ 因為測試的時候會把1234567;看作一個整體
(4)預期結果:
==》用例標題驗證的正確密碼,而在用例步驟的時候輸入錯誤的密碼,預期結果驗證的登陸失敗,寫用例時要注意檢查要首尾呼應,不要自相矛盾。
(5)場景:正常場景:正向的,登陸成功的,裡面都是有效等價類,沒有包含無效等價類 / 異常場景:無效等價類
案例練習:
現有一個檔案管理系統,容許使用者透過輸入年月對檔案檔案進行檢索,系統對查詢條件年月的輸入限定為1990年1月~2049年12 月,並規定:日期由6位數字字元組成,前4位表示年,後2位表示月
有效等價類取值:
199001
199012
200006
204901
204912
無效等價類取值:
19900 ==》小於6位數字字元
2049121 ==》大於6位數字字元
!@@¥¥%% ==》包含特殊字元
1990ab ==》包含英文字元
1990多測師 ==》包含中文字元
189901 ==》年份小於1990
205001 ==》年份大於2049
199000 ==》月份小於01
204913 ==》月份大於12
輸入年月份為空 ==》最容易出現bug的異常場景
【4】常見的能夠劃分等價類的地方
(1)數值的範圍:1990-2049
(2)重複次數:銀行卡取錢密碼3次輸入錯誤
(3)字串長度:規定當前輸入框輸入字串長度為6-8位字元
(4)字串組中字元的個數最低為1個,最高為3個:[‘a’,‘b’,‘c’]
(5)檔案命名:支援.jpg ,.jpeg , .bmp格式
(6)檔案大小:支援上傳的檔案大小為1M-500M
(7)螢幕的顏色種類:黑色,橙色,藍色
(8)超時時間:60s ==》ui自動化
【5】等價類的優缺點
優點:考慮了單個輸入域的各類情況,避免了盲目或隨機選取輸入資料的不完整性和覆蓋的不穩定性
缺點:方法雖然簡單易用,但是沒有對組合情況進行充分的考慮。需要結合其他測試用例設計的方法進行補充。比如邊界值
【二】功能測試用例 設計方法 ==》邊界值
【1】邊界值定義
(1)上點:邊界上的點
(2)離點:離上點最近的點(即上點左右兩邊最鄰近的點)
(3)內點:在域範圍內的點
一個輸入域,用邊界值用用例設計方法設計測試用例需要用到幾個點?幾個值? ==》點:上點(有兩個值),離點(有兩個值),內點 ==》 值:5個值
eg.在輸入框中對0-100分進行打分
上點:邊界上的點0,100
離點:-1 101
內點:88
閉區間【0,100】 ==》正常測試點:0,100 ==》異常測試點:-1,101 ==》內點(正常測試點):88
開區間(0,100) ==》正常測試點:1,99 ==》異常測試點:0,100 》內點(正常測試點):88
半閉半開區間【0,100)》正常測試點:0,99 》異常測試點:-1,100 》內點(正常測試點):20
半開半閉區間(0,100】》正常測試點:1,100》異常測試點:0,101 ==》內點(正常測試點):20
工作中你認為是bug? 開發認為不是bug,你是如何處理?總結:三個方向:
(1)自我原因,檢查自己的測試過程或疏忽的問題,如:頁面404,服務未啟動,自己配置錯了等。
(2)開發原因:
a.你把報錯的圖片擷取出來
b.把測試步驟記錄下來,重現bug步驟
c. 檢視後臺的日誌,把日誌錯誤查詢出來
d、在和開發進行溝通,說明原因;如果電話溝通不了,現場溝通,操作bug說明報錯。
e.如果開發還是不認,需要找開發經理,協調測試,請求其他開發輔助解決;
(3)既不是開發原因,也不是測試原因,是產品原因
與開發溝通,開發是按需求開發,測試是按需求測試,測試的時候發現測試不了,少了某個步驟或環節,測試不了,找到開發,開發不認。找產品確定功能點,是不是產品遺漏了,如果是產品少了需求,就要從產品透過郵件傳送整個專案組,補上需求,給開發加上工期,測試在測試。