有兩種主要的情況會用到結構測試的概念。在這兩種情況下,結構測試雖然本質不同,但基本概念或作法可謂相同。
長期以來,大多公認「結構測試」就是測試軟體程式碼的內部結構。相對於「動態」測試,這種結構測試幾乎都採取「靜態」方式執行,亦即在測試時,軟體本身並不執行。診斷工具可剖析程式碼,找出結構性錯誤和弱點,通常會產生一份清單,以利後續採取更正動作。這種測試和評估工作由開發人員負責,而非系統測試人員。
Web 型應用程式 - 採用網際網路應用程式技術 - 已愈來愈普遍。形成這種趨勢是因為此軟體開發和部署方法讓組織可享受多項科技商業的優點,例如:
-
開發的顧客群、潛在客戶及企業夥伴,不必送出任何軟體或文件。只要有瀏覽器可以存取「網路」(網際網路或企業內部網路),任何人都可以輕鬆指向公開的 URL,立即執行應用程式。
-
集中控制和維護。在 Web 型應用程式的「精簡型用戶端/大型伺服器」模型中,應用程式元件和邏輯放在 Web
伺服器,可集中並簡化控制和維護。亦可方便開發人員自動分送軟體。應用程式放到伺服器之後,立即可供所有使用者使用。
雖然有利於採用這項技術的人,但 Web 型應用程式需要更多測試。測試這些 Web 型應用程式就像測試其他非 Web 型應用程式一樣(主從架構、舊型應用程式等),需要經過測試來評估應用程式的功能和效特特性。此外,Web
型應用程式還需要測試應用程式的結構,確保結構正確且所有鏈結都有效。
Web 型應用程式通常以一連串文件來建構(HTML 文字文件和 GIF/JPEG 圖形),這些文件由許多靜態鏈結及少數主動式或程式控制的鏈結來串連起來。這些應用程式也可能包含「主動式內容」,例如表單、Java
Script、外掛程式呈現的內容,或 Java 應用程式。這種主動式內容通常只用於輸出,例如播放音效或視訊。不過,也可能有導覽輔助的功用,可協助使用者導覽應用程式(網站)。Web
型應用程式的開放特性(透過鏈結)是一項很出色的優點,但相對也成為嚴重的弱點,因為結構完整性很容易受損。
實作和執行結構測試是為了驗證所有鏈結(靜態或主動式)是否適當地連接。這些測試包括:
-
驗證每一個鏈結顯示適當的內容(文字、圖形等)。 使用不同類型的鏈結來參照 Web 型應用程式中的目標內容,例如書籤、其他目標內容的超鏈結(在相同或不同網站內)或熱點。必須驗證每一個鏈結,確保使用者看到正確的目標內容。
-
確定沒有中斷的鏈結。中斷的鏈結是指找不到目標內容的鏈結。鏈結中斷的原因眾多,包括移動、移除或重新命名目標內容檔。鏈結也可能因為語法使用錯誤而中斷,包括遺漏斜線、冒號或字母。
-
驗證沒有孤立內容。孤立內容是指在現行網站中沒有「入站」鏈結的檔案;亦即,無法存取或呈現內容。必須仔細調查孤立內容來判斷原因:
-
因為已無實際需要而孤立嗎?
-
因為中斷的鏈結而孤立嗎?
-
或實際上是從現行網站的外部鏈結來存取?
找出原因之後,就應該採取適當的行動,例如移除內容檔案、修復中斷的鏈結或忽略孤立內容,視情況而定。
|