<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # iOS 應用測試教程:手冊&自動化 > 原文: [https://www.guru99.com/getting-started-with-ios-testing.html](https://www.guru99.com/getting-started-with-ios-testing.html) ## 為什么要進行 iOS 測試? iOS 于 2007 年 6 月 29 日首次發布,是**蘋果針對移動應用程序的平臺**的名稱。 與 Android 不同,Apple **不許可** iOS 安裝在非 Apple 硬件上。 iOS 和 iOS 應用程序僅在 Apple 設備上安裝。 您的應用必須與四種類型的設備和 iOS 版本兼容。 ![Getting started with iOS testing](https://img.kancloud.cn/13/29/1329e1808b185298113e5cfb7b7b98f7_538x161.png "Getting started with iOS testing").png) 這是開發人員創建 iOS 應用程序時的常見問題。 ![Getting started with iOS testing](https://img.kancloud.cn/6c/ea/6ceaa6374bf6ce9853c8b750355b6ffa_410x385.png "Getting started with iOS testing") 在設計和實現上投入多少時間都沒有關系,錯誤是不可避免的,并且會出現錯誤。 iOS 應用程序上存在一些常見的錯誤。 如下圖所示。 ![Getting started with iOS testing](https://img.kancloud.cn/c2/16/c2169402c6a6796ebc327094286141ff_599x382.png "Getting started with iOS testing") 1. **應用程序崩潰了** 使用 Apple 的設備時,最令人沮喪的問題之一是應用程序在執行期間可能經常崩潰。 很多時候應用程序崩潰是因為應用程序中存在一些錯誤或內存泄漏。 2. **應用程序不兼容** 您的 iOS 應用程序可以在當前的 iOS 版本上完美運行,但是如果升級了 iOS,由于不兼容問題,它可能無法正常工作。 3. **安全漏洞** iOS 中的一個安全漏洞使黑客能夠攻擊您的 iOS 設備,竊取您的私人信息。 到目前為止,在不同的 iOS 版本中發現了嚴重的 iPhone 安全漏洞。 4. **內存泄漏** 內存泄漏是程序不再使用的已分配內存塊。 內存泄漏會導致您的 iOS 應用程序崩潰。 它們是錯誤,應始終修復。 在本教程中,您將學習- * [為什么要進行 iOS 測試?](#1) * [iOS 測試 MindMap](#2) * [iOS 測試清單](#16) * [iOS 測試策略](#3) * [自動化測試](#4) * [使用 OCUnit](#5) 進行單元測試 * [使用 UIAutomation](#6) 進行 UI 測試 * [手動測試](#7) * [探索性測試](#8) * [用戶測試](#9) * [概念測試](#10) * [可用性測試](#11) * [Beta 測試](#12) * [A / B 測試](#13) * [iOS 測試最佳做法](#14) * [關于 iOS 測試的迷思](#15) ## iOS 測試 MindMap ![Getting started with iOS testing](https://img.kancloud.cn/20/00/200060004f2fc1217e21969f887c4144_793x501.png "Getting started with iOS testing") 如上圖所示,iOS [測試](/software-testing.html) MindMap 顯示了測試人員在 iOS 上進行測試時應考慮的所有項目。 ## iOS 應用測試清單 此清單是專門設計用于測試 iOS 移動應用程序的特征的。 顯然,它僅測試通用應用程序特征,而不測試其功能。 * 檢查應用程序在設備上花費的安裝時間。 確保在可接受的時間內安裝了該應用程序。 * 安裝該應用程序后,請檢查該應用程序是否具有應用程序圖標和名稱。 另外,請確保圖標和名稱都是不言自明的,以反映應用程序的核心意圖。 * 啟動應用程序,然后檢查是否顯示啟動屏幕。 * 檢查初始屏幕超時和加載主屏幕所需的時間。 應用程序的主屏幕應在可接受的時間內加載。 如果主屏幕僅花費更多時間加載,則用戶有更多機會退出甚至卸載應用程序本身。 另外,檢查內容如何在主屏幕中加載。 * 該應用程序的主要功能應立即顯而易見。 它應該為自己說話。 * 檢查應用程序是否同時支持橫向和縱向。 如果是這樣,請從兩個方向檢查應用程序。 應相應設置應用程序的用戶界面。 * 沒有互聯網連接,啟動應用程序。 確保該應用的行為符合設計/預期的要求。 應用程序可能會在啟動時崩潰或僅顯示空白屏幕。 * 如果應用程序使用位置服務,請檢查是否顯示位置許可警報。 該警報僅應提示用戶一次。 * 如果應用程序發送了推送通知,請檢查是否顯示了推送通知權限警報。 該警報也應該僅向用戶提示一次。 * 啟動應用程序,退出并重新啟動。 檢查應用程序的行為是否符合設計/預期 * 通過點擊設備的主頁按鈕關閉應用程序,然后再次打開應用程序。 檢查應用程序是否按設計/預期運行。 * 安裝后,請檢查該應用程序是否列在 iPhone 的設置應用程序中。 * 啟用該應用程序后,檢查是否可以在“ App Store”中找到該應用程序。該應用程序將支持該 OS 版本,因此,請確保可以在那些受支持的 OS 版本設備的“ App Store”中找到該應用程序。 另外,該應用程序不應在不受支持的 OS 版本設備的“ App Store”中列出。 * 在后臺運行時,請檢查應用程序是否進入睡眠模式以防止電池耗盡。 * 如果應用程序的性能很慢或每當內容加載時,請檢查是否有進度狀態圖標(“正在加載...”),最好帶有特定的消息。 * 在設備搜索欄中搜索應用程序及其名稱。 檢查應用程序是否列出 * 檢查執行標準操作的按鈕的外觀在應用程序中是否未更改(例如:刷新,整理,刪除,回復,返回等) * 檢查標準按鈕是否不用于其他功能,然后正常使用 ## iOS 測試策略 下圖介紹了一些常見的 iOS 測試策略類型。 ![Getting started with iOS testing](https://img.kancloud.cn/25/77/25774279f25c2f7e722128871bfdd63d_770x393.png "Getting started with iOS testing") ## 自動化測試 自動化測試是 iOS 測試的最大優勢。 它使您能夠快速檢測到錯誤和性能問題。 自動化測試的好處如下所示: * 自動化測試可以在多個設備上運行,從而節省了時間 * 自動化測試可以針對 SDK。 您可以在不同的 SDK 版本上運行測試 * 自動化測試可提高測試效率,節省軟件開發成本 * 有許多開源測試框架支持在 iOS 上進行自動化測試 ## 使用 OCUnit 進行單元測試 當原始的 iOS SDK 發行時,它缺少[單元測試](/unit-testing-guide.html)功能。 因此,Apple 在 iOS SDK 版本 2.2 中帶回了 [OCUnit](http://www.sente.ch/software/ocunit/) 單元測試解決方案。 OCUnit 是 Mac OS 中 C-Objective 的測試框架。 OCUnit 框架的最大優點是緊密集成到 [XCode](https://developer.apple.com/xcode/) 開發環境中,如下所示。 ![Getting started with iOS testing](https://img.kancloud.cn/f6/0e/f60eaa97b2210132ddbae525f9ebb74f_648x295.png "Getting started with iOS testing") 下圖顯示了 OCUnit 的一些優點。 ![Getting started with iOS testing](https://img.kancloud.cn/18/ff/18ff0f2c35d81c4137721ca9d2717001_638x341.png "Getting started with iOS testing") ## 使用 UIAutomation 進行 UI 測試 ![Getting started with iOS testing](https://img.kancloud.cn/f4/fa/f4fa1819dc5270b52672f7c5cdc26d5c_387x351.png "Getting started with iOS testing") [UI 自動化](http://developer.apple.com/library/ios/#documentation/DeveloperTools/Reference/UIAutomationRef/Introduction/Introduction.html)是 Apple Inc.提供的 [JavaScript](https://en.wikipedia.org/wiki/JavaScript) 庫,可用于在真實設備和 iOS Simulator 上執行自動化測試。 此框架已添加到 iOS SDK4.0。 使用 UI 自動化,您不僅可以在模擬器上而且可以在真實設備上自動化測試應用程序。 UIAutomation 為您帶來以下好處: * 減少[手動測試](/manual-testing.html)上的工作 * 用更少的內存來執行所有測試 * 簡化您的 UI 測試程序(只需按一個或三個按鈕即可運行完整的測試套件) UIAutomation 儀器通過腳本編寫,腳本使用 JavaScript 編寫。 它模擬目標 iOS 應用程序上的用戶事件。 ***UIAutomation* *缺點* *與* *優點*** | ? | **優點** | **缺點** | | 1. | 對手勢和旋轉的良好支持 | 它不是開源的,更少的開發人員支持 | | 2. | 可以在設備上運行 UIAutomation 測試,而不是唯一的模擬器。 | 無法與其他工具很好地集成 | | 3. | 由 JavaScript 開發,它是一種流行的編程語言。 | ? | ![Getting started with iOS testing](https://img.kancloud.cn/9e/58/9e58483fc018ff524e945b100b6534ae_775x545.png "Getting started with iOS testing") 上圖表示 UIAutomation 框架中的一些常見類。 * **UIAElement** 類是自動化上下文中所有用戶界面元素的超類。 * **UIATarget** 類表示被測系統的高級用戶界面元素 * **UIALogger** 類提供有關檢索功能的測試和錯誤信息 * **UIAActivityView** 類允許訪問和控制應用程序中的活動視圖。 * **UIAActionSheet** 類允許訪問和控制應用程序內的操作表。 * 用戶**事件操作** * UISlider 類 * UIAButton 類 * UIAKey 類 * UIAKeyboard 類 ### 其他自動化測試框架 * [MonkeyTalk](http://www.gorillalogic.com/monkeytalk) :一種用于自動測試 iOS,Android,HTML5 和 Adobe 應用程序的工具。 它是用于管理和運行測試套件的集成環境 * [Frank](https://github.com/moredip/Frank) :適用于 iPhone 和 iPad 的自動化**驗收測試**框架 * [KIF](https://github.com/kif-framework/KIF) :是一個 iOS **集成測試**框架。 通過利用 OS 為視力障礙者提供的可訪問性屬性,它可以輕松實現 iOS 應用的自動化。 ## 手動測試 ### 探索性測試 這是沒有正式測試計劃的測試。 探索性測試是一種低成本的測試方法,但它可能會遺漏 iOS 應用程序中的潛在錯誤。 ***探索性測試缺點與優點*** | ? | **優點** | **缺點** | | 1. | 需要的準備工作更少,及早發現嚴重的錯誤。 | 需要測試人員的高技能 | | 2. | 不需要[測試計劃](/what-everybody-ought-to-know-about-test-planing.html)可以加快錯誤檢測速度。 | 測試覆蓋率低。 它不能保證您的所有要求都經過測試。 | | 3. | 大多數漏洞是通過某種探索性測試而發現的 | 缺乏測試文件 | ### 用戶測試 用戶測試是 iOS 上的一種手動測試。 該測試的目的是創建更好的應用程序,不僅是**無錯誤的**應用程序。 下圖顯示了四種類型的用戶測試 ![Getting started with iOS testing](https://img.kancloud.cn/23/43/2343d2e7149c18b87413a51857780b9d_740x269.png "Getting started with iOS testing") ### 概念測試 在發布到市場之前,評估用戶對應用程序構想的響應。 在 iOS 上進行概念測試的過程如下所述 ![Getting started with iOS testing](https://img.kancloud.cn/1f/4d/1f4d3b47858f5dbfc7a73fc8236958db_620x421.png "Getting started with iOS testing") ### 可用性測試 [可用性測試](/usability-testing-tutorial.html)是一項測試如何輕松使用 iOS 應用程序的測試。 在 iOS 測試中,可以將**記錄為**以便記住或與他人共享可用性測試。 iOS 上有一些工具支持可用性測試。 [Magitest](http://magitest.com/) ,這是針對網站和應用的簡單 iOS 可用性測試。 [Delight.io](http://www.delight.io/) ,此工具可以捕獲 iOS 應用上的真實用戶交互。 ### Beta 測試 Beta Testing 是**集成測試**,具有真實數據,可以從用戶那里獲得最終反饋。 要分發您的應用以進行 Beta 測試,您必須執行以下步驟。 ![Getting started with iOS testing](https://img.kancloud.cn/4a/3f/4a3fa1202f329d0e8a070206db6ca923_769x276.png "Getting started with iOS testing") -**前提條件**:如果您正在對發布的最終候選者進行 Beta 測試,請確保在將其分發給測試人員之前驗證該應用。 -**通過服務**查找測試儀:您從測試儀收集設備 ID,并將其添加到[會員中心](http://developer.apple.com/library/ios/#documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificatesandProvisioningAssets/MaintainingCertificatesandProvisioningAssets.html) -**創建即席發行版**:即席發行版允許測試人員在不需要 Xcode 的情況下在其設備上運行您的應用。 此步驟包括 2 個子步驟 * 創建發行證書 * 創建臨時配置文件 -**要求測試人員反饋:**測試人員進行測試并將錯誤報告發送給您。 發布應用后,您可以從 [iTunes](http://www.apple.com/itunes/) connect 獲取報告。 ### A / B 測試 A / B 測試是**評估 iOS 應用**有效性的最有效方法之一。 它使用**隨機實驗**和兩個設備 A 和 B。 ![Getting started with iOS testing](https://img.kancloud.cn/c7/e7/c7e73a661cd5dcb9d3f279d8cf5351dd_684x245.png "Getting started with iOS testing") *A / B 測試包括三個主要步驟* * **配置測試**:準備了 2 個版本的 iOS 應用(A & B)和測試指標 * **測試**:同時在設備上測試上述 2 個 iOS 應用版本。 * **分析**:測量并選擇更好的版本以發布 以下工具支持 iOS 上的 A / B 測試。 * [出現](http://arise.io/):適用于 iOS 和 Android 的 A / B 測試。 它可以集成到您的 iOS 應用中,從而使測試過程更快。 *A / B 測試的最佳做法* * 定義測試的**目標**。 沒有目標,任何測試都是沒有用的。 * **觀看**最終用戶首次使用您的應用 * 每次更新僅運行**一個**測試。 節省進行測試的時間 * **監視**您的測試。 您可以通過監視測試來從中學習經驗。 ## iOS 測試最佳做法 這是組織 iOS 應用程序測試時應了解的一些技巧 1. 在**真實設備**上測試應用程序以獲得真實的性能 2. **改進**您的測試方法,因為傳統的測試方法已不足以涵蓋 iOS 測試中的所有測試 3. 使用**控制臺日志**測試 iOS 應用程序。 這是一項 iOS 功能,包括來自設備上每個應用程序的信息。 4. **文檔**應用程序錯誤,使用**內置屏幕簡短**命令。 它可以幫助開發人員了解錯誤的發生方式。 5. **故障報告**是測試應用程序時的有用工具。 他們可以檢測崩潰并記錄詳細信息,因此您可以輕松地調查錯誤。 ## 關于 iOS 測試的迷思 本節探討了 iOS 測試的一些流行神話和現實 **在 iOS 和 Android 上測試應用程序是同一回事。** **iOS** 和 **Android** 是 Apple Inc 和 Google 開發的兩個平臺。 他們是完全不同的。 等測試環境,測試框架,編程語言。 **在 iOS Simulator 上測試應用程序就足夠了。** iOS 模擬器不足以測試應用程序。 由于 iOS 模擬器具有一些限制: * 硬件限制(相機,麥克風輸入,傳感器) * 您應用的用戶界面可能比在設備上運行更快,更流暢 * API 限制 * 某些框架不受支持(Media Player,Store Kit,Message UI ..) **每個人都會在應用商店上下載我的應用,因為它具有許多功能** 您的應用程序具有的功能越多,您可以獲得的錯誤就越多。 如果仍有許多缺陷,沒有用戶會下載您的應用程序。
                  <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>

                              哎呀哎呀视频在线观看