小課堂week14 Google軟體測試之道

2022-07-13 16:21:12 字數 2462 閱讀 4625

在it領域,google是一面旗幟,是一家非常善於思考善於嘗試的公司。隨著面臨挑戰的不斷增大,傳統的測試開展方式也越來越力不從心,這本書講述的就是一次完整的轉型過程,非常的有價值。這是本老書了,一年多前就拜讀過,當時更多看到的是差距和困難,隨著一年的努力和嘗試,突然覺得有點開竅,和大家做一些分享。

google在質量方面的基本共識是:

質量不是被測試出來的

具體的工作目標是:

讓每個工程師都注重質量

從業多年,這個口號其實經常能聽到,但是大多數時候只是乙個口號而已,很長一段時間,我甚至覺得開發人員缺乏質量意識已成為了一種天性,如何破開這塊堅冰,google也許能帶來點啟示。

google的變革是從組織開始,面臨的是幾個比較大的問題。

測試部門是否需要保留?

從思維角度說,開發是一種建立思維,而測試是一種破壞思維,兩者是無法同時相容的。

乙個部門是比較難相容兩種思維方式的,所以google保留了獨立的測試部門。

測試部門的定位如何?

新部門的名稱叫做 engineering productivity工程生產力部門

從部門的名稱就可以看到,主要關注生產力提公升方面

工程生產力部門如何工作?

關鍵在於人員的分工,主要有兩類角色set和te

te(測試工程師)和常規測試角色類似,主要負責功能層面的驗證

set(測試開發工程師)這是乙個全新的職責,其目標是幫助開發人員進行測試

google變革的核心是新增了乙個全新的角色set,這個角色主要起到了開發和測試的融合劑,也是把質量意識進行普及的關鍵。

set這個角色是如何協同工作的,關鍵是google的測試分類。

測試分類是這樣的:

小型測試:單元測試。

中型測試:兩個或兩個以上模組,關注功能互動。

大型測試:三個或以上,使用真實使用者場景和資料。

初看到這個分類,我是感覺有點凌亂的,命名上也太不嚴謹了。

從技術角度,對三類測試有個更詳細的區分,明確了很多。

小型測試

中型測試

大型測試

時間10ms內

1s內盡可能快

強制結束

1min

5min

15min

網路服務

模擬僅本地

是資料庫模擬是

是檔案系統模擬是

是使用者介面

模擬不鼓勵

是系統呼叫

否不鼓勵

是多執行緒

不鼓勵是

是小型測試的特點是執行時間短,而且沒有外部依賴。

並不是符合所有條件就算小型測試,如下**雖然符合,但仍然不算小型測試,因為其輸出結果不穩定。

public string getstring()
三類測試的分工如下:

小型測試執行時間短、無依賴、輸出穩定,這些特性無疑都非常有利於測試,大多數開發人員完全能夠勝任,所有小型測試是由開發人員swe來負責。同時,小型測試是所有模組的基石,構成了這個質量體系的穩固基礎。並不是所有**都能符合小型測試的要求,所以set的第乙個職責是幫助開發人員將**重構符合小型測試。

中型測試會涉及到外部依賴和模組間介面,相對難度較高,所以主要由set來負責,同時,set會負責介面相關的開發。

大型測試主要面向使用者,會由te來負責。

在google,swe、set和te共同協作來完成質量工作,但三者之間有著嚴格的邊界區分,小型測試數量龐大易於測試,需要的是細節邏輯的掌握,swe負責最為合適;在此基礎上,中型測試需要實現介面和外部依賴,專業性較強,由set負責;大型測試主要面向使用者和價值,由te來負責。三者共同構成了質量的金字塔。

te角色由於小型測試和中型測試的支援,主要關注使用者體驗和業務價值。工作方法叫做acc測試法。

a特性、c元件、c能力是乙個矩陣表達法。每一項能力(系統功能)需要同時考慮功能和特性(業務價值)兩方面。

特性1特性2

特性3元件1

能力元件2

能力元件3

能力acc是一種測試計畫的安排法,和傳統的樹形結構相比,增加了特性的維度,突顯了業務價值。但是這種方法主觀性比較大,對測試人員有一定的要求。

書中對於set和te的工作有著較為具體的描述,限於篇幅就不再贅述。整本書讀下來,讓我印象最為深刻的google解決問題的思路。面對質量這個業界的巨大難題,google的做法不是口號,也是不是革命,而是面對每個具體問題,進行了非常人性化的解決,將乙個非常大的問題進行了分解。雖然其解決方法有著濃重的google特色,我們不可以完全照搬,但是解決問題的思路和衍生的眾多技術成果卻是非常值得我們學習的。

外賣小助手 Week1

姓名 專業班級 學號厲瀟禛 計算機1801 31801067 李溫琪計算機1801 31801068 朱宇歡計算機1802 31801091 後端 intellij idea 資料庫 mysql 前端框架 spring boot 尚矽谷springboot快速入門 4小時學會spring boot ...

課堂筆記 雲計算week1 前兩章

成績組成 考試捲麵50 平時成績 作業 實驗 50 本課關於雲計算的定義 雲計算是分布式計算的一種特殊形式,它引入效用模型來遠端供給可擴充套件和可測量的資源。您所能想到的需求容量 有哪些方法?體現了雲計算需求並導致其形成的主要商業驅動力 容量規劃 降低成本 組織靈活性。影響並啟發了雲計算關鍵特徵的主...

個人作業 Week1

在超大的軟體工程中如何在測試和成本中找到平衡點?軟體工程師在入職後大概擁有多少的學習時間進行自我提公升?如何克服 複審 文件撰寫這類工作的枯燥?專案經理與程式設計師之間的矛盾如何處理,該如何看待這種關係?團隊中技術差距與思路不同如何進行磨合?軟體 software 最早出現在出版物中是由richar...