GTAC 2013:簡報

所有 GTAC 2013 影片錄製內容和投影片均設為公開。 你可以透過 GTAC 2013 YouTube 播放清單或觀看以下講座內容:

結語

Tony Voellm (Google)

連結:影片

開幕主題演講 - 從品質查驗到測試工程進化

Ari Shamash (Google)

您已建構應用程式,您知道了吧!有了 Google Cloud,這樣就可以累積更多流量、申請更多資金,然後從頭開始,藉此「正確執行」。然而,由於新功能的需求量極高,我們已迫不及待地要求您加速發展。哇!該怎麼辦?

你無法丟棄,自己得從頭開始,只要不斷改變現有的特色即可,同時繼續提供高品質的功能,滿足驚人的速度。此外,您必須確保沒有任何中斷的作業。操作方式幸好,現在其中一個軟體工程產業推出了全新欄位,這個解決方法是 Google 所稱的「測試工程」。

這個討論的重點包括什麼是測試工程、透過品質保證如何發展,以及整個業界如何執行測試工程 (具體做法包括 Google 的實作範例)。

連結:影片簡報

大規模測試系統 @Twitter

James Waldrop (Twitter)

James 將討論 Twitter 上成效測試的工具、程序和哲學。特定強調會放在 Iago 開放原始碼負載測試程式庫中,該資料庫用於編寫 Twitter 工程團隊執行負載測試,接著將程式碼部署至實際工作環境。並深入探討其中幾項測試的實作細節 (包括原始碼),以及管理 OAuth 和任意 Thrift 通訊協定等複雜的因素。

連結:影片簡報

如何測試行動作業系統?

David Burns (Mozilla) 和 Malini Das (Mozilla)

這個問題是 Google 決定這個問題,而我們決定改用 FirefoxOS 的這個領域。我該從何著手,以及如何實現有趣的工作。聽聽我們如何解決這個問題,以及我們是如何建立新架構。

連結:影片簡報

持續推送軟體更新管道的自動化作業

Igor Dorovskikh (Expedia) 和 Kaustubh Gawande (Expedia)

2012 年初,Expedia 開始投資行動版網站與 iOS/Android 應用程式。同時,測試工程師開始開發測試自動化解決方案,一開始就為產品打造品質和測試性。在本講座中,我們會分享經驗,說明如何運用開放原始碼工具,在 Expedia 的 Agile 開發和持續推送軟體更新環境中執行自動化測試。我們會討論「測試 Pyramid」,並詳細分析對特定我們來說,我們使用的一些開放原始碼工具包括 Cucumber、網頁自動化工具 Selenium-WebDriver、iOS 自動化工具 Frank、Android 自動化工具 Robotium 和 Calabash 和持續整合系統 Jenkins。此外,我們也會分享一些 Agile 交付原則,例如 TDD、配對程式設計、建構和測試 Radiator。最後,我們會分享針對 Agile 和測試自動化所帶來的部分好處,以及實現持續推送軟體更新目標的動力。

連結:影片簡報

使用 GStreamer 和 OpenCV 的自動化機上盒測試

David Röthlisberger (YouView)

