添加客服微信
400 035 7887
021-60725088-8054
本文主要講解“功能測試之表單測試以及Cookies測試”的內容,表單是系統與用戶交互主要的介質,測試過程主要關注數據庫是否能正確地處理客戶提交的信息,并將信息正確地反饋到客戶端。如使用表單進行在線注冊業務,測試需要確保提交按鈕能正常工作,當客戶注冊完成后,應返回注冊成功的信息。
用戶提交表單數據,經過數據庫處理后返回到客戶端,表單處理過程如圖12-4 所示。
測試過程困難的是無法確定用戶輸入的內容,用戶可能隨意輸入任意字符,測試過程中應該注意以下幾方面的測試:
(1)文本輸入框對長度是否有限制。
(2)文本輸入框對字符類型是否有限制。
(3)文本輸入框模型匹配是否正確,如該文本框只能輸入日期格式的數據,那么只能匹配不同的日期格式,而不能匹配其他格式的數據。
(4)各按鈕實現的功能是否正確。
Cookies 測試
Cookies 是一種提供Web 應用程序中存儲用戶特定信息的方法,能夠讓網站服務器把少量數據存儲到客戶端的硬盤或內存,或是從客戶端的硬盤讀取數據的技術。
Cookies 是一小段文本信息,伴隨著用戶請求和頁面在Web 服務器和瀏覽器之間傳遞,Cookies包含每次用戶訪問站點時Web 應用程序都可以讀取的信息。
例如,如果在用戶請求站點中的頁面時,應用程序發送給該用戶的不僅僅是一個頁面,還有一個包含日期和時間的 Cookie,用戶的瀏覽器在獲得頁面的同時還獲得了該Cookie,并將它存儲在用戶硬盤上的某個文件夾中。之后,如果用戶再次請求該站點中的頁面,當該用戶輸入 URL 時,瀏覽器便會在本地硬盤上查找與該URL關聯的Cookie。如果該Cookie 存在,瀏覽器便將該Cookie 與頁面請求一起發送到瀏覽的站點。應用程序便可以確定該用戶上次訪問站點的日期和時間,可以使用這些信息向用戶顯示一條消息,也可以檢查到期日期。
從本質上講,Cookies 可以看作是訪問者的身份證。但Cookies 不能作為代碼執行,也不會傳送病毒,且為訪問者所專有,并只能由提供它的服務器來讀取。保存的信息片斷以“名/值對”(name-value pairs)的形式存儲,一個“名/值對”僅僅是一條命名的數據。一個網站只能取得其放在訪問者的計算機中的信息,無法從其他的Cookies 文件中取得信息,也無法得到訪問者的計算機上的其他任何東西。
Cookies 的測試包含以下幾個方面:
Cookies 的作用域是否正確合理;
Cookies 的安全性;
Cookies 的過期時間是否正確;
Cookies 的變量名與值是否正確;
Cookies 是否必要,是否缺少。
默認情況下,一個站點的全部Cookies 都存儲在客戶端上,當客戶端向服務器發送請求時,Cookies 會隨請求一起被發送到服務器端。
Cookies 一般通過以下兩種方式來設置作用域,測試時需要注意:
將Cookies 的范圍限制在服務器上的某個文件夾,允許將Cookies 限制到網站上的某個應用程序。
將范圍設置為某個域,允許指定域中的一些子域訪問Cookies。
將Cookies 限制到服務器上的某個文件夾的代碼如下(與Visual Basic 和C#為例):
(1)Visual Basic 語言:
Dim appCookie As New HttpCookie("AppCookie")
appCookie.Value = "written " & DateTime.Now.ToString()
appCookie.Expires = DateTime.Now.AddDays(1)
appCookie.Path = "/Application1"
Response.Cookies.Add(appCookie)
(2)C#語言:
HttpCookie appCookie = new HttpCookie("AppCookie");
appCookie.Value = "written " + DateTime.Now.ToString();
appCookie.Expires = DateTime.Now.AddDays(1);
appCookie.Path = "/Application1";
Response.Cookies.Add(appCookie);
默認情況下,Cookie 與特定域關聯,例如,當用戶向亞馬遜網站www.amazon.cn請求任何頁面時,Cookie 就會被發送到服務器,那么該Cookie 的作用域則為特定域(這可能不包括帶有特定路徑值的Cookie)。如果站點具有子域(例如sales.contoso.com),則可以將Cookie 與特定的子域關聯。
(1)Visual Basic 語言:
Response.Cookies("domain").Value = DateTime.Now.ToString()
Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
Response.Cookies("domain").Domain = "sales.contoso.com"
(2)C#語言:
Response.Cookies["domain"].Value = DateTime.Now.ToString();
Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
Response.Cookies["domain"].Domain = "sales.contoso.com";
需要設計不同的Cookie 來測試其他作用域是否正確。
(1)Cookies 的安全性。
Cookie 其實是一種存儲用戶信息的方式,因此很容易被人非法獲取和利用,因此Cookie 同樣也存在安全性問題。因此Cookie 中盡量不要存儲一些敏感的信息,如用戶名、密碼、信用卡號等。需要時應該對Cookie 中的一些字段進行加密處理,避免Cookie 以明文形式在瀏覽器與服務器之間發送,測試時需要確定Cookie 中一些重要的信息是否被加密處理。
(2)Cookies 過期時間是否正確。
在開發過程中會對Cookie 的過期日期和時間進行設置,測試需要注意Cookie 的過期時間是否正確。當用戶訪問編寫Cookie 的網站時,瀏覽器會將過期的Cookie 刪除,如果是設置為永不過期的Cookie,可以將日期設置為從現在起50 年。如果未設置Cookie 的有效期,仍然會創建Cookie文件,但不會將該文件存儲在用戶硬盤上,只是將Cookie 作為用戶會話信息的一部分進行維護。
當用戶關閉瀏覽器時,Cookie 會被丟棄。
(3)Cookies 的變量名和值是否正確。
以JavaScript 為例,Cookie 的定義格式為“變量1=值1;變量2=值2;變量3=值3;”。
下面是一個Cookie 的實例代碼:
email="bush@usa.com";
firstname="arivn";
lastname="test";
expireDate="Thursday,01-Jan-2050 12:00:00 GMT";
document.cookie="email="+email+";
expires="+expireDate;
document.cookie="firstname="+firstname+";
expires="+expireDate;
document.cookie="lastname="+lastname+";
expires="+expireDate;
測試時需要測試Cookie 文件中每個變量名和值是否對應,并且需要保證其正確性。
(4)Cookies 是否必要,是否缺少。
測試Cookie 是否必要和是否缺少有兩個方面的測試內容:一是生成的Cookie 文件是否與創建的一致,不能多也不能少;二是對于不必要的Cookie 可以刪除。
本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。