從上一篇文章 測試人員,為什么要學習一門技術?(二), 我們了解到, 基線管理及日常工作中如果基線沒有維護的情況下, 我們如何通過自主能力, 找到一個改變的方向, 今天, 我們來聊聊關于測試經驗的擴拓展方向
我知道測試理論很重要, 但是不知道作用在哪些地方?
首先, 我們都知道測試理論是前輩們留下的寶貴財富, 那么他給我們帶來了哪些價值?
-
等價類劃分
- 把被測對象(入參), 分成多個等類型
- 區(qū)分類型后取出具有代表意義的類型參數
- 測試用例由有效等價類和無效等價類的代表組成
-
邊界值法
- 邊界值方法是基于等價類劃分測試方法的一種補充方法
- 他基于等價類的多個類型進行細分補充
- 對系統(tǒng)入參進行略大或略小的偏移, 從而實現(xiàn)測試系統(tǒng)健壯性的一種方法
-
因果圖(魚骨圖)
- 這是一種被稱為發(fā)現(xiàn)問題"根本原因"的測試方法
- 因為他從問題的最起點開始做分析
- 在測試中, 一個完整的測試流程包含了哪些分支與可能存在的情況, 從而分析出問題的根本原因出現(xiàn)在哪里
-
場景分析(錯誤推測)
- 基于業(yè)務分解后, 對于業(yè)務場景的一種錯誤猜測的測試方法
- 這里包含正負向(正向推測和逆向推測)
- 拆解子場景模塊后, 再向外擴展, 多模塊結合分析, 每一個交互邏輯的分析與理解
- 因為每個場景都有多個業(yè)務耦合(集成測試), 所以, 不要覺得子模塊測試通過, 所有場景就都是ok的
-
正交分解法
- 在設計測試用例的時候, 如果正交分解不明確, 很可能會出現(xiàn)場景重復的情況
- 正交的特點是基于業(yè)務線最短的覆蓋流程(完整的覆蓋整個業(yè)務, 并分解出最短的測試路線)
- 正交分解法實例講解
是不是看起來好像都用過, 在測試工作中也常常思考測試粒度?(如果你對這里提到的測試方法不明確其使用場景, 請點擊這里)
我們的測試思路, 測試理論, 是奠定測試覆蓋的有效保障, 如果你不能深刻的理解他, 這并不是會用, 而是"我知道, 就是這樣的...."
這樣的結果就是看起來好像我會的很多, 然而其實我什么都不會. 更多的時候, 你覺得需要進階的時候, 回頭看一下你對現(xiàn)有知識結構的理解與深度, 是否真的需要進階, 還是有很多地方不懂, 無法利用與實際業(yè)務. 如果無法利用與實際業(yè)務, 那么再高明的測試方法, 再強大的編碼技術, 也不能改變你的測試水平. 這是核心.
我們來分析一個場景
我們來通過以上測試方法, 做一個實際練習, 我們有這樣一個登錄頁面
我們來分解一下Login這個功能
-
頁面
- Logo的正確性
- 字符顯示的正確性
- 可點擊字符與不可點擊字符的區(qū)別(馬上注冊 and 用戶名)
- 圖層的正確性(底色與藍色的圖層)
-
功能
點擊"馬上注冊"的場景預期正確
-
用戶名
- 可輸入的字符類型(純字符/純數字/火星文/非主流文字/小于等于1個字符/大于9999999999999999999的字符/不同編碼的字符/特殊符號/空格)
- 長度大于輸入框時顯示規(guī)則是否正確
-
密碼
- 可輸入的字符類型(純字符/純數字/火星文/非主流文字/小于等于1個字符/大于9999999999999999999的字符/不同編碼的字符/特殊符號/空格)
- 輸入密碼顯示為*
- 輸入密碼漢字密碼
- 空密碼
- 特殊符號密碼
-
登錄按鈕
- 按鈕點擊規(guī)則是否正確(什么狀態(tài)是可以點擊的, 什么狀態(tài)是不可點擊的)
- 已知一個正確的密碼和一個錯誤的用戶名
- 正確的用戶名密碼
- 錯誤的用戶名密碼
- 無網絡場景的登錄行為
-
一周內自動登錄
- 曾經點擊一周內自動登錄按鈕后的用戶是否需要登錄
對于功能測試來說, 上面的拆解場景基本覆蓋了大部分的內容, 但是某一天開發(fā)同學來找你了, 這里有個bug 是因為服務端同學某天回家睡覺前, 注釋了本該正常使用的get請求方式, 本來是get和post都可以通過的, 現(xiàn)在get方式不通過了, 而get方法請求, 可能關聯(lián)其他服務的登錄請求行為
黑人問號臉??? WTF?
他在說什么?
我們已經很努力的覆蓋了case的場景和交叉測試的過程, 出現(xiàn)這個問題之后leader 說這個問題很基礎啊, 為什么測試的時候沒有測???
今天我們先思考一下這里還有哪些場景是需要覆蓋的.
- js加載策略
- Http測試方法的選擇
- 登錄成功后的Session和Cookies策略是怎樣的
- DB查詢和緩存策略是怎么定制的???
我們是否需要去對我們的測試對象進行更深一層的了解?