我們會使用 GStreamer 的指令列工具和 OpenCV,在 3 分鐘內建立影片拍攝圖片辨識系統。(GStreamer 是開放原始碼的媒體處理架構;OpenCV (「Open Computer Vision」) 是開放原始碼的影像處理程式庫。

此類系統的最常見例子就是 http://stb-tester.com,這是 YouTube 開發的開放原始碼工具,可自動測試機上盒的 UI 測試。我們會說明 stb 測試者、GStreamer 的底線彈性、開放性潛能,以及未來挑戰。

連結:影片

Chrome 專用 Webdriver

肯亞 (Google)

Chrome 最初是 Windows 專屬的瀏覽器,當時已擴展到 Mac、Linux、ChromeOS,以及最近推出的 Android 和 iOS 裝置。這些平台上的網頁應用程式使用者測試相當困難,且必須採用多種自動化方法。這場演講將說明 Chrome 團隊如何致力於讓 Chrome 能在所有平台上使用 WebDriver。這包括技術的基礎層面,但將著重於開發人員如何使用新版 ChromeDriver 針對 Chrome 的各種平台撰寫測試。此外,我們也會說明專案目前的狀態,以及專案日後的發展藍圖。

連結:影片簡報

Karma - JavaScript 的測試執行器

Vojta Jina (Google)

Karma 簡介 - 測試執行器,可在實際瀏覽器中流暢流暢地測試 JavaScript 應用程式。

如果建構的 JavaScript 應用程式必須在許多瀏覽器和裝置上運作,您不一定要執行測試。不過,在這些環境中執行測試並不容易。Karma 通常會將這項艱鉅的工作轉換成蛋糕。這項工具可讓您在實際瀏覽器或手機或平板電腦 (例如手機或平板電腦) 上輕鬆執行 JavaScript 測試,簡單地透過終端機或慣用的 IDE。

連結:影片

自動影片品質評估

Patrik Höglund (Google)

可以,系統可以自動測試複雜的影片主題性評估結果,例如影片畫質!這場演講會說明我們如何打造持續、自動進行的 WebRTC 視訊通話端對端測試。我們會概略說明工具鍊,以及建構過程中遇到的挑戰。如果想讓媒體測試更上一層樓,可以使用這項功能。

連結:影片簡報

壞事發生時...

Minal Mishra (Netflix)

行動裝置和平板電腦運算的興起,也採用了應用程式開發平台來完成軟體產業的創新。在運算平台上開發消費者應用程式,對使用者有神奇的體驗。以消費者為主的軟體公司在開發這些平台的應用程式時,往往會展現最好的一面。不過,公司必須在推出第一個應用程式版本後,才開始開發應用程式。消費者和軟體公司希望盡快取得最優質的開發功能,這會導致堆疊中各層的持續程式碼流失。UI 自動化工程師,建構各種偵測系統,以便及早發現應用程式問題。在本講座中,我會分享一些用來防範應用程式內部問題,但這些問題仍對使用者體驗造成負面影響的幾個難題。

連結:影片簡報

試玩教育和教育遊戲測試

Tao Xie (北卡羅來納州立大學)

這個對話是 Pex4Fun (http://www.pexforfun.com/) 所開發的自動化測試,運用了自動化測試產生線上評分系統,為數十萬名使用者提供服務。它能在課堂外提供程式設計導向的遊戲體驗,並訓練使用者學習各種程式設計與軟體工程技能,包括測試有序化單元測試等技能。Pex4Fun 大幅改善了作業評分的已知問題,並可透過互動式遊戲來提供有趣的學習體驗。就社群社群而言,Pex4Fun 的知名度越來越高:自 2010 年 6 月公開推出以來,「Pe Pex!」按鈕的點擊次數 (意指使用者在 2013 年初就協助解決 Pex4Fun 遊戲嘗試) 的點擊次數超過 100 萬次。

連結:影片簡報

結尾主題演講 - Facebook 如何在 Facebook 上測試 Facebook

Simon Stewart (Facebook)

Facebook 是其中最受歡迎的 Android 應用程式之一。在這場演講中,你將瞭解 Facebook 會盡力確保每個版本的服務都正確無誤。我們會說明我們如何管理程式碼、測試方法,以及全測試 Dogfood 測試等環節。

連結:影片簡報

開啟 Keynote - 可測試的 JavaScript - 設定應用程式以供測試

Mark Trostler (Google)

可測試 JavaScript 是一個程序。無論是一用空白插入畫面,還是已經實作的應用程式 (或介於兩者之間的任何位置),只要能夠測試您的 JavaScript 程式碼,就能輕鬆簡單、有效地進行必要測試。無法重新編寫的程式碼。

雖然 JavaScript 的執行範圍各有不同,但在種種語言中仍存在一些有效且真實的「可測試」方法,但 JavaScript 也必須這麼做。當然,JavaScript 開發人員在編寫及測試程式碼時依然存在獨特的挑戰。

哪些模式讓程式碼可供測試?哪一種反面模式會妨礙測試?哪些指標和常見慣例可用來評估程式碼的可測試性?建立可測試程式碼的程序是否已開始?

歡迎加入我們,一起撰寫可測試的 JavaScript 程序。我們會調查構想、模式和方法,大幅提升可測試性,並維護程式碼的可維護性、正確性和壽命。無論您撰寫的是用戶端或伺服器端 JavaScript 程式碼,都有助於大幅改善程式碼的品質。

連結:影片簡報

打破矩陣 - 大規模測試 Android

Thomas Knych (Google)、Stefan Ramsauer (Google) 和 Valera Zakharov (Google)

準備好接上紅色藥片了嗎?

行動裝置改變了人類與電腦互動的方式。這個做法非常棒,不過在設計工程師環境時,我們也遇到了日漸增加的矩陣。過去只有幾天才會著手使用各種瀏覽器和螢幕解析度,工程師如何因應矩陣?我們將探討 Google 如何對工作站、雲端和您的理論進行測試

Neo不過,我可以顯示車門。就讓我們不得不走過。」

連結:影片簡報

Android UI 自動化

Guang Zhu (惠斯文) (Google) 和 Adam Momtaz (Google)

隨著 Android 在行動市場中越來越受歡迎,應用程式開發人員和原始設備製造商 (OEM) 供應商也開始探索如何對應用程式或整個平台進行端對端 UI 驅動的測試。這場講座會簡要介紹 Android 上現有的 UI 自動化解決方案,並介紹最近發布的 Android UI Automator 架構,並讓使用者一窺架構、一般用途及工作流程的基本概念。

連結:影片簡報

Appium:行動應用程式自動化

Jonathan Lipps (Sauce Labs)

Appium 是 Node.js 伺服器,可自動執行原生和混合行動應用程式 (包括 iOS 和 Android)。Appium 的理念指出,應用程式不應為了自動化而修改,也應能以任何語言或架構編寫測試程式碼。最終成果為 Selenium WebDriver 伺服器,能夠像原生手機一樣運行行動裝置。Appium 是在實體裝置和模擬器上執行,而且完全開放原始碼,因此很適合開始使用行動測試自動化功能。在本講座中,我會概略說明提供 Appium 設計的原則、透過其他行動自動化架構的空間介紹 Appium,並介紹實現神奇魔法的架構。最後,我將會深入研究如何對全新的行動應用程式進行簡單的測試,並示範如何在 iPhone 和 Android 系統上執行這項測試。

連結:影片簡報

為 Google+ 行動服務打造可擴充的行動測試基礎架構

Eduardo Bravo (Google)

要測試原生應用程式是否具有實質意義、穩定且可擴充,是一大挑戰。Google+ 開發了高效率的解決方案,以因應行動裝置發生的各項複雜測試情境,提供合適的基礎架構。我們現有的測試基礎架構為 iOS 和 Android 應用程式提供了適當的工具,讓開發團隊相信新的變更不會中斷現有客戶。

連結:影片簡報

Espresso:邁向新的 Android 使用者介面測試

Valera Zakharov (Google)

更新 [2013 年 10 月]:Espresso 現已開放原始碼。請參閱 https://code.google.com/p/android-test-kit/

開發可靠的 Android 測試應該要快速輕鬆地簡單地拍攝濃縮濃縮咖啡。不過,在現有的工具的協助下,再次發覺可能會像是在製作兩個鏡頭時產生雙擊感。Espresso 是全新的 Android 測試架構,可讓您快速撰寫簡潔、美觀且可靠的 UI 測試。核心 API 很小,可預測且易於學習,但也非常適合用於自訂。Espresso 測試清楚明確地闡明期望、互動和斷言,這些訊息都不會受到干擾、自訂基礎架構或主題式導入作業的干擾。測試的執行速度非常快 - 請等待等候、同步、睡眠和意見調查,並讓架構在靜態休息時,能夠流暢地操控使用者介面及聲明。開始享受寫作及執行 UI 測試 - 試用 Espresso 的畫面。

連結:影片簡報

使用 WebDriver 測試網站效能

Michael Klepikov (Google)

在網站效能測試中,我們相當瞭解如何分析網頁載入作業。不過,我們必須把重點放在網頁載入以外的部分:現代化應用程式的互動程度極高,而且營運作業通常不是重新載入整個網頁,而是更新網頁。每個人 (包括我自己) 都已將 WebDriver 整合至網站效能測試測試工具,這有助於將效能測試與其他 UI 測試套件分開。我建議直接在 WebDriver 中使用近期新增的 Logging API,打造效能測試功能。這樣一來,您便能在執行一般功能測試時收集成效指標,進而將效能測試更加順暢地整合至整體開發和測試流程。此外,幾乎所有大型機構建立的自訂建構/測試工具鍊,也能減少干擾。

我會透過新一代的 ChromeDriver (Chromium 瀏覽器專用 WebDriver) 進行示範。

連結:影片簡報

連續地圖資料測試

Yvette Nameth (Google) 和 Brendan Dhein (Google)

持續測試通常涉及執行單元測試和整合測試。不過,當伺服器處理的資料實際上是造成變化的主要原因,你該如何確保資料使用者仍可正常使用,而且不會因為變更率或異常變更而發生當機?我們將討論幾種範例,說明如何透過 Google 地圖的範例持續測試資料。

連結:影片簡報

在建構失敗的大樓中自動尋找烹飪行程,例如誰打烊?

Celal Ziftci (UCSD) 和 Vivek Ramavajjala (Google)

持續建構是 Google 的主要基礎架構之一。建構失敗時,請務必迅速找出依附元件變更清單 (CL)/變更清單,以便進行修正,讓建構作業恢復為綠色。

小型和中型版本適用的圓形偵測解決方案,但不適用於大型整合建構作業。

我們的手錶搜尋器可讓你在極短時間內自動找到大型建構適用的 Culprit CL。最近 9 個月在多個專案中依據實際用量的分析結果,得出結果相當優異的成果。歡迎參加我們的講座,瞭解我們如何啟動圓形搜尋器、在生產環境中的表現,以及外觀和外觀。

連結:影片簡報

軟體研究方面的異同調查

Katerina Goseva-Popstojanova (西維吉尼亞大學)

軟體產品系列展現出產品系列系統的成熟度,且可能有多種變化版本。我們擷取了兩份個案研究 (中等尺寸的工業產品系列,以及瞬息萬變的開放原始碼產品線) 擷取的資料,探討系統性能如何提升品質,並成功預測過去曾出現問題、原始碼指標和變更指標,藉此預測未來可能發生的錯誤。研究結果顯示,在軟體產品系列設定中,其他錯誤的受訪者在變更指標方面的結果,比靜態程式碼指標更相關。品質評估結果顯示,雖然較新的套件 (包括通用性) 不斷改變,但仍會維持低密度。此外,隨著開放原始碼產品不斷演進,開放原始碼產品系列也越來越完善。根據一般線性線性迴歸模型的預測,系統會根據先前版本建立的模型,依據其後期出錯順序對套件進行排名。結果也顯示,產後錯誤預測會從其他產品系列資訊受益。

連結:影片簡報

AddressSanitizer、ThreadSanitizer 和 MemorySanitizer -- C++ 的動態測試工具

Kostya Serebryany (Google)

AddressSanitizer (ASan) 是一項工具,用於尋找 C/C++ 程式中的緩衝區溢位 (堆疊、堆積和全域) 和使用後出現的錯誤。ThreadSanitizer (TSan) 會在 C/C++ 和 Go 程式中尋找資料競爭。MemorySanitizer (MSan) 是一項開發中的工具,可尋找未初始化的記憶體 (C++)。這些工具以編譯器檢測設備 (LLVM 和 GCC) 為基礎,因此執行速度非常快 (例如 ASan 僅會降低 2 倍速度)。我們將運用這些工具,大規模進行大規模測試。

連結:影片簡報

閉幕主題演講 - 飲用海洋 - Google 體重計的 XSS

Claudio Criscione (Google)

跨網站指令碼攻擊 (XSS) 是指在網頁應用程式世界中,與成年期的黑人經期為現代,而且涵蓋程度極低且技術上來說沒有任何問題,可達到極佳或毫無技術偵測的威脅。DOM XSS 是特別針對這類變數的變化版本,原因是必須啟用實際的瀏覽器或功能才能偵測:由於可用的自動化解決方案難以使用,

我們需要強大的自主工具能夠在開發生命週期早期識別 DOM XSS,工程團隊以外的工程師能夠使用:我們只須掃描一種快速、快速又複雜的複雜應用程式資料庫,而這一切都是我們想要發掘的產品。因此,我們打造了一款專屬的 Web Scan 掃描器,也就是以標準 Google 技術為基礎的 DOM XSS。這項服務是在 App Engine 中運作,並運用強大的 Chrome 瀏覽器和數百種 CPU 做為安全性掃描平台。

同時也是 Google 的測試稽核員:居住在測試基礎架構內部,而不是安全團隊的儀器。

在本講座中,我們將以創新技術為基礎,將系統擴充至 Google 的挑戰,以及 JavaScript 密集應用程式所偵測和檢索模型背後的構想。

連結:影片簡報