首先來介紹一下B/S與C/S架構
C/S架構簡要介紹
在了解什么是B/S架構之前,我們有必要了解一下什么是C/S架構:
C/S架構是第一種比較早的軟件架構,主要用於局域網內。也叫 客戶機/服務器模式。
它可以分為客戶機和服務器兩層:
第一層: 在客戶機系統上結合了界面顯示與業務邏輯;
第二層: 通過網絡結合了數據庫服務器。
簡單的說就是第一層是用戶表示層,第二層是數據庫層。
這里需要補充的是,客戶端不僅僅是一些簡單的操作,它也是會處理一些運算,業務邏輯的處理等。也就是說,客戶端也做着一些本該由服務器來做的一些事情,如圖所示:
C/S架構軟件有一個特點,就是如果用戶要使用的話,需要下載一個客戶端,安裝后就可以使用。比如QQ,OFFICE軟件等。
什么是B/S架構
B/S架構的全稱為Browser/Server,即瀏覽器/服務器結構。
Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在服務器端實現。
B/S架構的系統無須特別安裝,只有Web瀏覽器即可。
其實就是我們前端現在做的一些事情,大部分的邏輯交給后台來實現,我們前端大部分是做一些數據渲染,請求等比較少的邏輯。
B/S架構的分層:
與C/S架構只有兩層不同的是,B/S架構有三層,分別為:
第一層表現層:主要完成用戶和后台的交互及最終查詢結果的輸出功能。
第二層邏輯層:主要是利用服務器完成客戶端的應用邏輯功能。
第三層數據層:主要是接受客戶端請求后獨立進行各種運算。
如圖所示:
對於功能測試,其實都是一樣的,判斷功能是否有問題並不取決於系統的架構,而是根據客戶的需求,來判斷預期結果與實際結果之間的差異。以下羅列出的主要是考慮到這兩種架構本身所導致測試的偏重點。
我們也許都知道B/S架構中客戶端向服務端請求是通過http方式的,C/S架構中客戶端向服務端請求是通過socket方式的,其實很類似
- 建立客戶端的socket,確定要連接的服務器的主機名和端口
- 發送連接請求到服務器,並等待服務器的回饋信息
- 連接成功后,與服務器進行數據的交互
- 數據處理完畢后,關閉自身的socket連接
B/S架構:
l cookie和session
由於http協議的無狀態性,從而導致了cookie的誕生,對於程序基於cookie與session的編程,通常我們需要測試cookie是否按預定的時間進行保存,刷新對Cookies有什么影響等;例如在瀏覽器端禁用cookie,那么登錄時,通常是登錄不進系統的,目前見到的大部分系統都存在這樣的問題,實際如果系統做的很完善的情況下,是可以解決此問題的,或者能給用戶一個有好的提示等。
l 前台驗證和后台驗證
對於后台驗證,作為C/S程序可能並不需要過多考慮,因為它的代碼都是在后台編寫的;
關於web程序繞過前台進行后台驗證的測試,在這里不再多說,相信網上有很多工具可以實現。
l 安全性測試
在因特網上部署的系統尤其重要,測試的過程中我們通常會進行sql注入,cookie欺騙,html標簽,特殊字符,字符長度是否與數據庫中一致,上傳文件時選擇一些特殊的文件(如.aspx,jsp,php等)等等
l 兼容性測試(客戶端是瀏覽器,存在眾多不確定性)
B/S的唯一客戶端就是瀏覽器,而瀏覽器又有成千上萬種,不同的瀏覽器內核不同,解讀頁面控件和腳步語言的結果也不一樣,可能導致不同的瀏覽器對系統顯示有差別或者部分功能不可用
C/S程序一般是典型的中央集權的機械式處理,交互性相對低,通常是部署在局域網內的,對網絡環境要求低
l 兼容性
我們知道B/S的壓力在服務端,C/S客戶端可以分擔一些壓力,但是C/S對客戶端的環境要求相對較高,包括OS環境(根據目前使用情況來說,主要是在win7系統或同期版本中出現權限問題,或受OS位數的影響),安裝過程是否與其他軟件沖突,安裝順序,.Net framework版本,客戶端升級等均有不同程度要求,同時維護成本較高。
l 安裝/卸載測試
- C/S結構通常我們先要安裝(其實也可以不用安裝,直接運行exe文件,也就是我們所說的綠色版本,具體可以根據實際需要),安裝界面,路徑,安裝后的功能是否可用,重復安裝,安裝失敗后是否回滾等等均在測試范圍之類。
- 有安裝就有卸載,windows自帶了一個卸載功能,c:\windows\system32\msiexec.exe,我們在生成安裝包的同時可以調用此文件。當然也可以使用第三方的卸載工具,如360卸載等。
l 快捷鍵的使用
Windows操作習慣性講究快捷,所以通常用戶會在常用模塊要求使用快捷鍵來操作
l UI測試
Web程序同樣也會考慮到UI測試,在這里主要是考慮異於web的地方。例如窗口的縮放,拖動,任務欄管理器的啟用與禁用,以及多窗口的操作及排列等,通常都是要符合windows的操作習慣。
l 明顯的性能問題
通常在對程序最小化后系統資源占用多少有一定要求,或者允不允許同時打開多個進程,運行長時間后系統出現卡死等明顯的性能問題均在考慮范圍之內