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

    領測軟件測試網

      生成 Successor 元素的算法沒有使用任何特別的技巧。實質上你從最右邊的元素開始向左移動直到你定位于應該增加的最左邊的原子。這時你以索引 i 增加原子并重新安排所有原子到 i 的右邊比左邊的值大 1。舉個例子,設 n = 5 和 k = 3 并且你想得到組合{ 0, 3, 4 }的后繼者。索引 i 開始于地址 2(指向值為 4 的原子),并且左移直到它到地址 0(指向值為 0 的原子)。原子值被加1,并且右邊(3 和 4)的所有原子從數組左邊的值增加,得到結果{ 1, 2, 3 }。

      一旦你有了 Successor 方法,便需要一個 ApplyTo 方法,它將某個組合元素放到一個字符串數組中。ApplyTo 方法很簡單:

      public string[] ApplyTo(string[] strarr) { if (strarr.Length != this.n) throw new Exception("Bad array size"); string[] result = new string[this.k]; for (long i = 0; i < result.Length; ++i) result[i] = strarr[this.data[i]]; return result; }

      通過對字符串數組輸入參數的檢查,確保字符串個數的正確性之后,用子集 k 的大小創建一個結果數組。然后遍歷輸入字符串 ,并將一個引用存儲到結果數組相應的單元中。與組合所實現的許多操作一樣,如果你不從頭到尾跟蹤一兩個例子,所發生的事情并不是那么顯而易見。

      根據適當的條目數和子集大小實例化一個 Combination 對象之后,創建一個字符串數組來保存結果組合元素。用一個 While 循環來遍歷所有組合元素——回想一下我們曾說過,當 不存下一個元素時,Successor 方法返回 null——并且 ApplyTo 方法將當前元素映射到原始字符串數組上。

      結束語

      在計劃和進行配置測試的過程中,組合是一個不可或缺的工具,尤其是在被稱為交互式分析的子領域里。舉個例子,假設你需要在一臺安裝了多個瀏覽器和多媒體播放器 的機器上測試產品。你想要從八個瀏覽器集合中選裝三個瀏覽器,從六個多媒體播放器集合中選裝兩個播放器來進行系統結合測試。這里有多少配置的組合呢?你怎樣才能 編寫程序列出這些配置?本文呈現的技術使得你很容易就計算出有 Choose(8,3) * Choose(6,2) = 840 個可能的測試配置。它也讓你很容易編程列出所有這些配置。

      在檢查和測試執行路徑時,組合是很有用的。我將用一個經典的問題來舉例說明,它是一個分析執行路徑的代理(微軟常用這種例子問題來對測試工程師候選 人進行面試)。假設你在開發一個游戲。玩家進入一個鋪了地板磚的房間的西南角。玩家必須通過移動一塊地磚到東邊或移動一塊地磚到北邊以便自己移動到房間的東北角(換句話說玩家總是向出口方向移動并且不能 走回頭路)。如果這個房間很小-只有 10 塊地磚長 6 塊地磚那么寬——玩家會有多少種不同的路徑走法?你能測試所有這些路徑嗎?如果移動到東邊用字母 E 代表而移動到北邊用字母 N 代表,一個到出口的可能路徑就是玩家先向東移動所有步然后一直向北:

      E E E E E E E E E E N N N N N N

      一個不同的路徑是:

      E N E N E N E N E N E N E E E E

      注意這里玩家無論怎么移動,總是恰好只有16步。還要注意你可以認為移動一步為“E”或“not E”。如果你想象16格的一個序列,你必須用“E”填滿16格中的10格 (因為剩下的格子一定為“N”)。因此,這個問題的答案是這里有 Choose(16,10) = 8,008 個可能路徑,并且你可以用本文示例代碼輕松地生成它們。

      正如我早先說過的,測試是軟件開發的一個極其重要的方面。下次還是在這里,我將給你提供更多的技巧應用到你的測試過程中。

    延伸閱讀

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

    66/6<123456

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