• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 淺談Web程序難測試及web程序的幾大要點

    發表于:2010-09-07來源:作者:點擊數: 標簽:webWebWEB程序要點
    淺談Web程序難測試及web程序的幾大要點 以我用PHP的感覺來看,Web程序還是難以實施測試的。這里所說的“測試”主要是指自動化的 單元測試 。通常這類測試都依賴于某種 測試框架 ,如 Java的JUnit測試框架。而Web程序的測試經常會涉及到Web 服務器 、瀏覽器等

    淺談Web程序難測試及web程序的幾大要點

    以我用PHP的感覺來看,Web程序還是難以實施測試的。這里所說的“測試”主要是指自動化的單元測試。通常這類測試都依賴于某種測試框架,如 Java的JUnit測試框架。而Web程序的測試經常會涉及到Web服務器、瀏覽器等等外部的條件,自動化的單元測試實施起來并不容易。

      時間一長,就開始思考根本原因。我認為Web程序的測試難以進行就在于HTTP是無狀態的通信協議,而在幾乎所有的Web應用程序中,又都需要記錄用戶的狀態。因此有了Cookie和Session這些東西,而這些東西嚴重依賴于瀏覽器和服務器。再者,測試歸根結底是把程序的輸出結果跟預期結果相比較,但Web程序的輸出是什么呢?通常的理解是瀏覽器里顯示的Web頁面,但Web頁面內容在語義上并不十分嚴格,通過簡單檢驗輸出來進行測試既不切實際,也無必要。

      退一步說,對于MVC結構的Web程序來講,實質性的代碼有一部分在Model層中。這個Model層應該是和瀏覽器、服務器環境沒有耦合的,這樣才能夠比較方便地進行自動測試。但在Controller部分中通常也會包含重要的流程,而Controller通常都需要Web服務器的配合。

      在Java的技術中,“解耦”往往表現得淋漓盡致。Struts 1把程序分成了明顯的M、V、C三部分,但Controller還不得不依賴一些Servlet的API,如HttpServletRequest;到了 Struts 2,不僅不需要Servlet的API,甚至連Struts本身的API都不必依賴。由框架本身統領起整個應用程序,而實際的功能則由類似于掛接在整個機器上的一些小部件來實現,這些小部件并不去使用整個機器的功能,而是由機器統一驅動這些零件來工作。我想這應該就是人們常說的“控制反轉(IoC)”吧。

      如果能很好地解耦,才能更順利地實施測試。只要測試的成本變得非常低,低到運行整個測試只需要按一兩個鍵的時候,測試才能真正起到作用。

    接下來咱們討論一下有關web程序的幾大要點

    一、功能測試

        1、鏈接測試

        鏈接是Web應用系統的一個主要特征,它是在頁面之間切換和指導用戶去一些不知道地址的頁面的主要手段。鏈接測試可分為三個方面。首先,測試所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面;其次,測試所鏈接的頁面是否存在;最后,保證Web應用系統上沒有孤立的頁面,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。

        2、表單測試

        當用戶給Web應用系統管理員提交信息時,就需要使用表單操作,例如用戶注冊、登陸、信息提交等。在這種情況下,我們必須測試提交操作的完整性,以校驗提交給服務器的信息的正確性。例如:用戶填寫的出生日期與職業是否恰當,填寫的所屬省份與所在城市是否匹配等。如果使用了默認值,還要檢驗默認值的正確性。如果表單只能接受指定的某些值,則也要進行測試。例如:只能接受某些字符,測試時可以跳過這些字符,看系統是否會報錯。

        3、Cookies測試

        Cookies通常用來存儲用戶信息和用戶在某應用系統的操作,當一個用戶使用Cookies訪問了某一個應用系統時,Web服務器將發送關于用戶的信息,把該信息以Cookies的形式存儲在客戶端計算機上,這可用來創建動態和自定義頁面或者存儲登陸等信息。

        如果Web應用系統使用了Cookies,就必須檢查Cookies是否能正常工作。測試的內容可包括Cookies是否起作用,是否按預定的時間進行保存,刷新對Cookies有什么影響等。

        Session測試,Session的功能與Cookies有些類似,測試工作大體相同

        4、設計語言測試

        Web設計語言版本的差異可以引起客戶端或服務器端嚴重的問題,例如使用哪種版本的HTML等。當在分布式環境中開發時,開發人員都不在一起,這個問題就顯得尤為重要。除了HTML的版本問題外,不同的腳本語言,例如JavaScript、VBScript或Perl等也要進行驗證。

        5、數據庫測試

        在Web應用技術中,數據庫起著重要的作用,數據庫為Web應用系統的管理、運行、查詢和實現用戶對數據存儲的請求等提供空間。在Web應用中,最常用的數據庫類型是關系型數據庫,可以使用SQL對信息進行處理。

        在使用了數據庫的Web應用系統中,一般情況下,可能發生兩種錯誤,分別是數據一致性錯誤和輸出錯誤。數據一致性錯誤主要是由于用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由于網絡速度或程序設計問題等引起的,針對這兩種情況,可分別進行測試。

        二、性能測試

        1、連接速度測試

        用戶連接到Web應用系統的速度根據上網方式的變化而變化,他們或許是電話撥號,或是寬帶上網。當下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果Web系統響應時間太長(例如超過5秒鐘),用戶就會因沒有耐心等待而離開。

        另外,有些頁面有超時的限制,如果響應速度太慢,用戶可能還沒來得及瀏覽內容,就需要重新登陸了。而且,連接速度太慢,還可能引起數據丟失,使用戶得不到真實的頁面。

       

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>