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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    面向對象軟件的測試

    發布: 2010-6-23 10:37 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 130次 | 進入軟件測試論壇討論

    領測軟件測試網

      2.5 子類間的共同特性是否完全在父類中得以體現。

      3 對類庫支持的測試

      對類庫的支持雖然也屬于類層次結構的組織問題,但其強調的重點是再次軟件開發的重用。由于它并不直接影響當前軟件的開發和功能實現,因此,將其單獨提出來測試,也可作為對高質量類層次結構的評估。參照[9]中提出的準則,擬訂測試點如下:

      3.1 一組子類中關于某種含義相同或基本相同的操作,是否有相同的接口(包括名字和參數表)。

      3.2 類中方法(C++:類的成員函數)功能是否較單純,相應的代碼行是否較少([5]中建議為不超過30行)。

      3.3 類的層次結構是否是深度大,寬度小。

      四、面向對象編程的測試(OOP Test)

      典型的面向對象程序具有繼承、封裝和多態的新特性,這使得傳統的測試策略必須有所改變。封裝是對數據的隱藏,外界只能通過被提供的操作來訪問或修改數據,這樣降低了數據被任意修改和讀寫的可能性,降低了傳統程序中對數據非法操作的測試。繼承是面向對象程序的重要特點,繼承使得代碼的重用率提高,同時也使錯誤傳播的概率提高。繼承使得傳統測試遇見了這樣一個難題:對繼承的代碼究竟應該怎樣測試?(參見面向對象單元測試)。多態使得面向對象程序對外呈現出強大的處理能力,但同時卻使得程序內"同一"函數的行為復雜化,測試時不得不考慮不同類型具體執行的代碼和產生的行為。

      面向對象程序是把功能的實現分布在類中。能正確實現功能的類,通過消息傳遞來協同實現設計要求的功能。正是這種面向對象程序風格,將出現的錯誤能精確的確定在某一具體的類。因此,在面向對象編程(OOP)階段,忽略類功能實現的細則,將測試的目光集中在類功能的實現和相應的面向對象程序風格,主要體現為以下兩個方面(假設編程使用C++語言)。

      ☆ 數據成員是否滿足數據封裝的要求

      ☆ 類是否實現了要求的功能

      1 數據成員是否滿足數據封裝的要求

      數據封裝是數據和數據有關的操作的集合。檢查數據成員是否滿足數據封裝的要求,基本原則是數據成員是否被外界(數據成員所屬的類或子類以外的調用)直接調用。更直觀的說,當改編數據成員的結構時,是否影響了類的對外接口,是否會導致相應外界必須改動。值得注意,有時強制的類型轉換會破壞數據的封裝特性。例如:

      class Hiden

      {private:

      int a=1;

      char *p= "hiden";}

    延伸閱讀

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


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