張 瑩,丁宏偉
(河北軟件職業技術學院 軟件工程系,河北 保定 071000)
國際互聯網的快速發展,使WEB技術在人們的工作和生活各個方面都產生了及其深遠的影響。許多傳統的信息發布方式和數據庫系統正在移植到互聯網上,Web服務迅速發展。因此,基于Web系統應用的測試也變得十分重要,這對傳統軟件測試方法提出了新的挑戰。這種對應用系統的測試不但能檢查是否滿足設計要求,還能測試系統每個層面是否正常,以確保系統的整體性能、安全性和可用性,滿足客戶的需求。
Web應用系統是目前Internet上最常見的應用系統之一,該系統是瀏覽器/服務器模式(B/S)的,所以有服務器(存放資源的主機,常用的服務器有Apache、IIS、tomcat等)端和客戶端(Web瀏覽器,常用的客戶端瀏覽器有IE、Netscape、Mozilla等)程序兩部分,它通過HTTP協議進行通信。
針對Web系統的測試涉及以下內容:(1)總體架構測試;(2)Web架構組成部分是否滿足需求,如成本、功能、安全性要求、容量要求、傳輸實時性等;(3)服務器配置分布是否滿足要求,Web服務器、應用服務器、數據庫服務器可以分布在不同物理機器上,也可以分布在相同的物理機器上,一般優先考慮獨立數據庫服務器。隨著Web系統復雜性的增加,一個項目的失敗將可能導致更多問題的出現,所以Web系統測試就顯得尤為重要。
為有效開展測試工作,針對項目采用了局部測試與系統測試相結合的方式,局部測試方案又分為3個部分4個階段。3個部分即服務器部分、客戶端部分和數據庫部分;4個階段即設計階段、開發階段、運行階段和升級階段。這樣,更容易發現應用系統的缺陷和錯誤,準確定位特定問題的存在部位。
(1)設計階段。了解項目需求,進行可測試性分析,編寫概要測試計劃。
(2)開發階段。主要由編程人員掌握,采用傳統軟件測試方法。包括源代碼分析(使用檢查工具)、鏈接測試(用工具來完成)、框架測試(自動調整窗口大小,是否提供滾動條,打開新頁面是否正常)、表格測試(隨窗體變化自動調整大小)、圖形測試(顏色飽和度及對比度,鏈接標識,圖形顯示是否正確)等。
(3)運行階段。主要對性能及安全性進行測試。性能測試主要測試Web系統在某一負載級別(并發用戶數量、在線數據處理的數量方面)以及系統的限制和故障恢復能力上的性能,以保證Web系統在需求范圍內能正常工作。安全性測試主要有:常識性安全策略,測試是否存在不必要的協議、控制寫權限、取消服務器目錄瀏覽屬性、測試是否記錄日志等,是否使用加密技術等。
(4)升級階段。主要包括分析網絡中可能的瓶頸、增設新業務對網絡性能的影響、采用新的網絡技術對網絡進行升級性能改善的幅度預測等,為網絡的規劃設計提供可靠的定量依據,該階段主要運用OPNET。
2.2.1 頁面設計測試
(1)內容測試。檢驗Web應用系統提供信息的正確性、準確性等人機界面元素。例如,縣級網站的旅游資源介紹、頁面文字的拼寫等是否存在錯誤,使用Microsft Word的“拼音與語法檢查”功能來解決。此外,還要測試頁面之間的跳轉是否成功以及字體類型、屏幕布局、色彩、圖形分辨率及其他會直接影響最終用戶體驗的特性等。
(2)用戶環境測試。測試用戶平臺和瀏覽器。市場上有很多不同的操作系統平臺(最常見的有Windows、Linux等),就可能會發生兼容性問題。此外,還有瀏覽器,來自不同廠商不同版本的瀏覽器對 JavaScript、Html、CSS 有不同的支持,測試是否發生顯示錯誤等。
2.2.2 站點結構測試
測試Web站點的結構是檢查結構上是否存在錯誤,有沒有無效的鏈接。(1)測試所有鏈接是否按指示鏈接到了相應的頁面;(2)測試所鏈接的頁面是否存在;(3)保證Web應用系統上沒有孤立的頁面。
對數據庫的測試主要集中在運行階段。一般情況下,注重數據庫操作的響應時間、數據存儲的完整和數據庫系統的容錯。(1)測試從用戶采集到的數據。當用戶給Web應用系統管理員提交信息時,例如用戶注冊、登錄、信息提交等,必須測試提交操作的完整性。(2)業務測試。測試系統的業務處理過程的正確性,例如“旅游景點一卡通”使用情況處理,該系統必須在整個運行期間正確處理業務。(3)可恢復性。我們設計了各種數據庫無法恢復的場景,導致數據庫崩潰,并制訂規程快速恢復,對于出現無法恢復的數據庫,建議修改備份策略。
系統測試的目的是確保各單元組合在一起后能夠按既定意圖協作運行,并確保增量的行為正確。它所測試的內容包括單元間的接口以及集成后的功能。使用黑盒測試方法測試集成的功能,黑盒測試是將被測系統看成一個黑盒,從外界取得輸入,然后再輸出。整個測試基于需求文檔,看是否能滿足需求文檔中的所有要求。黑盒測試要求測試者在測試時不能使用與被測系統內部結構相關的知識或經驗,它適用于對系統的功能進行測試。
系統測試需求所確定的是對某一集成工作版本的測試的內容,即測試的具體對象。該測試需求主要來源于設計模型(Design Model)和集成構件計劃(Integration Build Plan),著重于集成版本的外部接口的行為。因此,測試需求須具有可觀測性、可測評性,主要包括:
界面是整個Web應用系統的頁面結構。例如:當用戶瀏覽Web應用系統時是否感到舒適,能否找到信息所在位置等。在這個測試過程中,我們主要針對是否適合最終用戶的實際需求作了相關測試:確定該系統的最終用戶群(操作的難易程度、發布信息的實際意義);頁面中各元素布局的協調性(位置、顏色、大小比例等);頁面風格的統一性;界面操作測試(屏幕分辯率設置的影響、瀏覽窗口最大化/最小化的影響等)。
安全性方面進行的測試工作主要有:(1)因為大部分web系統都采用了先注冊后登陸的設計,所以首先測試用戶名和密碼的有效和無效情況(是否存在大小寫敏感、次數限制、不登錄直接瀏覽某個頁面等問題);(2)測試Web應用系統是否有超時限制,即用戶登錄后在一定時間內沒有點擊任何頁面,是否需要重新登錄才能正常使用;(3)測試相關信息是否正確寫進了日志文件、是否可追蹤;(4)對安全套接字測試加密是否正確,檢查信息的完整性;(5)性能測試,利用loadrunner檢查登陸用戶并發情況的影響(站點的承受能力、數據庫的設計、機器硬件性能的變化、瓶頸現象等)。
輔助功能方面進行的測試工作主要包括:(1)使用說明,簡單測試是否存在、是否有錯誤信息、與軟件的關聯程度等;(2)導航功能,用戶在頁面內的操作方式要正確,測試主要檢查應用系統的頁面結構、菜單、連接的正確性,確保用戶知道Web應用系統里面的內容,以及內容所在位置、站點地圖等。
基于Web系統的測試與傳統的軟件測試既有相同之處,也有不同的地方,對軟件測試技術的應用提出了新的挑戰。本文在測試過程中總結出一套完整有序且行之有效的測試方法,但Web系統本身復雜、多變,不同案例情況各不相同,針對整個Web系統進行測試還是一項長期而艱巨的任務,需要我們不斷地探索。
[1]鄭榮茂.基于Web系統的測試[J].韶關學院學報,2005(3).
[2]耿彩鳳,王越.網絡測試中的Web測試[J].遼寧大學學報,2005(3).