成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提高軟件質量實踐――Google 篇

系統
很多人應該都看過James whittaker的博客或新書 《how google test software》,在這里我不想重復他的內容,而是從另外一個角度來分析對比google是如何保障它的產品質量的。

 

很多人應該都看過James whittaker的博客或新書 《how google test software》,在這里我不想重復他的內容,而是從另外一個角度來分析對比google是如何保障它的產品質量的。

首先申明的是本人并沒有在google工作過所以沒有***手的經驗,僅以一個旁觀者的身份來分析google的質量控制實踐。主要信息來源于google測試博客,在西雅圖google工作的朋友聊天和項目上合作,以及James的新書<>。不過旁觀者有旁觀的優勢,可以看見整個森林;相比較許多在大公司工作的工程師往往專注于一個產品或者一個團隊,只看見了一顆樹木。不管如何,個人觀點僅供參考。

 

[[78720]]

我們前面在微軟的質量控制實踐中談到,因為微軟大部分的產品還是以桌面型產品為主,比如windows, office,sql server等等。桌面型產品的***特定就是產品召回或發布熱修復的成本太大,而且運行很多關鍵業務,這就迫使微軟必須在產品發布之前投入大量人力物力來充分測試產品用以保障產品的高質量。與微軟不同的是,google采用不同的策略來保證軟件質量。在理解分析google的質量策略之前,我們必須了解google的采取該策略的根源:

1、Google質量文化:google起源于校園。在有限的資金下,那時候創始人只能使用廉價的機器,把多個廉價的機器放在一起來提高處理能力。這些廉價的機器***的問題是經常死機或報廢,所以google在起始階段就必須有很強的容錯能力。也就是說在系統在部分機器死機或報廢的情況下仍然可以提供服務。或者說,系統部分可以出錯但是整個系統不可以宕機 (Graceful Degradation)。Google這個從一開始因為被迫置入的高容錯能力反而成就了現在他們運行在數據中心上的服務的巨大優勢。我們知道通常硬件的出錯概率大概在萬分之一,如果有一萬臺機器,其中一臺出錯概率就達到***。在現在的數據中心里少則幾萬臺,多者幾十萬臺的機器。所以產品的容錯能力已經不是可有可無,而是必須有的功能。所以google信奉的原則是單個模塊可以出錯可以有bug,它通過系統強大的容錯能力來保障系統的整體高質量。

2、互聯網產品:google是互聯網公司成功的代表。互聯網產品的***特點就是“快”:產品定義快,開發快,反饋快,死掉的也快。所以為了有效利用有限的測試資源,google信奉的另外一個原則是:build the right it before you build it right.也就就是說只有確認了產品的確是用戶需要的產品(build the right it)之后才開始提高它的質量(build it right)。道理很簡單如果未知產品是否正確的情況下,沒有必要浪費資源來提高它的質量。所以google的大部分產品測試人員介入較晚,開發人員不得不自己先測試以保障基本質量。

在理解了goolge對產品質量認識這兩個根本出發點后,就不難理解google采用什么樣的測試策略了:

1. Dev owns quality

Google認為:誰寫的的代碼誰負責,誰開發的模塊誰負責質量。所以開發在寫代碼的同時也要花很多時間測試,主要是單元測試和模塊測試。Google堅信軟件質量是先天就創建出來的,而不是通過后天測試測出來的。讓開發做測試對產品質量負責不是件容易的事情,google通過主要三個途徑:一是減少測試人員數量,所以開發不得不做測試;而是通過一些活動比如test certificate program來正面影響開發做測試;最重要的第三點是通過建立強大的完善的基礎設施,使得開發很容易地寫測試自動化很容易地運行測試。

2. Tester is to enable developer to test effectively

這個是對傳統意義上的測試人員的職責非常大的改變。傳統意義上的測試人員的主要職責是尋找產品中的bug。既然google要求開發對質量負責,當然就不太需要傳統意義上的測試人員了。所以google中的測試更多時間是在開發測試自動化,開發測試工具,開發基礎設施。相對花很少的時間做真正意義上的測試了。所以后來干脆把測試部門從原來的“Test Service”改名字為“engineering productivity”。測試的主要職責是讓開發更為容易地做測試。

但是最近兩年,隨著它的產品的日趨成熟和越來越復雜,google開始加強產品的后期測試。主要原因是雖然開發可以做很多單元和模塊測試來保障模塊的質量,但是很多bug是在和其它模塊集成的時候才被發現。所以google把測試工程師分成兩種:一種是和開發一起負責開發的,最要做單元測試,測試工具等。另外一種是面向用戶的測試工程師,主要做面向用戶的集成場景測試。

3.Continuous Integration

這個就不用多介紹了,搞互聯網或基于服務的產品的項目組,如果不使用持續集成的話有點太out了。Google的持續集成是行業的領先者,一方面有強大的測試自動化和完善的基礎設施做為保障,使得開發測試工程師不用在如何部署,如何運行,如何分析結果等等上浪費時間,而是專注于開發和測試自動化。代碼提交后會有成千上萬個測試用例自動運行,并且很快返回結果以供進一步分析之用。另一方面,google繼續優化現有的工具和基礎設施來進一步提過持續集成的效率。比如在做持續集成中最為頭疼的一個問題是運行那些測試用例?運行多了當然會延長運行時間從而降低了效率,運行少了又有漏測的風險。Google開發了一套測試用例分析工具用以分析代碼和測試用例的依賴關系。如果修改了某行代碼后,該工具決定哪些測試用例必須運行,也就是說不多不少。微軟也有類似的工具在幫助測試人員決定運行測試用例的優先權,但是個人感覺效果不太好。所以我也對google的工具到底效果如何應用情況很感興趣。

