• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-60  評論-98  文章-0  trackbacks-0

            不論是單元測試還是接口測試,熟悉程序內部實現都是有用的——這種理解是有問題的,我們目前所做的測試除了集成測試就是小規模的集成測試。

            現在測試組目前的所有測試都不是單元測試,因為單元測試最基本的單位是函數,接口測試是一種測試手段,不是一種測試分類。

            編寫測試用例跟程序實現沒有必然聯系,比如按照測試驅動開發的理論的測試用例編寫是從函數接口都沒有的情況下開始寫的,此時接口都沒有,更別說實現了,這樣就寫不出測試用例來了么?
            編寫測試用例關注什么,關注的是模塊的行為,也就是通過輸入看輸出,是否和設計文檔、接口頭文件中的描述一致。比如一個函數聲明為

            // 為公司的數據庫添加一位新員工的信息,包括工號,姓名,性別
            // 約定工號始終為正數,男同事為1打頭,女同事為0打頭
            // 姓名不得為空
            // 性別0代表女同事,1代表男同事
            // 添加成功則返回true,失敗返回false
            bool AddEmployee(int iNumber, String sName, int iSex);

            有了上述這些信息就可以開始設計測試用例了,比如iNumber = 047788, sName = "li hong",  iSex = 1, 我們期待的返回值就是false,因為性別和工號有沖突。如果測試返回true,則說明軟件有bug。

            這是寫一條測試用例的整個過程,其中并沒有設計到函數的內部實現啊?

            我們現在的開發離測試驅動開發還有很長的路要走。
            我們能做的是什么呢?
            是回歸測試,開發人員對模塊進行回歸測試,帶著反饋工作,尤其是在添加新功能,修正bug的時候,有了回歸測試,就像有了雜技演員的身上有了保險繩,可以放心地在高空中做各種動作。

            現在該怎么做呢?
            我的想法是,測試框架的搭建是由開發人員做好的,因為一些解耦和的工作是必須開發組來做的(隨著技術的進步,越來越多的解耦合方法被提出來,想詳細了解這方面的東西,推薦看《修改代碼的藝術》)。具體來說,比如我要做一個模塊,現在已經做到一半了,基本功能都做得差不多了,但是心里沒底,因為沒有QA。這是后就可以用DUnit來創建測試工程,寫一些測試用例。但是,現在版本壓力大,沒有這么多時間把測試用例寫全面,怎么辦?把測試框架給測試組,由測試組的同學來完善和豐富測試用例,因為測試組的同學比開發組的同學有更深厚的測試用例設計基礎,能寫出更好的測試用例,同時也有助于提高測試組同學開發水平,促進TEST向QA轉變。另外,這也避免了開發人員在編寫測試用例時的思維定勢,導致明顯的問題也測不出來。

            這樣,隨著模塊的不斷完善,開發人員把測試框架進行補充,測試人員豐富測試用例。如此交替進行。

            另外一個比較關鍵的問題是開發組測試組提供什么來進行測試。提供源文件的方式是行不通的,目前采用比較多的是提供DLL,同時為了避免測試規模增長,采用了DLL注冊等一系列機制。
            我的想法是由開發組提供模塊代碼的.obj文件和測試用例的源文件,這樣測試人員可以隨時構建出自己需要運行的版本,感覺上就像手里有模塊的源代碼一樣,只是不能進去debug。

            所以說,現在先做一個模塊,解耦合、大框架、測試組編寫測試用例,這一整套流程做通了,證明切實可行,方便有效。開發組自然就樂于接受了,測試組可以在模塊的級別上進行QA,而不是在發布版本之后才進行集成測試。

            一點小想法,具體實現,還需要各位都加把勁啊,呵呵。

            posted on 2008-03-05 13:16 創建更好的解決方案 閱讀(1865) 評論(7)  編輯 收藏 引用 所屬分類: TDD 、軟件測試理越辯越明

            評論:
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-05 22:09 | 魔域私服
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-06 17:04 | LOGOS
            嘗試在遺留代碼中使用單元測試有一陣子了,發現了以下一些問題:
            項目壓力
            遺留代碼的代碼基非常差,解依賴消耗大量時間
            所選擇的遺留代碼也是當前的開發項目,變動比較劇烈,以前寫好通過的測試,在一段時間后,就因為依賴而失敗了,甚至編譯不能通過  回復  更多評論
              
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-06 17:47 | 創建更好的解決方案
            大家處境都差不多,探索出一條好的工作流程,可以添加測試用例不再那樣痛苦,才是解決的辦法。靠一己之力,過于綿薄了吧。@LOGOS
              回復  更多評論
              
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-06 18:48 | LOGOS
            我當然希望和同事共同努力,只是多數人對單元測試并沒有太多認識,而我現在也沒有信心能把這里面的概念向大家講清楚,還需要再做些摸索才行  回復  更多評論
              
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-07 10:51 | 創建更好的解決方案
            是啊,通過半個月的溝通,在測試組碼了兩個人,負責完善測試用例的,我先趟趟水,隨時交流進展。@LOGOS
              回復  更多評論
              
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-11 14:19 | 創建更好的解決方案
            我的想法是由開發組提供模塊代碼的.obj文件和測試用例的源文件,這樣測試人員可以隨時構建出自己需要運行的版本,感覺上就像手里有模塊的源代碼一樣,只是不能進去debug。

            這種設想有點問題。

            首先obj文件沒用,因為測試用例的源文件包含了接口文件和實現文件的頭文件,hoho,更改之后的compile會把大家都牽扯進來。

            修改一下:通過dunit框架load dll并導出對象,供測試組調試測試用例之用。這樣的測試用例不僅可以用來測試dll,也可以用來做單元測試。  回復  更多評論
              
            # re: 關于實戰測試驅動開發的一點感想。 2008-03-18 18:02 | 創建更好的解決方案
            通過添加DLL/源碼測試開關,開發人員和測試人員共用一套測試代碼,開始走上靠譜的道路。@創建更好的解決方案
              回復  更多評論
              
            www久久久天天com| 亚洲AV无码久久精品色欲| 久久久久久亚洲AV无码专区| 亚洲国产成人久久综合碰| 久久香蕉国产线看观看99| 欧美亚洲国产精品久久蜜芽| 亚洲午夜久久久影院伊人| 伊人色综合九久久天天蜜桃| 午夜精品久久久久成人| 精品久久久久久无码不卡| 亚洲国产成人精品久久久国产成人一区二区三区综 | 99久久精品免费看国产一区二区三区| 久久综合狠狠综合久久| 精品国产青草久久久久福利| 亚洲日本va中文字幕久久| 久久久久亚洲AV成人网人人网站| 99久久国产亚洲综合精品| 久久久久久午夜精品| 人人狠狠综合久久88成人| 久久久久亚洲av无码专区喷水| 国内精品久久久久影院优| 国产午夜免费高清久久影院| 久久精品视频免费| 亚洲国产成人精品女人久久久 | 99久久婷婷国产综合亚洲| 久久天堂AV综合合色蜜桃网| 久久99国产精品尤物| 久久99精品久久久久久水蜜桃| 精品综合久久久久久97| 国产亚洲综合久久系列| 99久久国产热无码精品免费久久久久 | 久久福利青草精品资源站免费 | 久久天天躁狠狠躁夜夜网站| 伊人色综合久久| 欧美日韩精品久久免费| 2020最新久久久视精品爱| 99蜜桃臀久久久欧美精品网站 | 久久精品国产亚洲麻豆| 欧美伊人久久大香线蕉综合69| 久久精品国产亚洲AV无码娇色| 国产精品免费久久久久久久久|