• <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程序難測試

    發布: 2009-4-22 10:30 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 63次 | 進入軟件測試論壇討論

    領測軟件測試網 以我用PHP的感覺來看,Web程序還是難以實施測試的。這里所說的“測試”主要是指自動化的單元測試。通常這類測試都依賴于某種測試框架,如 JavaJUnit測試框架。而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)”吧。

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

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: web Web WEB 程序


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>