笨笨的思想片斷

          零碎片斷,雜七雜八。
          posts - 25, comments - 79, trackbacks - 0, articles - 0

          業(yè)務(wù)驅(qū)動(dòng)用例測(cè)試


          笨笨所知的測(cè)試大致分類

          單元測(cè)試/Unit test
          基于代碼中類或函數(shù)一級(jí)的測(cè)試

          用例測(cè)試/Use case test.
          基于一個(gè)完整業(yè)務(wù)用例的測(cè)試,可以不包括用戶業(yè)務(wù)系統(tǒng)環(huán)境的完整操作流程。
          如,銀行網(wǎng)銀系統(tǒng)的轉(zhuǎn)賬測(cè)試可以認(rèn)為是一個(gè)完整業(yè)務(wù)用例測(cè)試,但是不必要要求測(cè)試用例先執(zhí)行登錄過(guò)程,再進(jìn)行轉(zhuǎn)賬業(yè)務(wù)代碼的測(cè)試。


          集成測(cè)試/Integration test
          由業(yè)務(wù)人員主導(dǎo),業(yè)務(wù)系統(tǒng)作為一個(gè)完整黑盒,測(cè)試系統(tǒng)功能和性能。

          用戶接受測(cè)試/User Accept test
          集成測(cè)試通過(guò)后,用戶基于生產(chǎn)系統(tǒng)剝離的實(shí)際數(shù)據(jù),再一次對(duì)業(yè)務(wù)系統(tǒng)執(zhí)行測(cè)試;如果集成測(cè)試不充分,可以再一次有機(jī)會(huì)暴露系統(tǒng)的缺陷。

           


          項(xiàng)目實(shí)施過(guò)程與測(cè)試

          從項(xiàng)目的實(shí)施過(guò)程來(lái)說(shuō),單元測(cè)試是程序員自測(cè),算在開(kāi)發(fā)階段,集成測(cè)試和用戶接受測(cè)試所占用時(shí)間能夠達(dá)到項(xiàng)目代碼開(kāi)發(fā)階段的一倍到兩倍,大型項(xiàng)目的測(cè)試階段可能還要長(zhǎng)。
          而用例級(jí)測(cè)試目前很少作為一個(gè)正式的階段在項(xiàng)目實(shí)施過(guò)程中存在,或由程序員自行自測(cè),或合并到集成測(cè)試過(guò)程中。

          對(duì)于大型業(yè)務(wù)系統(tǒng),集成測(cè)試和用戶測(cè)試所花費(fèi)的主要工作量如下,可能不全。
          1 數(shù)據(jù)準(zhǔn)備,測(cè)試人員調(diào)配準(zhǔn)備。
          2 測(cè)試過(guò)程中,測(cè)試人員要找到哪些測(cè)試數(shù)據(jù)還能用,再手工操作系統(tǒng)界面,執(zhí)行測(cè)試過(guò)程。對(duì)于大型業(yè)務(wù)系統(tǒng)來(lái)說(shuō),可用測(cè)試數(shù)據(jù)是隨著測(cè)試進(jìn)展不斷變化的,很有可能某個(gè)用戶數(shù)據(jù)剛剛狀態(tài)正常,現(xiàn)在就欠費(fèi)了。要想找到合適的數(shù)據(jù)來(lái)測(cè)試系統(tǒng),這是個(gè)費(fèi)勁且混亂的過(guò)程。
          3 集成回歸測(cè)試,業(yè)務(wù)系統(tǒng)如果有升級(jí)或改動(dòng),需要將所有交易重新測(cè)試一遍,以防止變更給原有代碼引入缺陷。


          用例測(cè)試
          用例測(cè)試關(guān)注業(yè)務(wù)。
          usecase_test.gif
          用例測(cè)試集中在業(yè)務(wù)服務(wù)這一層,業(yè)務(wù)服務(wù)直接對(duì)應(yīng)了業(yè)務(wù)用例。
          用例測(cè)試注重業(yè)務(wù)服務(wù)運(yùn)行環(huán)境的模擬和重現(xiàn),從而支持業(yè)務(wù)服務(wù)層的自動(dòng)測(cè)試。


          用例測(cè)試的價(jià)值
          1 減少集成測(cè)試的時(shí)間和成本,降低集成測(cè)試發(fā)現(xiàn)缺陷數(shù),從而降低項(xiàng)目總?cè)毕菪迯?fù)代價(jià)。
           用例測(cè)試缺陷修復(fù)代價(jià)遠(yuǎn)低于集成測(cè)試的缺陷修復(fù)代價(jià);用例測(cè)試發(fā)現(xiàn)大部分缺陷后,集成測(cè)試就相對(duì)輕松了。
          2 可回歸的用例測(cè)試支持快速代碼重構(gòu)。
          3 ...


          單元測(cè)試無(wú)法覆蓋用例測(cè)試
          業(yè)務(wù)代碼運(yùn)行需要底層資源如數(shù)據(jù)庫(kù)或其它業(yè)務(wù)系統(tǒng)配合,單元測(cè)試工具缺乏提供業(yè)務(wù)服務(wù)運(yùn)行所需環(huán)境的模擬,從Junit系列單元測(cè)試工具來(lái)說(shuō),它還是主要從技術(shù)角度考慮,從業(yè)務(wù)角度的考慮如:
          底層資源(數(shù)據(jù)庫(kù),JMS)模擬
          依賴服務(wù)模擬
          服務(wù)訪問(wèn)模擬
          自動(dòng)檢測(cè)、重放和比對(duì)服務(wù)運(yùn)行時(shí)的輸入輸出參數(shù)、資源、依賴服務(wù)。
          服務(wù)接口變動(dòng)波及分析


          代碼重構(gòu)的成本
          代碼重構(gòu)需要付出代價(jià)。集成測(cè)試費(fèi)時(shí)費(fèi)力,但用戶不可能因?yàn)槌绦騿T說(shuō)“我保證代碼重構(gòu)不會(huì)改變系統(tǒng)功能”,就不對(duì)變動(dòng)后代碼進(jìn)行測(cè)試。
          用例回歸測(cè)試支持可以以較小代價(jià)支持代碼重構(gòu),因?yàn)樗稍跇I(yè)務(wù)服務(wù)級(jí)自動(dòng)對(duì)功能進(jìn)行驗(yàn)證,集成測(cè)試工作能夠相應(yīng)的減少。

          主站蜘蛛池模板: 绥化市| 临西县| 依安县| 英山县| 游戏| 汝州市| 黎平县| 通州市| 湖南省| 惠水县| 府谷县| 信丰县| 封开县| 翁源县| 江永县| 娄底市| 绍兴市| 霍林郭勒市| 西畴县| 息烽县| 恩施市| 宁晋县| 安西县| 周口市| 北辰区| 安康市| 桐乡市| 白河县| 凌海市| 扶风县| 琼结县| 中西区| 淮滨县| 兴海县| 电白县| 兴业县| 城口县| 紫阳县| 伽师县| 贵南县| 晴隆县|