qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          軟件測試環境要不要和軟件開發環境隔離?

          開發環境要不要和測試環境隔離?要就是說,是不是要各用一套數據庫等基礎設施?

            能隔離當然最好,開發人員和測試人員不會互相干擾。但隔離是有代價的,它意味著你要多引一個數據庫,如果你的系統是分布式的,你還要多維護一套MQ、RPC中間件等。

            依我看,需不需要隔離要看系統是否滿足下面的三個條件:

            1、兩個環境的系統總是要接觸到同一份數據

            2、數據被一個系統接觸后,業務狀態會改變;導致這份數據對另一個系統不再可用

            3、很難禁止兩個系統在同一時刻接觸到同一份數據

            解釋:

            條件1.如果兩個環境共享數據庫,但開發環境只處理北方數據,測試環境只處理南方的,那不用隔離

            條件2.即使兩個環境都會處理北方數據,但如果這種處理是只讀的,也就是開發環境用了,測試環境可以再用,那也無所謂

            條件3.即使數據被一個環境處理后,另一個不能用;但如果對數據的接觸是人為觸發的,也就是說開發環境被人觸發數據改動時,不會干擾測試環境的測試,那也無所謂。

            具體的場景:

            1、純讀的網站不必隔離,它不滿足條件2

            2、有寫、但所有操作都由用戶觸發的網站也不必隔離,因為它不滿足條件3

            3、以全局數據為目標的自啟應用需要隔離,比如Quartz,Cron,MQ消費者等,因為它們不滿足條件1。以MQ應用為例,如果外部發來的某個數據被測試環境消費過了,開發環境就無法再消費了,這時你應該為開發和測試環境各配一個MQ

            4、對自啟應用,如果實在不想隔離,就要在代碼里做一些env-specific的東西,使得不同環境不會訪問到相同的數據,比如開發環境只能訪問數據庫里flag=Dev的記錄。不過,這種作法對程序和數據的侵入都很大,不值得提倡。但這種做法可以應用到其他環境的隔離上,比如預發環境和正式環境,它們必須使用相同的數據庫。

          posted on 2012-07-02 10:06 順其自然EVO 閱讀(689) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2012年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 海门市| 民丰县| 武义县| 久治县| 都兰县| 平罗县| 什邡市| 大洼县| 营山县| 南陵县| 江北区| 靖江市| 汝南县| 南投市| 新河县| 霍邱县| 南安市| 福安市| 射阳县| 宝清县| 亳州市| 开封县| 海门市| 藁城市| 隆尧县| 德钦县| 应城市| 巴彦淖尔市| 桓仁| 尼勒克县| 凭祥市| 伊金霍洛旗| 邢台县| 永州市| 中西区| 额尔古纳市| 聂荣县| 琼中| 喀喇沁旗| 青州市| 佛山市|