測試web應用程序和測試桌面系統用很多共同點:例如你需要和執行所有標準測試類型一樣測試常見的功能點,配置及兼容性。但是由于與應用程序交互的所有分布式系統組件的復雜性成倍的增加的原因,導致web應用程序測試更加的困難。當我們在web環境中看到一個錯誤時,通常很難指出錯誤發生的地方,并且由于我們看到的行為或我們接受到的錯誤信息可能是發生在Web系統中不同部分的錯誤的結果。錯誤可能是很難重現的。那么我們如何在web系統中分析錯誤呢,并且為了重現那些錯誤又應該做哪些考慮呢?
當我們對潛在的技術有一個了解時,我們可以更好的最大化測試效率-編寫更多可重現的bug報告并且在較少的時間里發現更多的錯誤。說比做更加容易-特別是在web環境里。Web環境在錯誤傾向技術變量是密度高的。以下是測試Web應用程序的需要考慮的5個基本事項:
1. 當我們在客戶端看到一個錯誤時,我們所看到的是錯誤的癥狀,而不是錯誤本身。
2. 錯誤可能是與環境相關的,并且可能不出現在不同的環境里
3. 錯誤可能是存在代碼或是配置中的
4. 錯誤可能駐留在幾個層中的任一個層中
5. 檢查操作系統中的兩個類別-靜態vs動態-需要不同的方法。
現在讓我們來詳細的看看這5個需要考慮的事項。
1. 什么是我們真正看到的東西?是一個錯誤還是一個癥狀?
如果不診斷環境,我們不能夠確定是什么導致了一個癥狀出現。如果客戶端和服務器端的一個環境特定的變量被移除或被改變的話,我們或許將不能夠重現問題。
例如,我正在測試一個Web的缺陷跟蹤應用程序,并且遍歷創建一個bug報告的流程。當我選擇“新建”按鈕時,我接收到一個錯誤信息:Microsoft OLE DB Provider for ODBC Drivers error '80040e14'。在花了一些時間調查我的瀏覽器環境后,我發現JavaScript在瀏覽器的參數設置對話框中被禁止了。啟用JavaScript就消除了這個錯誤。(這個問題是否是個bug不在我們今天討論的范圍里)這里是要說如果我在bug報告中增加關于JavaScript的信息,我可以節約我們團隊花費在分析這個問題的時間。此外,“禁用JavaScript”從此應該要添加到我的測試包中;它將被應用到應用程序的各個地方,以使所有潛在的相關問題不會出現。
2. 這個錯誤是環境依賴的嗎?
為了重現一個環境相關的錯誤,我們不得不完全地復制活動的準確順序和應用程序操作所在環境的條件(操作系統,瀏覽器版本,插件的組件,數據庫服務器,web服務器,第三方組件,服務器/客戶端資源,網絡帶寬和通信量等等)。例如,當你試圖使用一個28.8 kbps的撥號連接登錄到你的Web應用程序中,你會碰到一個由于在認證過程中因超時而導致的登錄失。峭瑯拥牡卿洸襟E如果你用一個1.54 mbps 的T-1連接將會成功的通過認證。在這個案例中,你有一個環境依賴的錯誤,這個依賴條件是在帶寬中。
環境無依賴的錯誤,用另一種話說,相對來說是容易重現的-它沒有必要復制操作環境。環境無關的錯誤,需要復制所有都能夠揭示錯誤的步驟。例如,如果公司的名稱在所有產品在線頁面上錯誤地拼寫為WebTessting.Con, 你就總能看到這個錯誤-它是和硬件,軟件和你操作環境中資源變量無關的。更為常見的是,我們將環境無關的錯誤稱為功能特定的錯誤。
3. 是一個代碼錯誤或是一個配置問題
錯誤(或是假定錯誤的癥狀)可能會在代碼修復中或系統重新配置(客戶,服務器或網絡)解決(假設錯誤是真實的)。不要太快的下結果它是一個bug。
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 對比真正的軟件錯誤,這是一個說明識別可能的配置問題挑戰。它顯示了由于Web應用程序“登錄失敗”而引起的一個錯誤信息。只是簡單的查看這個錯誤信息,是不可能判斷這個錯誤是由于軟件bug引起的還是服務器端配置問題,或是兼容性問題,瀏覽器配置問題或以上所有的。
在進一步分析這個失敗以后,我發現幾個可能的產生這個錯誤信息的條件:
IIS (Web server) virtual directory has not been set up properly當虛擬目錄沒有被正確的配置時,將找不到請求的文件,腳本或數據。這是一個典型的服務器配置的問題。然而,如果安裝程序未能根據說明書一樣配置web服務器,那么這是一個軟件的錯誤。如果一個系統管理員未能根據說明書正確地配置web服務器,這個就變成了用戶錯誤。
文章來源于領測軟件測試網 http://www.kjueaiud.com/