精準測試最為簡單的問題之一:資料與邏輯
資料與邏輯
現代計算機的基本原理主要分為程式儲存和程式控制。
——馮諾依曼原理
程式控制即邏輯控制,程式儲存即資料儲存。
程式是一個或多個邏輯的過程。程式裡的程式,就是語句的語法、語句順序、語句分之等,而函式(方法)只是程式的一個執行路徑而已,同樣也是邏輯的重要組成部分。
當代大資料已經成為一個極度熱門的學科,無論是企業、學校、政府機構等都在不斷髮揮資料對這個社會的重要影響。在網際網路中,業務資料已經成為企業的核心競爭力。
如果把一個應用比作一個人類,那邏輯就是遍佈全身的血管組織,而流淌在血管中的血液就是資料。
程式和資料分離是當代所有計算機系統,包括網際網路產品的基本特徵。產品和研發負責的是程式,業務人員和資料分析員處理的是資料。
無論每天百度的爬蟲新抓到了多少網頁,爬蟲的原理都是不變的;無論新浪微博每天新註冊了多少帳號,微博的編寫、評論、轉發功能都是不變的。縱觀現在市場上所有熱門的網際網路產品,都將處理程式的工作與處理資料的工作相分離。
測試用例是一組經過精心設計的資料,包含輸入資料、執行條件以及期望的輸出資料。
測試物件就是我們面對的應用程式。
測試過程就是通過使用應用程式執行已經準備好的測試資料,也就是通過資料驗證邏輯的過程。
一個質量合格的產品標準至少要滿足以下四個基本標準:
1.業務功能實現完整
即應該是一個完整的人類
即業務邏輯齊全
即測試資料準備全面,涵蓋所有業務功能
2.邏輯覆蓋全面
即每一根血管都應該流淌著新鮮的血液
即每個方法、每個語句都可以得到預期的資料值(邏輯覆蓋、程式碼覆蓋)
3.穩定執行
即應該是一個可以經歷四季且健壯的人
即效能滿足日常要求,且抗得過高峰時段的壓力
即環境部署簡單,相容多種環境
4.安全
即資料安全
通過以上標準,我們可以看出黑盒測試其實就是在解決兩個基本問題:程式邏輯、測試資料。而效能就是程式就是處理大量資料的能力。安全就是程式對資料的保護。其中前兩點有著相似之處,但是卻從不同角度進行的剖析。完整的業務流程不能完整的程式邏輯,完整的程式邏輯卻可以覆蓋完整的業務流程,但是部分邏輯不屬於業務功能範疇。
因此,我們的任何測試行為的本質都是資料與邏輯的統一,使用資料驗證邏輯,同時也分析邏輯 校驗資料(辯證統一的關係)。
迴歸到我們的日常測試工作,一般情況下,我們採用正向思維和逆向思維去分析PRD編寫測試用例,最終就是我們的測試資料。但是關於程式邏輯,我們可以檢視開發人員的設計文件,傾聽開發人員的口述,使用實際資料去驗證自己的猜想,甚至自己去查閱業務程式碼。
可見,我們可以按照嚴格的流程以及標準去完成業務資料的蒐集和整理,但是不能很好的覆蓋完整的邏輯。這就是我們面臨的現狀。
還有,我們不清楚我們準備的業務資料(測試用例)能夠覆蓋哪些邏輯,哪些邏輯沒有覆蓋到、哪些邏輯覆蓋不到,甚至哪些邏輯不需要再覆蓋。在這些問題面前我們無法回答清楚。
對於上面提及的諸多問題,可能有人會提及各種測試方式,例如黑盒測試和白盒測試。兩者都有著各自強大的優勢得到大家的認可,但同時有著重大缺陷。此處就不在再進行詳細的分析和論述,簡單描述就是:黑盒有著大量且全面的測試資料;白盒測試近距離接觸程式碼,能夠明確每一行程式碼的具體作用,每個方法的呼叫情況。
那我們的最終問題就出來了:
什麼樣的方式既可以有著白盒的優勢,又能夠擁有黑盒的優勢?
兩者優點的結合是否能夠對測試效能有著極大的提升?
即把資料精準的匹配到相應的邏輯。
為了解決這個問題,我們開始了精準測試的探索之旅。
相關文章
- 簡單介紹Pygame 精準檢測影像碰撞的問題GAM
- Golang 單元測試 - 邏輯層Golang
- 測試筆試邏輯思維題筆試
- 精準化測試原理簡介
- APISIX單元測試準備工作與問題解決方案API
- Vue主要原理最簡實現與邏輯梳理Vue
- ios最簡單的測試打包方式iOS
- 最簡單的jquery測試程式碼jQuery
- 精準測試實踐
- js的邏輯與&&運算子用法簡單介紹JS
- 測試基準資料的準備
- 為什麼放棄精準測試平臺?
- PHP 單元測試與資料庫測試PHP資料庫
- 資料讀取之邏輯讀簡單解析--關於BUFFER CACHE
- 軟體測試的底層邏輯
- 最簡單的微服務部署測試實踐微服務
- Oracle資料恢復顧問(DRA)使用測試 (之一)Oracle資料恢復
- 資料庫分頁;簡單整理測試資料庫
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- 單元測試實踐的主要問題與解決
- JB的測試之旅-測試資料的準備/構造
- 《不測的祕密:精準測試之路》筆記筆記
- 海量資料查詢問題--簡單的理解
- 精準測試系列分享之一:JaCoCo 企業級應用的優缺點分析
- Android 最簡單的自定義MenuItem之一AndroidUI
- Centos8中建立LVM精簡邏輯卷CentOSLVM
- 邏輯資料庫的管理資料庫
- 資料庫的最簡單實現資料庫
- Resin的中文問題最簡單的解決方法
- 疫情之下,精準測試的智慧可信模式正在成為中流砥柱模式
- 資料庫(表)的邏輯備份與恢復資料庫
- 基於 AI 大模型的精準測試分享AI大模型
- Android 最簡單的限制輸入方式之一Android
- Android 最簡單的自定義Dialog之一Android
- 一些簡單的Python測試題Python
- 邏輯注入漏洞滲透測試檢測辦法
- 邏輯題
- Docker+Spark+Jupyter=文字資料處理邏輯測試平臺容器化DockerSpark