Web測試
Web通常指的是網際網路應用系統,比如稅務電子化徵管檔案系統、金融數據平臺、餐飲商家管理後臺等等,其實質是C/S的程序。
C是Client——客戶端,S是Server——伺服器。
Web中的客戶端一般指的是Browser——瀏覽器,也就是B/S。
Web系統有三層結構 == 表示層 + 業務層 + 數據層。
MVC軟體設計模式也是三層 == 模型 + 視圖 + 控制器。
它們的對應關係如下,不完全準確,簡單意會意會即可,
測試的一個重要思路是,了解被測對象的架構,Web系統典型架構如圖所示,
這個圖很重要,多看幾秒!想想這些問題,
我測試覆蓋的是哪些地方?
有哪些環節是漏掉的?
瀏覽器從請求到響應,這個過程是怎樣一個鏈路?
測試難點
Web測試,不僅僅是頁面的點點點。
面對這樣複雜的系統,如何保障質量,使系統健康的、長期的、穩定的運行,是測試的難點。
業務複雜度本身就是難點,而且這是測試核心中的核心。
安全、性能的評估,也是一個棘手的難點。
網站用戶的能力,包括瀏覽器、作業系統、設備、網絡帶寬都可能是參差不齊。
網絡中斷,或弱網情況下,網站的表現。
網站本身的應用日誌、系統資源、冷熱數據。
引入的第三方程序的質量,雖然可以直接用,但仍需做黑盒測試。
國際化差異,如語言、時差、貨幣兌換。
你要考慮的不是一個點,也不是一個面,而是一個整體。
表示層
表示層的測試對象包括了,
UI(User Interface)用戶界面UE(User Experience)用戶體驗UED(User-Experience Design)用戶體驗設計簡而言之就是,系統的外觀和感覺。
更專業具體點,就是整體審美、字體、連結跳轉、圖形解析度和大小、色彩、拼寫檢查、文字語法和風格、光標位置、選中默認按鈕、交互操作體驗友好、商業特定術語和風格、確認框、瀏覽器版本、作業系統配置等。
表示層的測試主要以人工為主,部分測試也可以通過工具完成,如無效連結檢測。
業務層
業務層包括內部業務和外部服務,內部業務和外部服務都需要經過測試。
內部業務就是實實在在的業務,每個公司的業務都有差異。
業務測試是貫穿於測試周期自始始終的。
最開始測試考慮的是業務,測試結束考慮的也還是業務。
業務層測試是用到測試用例設計方法最多的,包括等價類劃分、邊界值、判定表、因果分析、場景法等。
同時也需要做性能測試,考察響應時間、吞吐率等性能指標。
毫不誇張的說,無業務,不測試!
數據層
數據層主要幹的事就是讀寫數據。
數據層的數據既包括系統自產的,也包括從用戶收集來的數據。
數據是存放在資料庫伺服器裡邊的,包括RDBMS、NoSQL。
數據模型定義了數據層接口和數據存儲方式。
數據可以直接使用,但往往是經過了ETL對數據進行加工。
數據層的測試是有一些門檻的,但一些隱藏的bug就藏在這一層。
首先需要測試的是數據存儲的正確,其次需要測試冗餘數據的清理,還有數據狀態的變化。
資料庫的性能,sql的耗時,數據量大小,數據冷熱。
資料庫的數據類型,長度、精度、字符集、日期時間格式、時區等。
資料庫的安全,數據加密和安全性。
還有資料庫的魯棒性,故障處理,備份恢復能力,最大化MTBF,最小化MTTR。
App測試
網絡
App測試還是從架構入手,先看看App的典型的無線運營商網絡架構,
行動網路,是App區別於Web應用的重要差異。
行動網路的通信協議並不是基於IP的,而通常是一種基於射頻的協議。
如,
CDMA(Code Division Multiple Access)碼分多址TDMA(Time Division Multiple Access)時分多址GSM(Global System for Mobile)全球移動通信系統4G (the 4th generation mobile communication technology)第四代移動通信技術很多運營商都使用某種代碼轉換器或Web代理來進行行動裝置與網際網路的通信。但是因為競爭的關係,運營商一般不會披露這些細節。他們可能會「偷偷」幹這些事,
將數據轉換成WAP或HTTP支持的格式壓縮數據為了更快地傳輸和提高吞吐量數據傳輸加密和隱私保護屏蔽一些佔用過高帶寬的站點從網頁中抽取HTML頭信息和其他元數據以供程序使用WAP,是指Wireless Application Protocal,無線應用協議,已經過時。
現在大多數都使用HTTP協議了。
正是由於行動網路的存在,以及不同使用場景下網絡狀態的不穩定,在測App時,需要做弱網測試。
弱網包括無網(斷網)、弱網(2G 3G 4G)、網絡切換。
設備
App測試和Web測試,另外一個明顯的區別就是,行動裝置非常豐富。
不同的機型。不同的屏幕。不同的版本。不同的系統。不同的CPU內存。不同的瀏覽器。不同的配置。
App是To C的,也就意味著使用環境無法統一控制,是千差萬別的。
這對測試來說是很大的挑戰,以至於有漫畫調侃,高級測試工程師,可以轉行賣手機了!
不過好在有模擬器,有雲測平臺,減少了測試設備兼容性的成本。
模擬器也不是銀彈,不能替代真機,所以App必須在真機上面跑過才算ok。
真機和模擬器,各有利弊,需要做必要的權衡。
可以先用模擬器完成大量測試,最後使用真機做驗收。
用真機測試還需要注意的一個小問題就是,測試用例設計的儘量有效,不然每一次重複測試,就很可能在燃燒你的經費。
測試方法
App測試和Web測試有很多共同的地方,尤其是業務層和數據層。
不過由於網絡和設備等因素,讓App測試也有一些特殊的場景,
電子商務術語
B2B、B2C、C2C、O2O是電子商務的4種模式。
B2B,Business to Business,企業對企業,如經銷商銷貨給超市。
B2C,Business to Customer,企業對個人,如超市賣東西。
C2C,Customer to Customer,個人對個人,如擺地攤。
O2O,Online to Offline,線上到線下,如網上點個豆漿早餐到肯德基取。
B端-->企業端。
C端-->個人端。
G端-->政府端。
參考資料
——《軟體測試的藝術》
專注測試,堅持原創,只做精品。歡迎關注公眾號『東方er』