• <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-1-12 10:39 | 作者: 不詳 | 來源: 領測測試軟件網采編 | 查看: 135次 | 進入軟件測試論壇討論

    領測軟件測試網

      白盒測試實例之三——需求分析   需求管理 

        需求分析是后續工作的基石,如果分析思路有問題,后續工作可能就會走向不正確的方向,比如:代碼重用性差、難于測試、難于擴展和難于維護等。反而,如果需求分析做的好,對設計、開發和測試來說,都可能是很大的幫助。

      看到題目給出的條件達12個之多,粗粗一看,好像很復雜,但仔細分析之后,發現可以把它們分成4組來討論:

      1、 條件1:a+b>c; 條件2:a+c>b; 條件3:b+c>a

      這三個表達式有什么特點呢?實際上它們的邏輯是一樣的:兩個數之和大于第三個數。那么,前面程序的寫法就存在邏輯重復的地方,應該把這個邏輯提取到一個函數中。

      2、 條件4:0

      這三個表達式也是同一個邏輯:判斷一個數的范圍是否在(0, 200)區間內,也應該把這個邏輯提取到一個函數中,去掉重復的邏輯,提高代碼的可重用性。

      可重用性的好處:比如,現在用戶的需求改為了三條邊的取值范圍要改為[100,400],那么,按前面的思路來說,需要改3個地方,而現在只需要在一個函數里改1個地方,這就是代碼重用的好處。

      3、條件7:a==b; 條件8:a==c; 條件9:b==c

      這三個表達式的邏輯:判斷兩個數是否相等。也應該把它提取到一個函數中。

      我們進一步來分析一下判斷是否是等邊三角形或等腰三角形的條件:

      (1)前面程序的判斷是從最直觀的方式(a==b && b==c && a==c)(實際上只需要兩個表達式成立即可)三條邊都相等來判定是等邊三角形;(a==b || b==c || a==c)只有兩條邊相等來判定是等腰三角形。

      (2)轉變一下思路:給定三個整數,然后用一個函數來判斷這三個整數有幾個相等,返回相等的個數,如果返回值等于3,那么它是等邊三角形,如果返回值是2,那么它是等腰三角形,否則,它是一般三角形(如果不是直角三角形的話)。

      4、條件10:a2+b2==c2 條件11:a2+ c2== b2 條件12:c2+b2== a2

      這三個條件的處理方式有兩種:

      (1)跟前面三組分析一樣,把相同的邏輯提取到一個函數中,然后三次調用。

      (2)根據直角三角形的特點:斜邊是最長的,所以我們可以事先寫一個函數來找到最長的邊,然后把它賦值給c,這樣處理之后,只需要一次調用判定(a2+b2==c2)的函數了。

    延伸閱讀

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

    TAG: 白盒 實例 需求


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>