<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 帶有自動化框架的 Android APP 測試教程 > 原文: [https://www.guru99.com/why-android-testing.html](https://www.guru99.com/why-android-testing.html) ## 為什么要進行 Android 測試? Android 是世界上最大的操作系統。 同時,Android 支離破碎。 您的應用必須兼容許多設備和 Android 版本。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/c2/f9/c2f9ea81d781797e55548dd712cfa31f_629x190.png "Complete Guide to Android Testing & Automation") 花費多少時間在設計和實施上無關緊要,錯誤是不可避免的,并且會出現錯誤。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/a9/0e/a90e6e231d445d37433ac4583bf359f9_527x436.png "Complete Guide to Android Testing & Automation").png) 在本教程中,您將學習- * [為什么要進行 Android 測試?](#1) * [Android 測試策略](#2) * [單元測試](#3) * [集成測試](#4) * [操作測試](#5) * [系統測試](#6) * [自動 ANDROID 測試](#7) * [Android 測試框架](#8) * [氣胸測試框架](#9) * [Android 測試的神話](#10) * [Android 測試中的最佳做法](#11) ## Android 測試策略 正確的 android 測試策略應包括以下內容 1. 單元測試 2. 整合測試 3. 操作測試 4. 系統測試 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/6a/6f/6a6f8d6a895cf41178b7531b7503c22b_669x378.png "Complete Guide to Android Testing & Automation").png) ## 單元測試 單元測試包括一組一個或多個程序,這些程序旨在驗證源代碼的原子單位,例如方法或類。 Android 平臺預先集成了 [Junit](/junit-tutorial.html) 3.0 框架。 它是用于自動化[單元測試](/unit-testing-guide.html)的開源框架。 Android Testing Framework 是開發人員編寫有效的單元測試程序的強大工具。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/61/09/6109ef2065ce5cd51b8dc3b6406d34df_406x362.png "Complete Guide to Android Testing & Automation").png) Android 與 JUnit 框架的集成 用戶界面(UI)測試是對單元測試的補充。 這些測試與目標應用程序的 UI 組件有關。 UI 測試可確保您的應用程序響應設備上的用戶操作序列,返回正確的 UI 輸出。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/6a/9b/6a9b512a1aab84af88ca2a1baf1d69f1_645x137.png "Complete Guide to Android Testing & Automation") 應用程序上的常見用戶界面操作 在設備上進行性能 UI 測試的常用方法是 Android [Instrumentation](https://developer.android.com/reference/android/test/InstrumentationTestCase.html) 。 但這存在性能問題。 在 Android 上進行 UI 測試的最佳工具之一是 [Robotium](http://code.google.com/p/robotium/) 。 ## 集成測試 在[集成測試](/integration-testing.html)中,所有經過單元測試的模塊都經過組合和驗證。 在 Android 中,集成測試通常涉及檢查與 Android 組件的集成,例如服務測試,活動測試,內容提供者測試等。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/9b/bd/9bbd6faac7fa85c42c6a16312e8e4946_648x378.png "Complete Guide to Android Testing & Automation") Android 上的集成測試類型 有許多測試框架可用于進行 Android 的集成測試,例如 Troyd,Robolectric,Robotium。 ## 操作測試 * 操作性也稱為功能測試或驗收測試。 它們是旨在檢查應用程序完整性和正確性的高級測試。 * 在 Android 中, [FitNesse](http://www.fitnesse.org/) 是開放源代碼框架,可輕松對目標應用程序進行操作測試。 ## 系統測試 在[系統測試](/system-testing.html)中,對系統進行了整體測試,并檢查了組件,軟件和硬件之間的交互。 在 Android 中,系統測試通常包括 * GUI 測試 * 可用性測試 * 性能測試 * 壓力測試 在上面的列表中, ***性能測試*** 更加受關注。 您可以使用 [Traceview](http://developer.android.com/tools/help/traceview.html) 之類的工具在 Android 上進行性能測試。該工具可以幫助您調試應用程序并分析其性能。 ## 自動 ANDROID 測試 由于 android 支離破碎,因此必須在眾多設備上進行測試。 但這也將花費您的錢。 自動化的 Android 測試可以幫助降低成本 自動化 android 測試的好處 * 減少執行測試用例的時間 * 提高開發過程的生產率 * 及早發現錯誤,節省軟件維護成本 * 快速發現并修復實施中的錯誤 * 確保軟件質量 我們將研究以下兩個框架 * Android 測試框架 * robolectric 測試框架 ## Android 測試框架 Android 應用程序的標準測試框架之一是 **Android 測試框架**。 它是一個功能強大且易于使用的測試框架,與 Android SDK 工具很好地集成在一起。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/99/99/99995b74a357a381d7d42a3c73eff22f_1136x616.png "Complete Guide to Android Testing & Automation").png) Android 測試框架架構 1. **應用程序包**是您的目標應用程序,需要進行測試 2. **InstrumentationTestRunner** 是[測試用例](/test-case.html)運行器,它在目標應用程序上執行測試用例。 這包括: 2a)**測試工具:**用于構建測試的 SDK 工具。 它們集成在 Eclipse IDE 中或作為命令行運行。 2b) **MonkeyRunner:**一種工具,提供用于編寫??程序的 API,這些 API 在 Android 代碼之外控制 Android 設備或模擬器。 3. **測試包**被組織到測試項目中。 該軟件包遵循命名約定。 如果被測應用程序的軟件包名稱為“ *com.mydomain.myapp* ”,則測試軟件包應為“ *com.mydomain.myapp.test* ”。測試軟件包包含 2 個對象 下面: 3a)測試用例類:包括要在目標應用程序上執行的測試方法。 3b)模擬對象:包括模擬數據,這些數據將用作測試用例的樣本輸入。 ## Android 測試用例類 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/7f/0e/7f0e8838d2c776573803578b745b924f_700x377.png "Complete Guide to Android Testing & Automation") AndroidTestCase 類圖 1. **TestCase** 包括用于運行 JUnit 測試的 JUnit 方法 2. **TestSuite** 用于運行一組測試用例 3. **InstrumentationTestSuite** 是一個 TestSuite,可在運行之前將 Instrumentation 注入 InstrumentationTestCase。 4. **InstrumentationTestRunner** 是在目標應用程序上執行測試用例的測試用例運行器。 5. **AndroidTestCase** 擴展了 JUnit TestCase。 它包含用于訪問資源(例如活動上下文)的方法。 6. **ApplicationTestCase** 在受控環境中驗證 Application 類。 7. **InstrumentationTestCase** 驗證目標應用程序的特定功能或行為,例如,驗證應用程序的 UI 輸出。 8. **ActivityTestCase** 是支持測試應用程序活動的基類。 9. **ProviderTestCase** 是用于測試單個 ContentProvider 的類。 10. **ServiceTestCase** 用于在測試環境中測試 Service 類。 它還支持服務的生命周期。 11. **SingeLauchActivityTestCase** 用于通過 InstrumentationTestCase 測試單個活動。 12. **ActivityUnitTestCase <活動>** 用于測試單個隔離的活動。 13. **ActivityInstrumentationTestCase2 <活動>,**擴展了 JUnit TestCase 類。 它通過儀器將您連接到目標應用程序。 使用此類,您可以訪問應用程序的 GUI 組件并將 UI 事件(按鍵或觸摸事件)發送到 UI。 以下是 ActivityInstrumentationTestCase 的示例。 它驗證計算器應用程序的 UI 操作,檢查 UI 輸出的正確性。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/92/da/92dabed563603b43f56b9db12a3b7678_767x888.png "Complete Guide to Android Testing & Automation") ActivityInstrumentationTestCase2 測試示例 ## Robolectric 測試框架 使用帶有設備或仿真器的 Android 測試框架進行測試非常困難。 構建和運行測試很慢,需要大量開發工作。 要解決此問題,還有另一種選擇- **Robolectric** 測試框架。 Robolectric 框架允許您直接在 JVM **上運行**的 Android 測試**,而無需**使用設備或仿真器。 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/43/d4/43d455f590a02db8d9e132b93a159e5d_833x475.png "Complete Guide to Android Testing & Automation").png) Robolectric 的先進功能 ## 機器人測試案例類 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/37/b2/37b2d45045753255528f63a05e19fc2d_410x475.png "Complete Guide to Android Testing & Automation").png) Robolectric 的操作 * 如上所示,Robolectric 可以執行以下操作: * 注冊并創建 Shadow 類 * 攔截 Android 類的加載 * 使用 javaassist 覆蓋 Android 類的方法主體 * 將 Shadow 對象綁定到 Android 類 * 這允許被測代碼在沒有 Android 環境的情況下執行。 ## 其他測試框架 除了上面提到的測試框架外,還有許多其他測試框架,例如: * [Android Junit 報告](https://github.com/jsankey/android-junit-report),這是 Android 的自定義檢測測試運行程序,可生成 XML 報告以與其他工具集成。 * [Express](https://developer.android.com/training/testing/espresso/index.html) * [紀元](http://appium.io/) ## Android 測試的神話 許多企業基于常見的誤解開發了 android [測試](/software-testing.html)策略。 本節探討了一些流行的誤解和 Android 測試的現實情況。 **誤區 1:所有 Android 設備都相同...在模擬器上進行測試就足夠了** 讓我們從一個簡單的例子開始。 應用程序可以在模擬器上完美運行,但在某些實際設備上,在執行過程中會崩潰 ![Complete Guide to Android Testing & Automation](https://img.kancloud.cn/80/12/8012d0c40795395beed12450d9cfc739_211x263.png "Complete Guide to Android Testing & Automation") 在真實設備上執行期間,應用程序崩潰 仿真器**不足以進行移動測試**。 您必須在真實設備上測試您的應用。 **誤區 2:在一些常見設備上進行測試就足夠了** * 在不同的設備上,您的應用程序看起來會有所不同,因為不同的設備具有不同的硬件,屏幕大小,內存等。您必須在不同的設備,操作系統版本,運營商網絡和位置上測試應用程序。 **誤區三:發射前進行探索性測試就足夠了** * 通常,在所有測試中,我們都會設計測試用例,然后執行它們。 但是在探索性測試中,測試設計和執行將一起完成。 * 在探索性測試中,沒有計劃,沒有準備,那么測試人員將進行他想做的測試。 某些功能將被重復測試,而某些功能將不被完全測試。 **誤區 4:如果應用程序中存在一些錯誤,用戶將理解** * 如果應用程序無法運行且存在錯誤,則用戶會卸載您的應用程序 * 質量問題是 Google Play 中評價不佳的首要原因。 它會影響您的聲譽,并失去客戶的信任。 因此,擁有適當的 android 測試策略至關重要 ## Android 測試中的最佳做法 * 應用程序開發人員應在編寫代碼的同時創建測試用例 * 所有測試用例應與源代碼一起存儲在版本控制中 * 每次更改代碼時使用連續集成并運行測試 * 避免使用仿真器和有根設備
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看