王家林:致力於軟硬雲整合,通曉Android、HTML5、Hadoop Tel: 18610086859 Email: jialingege@126.com hiheartfirst@gmail.com
不得不學此課程的原因:
1, 敏捷:全程深入實戰敏捷開發TDD;
2, 敏捷:全程深入實戰敏捷開發BDD;
3, 持續整合開發實戰;
4, 涵蓋Android的四大核心組件Activity、Service、ContentProvider、BroadCastReceiver測試;
5, 全面涵蓋Android的所有測試技巧和策略;
6, 徹底:涵蓋Android中的JUnit測試的全部內容、源碼剖析、設計模式;
7, 深入效能測試和效能最佳化技術;
課程目標:
1, 本課程涵蓋Android中測試的一切技術;
2, 打造頂級的Android測試專家
培訓目標:
使得Android代碼高品質、高價值、高利潤;
培訓對象:
Android開發人員
對Android測試感興趣的朋友
建議:
如果學員學習了“Android測試課程白銀版本”效果會更好
時間 |
內 容 |
備忘 |
第一天 |
第1個主題:你為什麼一定需要Android測試? 1.1 Android開發太混亂了; 1.2 Android的應用程式的代碼品質太差了; 1.3 任何偉大的IT公司一定是至少是出色的測試公司; 1.4 用什麼來拯救Android?唯有測試。 第2個主題:測試的商業價值 2.1比爾蓋茨說:其實,微軟是一個測試公司; 2.2 高品質、高價值、高利潤; 第3個主題: 軟體中的Bug和測試 3.1 Bug是怎麼產生的? 3.2 Bug是如何致命性的影響軟體項目的? 3.3 工程師的一生:與Bug作戰的一生。 3.4 那什麼拯救:唯有測試。 第4個主題:為什麼、是什麼、如何、何時測試 4.1 為什麼需要測試; 4.2 測試什麼; Activity的生命週期事件 資料庫和檔案系統的操作 裝置物理參數的測試 4.3 如何測試? 4.4 何時測試? 第5個主題:測試的類型 5.1 單元測試 測試的fixture setUp()方法 tearDown()方法 測試的前置條件 測試方法本省 5.2整合化測試 實用性和接受度測試 測試案例情境 5.3效能測試 5.4系統測試 第6個主題:Android的測試架構 6.1 Instrumentation 6.2測試的targets 第7個主題:通過JUnit測試Android的業務代碼 7.1 剖析JUnit; 7.2 剖析我們的第一個單元測試程式 ; 7.3 Android中的單元測試的架構JUnit編寫時候的幾點思考; 7.4 ANDROID中JUNIT測試的生命週期; 7.5測試數組、堆棧、檔案系統 7.6如何測試private方法 第8個主題:通過JUnit進行自動化測試 8.1 測試套件TestSuite 8.2自動化測試實戰 第9個主題:Junit的源碼剖析和設計模式 9.1 以TestCase抽象類別為核心剖析Junit原始碼 9.2 以TestSuite類為核心剖析Junit原始碼 9.3 Junit與模板方法模式 9.4 Junit與適配器模式 9.5 JUNIT與組合模式 第10個主題:體驗純粹的Android上的測試 10.1建立Android的main project 10.2建立Android的test project 10.3建立一個測試案例 建立測試案例 使用annotation的方式建立測試案例 10.4運行測試 在Eclipse中運行所有的測試 在Eclipse運行單個測試案例 從emulator上運行測試案例 在命令列下運行測試 運行所有的測試 運行單個的測試案例 通過name運行單個測試案例 通過category運行單個測試案例 運行效能測試 dry測試 10.5調試測試 10.6其它的一些命令列選項 |
|
時間 |
內 容 |
備忘 |
第二天 |
第11個主題:深入Android測試,涵蓋Activity、Service、ContentProvider的測試等 11.1Assertion 定製訊息 靜態匯入 11.2 深入Assertion 11.3 TouchUtils類 11.4 Mock對象 MockContext概述 IsolatedContext類 對檔案和資料庫的測試操作 MockContentResolver類 11.5基類TestCase 沒有參數的構造方法 傳遞參數的構造方法 setName()方法 11.6基類AndroidTestCase assertActivityRequiresPermission()方法剖析和實戰 assertReadingContentUriRequiresPermission() 方法剖析和實戰 assertWritingContentUriRequiresPermission() 方法剖析和實戰 11.7 Instrumentation ActivityMonitor內部類剖析和實戰 11.8 InstrumentationTestCase類 launchActivity和launchActivityWithIntent方 法 sendKeys和sendRepeatedKeys方法 runTestOnUiThread協助方法 11.9 ActivityTestCase類 scrubClass方法 11.10 ActivityInstrumentationTestCase2類 構造方法 setUp方法 tearDown方法 testPreconditions方法 11.11 ProviderTestCase2<T>類 構造方法 實戰 11.12 ServiceTestCase<T> 構造方法 11.13 TestSuiteBuilder.FailedToCreateTests類剖析 11.14 在測試工程中使用external libraries 第12個主題:TDD即測試驅動開發 12.1 理解TDD 編寫一個測試案例 運行所有的測試 代碼重構 重構的優勢是什嗎? 理解需求 12.2 建立一個Temperature Converter工程 需求清單 使用面向介面的設計原則 建立工程 12.3 TemperatureConverterActivityTests工程(一) 建立fixture 測試的prediction 建立使用者介面 測試已經存在的使用者介面組件 獲得已經定義的ID 把測試需求反映到測試中 空欄位 查看屬性 螢幕的布局 12.4 TemperatureConverterActivityTests工程(二) 氣溫轉換 EditNumber類 TemperatureConverter測試案例 EditNumber測試 TemperatureChangeWatcher類 增加TemperatureConverter測試 InputFilter測試 12.5 運行TemperatureConverterActivityTests程式,查看效果 |
|
時間 |
內 容 |
備忘 |
第三天 |
第13個主題: Android的測試環境 13.1 建立Android虛擬設備 13.2從命令列運行AVD 沒有標題的模擬器 取消鍵盤監視功能 清理 終止模擬器 13.3額外的模擬器參數 類比網路狀況 額外的qumu選項 13.4運行monkey monkey的用戶端和服務端 13.5使用monkeyrunner運行測試指令碼 獲得測試的螢幕 記錄和播放螢幕 第14個主題:BDD即行為驅動開發 14.1 BDD思考 14.2 FitNesse 從命令列運行FitNesse TemperatureConverterTests建立subwiki 給subwiki建立子頁面 增加可以接受的測試fixture 增加測試的支援類 14.3 GivWenZen 建立測試的情境 第15個主題:Android測試技巧 15.1 Android單元測試 15.2測試Activity和Application Applications和preferences RenamingMockContext類 TemperatureConverterApplicationTests類 測試Activity 15.2測試檔案、資料庫和ContentProvider BrowserProvider測試 15.3測試exception 15.4測試本地和遠程service 15.5 mock對象的進一步的應用 匯入libraries testTextChanged Hamcrest介紹 Hamcrest匹配器 hasToString匹配器 15.6測試View 15.7測試parser Android assets parser activity parser測試 15.8 Memory Leaks測試 |
|
時間 |
內 容 |
備忘 |
第四天 |
第16個主題:持續的整合 16.1 使用Ant構建程式 16.2 使用快速的版本控制工具-Git 建立一個本地的git倉庫 16.3使用Hudson持續整合 安裝和配置Hudson 建立任務 獲得Android測試的結果 第17個主題:效能測試和分析 17.1 使用傳統的Log中的方法 17.2 Android SDK中的效能測試 啟動效能測試 建立LaunchPerformanceBase 建立TemperatureConverterActivityLauchPerformance類 運行測試 18.3使用Traceview和dmtracedump工具 18.4 Microbenchmarks 第19個主題:升級的測試策略 19.1 從原始碼編譯Android 代碼的coverage EMMA特徵 系統需求 下載Android原始碼 安裝repo 建立一個working副本 Buiding的步驟 19.2 TemperatureConverter的code coverage 產生code coverage分析報告 涵蓋狀態恢複 涵蓋異常 繞開訪問限制 涵蓋選擇菜單 19.3 Ant coverage的目標 19.4 介紹Robotium 下載Robotium 配置工程 建立測試案例 testFahrenheitToCelsiusConversion() testOnCreateOptionsMenu() 19.5測試本地的JVM 建立一個TemperatureConverterJVMTest工程 比較效能優勢 19.6介紹Roboletric 安裝Robolectric 建立一個新的Java工程 編寫測試 |
|