作者:丁來慶 1 概述 在一個軟件項目開發中,系統測試是保證整體項目質量的重要一環,本文將就網站的測試技術及相應的自動測試工具做一個簡要的介紹。主要就如下幾個方面進行探討: 功能測試 性能測試 安全性測試 穩定性測試 浏覽器兼容性測試 可用性/易用性測試 鏈接測試 代碼合法性測試 2 測試內容 2.1 功能測試 在實際工作中,功能在每一個系統中的具有其不確定性,而我們不可能采用窮舉的方法進行測試,因而導致了功能測試較為困難,我們依據80/20原則(即80%的錯誤存在於系統的20%的部分)對於測試用例的設計采用如下兩種方法 2.1.1 白盒測試 白盒測試即使用程序設計的控制結構導出測試用例。基於目前的現狀我們采用基本路徑測試方法進行白盒測試,此種方法簡單高效。基本路徑測試方法的簡單說明如下: ¨ 首先通過系統設計的流程圖導出數據流圖 ¨ 根據數據流圖計算其環形復雜性 V(G)=E-N+2 或 V(G)=P+1 V(G):環形負責性 E :流圖中邊的數量 N :流圖中節點的數量 P :流圖中判定節點的數量 ¨ 我們設定V(G)條路徑 ¨ 我們設計V(G)條路徑的模擬數據 ¨ 根據數據進行相應的測試 2.1.2 黑盒測試 黑盒測試即派生出執行程序所有功能需求的輸入條件,從而導出測試用例,進行測試的方法,黑盒測試用於輔助白盒測試。 我們采用等價劃分的方法進行測試,即為將程序的輸入域劃分為數據類,以便導出測試用例。一般情況下輸入條件為:一個特定的數值、一個數值域、一組相關值或者一個布爾條件。 2.1.3 網站功能測試 對於網站的測試而言,每一個獨立的功能模塊需要單獨的測試用例的設計導出,主要依據為《需求分析》,對於應用程序模塊需要設計者提供基本路徑測試法的測試用例 具有測試用例後可以采用OpenSTA(Open System Testing Architecture)進行自動化測試 2.2 性能測試 網站的性能測試對於網站的運行而言異常重要,但是目前對於網站的性能測試做的不夠,我們在進行系統設計時也沒有一個很好的基准可以參考,因而建立網站的性能測試的一整套的測試方案將是至關重要的。 網站的性能測試主要從兩個方面進行:負荷測試(Load)和壓力測試(Stress),負荷測試指的是進行一些邊界數據的測試,壓力測試更像是惡意測試,壓力測試傾向應該是致使整個系統崩潰。 性能測試可以采用相應的工具進行自動化測試,我們目前采用如下工具 ab -----Apache 的測試工具 OpenSTA—開發系統測試架構 2.3 安全性測試 目前網絡安全問題日益重要,特別對於有交互信息的網站及進行電子商務活動的網站尤其重要。目前我們的測試沒有涵蓋網站的安全性的測試,我們擬定采用工具來測定,工具如下 SAINT------- Security Administrators Integrated Network Tool 此工具能夠測出網站系統的相應的安全問題,並且能夠給出安全漏洞的解決方案,不過是一些較為常見的漏洞解決方案。 2.4 穩定性測試 網站的穩定性測試是指網站的運行中整個系統是否運行正常,目前沒有更好的測試方案,主要采用將測試服務器長時間運轉進行測試。 2.5 浏覽器兼容性測試 通過白盒測試或者黑盒測試導出的測試用例,采用相應的工具進行測試,可以采用OpenSTA進行測試,此測試工具可以采用不同的浏覽器進行測試。 2.6 可用性/易用性測試 可用性/易用性方面目前我們只能采用手工測試的方法進行評判,而且缺乏一個很好的評判基准進行,此一方面需要大家共同討論。 2.7 鏈接測試 超級鏈接對於網站用戶而言意味著能不能流暢的使用整個網站提供的服務,因而鏈接將作為一個獨立的項目進行測試。目前我們已經有了一個測試工具 Xenu------主要測試鏈接的正確性的工具 可惜的是對於動態生成的頁面的測試會出現一些錯誤。 2.8 代碼合法性測試 代碼合法性測試主要包括2個部分:程序代碼合法性檢查與顯示代碼合法性檢查 ¨ 程序代碼合法性檢查 程序代碼合法性檢查主要標准為《intergrp小組編程規范》,目前采用由SCM管理員進行規范的檢查,未來期望能夠有相應的工具進行測試。 ¨ 顯示代碼合法性檢查 顯示代碼的合法性檢查,主要分為Html、JavaScript、Css代碼檢查,目前采用 HTML代碼檢查------采用CSE HTML Validator進行測試 JavaScript、Css也可以在網上下載相應的測試工具。 3 測試工具 OpenSTA 主要做性能測試的負荷及壓力測試,使用比較方便,可以編寫測試腳本,也可以先行自動生成測試腳本,而後對於應用測試腳本進行測試。 SAINT 網站安全性測試,能夠對於指定網站進行安全性測試,並可以提供安全問題的解決方案。 CSE HTML Validator 一個有用的對於HTML代碼進行合法性檢查的工具 Ab(Apache Bench) Apache自帶的對於性能測試方面的工具,功能不是很多,但是非常實用。 Crash-me Mysql自帶的測試數據庫性能的工具,能夠測試多種數據庫的性能。 上述工具除Ab及Crash-me外均可在以下目錄中找得到 smbserverappslinuxappintergrp ab及Crash-me請至相應的網站上察看相應的資料} 4 後記 此文只是對於網站的測試方面做了一個簡單的介紹,提供的工具比較少,但是可以保證能夠使用(當然都是可以從網上免費得到的),另外還有很多測試工具是需要Money的,大家有興趣可以試用,對於上述提到的測試工具我也只是做了一個初步的調研,詳細的功能說明請察看相關的說明文檔。 對於網站的測試中比較重要的還有一個部分就是對於數據庫的測試,由於對於數據庫性能測試較好的工具需要一些Money因而我們采用Mysql的Crash-me,但是同時也存在一個問題就是對於不同的數據庫的測試采用第三方的工具較好。因而大家可以對於其他數據庫性能測試的工具進行研究。 5 參考資料 (1)《軟件工程-實踐者的研究方法》-----Roger S.Pressman (2) http://www.softwareqatest.com (3) http://www.soft.com/ (4) http://www.qaforums.com (5) http://www.opensta.org