開發環境要不要和測試環境隔離?要就是說,是不是要各用一套資料庫等基礎設施?
能隔離當然最好,開發人員和測試人員不會互相干擾。但隔離是有代價的,它意味著你要多引乙個資料庫,如果你的系統是分布式的,你還要多維護一套mq、rpc中介軟體等。
依我看,需不需要隔離要看系統是否滿足下面的三個條件:
1、兩個環境的系統總是要接觸到同乙份資料
2、資料被乙個系統接觸後,業務狀態會改變;導致這份資料對另乙個系統不再可用
3、很難禁止兩個系統在同一時刻接觸到同乙份資料
解釋:條件1.如果兩個環境共享資料庫,但開發環境只處理北方資料,測試環境只處理南方的,那不用隔離
條件2.即使兩個環境都會處理北方資料,但如果這種處理是唯讀的,也就是開發環境用了,測試環境可以再用,那也無所謂
條件3.即使資料被乙個環境處理後,另乙個不能用;但如果對資料的接觸是人為觸發的,也就是說開發環境被人觸發資料改動時,不會干擾測試環境的測試,那也無所謂。
具體的場景:
1、純讀的**不必隔離,它不滿足條件2
2、有寫、但所有操作都由使用者觸發的**也不必隔離,因為它不滿足條件3
3、以全域性資料為目標的自啟應用需要隔離,比如quartz,cron,mq消費者等,因為它們不滿足條件1。以mq應用為例,如果外部發來的某個資料被測試環境消費過了,開發環境就無法再消費了,這時你應該為開發和測試環境各配乙個mq
4、對自啟應用,如果實在不想隔離,就要在**裡做一些env-specific的東西,使得不同環境不會訪問到相同的資料,比如開發環境只能訪問資料庫裡flag=dev的記錄。不過,這種作法對程式和資料的侵入都很大,不值得提倡。但這種做法可以應用到其他環境的隔離上,比如預發環境和正式環境,它們必須使用相同的資料庫。
***********************************=分割線******************************==
原創 做軟體測試到底要不要學程式設計?
賈伯斯曾經說過 每個人都應該學習程式設計,因為它會教你如何思考 看,喬幫主都覺得所有人都應該學程式設計,那你說做測試的要不要學?當然要。作為測試人員,除了上面這個原因,我覺得如果會程式設計,還有下面 3 個好處。1 知道技術實現,可以設計更有針對性的用例 比如我在 需求評審之實戰演練 中提到的關於計...
軟體測試 VS 軟體開發
對於 軟體測試與 軟體開發之間的關係,一直以來都很微妙,大型 制度健全的公司或許不那樣明顯但在中小型 制度尚不健全的公司,則變成為了老大難的問題。軟體需求 軟體開發 軟體測試是軟體公司技術部門的三大主力,今天我們要說的是軟體開發與軟體測試。軟體開發與軟體測試即是乙個統一體,也是乙個矛盾體。為什麼說他...
軟體開發環境 開發環境 測試環境 生產環境的區別
原創 2016年06月13日 15 46 21 對於乙個剛進入公司的新人來說,在熟悉工作環境的時候,會聽著幾個 老人 在自己可視範圍之外或者輕鬆的討論著業務,其措辭拿捏精準,期間,涉及到一系列的概念,可能會讓你不覺明厲,暗嘆 高階,大氣,上檔次 有些術語,它既有官方稱呼,也有通俗叫法,對於不覺明厲的...