• <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-7-19 10:25 | 作者: 網絡轉載 | 來源: 領測軟件測試網采編 | 查看: 174次 | 進入軟件測試論壇討論

    領測軟件測試網

    軟件測試中淺談黑盒測試測試用例設計方法

    在軟件測試中目前黑盒測試的測試用例設計方法有5種:

    1. 等價類劃分
    2. 邊界值分析
    3. 錯誤推測法
    4. 因果圖
    5. 功能圖

    一、等價類劃分

    等價列劃分設計方法是把所有可能的輸入數據,即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少量具有代表性的數據作為測試用例。

    等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的。并合理地假定:測試某等價類的代表值就等于對這一類其他值的測試。

    等價類劃分有兩種不同的情況:有效等價類和無效等價類。設計時要同時考慮這兩種等價類。

    下面給出6條確定等價類的原則:

    1. 在輸入條件規定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。
    2. 在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,則可以確立一個有效等價類和一個無效等價類。
    3. 在輸入條件是一個布爾量的情況下,可以確立一個有效等價類和一個無效等價類。
    4. 在規定了輸入數據的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可以確立n個有效等價類和一個無效等價類。
    5. 在規定了輸入數據必須遵守的規則的情況下,可以確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。
    6. 在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。

    在確立了等價類后,可建立等價類表,列出所有劃分出的等價類。然后從劃分出的

    等價類中按以下的3個原則設計測試用例:

    • 為每一個等價類規定一個唯一的編號
    • 設計一個新的測試用例,使其盡可能多的覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止。
    • 設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。

    例:程序規定;輸入三個整數作為三邊的邊長構成三角形。當此三角形為一般三角形、等腰三角形、等邊三角形時,分別作計算。用等價類劃分方法為該程序進行測試用例設計。

    解:設a、b、c代表三角形的三條邊。

    1)分析題目中給出的和隱含的對輸入條件的要求:

    a) 整數
    b) 3個數
    c) 非零數
    d) 正數
    e) 兩邊之和大于第三邊
    f) 等腰
    g) 等邊

    2)列出等價類表并編號

    MILY: 宋體">java_script_:if(this.width>500)this.width=500" border=0>

    3)列出覆蓋上述等價類的測試用例,如下表:

    二、邊界值分析法

    使用邊界值分析方法設計測試用例,首先:應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。其次,應但選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。
    基于邊界值分析方法選擇測試用例的原則:

    1. 如果輸入條件規定了值的范圍,應取剛達到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入的數據。
    2. 如果輸入條件規定了值的個數,應用最大個數、最小個數、比最小個數少一、比最大個數多一的數作為測試輸入的數據。
    3. 根據規格說明的每個輸出條件,使用前面的原則1。
    4. 根據規格說明的每個輸出條件,使用前面的原則2。
    5. 如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例數據。
    6. 如果程序中使用了一個內部數據結構,應當選擇這個內部數據結構邊界上的值作為測試用例。
    7. 分析規格說明,找出其他可能的邊界條件。

    三、錯誤推測法

    錯誤推測法就是根據經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設計測試用例的方法。

    基本思路:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。例如:輸入數據和輸出數據為0的情況。

    例:現有一個學生標準化考試批閱試卷,產生成績報告的程序。其規格說明如下:程序的輸入文件由一些有80個字符的記錄組成,所有記錄分為3組,如圖:



    1、標題:改組只有一個記錄,其內容是成績報告的名字。

    2、各題的標準答案:每個記錄均在第80個字符處標以數字2。該組的記錄:

    第一個記錄:第1~3個字符為試題數(1~999)。第10~59個字符是1~50題的標準答案(每個合法字符表示一個答案)。

    第二個記錄:是第51~100題的標準答案。

    …….

    3、學生的答案:每個記錄均在第80個字符處標以數字3。每個學生的答卷在若干個記錄中給出。

    學號:1~9個字符

    1~50題的答案:10~59。當大于50題時,在第二、三、……個記錄中給出。

    學生人數不超過200,試題數不超過999。

    程序的輸出有4個報告:

    a)按學號排列的成績單,列出每個學生的成績、名次。
    b)按學生成績排序的成績單。
    c)平均分數及標準偏差的報告
    d)試題分析報告。按試題號排序,列出各題學生答對的百分比。

    解答一:采用邊界值分析方法,分析和設計測試用例。分別考慮輸入條件和輸出條件,以及邊界條件。下表列出了輸入條件及相應的測試用例。

    下表為輸出條件及相應的測試用例表。



    解答二:采用錯誤推測法還可補充設計一些測試用例:

    1. 程序是否把空格作為回答
    2. 在回答記錄中混有標準答案記錄
    3. 除了標題記錄外,還有一些的記錄最后一個字符即不是2也不是3
    4. 有兩個學生的學號相同
    5. 試題數是負數。

    四、 因果圖法

    因果圖法是一種適合于描述對于多種條件的組合、相應產生多個動作的形式的測試用例設計方法。

    利用因果圖生成測試用例的基本步驟:

    1.  分析軟件規格說明描述中那些是原因,那些是結果,并給每個原因和結果賦予一個標識符。
    2. 分析軟件規格說明描述的語義。找出原因和結果之間、原因和原因之間的關系,根據這些關系,畫出因果圖。
    3.  在因果圖上用一些記號表明約束或限制條件。
    4. 把因果圖轉換為判定表。
    5. 把判定表的每一列拿出來作為依據,設計測試用例。

    例:第一列字符必須是A或B,第二列字符必須是一個數字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數字,則給出信息M。

    解1、畫出因果關系表和因果圖。

    2、根據因果圖建立判定表。

    按條件的各種組合情況產生對應的動作。原因1和原因2不能同時成立,故可排除這種情況。
    從判定表可設計出測試用例:6個測試用例是所需的數據。

    延伸閱讀

    文章來源于領測軟件測試網 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>