黃茂生 楊春暉
摘 要:為應對B/S構架應用系統和三層構架應用系統的鏈接測試需求,基于詞法分析設計實現超文本鏈接自動測試,解決手工測試的不足和引進國外自動化測試工具對中文支持的局限性。通過分析超文本詞法的特點,探討超文本鏈接測試自動化的可行性,介紹利用該技術實現自動測試工具的總體設計、功能設計、流程設計與實現。通過在實際項目的使用和驗證表明,該技術不僅可以有效提高超鏈接測試的覆蓋率,而且有效提高了測試驗證的效率和準確性,降低超文本鏈接的測試驗證工作量。
關鍵詞:超鏈接;詞法分析;自動測試工具;設計;實現
中圖分類號:TP393
0 引 言
隨著互聯網的高速發展,B/S構架特別是三層構架以其易于部署和維護性,成為絕大部分軟件應用系統的首選,B/S構架應用系統和三層構架應用系統有一個共同的特點就是客戶端的瀏覽器負責解釋超文本文件,最終生成訪問者看到的頁面形式。頁面使用的表現語言都是超文本標記語言(Hyper Text Markup Language,HTML)語言,或稱為“多媒體文件語言”,超文本頁面內嵌的圖片、頁面內的相互引用以及超文本之間的跳轉等都是通過超鏈接來實現,這使得超文本鏈接數量非常龐大,也是出現Bug最多的地方,比如鏈接目標對象不存在、引用絕對路徑鏈接、內嵌文件過多導致HTML文件過大下載性能下降等,因此驗證鏈接的正確性是B/S構架應用系統開發測試的重要工作之一。
目前,常用的超鏈接測試技術包括手工點擊測試和引進國外測試工具進行自動測試等,這些手段和技術在實際工作中都存在著不足:采用人工點擊測試驗證鏈接的正確性,其工作量巨大,且難于保證100%的覆蓋,對一些因漏點擊而遺留的Bug,利用人工再測試也很難100%發現。而引進和使用國外的軟件測試工具實施自動測試,則存在漢字兼容等問題,這些測試工具因是國外公司開發,對中文文件名、中文標簽等的支持不十分完善,容易出現漏報和誤報等現象,未能很好解決超文本頁面開發設計面臨的測試驗證問題。
1 超文本詞法特點及自動化測試技術
1.1 超文本詞法特點分析
B/S構架應用系統和三層構架應用系統都是由客戶端的瀏覽器負責解釋超文本文件,最終生成頁面形式,如圖1所示。它的表現語言HTML 是一種描述文檔結構而不描述實際的語言,用HTML語言書寫的頁面是普通的文本文檔(ASCII),不含任何與平臺和程序相關的信息,可以被任何文本編輯器讀取,文字和圖形可以同時在同一頁面中顯示,在Internet/ Intranet上,客戶端的瀏覽器負責解釋這些超文本,最終生成訪問者看到的頁面形式。HTML文檔包含兩種信息:一是頁面本身的文本;二是表示頁面元素、結構、格式和其他超文本鏈接的HTML標記,是基于標準通用標記語言(SGML)而開發的,它通過各種各樣的“標記”向瀏覽器說明頁面外觀、文字格式、超級鏈接目標、圖片屬性等內容。在HTML詞法中,其標記按照實現的功能大致上可以分為:框架標記、分隔標記、排版標記、鏈接標記等,如表1所示。
通過對HTML語言標記進行分析和分類,與鏈接相關的標記主要包括兩大類:
(1) 鏈接類。主要實現網站鏈接、FTP鏈接、News鏈接、BBS鏈接、電子郵件鏈接、標簽鏈接等功能,其使用的標記主要是href;
(2) 應用類。主要實現圖像引用與嵌套、頁面嵌套引用、文字應用等,包括插入圖像、背景圖像、文字引用等,其使用的標記主要包括src,background和cite。
標記類別標記功能
架構標記設定同一個窗口頁面由多個網頁一起組成
分隔標記設定水平分隔線
排版標記網頁版面編排,文字置左、置中、置右等
字體標記設定標題標簽、設定字體大小標簽、字型變化標簽、文字顏色設定。
[BHDWG4.5mm]文字標記設定文字字型設定、特殊字元、設定文字內定值大小等
[BH]影像標記設定在網頁中插入圖像,設定圖像顯示屬性等
[BH]背景標記設定網頁背景顏色或是背景圖像
[BHDWG8mm]鏈接標記設定超鏈接,如網站鏈接、電子郵件鏈接、ftp鏈接、news鏈接、gopher鏈接、bbs鏈接等
[BHDWG4.5mm]表格標記在網頁中如何運用和設定表格格式
[BH]序列標記設定文字序列或圖形序列
[BH]表單標記制作可填寫用的表單
[BH]其他技巧實現其他的功能[HJ][HT5SS]
與鏈接相關的HTML標記分類及其典型用法見表2所示。
1.2 鏈接自動化測試的實現原理
HTML文檔是純文本文檔,超文本文檔的組成源碼具有開放性,對用戶是透明的,可以由網頁編輯器以及其他文本編輯軟件創建。通過對超文本詞法特點分析可知,超文本語言與鏈接相關標記的標識關鍵詞主要為href,src,background和cite,可以通過分析HTML文件源碼,查找與鏈接(src,href等)相關的標記,再分析提取鏈接標記對應的鏈接對象信息,然后對鏈接對象進行定位和分析,可以直接驗證頁面鏈接的有效性,并可以利用鏈接分析的信息,對頁面的大小進行統計并與設定值比較,確定在特定帶寬下瀏覽該頁面所需的時間等性能指標。此外,還可以通過頁面的鏈接關系,確定Web應用目錄路徑下未使用的冗余文件。因而,具備利用超文本源代碼靜態分析進行鏈接自動測試,分析其性能指標,查找冗余文件,優化Web應用服務器文件結構的可行性。
框架頁面ひ用
在頁面げ迦臚枷
2 鏈接自動測試工具的設計與實現
2.1 總體設計
基于詞法分析的超文本自動測試工具由四部分組成:預處理器、鏈接分析器、數據庫和報告生成器,如┩2所示。
(1) 預處理器。主要進行Web所在目錄的目錄分析、調用關系分析、詞法分析和絕對[CD*2]相對路徑轉換。目錄分析主要分析Web所在目錄的目錄結構和文件分析。通過目錄分析得到Web所在目錄的目錄結構信息、各個目錄的文件清單以及超文本文件清單;調用關系分析和詞法主要根據超文本的詞法和關鍵詞,分析查找超文本文件的鏈接類和應用類鏈接關鍵詞,確定超文本的調用關系;絕對[CD*2]相對路徑轉換主要將調用關系分析得到的調用關系路徑進行“相對路徑[CD*2]絕對路徑”的相互轉換,最后,將該階段的預處理信息和分析結果寫入數據庫,作為鏈接分析器的輸入。
(2) 鏈接分析器。首先,對上一階段分析出來并經“相對路徑[CD*2]絕對路徑”轉換的調用關系進行進一步分析,根據表2所示的HTML語言鏈接標記分類法,對超文本調用關系進行分類‐[11]。其次,對每個類別鏈接內的鏈接逐一進行分析,確認其鏈接對象是否存在,并將默認網頁首頁、被鏈接和調用文件以外的文件標記為冗余文件;最后,將分析結果寫入數據庫。
(3) 數據庫。主要存儲預處理器、鏈接分析器的分析和處理結果,包括Web所在目錄的目錄結構信息、文件清單、超文本調用關系、鏈接分析信息、鏈接缺陷標識、網頁大小統計信息和冗余文件信息等。
(4) 報告生成器。分析報告生成模塊從數據提取鏈接分析結果,按照選定的報告類型和設定的報告格式生成分析報告和打印。
2.2 功能設計
基于詞法分析的超文本自動測試工具包括三個主要的功能模塊:分析參數設置、超文本詞法分析和分析報告生成。如圖3所示。分析參數設置模塊主要完成自動分析測試前的參數設置,如Web應用默認首頁指定、Web應用所在的默認目錄設置、設定分析所需的參數(如頁面大小告警上限值、鏈接調用關系上限值等);超文本詞法分析模塊主要完成href鏈接、src鏈接、cite鏈接和background鏈接分析,并將分析結果存儲到數據庫中;分析報告生成模塊則從數據提取鏈接分析結果,按照選定的報告類型和設定的報告格式生成分析報告和打印、輸出。
2.3 流程設計與實現
WebSiteTest工作流程設計框圖如圖4所示,首先實現對用戶設定參數、Web首頁和根目錄等進行輸入和存儲;然后對對設定的目錄進行分析處理,列出根目錄下的文件和目錄結構,并對目錄下的HTML文件進行詞法分析;接著對分析后的鏈接標記進行分類,對分類后的鏈接標記進行字符解析、轉換等預處理,然后進行鏈接的分析預驗證,最后進行頁面文件大小統計和生成不同的分析報告。
3 使用與驗證
《電子行業標準全文數據庫軟件V1.0》(著作產權登記號:2002SR2155)是典型三層構架的B/S數據庫應用系統,包含超過一千多個電子行業常用標準全文,數據層用SQL Server存儲標準全文文本內容和目錄信息。中間層(業務層)利用IIS+ASP提供標準目錄信息、標準全文內容查詢和標準內容的讀取,利用ASP讀取數據庫內的標準頁面內容并轉換成瀏覽器可以顯示的HTML文件。應用客戶端通用瀏覽器通過Internet或Intranet訪問Web服務器,完成查詢信息的提交、查詢結果以及標準文本內容的顯示等。
《電子行業標準全文數據庫軟件V1.0》內包含了海量的超文鏈接。在數據庫軟件的設計與實現過程中,采用了多種技術手段進行超文本鏈接驗證,包括人工測試和引進國外先進的軟件測試工具等,但存在測試覆蓋率不全、測試工具漏報、誤報等問題,如表3所示。測試實施方法存在的問題[HJ0]
手工測試工作量大,測試工作量占項目工作量約45%;
測試效率低;
測試覆蓋不全,存在漏測現象
引進國外的測試すぞ呤凳┎饈怨ぞ叻延冒汗;
對中文文件名、標簽名支持不完善,導致測試漏報、誤報現象。
為解決上述面臨的問題,通過基于超文本詞法分析,設計與實現了超文本自動測試工具WebsiteTest V1.0(著作產權登記號:2009SR06358),不僅保證了測試驗證的準確性和100%的測試覆蓋率,而且大大提高了測試的效率,使超文本鏈接的測試驗證工作量占項目工作量的比例從原來人工測試的40%~45%降低為3%~5%,此外,利用該工具提供的性能分析報告和冗余文件報告(見圖6),對數據庫系統和Web服務器文件系統進行的性能優化,取得了良好的效果,也為標準數據庫的升級和擴充提供了極大的便利。
4 結 語
經過實際項目應用表明,基于超文本詞法分析,設計與實現專用超鏈接測試驗證工具是可行和有效的。不僅提高了鏈接測試的覆蓋率,而且有效提高了測試驗證的效率和準確性,降低超文本鏈接的測試驗證工作量。此外,超鏈接測試驗證工具的功能進一步拓展后,對基于ASP的網站的測試驗證,也可以通過對ASP產[LL]生的瀏覽器可以瀏覽的HTML源碼文件進行分析驗證,具有良好的應用前景。
參 考 文 獻
[1][美]羅賓斯.Web設計技術手冊(影印版)[M].3版.南京:東南大學出版社,2006.
[2]W3C Recommendation.HTML 4.0 Specification[S].1998.
[3]陳紹英,夏海濤,金成姬.Web性能測試實戰/測試實踐叢書(測試實踐叢書)[M].北京:電子工業出版社,2006.
[4][美]紐恩.Web應用測試/軟件工程叢書[M].2版.周志榮,譯.北京:電子工業出版社,2006.
[5]葉青.完全手冊HTML+CSS+JavaScript實用詳解[M].北京:電子工業出版社,2008.
[6][美]肯尼迪.HTML&XHTML;權威指南[M].6版.張洪濤,邢璐,譯.北京:清華大學出版社,2007.
[7]張金霞.HTML網頁設計參考手冊[M].北京:清華大學出版社,2006.
[8]劉智勇.HTML+CSS開發指南[M].北京:人民郵電出版社,2007.
[9]郭敏華,張紅,甘志強,等.一種支持多腳本語言的測試數據分離方法[A].國防科技工業軟件評測技術交流會論文集[C].2007.
[JP2][10]黃萍,郝建材.用代碼靜態分析技術提高軟件代碼質量[A].國防科技工業軟件評測技術交流會論文集[C].2007.[JP]
[11]石倩,陳榮,魯名羽.基于規則歸納的信息抽取技術系統實現[J].計算機工程與應用,2008,44(2):166[CD*2]170.[HJ0][HJ]
作者簡介 黃茂生 男,1973年出生,廣東肇慶人,高級工程師。主要研究方向為軟件測試、軟件可靠性。
楊春暉 女,1965年出生,湖南洞口縣人,碩士研究生,高級工程師。主要研究方向為軟件質量工程、項目管理。