• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Testing In Production 在生產環境中進行測試 摘要

    發表于:2012-08-09來源:msdn作者:cheno點擊數: 標簽:軟件測試
    Testing In Production 的概念大約出現3年前,那時候Web Service正在風靡Internet,各種系統都走向更加可擴展的架構,這使得A/B Testing和后期的數據分析更加容易。同時,整個互聯網應用對用戶體驗提出了更高的要求,對算法的精準性的要求更加嚴格。另外,軟

      Testing In Production 的概念大約出現3年前,那時候Web Service正在風靡Internet,各種系統都走向更加可擴展的架構,這使得A/B Testing和后期的數據分析更加容易。同時,整個互聯網應用對用戶體驗提出了更高的要求,對算法的精準性的要求更加嚴格。另外,軟件開發的節奏明顯加快,這使得測試無法在發布前做的非常完善??旃澴嗟能浖l布,對測試有了更高的要求。 “先發布,后測試”成為一種加快發布節奏的一種必要的方法。

      動物學家達爾文說過 ”世界上進化下來的動物,并不是那些最強大的動物,也不是那些最聰明的動物,而是那些最能夠適應變化(Responsive to change)的動物”,例如說老鼠,人,螞蟻等等。軟件系統也一樣,能夠傳承發揚的軟件,能夠快速適應變化化。

      TiP的核心思想就是通過在生產環境里面測試,最小化產品風險,加快發布節奏。TiP通過暴露新代碼給有限用戶,減少缺陷可能帶來的負面影響,通過在產品中暴露這些新代碼,可以快速獲得這些新代碼的反饋,這些反饋來之于真實的用戶,而不是少量的測試人員和有限的測試用例。另外,一旦發現新代碼有嚴重的缺陷,那么TiP需要快速修復這些缺陷,通過發布新版本或則滾回到老版本。

    image

      那么這是不是對軟件質量的一種妥協呢? 我覺得不是,相反在生產環境中測試可以更好的滿足用戶,它是傳統發布前測試的一個積極的補充。例如,TiP可以幫我們提高測試覆蓋率,找到一些平時無法測試到的場景。

      我相信,所有的互聯網軟件都需要支持TiP,這是互聯網軟件的特性決定的:靈活的軟件架構,快速的發布周期。

      考慮一下幾個問題可以幫助我們思考什么類型的軟件最適合TiP方法。

      用戶體驗和經濟利益影響的程度

      如果產品有問題,是否有能力快速檢查產品中的問題,并且快速回退到沒有問題的版本?

      軟件發布的頻率?

      進行TiP 所帶來的成本和收益

      這里有幾個TiP的例子

      1) 微軟:在互聯網的產品開發過程中,微軟也大量利用了TiP的方法

      a. 很多用戶場景的改進,都是通過A/B測試獲得最好的效果

      b. 算法實驗,在靈活的平臺中進行算法的調優和篩選

      2) Facebook : Facebook如何發布代碼的 Link

      a. Facebook有多個級別的代碼部署 (內部的,少量外部的,全部外部的等等..),

      b. 如果有問題出現,工程師馬上修復問題;然后重新發布

      c. Ops負責部署的實際過程,包括檢測產品的健康狀態(錯誤日志,CPU,內存,甚至包括用戶的行為變化等)

      3) Google: 非常善于做A/B測試

      a. 谷歌在算法改進方面,就是利用在產品中的實驗平臺。一個搜索結果中可能包括多個算法的結果,另外不同的搜索可能觸發不同的算法。最后通過用戶的反饋,對算法進行評價和挑選。

      一些參考資料

      人物:

      Seth Eliot 微軟測試經理,Testing in Production的倡導者 Blog

      參考文章:

      1) Testing in Production, Your key to Engaging Customers, Seth Eliot (QASIG 2011 論文:Link

      2) Why testing in production is a common and costly technical malpractice (IBM Mahesh Rathi, Link)

      我總結一下他的主要觀點,詳細的請看Link:

      1) 需要一個專用的測試環境進行測試,并且盡量模擬產品環境,否則容易引起產品的災難性

      2) 在生產環境中測試的復雜性和不可控性

      3) 注意:他所談的更多的傳統的軟件企業(ERP,MIS),并非真正的需要快節奏的互聯網企業。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>