另外一點就是持續集成是以自動化做為基本保障的。測試自動化不是***的,但是沒有測試自動化是萬萬不能的。注意的是測試自動化不僅僅解放了人,也不僅僅是為了回歸,更為重要的一點是逼迫開發在設計的時候就考慮到如何自動測試該模塊從而大大提高模塊的可測試性(我們知道這是提高軟件質量的一個重要指標)。當然除了測試自動化外,google開發了許許多多的工具和平臺來大大提高測試效率。

4. Measure everything

客觀上說以上幾點我都覺得沒什么特殊之處,但是下面這個絕對讓我受益匪淺:measure everything。從***層的硬件驅動器,到操作系統的CPU, memory, disk IO, 再到每個API的調用, ***到***層的用戶體驗,Google監控和衡量所有的這些活動。然后對監控和衡量的數據進行數據挖掘和分析,從而對整個系統的運行情況了如指掌。一方面,如果有bug的話,它可以在最短的時間內發現并根據監控的數據很快找到bug的根源加以修復;另一方面根據詳細的監控數據清楚地表明哪些地方需要改進,尤其是在系統性能方面;再一方面就是了解用戶的使用情況和規律從而為產品功能的改進提供精確的數據和預測。Google認為: If you can’t measure your product/component, don’t build it。

小結,google是互聯網公司成功的代表,他在互聯網產品上的質量控制實踐和經驗對于廣大的互聯網公司有值得借鑒意義。在產品發布速度和產品發布質量的權衡和取舍中,google選擇發布速度。在保障基本產品質量的前提下,用最快的速度把產品推到市場中,然后通過豐富的反饋渠道和工具再不斷演變。這樣即控制了用戶又保障了質量,而且也做到了對沒有用戶的產品:fail fast, fail cheap。除了google之外,在西雅圖的另外一家公司也是互聯網產品的大哥大,特別是在在線銷售和云計算應用服務類型的產品。所以下一次和大家探討:提高軟件質量實踐――Amazon 篇。

【編輯推薦】

  1. 德國聯邦信息安全辦公室推薦使用Google Chrome瀏覽器
  2. Google Docs服務中斷(09.08)
  3. 微軟計劃ServiceOS 欲與Google Chrome OS爭鋒
責任編輯:Yeva 來源: linuxeden
相關推薦

2012-11-05 10:43:38

軟件質量軟件開發Facebook

2012-11-06 13:24:51

Amazon軟件質量軟件開發

2022-05-16 08:45:05

數據質量數據安全

2012-11-07 09:48:26

2013-10-16 09:55:41

軟件質量開發質量

2023-03-16 08:01:56

TypeScript開源編程語言

2010-08-20 17:55:55

軟件質量生命周期管理軟件開發

2023-07-06 14:51:30

開發高質量軟件

2017-08-18 13:02:15

大數據數據質量

2020-08-12 07:00:00

開發代碼技術

2021-04-25 08:00:00

開發軟件質量保證

2024-03-26 08:58:55

集成測試軟件開發Python

2015-05-06 09:20:34

代碼質量代碼審查實踐

2023-08-25 15:44:16

自動化測試軟件開發

2019-07-05 09:00:00

軟件開發數據

2025-03-24 09:30:00

汽車軟件軟件定義汽車開發

2021-05-07 09:00:00

JavaScript開發代碼

2012-08-09 10:02:08

面試Google

2012-04-09 15:40:31

PHP

2016-02-24 16:03:34

代碼質量編寫函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩午夜 | 日韩精品中文字幕一区二区三区 | 亚洲一区二区在线视频 | 国产成人99| 日本一级淫片免费啪啪3 | 国产精品久久国产精品99 | 日本天天操 | 99久久婷婷国产综合精品首页 | 欧美日韩视频在线第一区 | 日韩精品一区中文字幕 | 高清国产一区二区 | 久久久久成人精品免费播放动漫 | 亚洲情视频| 欧美激情一区二区 | 国产精品一区二区三区四区 | 一区二区视频免费观看 | 综合欧美亚洲 | 国产精品日韩在线观看 | 亚洲逼院 | 欧美精品一区二区三区在线 | 欧美一区二 | 欧美一区二区三区视频 | 精品国产乱码久久久久久88av | 一级片片 | 欧美国产视频一区二区 | 国产99精品| 久久精品一区 | 亚洲精品18 | 色播av| 日日操日日干 | 久久综合狠狠综合久久综合88 | 美国黄色毛片 | 国产欧美综合在线 | 国产精品久久毛片av大全日韩 | 不卡一区二区在线观看 | 天天综合国产 | 久久亚洲综合 | 国产精品无码专区在线观看 | 日本午夜免费福利视频 | 久久国产精品99久久久久久丝袜 | 欧美成人a |