<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

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

            提高測試用例覆蓋率的分析方法[1]

            發(fā)布: 2010-5-18 11:39 | 作者: 不詳 | 來(lái)源: 領(lǐng)測測試網(wǎng)采編 | 查看: 65次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

              提高測試用例覆蓋率的分析方法[1]    軟件測試

              開(kāi)發(fā)高質(zhì)量的測試用例 是測試工程師的基本工作。那什么才算是高質(zhì)量的測試用例呢?——高質(zhì)量的測試用例是既有高覆蓋性又有高可執行性,當兩者不可兼得時(shí),它有最佳平衡點(diǎn)。本文不討論如何取得最佳平衡,只關(guān)注采用何種分析方法來(lái)提高測試用例的覆蓋率。

              首先來(lái)說(shuō),分析分為兩個(gè)步驟,首先以不同得角度切分系統,使得它成為更簡(jiǎn)單的模塊,第二是把不同的模塊想象成一個(gè)黑盒子,對這個(gè)黑盒子做以下分析。

              1. 從不同得角度把系統分為不同得模塊

              這里存在兩種思路

              1.1 對系統進(jìn)行完整得劃分

              軟件是復雜的。軟件開(kāi)發(fā)者面對這種復雜性采用的經(jīng)典的方法瀑布模型,也就是從上到下,逐漸細分,大模塊包括小模塊,小模塊包括更小的模塊。對于軟件測試來(lái)說(shuō),很自然的,我們也可以采用這種方法。但是,這還是遠遠不夠的。我們還要從更多的角度切入系統,從不同的角度把系統切分成一塊一塊的,然后進(jìn)行測試。

              比如遙控器的例子。我們就可以從下面一些方面來(lái)劃分系統

              1 )功能。

              這個(gè)劃分非常直觀(guān), Spec 上肯定會(huì )明確指明遙控器假設有 3 個(gè)功能,開(kāi)關(guān)機, +- 調臺, +- 調音。對每個(gè)功能我們測試它能否正常工作。當然我們也會(huì )注意到邊界情況:當音量滿(mǎn)的時(shí)候,加音量...

              2 )狀態(tài)

              Spec 上沒(méi)有說(shuō)明遙控器的狀態(tài),但我們應該能分析得出遙控器有下面的狀態(tài)

              關(guān)機,開(kāi)機,正在調臺,正在調音

              現在我們可以列一個(gè) matrix ,測試在每種狀態(tài)下執行上面的任意一種操作系統的反應。注意,這個(gè)時(shí)候,你就要把你自己當成用戶(hù),因為這些情況都不會(huì )在 spec 里詳細的說(shuō)明的。比如在關(guān)機狀態(tài)下調音,竟然開(kāi)機了。這個(gè)顯然就是bug 。

              3 )按鍵序列

              現在我們走得更遠。我們把遙控器看作具有按鈕得一個(gè)玩意兒,然后輸入任意一個(gè)序列看是否會(huì )出現異常情況,是否會(huì )讓程序不正常得工作。這里不需要分任何得分析方法。這是一個(gè)很好得切入點(diǎn)。另外一個(gè)例子是,在測試 web application 時(shí),做一個(gè)爬蟲(chóng)程序去點(diǎn)擊頁(yè)面上得任何 link 。

              通過(guò)這些不同得劃分, testcase 的覆蓋率可以得到有效得提高。

              需要注意一點(diǎn)是,不同得劃分肯定會(huì )帶來(lái) testcase 得冗余。在劃分 1 )時(shí),有測試開(kāi)關(guān)機得 case ,在劃分 2 )時(shí),顯然也會(huì )有這樣得 case 。這是不可避免得,也沒(méi)有關(guān)系。

              1.2 尋找某個(gè)特定得切面

              上面得劃分系統可以看作對整個(gè)系統得一種分離方法,劃分方法得結果是把測試對象分成不同得一塊一塊。而 “ 特定得切面 ” 則只是描述了測試對象得一個(gè)面,它不存在劃分系統得問(wèn)題。還是上面得例子,比如 “ 長(cháng)按按鈕 ” 就是一個(gè) “ 特定得切面 ” 。

              “長(cháng)按 Power 按鈕”是一個(gè)測試得關(guān)注點(diǎn), “ 長(cháng)按 volumn+”也是這樣得一個(gè)關(guān)注點(diǎn),如果在系統中多處存在這樣得相似得關(guān)注點(diǎn),那么就構成了一個(gè)面,比如在這里是每個(gè)按鈕都存在 “ 長(cháng)按按鈕 ” 這樣一種可能,那么 “ 長(cháng)按按鈕 ” 這就可以看作系統得一個(gè)切面。對于這樣一個(gè)切面,如果把它分散在每個(gè)功能測試 case 里,顯然不是好主意。最好得方法是把它拿出來(lái)作為一個(gè)單獨得 testcase 。

              再舉一個(gè)例子是, “ 維護數據完整性 ” 是一個(gè)切面。很多系統都有用戶(hù)這個(gè)對象,很多其他的對象都會(huì )引用到它。對于引用已經(jīng)刪除得對象就是一個(gè)容易出問(wèn)題得地方。那么就把 “ 刪除用戶(hù) ” 作為一個(gè)切面拿出來(lái),對每一個(gè)相關(guān)得對象進(jìn)行測試。這樣一個(gè)切面是非常好得 testcase 。

              說(shuō)到這里,你可能會(huì )發(fā)現這其實(shí)是面向方面編程 (AOP) 得概念。 bingo !確實(shí)如此,好得思想方法在哪里都會(huì )閃光啊 ~_*.

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: 分析方法 覆蓋率


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

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>