How to debug mobile apps across devices title. A magnifying glass over a bug icon in the bottom-left corner. The top-right corner has an icon of a mobile device.
贊助

如何跨裝置除錯移動應用程式

閱讀時間 8 分鐘

移動應用中的缺陷會對使用者體驗產生負面影響,常常會影響訪問者的第一印象並增加解除安裝率。當用戶遇到缺陷時,他們會頻繁選擇替代應用,從而導致客戶和收入流失。

因此,企業應將開發健壯且無缺陷的應用作為留住客戶戰略的一部分。在使用者使用的眾多裝置型別上進行除錯具有挑戰性,但對於維護長期使用者體驗至關重要,這使得移動應用測試成為該過程的關鍵組成部分。

什麼是移動應用除錯?

移動應用除錯是指在理想情況下,在釋出給使用者之前找到並修復缺陷的過程。缺陷通常歸因於功能性流程的失敗。然而,情況並非總是如此。

例如,API響應時間過長可以歸類為缺陷,但它與移動應用程式任何模組的核心功能無關。同樣,除錯不一定意味著修復移動應用的功能方面,而是修復任何對使用者有影響的應用問題,甚至是實施可以防止以後出現問題的修復。

通常,開發人員使用除錯技術來即時檢視功能和修復程式在開發過程中的行為。測試人員使用除錯來探索漏洞以及應用程式如何處理在開發階段可能未曾預料到的使用情況,通常會利用真實裝置雲來確保跨各種環境進行徹底測試。

為什麼要在多臺裝置上除錯移動應用?

如上所述,除錯過程的步驟可能不是移動應用調試周期的終點。在調試周期中需要考慮的另一個引數是存在數千種類型的移動裝置。

例如,在下面的快照中,僅考慮螢幕尺寸作為這三臺裝置的差異,並觀察 UI 設計應如何相應地進行更改。

A diagram showing UI design on three different devices with blocks as content placeholders. A small, cellphone-sized device has a single column layout, the same content is shown with cards in a tablet-sized device, and a third desktop version shows fullscreen cards and content spanning larger widths.

螢幕尺寸只是移動裝置可能存在差異的一個方面。如果考慮到其他裝置特性,在開發生命週期早期在多臺裝置上進行除錯變得越來越重要。讓我們看看裝置可能獨有的幾種方式。

  • 極高的裝置碎片化:當今的裝置具有獨特的規格,而每種規格都會影響應用程式的呈現。

    有些可能有不同的螢幕尺寸,而有些則具有不同的處理能力。這使得應用程式在各種裝置上的編譯、執行和執行有所不同。

  • 作業系統差異StatCounter報告顯示,Android和iOS佔全球移動市場份額的99.34%。然而,測試兩個作業系統比實際情況要複雜得多,因為每個作業系統每年都會向終端使用者釋出新版本。

    每個新作業系統版本都包含棄用、較新的 API 和現有方法的最佳化。這些更改會影響應用程式的工作方式和開發方式,並可能導致缺陷。

  • 廠商 UI 修改:Android作業系統是開源的,歡迎根據手機制造商的要求進行下游修改。

    一個很好的例子是三星的 One UI。該公司使用新發布的 Android 的原始碼,並在內部對 UI 進行更改。這使得他們的裝置與其他製造商的裝置不同。然而,測試人員應該明白,這種變化發生是因為與“純粹”Android相比,One UI 中的 UI 元素設計和分析方式不同。

    因此,廠商特定的更改可能會導致應用程式 UI 中出現缺陷,使其成為測試和調試周期中的一個重要行動項。

  • 顯著的系統更改:許多製造商更改了 Android 的通用設計(包括核心核心功能),並將其整合到他們的裝置中。這種修改的一個例子是 OnePlus 的 OxygenOS。

    此 OS 修改會影響移動應用程式的功能方面,使其在某些作業系統上的執行方式與 Android 不同。

  • 硬體最佳化:許多裝置製造商聘請專家根據其軟體最佳化硬體以提高效能。最佳化包括完整的 SOC 設計和開發、自定義電池放電速率以及散熱管理。

    所有這些因素對於移動應用行為都至關重要。因此,由於這些最佳化,一個裝置上的缺陷可能在另一個裝置上出現(或不出現)。

當上述幾點結合在一起時,就應該更清楚地看出為什麼每個裝置,無論它與其他裝置有多大差異,都必須放置在裝置場中並納入所有調試周期。

如何在多臺裝置上除錯移動應用?

一旦找到缺陷,就使用一種或多種技術和策略來暴露其根本原因,從源頭追蹤到輸出(缺陷本身)。

除錯技術和策略

以下技術(一種或多種)有助於除錯移動應用程式。

  • 跟蹤日誌檔案:理想情況下,日誌檔案應提供足夠的資訊來了解執行如何從使用者操作流向缺陷。有時,錯誤也會被記錄下來並附有描述。

    然而,這些情況很少見。大多數時候,日誌檔案僅提供程式碼流程和執行過程中各種變數的特定值。

    Android logs with Logcat showing output from an app running on a Pixel XL device. Alongside the logs, there is a severity level panel showing logs ranging from info to error-levels.

    “Debug”級別的日誌記錄在生產環境中被停用,但在除錯期間啟用,可以極大地幫助移動應用開發過程中的故障排除。

  • 使用斷點:現代移動應用開發 IDE 在原始碼中具有斷點功能。斷點的工作原理是在特定點(稱為斷點)暫停程式執行。

    An example breakpoint in Xcode in Swift code. A breakpoint is set in an interesting part of the application where the text 'Hello, world!' is added to an image via a text view.

    程式暫停後,開發人員可以逐個步驟(每行程式碼執行時)觀察從該點開始的完整流程,並確定有缺陷的程式碼行。

  • 分析變數值:許多問題是由於變數值不正確引起的。在不同點分析變數值有助於追蹤影響其值的特定部分。開發人員可以隔離程式的一部分來縮小範圍並識別有問題的行。

  • 分析堆疊跟蹤:堆疊跟蹤是方法呼叫,其中包含關於這些呼叫的資訊並列印到控制檯。當程式執行期間出現“警告”或“錯誤”時,通常會發現這些資訊。開發人員可以透過分析這些訊息和列印的錯誤來追蹤檔名稱和行號的根本原因。

    但是,此技術並非總是能產生有益的結果。如前所述,移動應用中的所有缺陷不一定都是功能性的。對於邏輯缺陷,不會有堆疊跟蹤,因為功能上沒有任何問題導致錯誤;因此,此方法無法提供任何結果。

  • 引入異常處理:異常處理是一項推薦的程式碼開發實踐,以確保程式碼始終能優雅地退出。在除錯應用程式時,開發人員可以檢視日誌檔案中的異常,以瞭解程式執行期間出現了什麼問題。異常主要針對特定錯誤(如 ValueError),如果與日誌語句結合使用,可以快速解碼根本原因。

  • 外部偵錯程式:對於您用於開發移動應用程式的任何流行 IDE,至少都有一個第三方偵錯程式作為擴充套件可用。在許多情況下,偵錯程式已預設嵌入 IDE 中。此類偵錯程式具有促進除錯過程的功能。

    例如,每個函式或檔案都會提供所有變數值、功能流程的圖示表示以及記憶體使用情況。使用與 IDE 互補的外部偵錯程式是移動應用除錯的一項出色技術。

移動應用的除錯工具

開發人員和測試人員可以利用以下工具在裝置上除錯移動應用。

  • Android Studio:Android Studio 是一個針對 Android 應用程式最佳化的 IDE,為除錯移動應用程式提供了一個強大的平臺。它允許開發人員和測試人員透過將應用程式連線到安裝了 Android Studio 的系統來進行除錯。

    它提供了諸如啟用斷點以暫停程式執行、日誌記錄和變數分析等功能,並且可以在執行時除錯應用程式。

  • Xcode:Xcode 是一個具有強大除錯功能的 IDE,適用於基於 Apple 的作業系統。Xcode 的主要功能包括程式碼建議和高亮顯示,以避免因語法和程式設計實踐引起的缺陷,能夠設定斷點以進行詳細的程式執行分析,等等。

  • LambdaTest:LambdaTest 是一個由 AI 驅動的測試平臺,允許開發人員和測試人員在 5000 多個最新和遺留的真實 Android 和 iOS 裝置上除錯移動應用,這些裝置包括虛擬和真實裝置雲。

    它與各種應用分發平臺無縫整合,您可以在其中透過從 App Store、Google Play Store、App Center 和 TestFlight 安裝應用來除錯應用。LambdaTest 為 Android 和 iOS 裝置提供 UI Inspector,用於移動應用除錯,從而縮短了識別和解決根本原因的時間。您可以測試自然手勢和互動、QR 碼和影像捕獲、生物識別身份驗證等。

除了上述工具之外,開發人員和測試人員還可以透過結合測試自動化並利用諸如自動修復(自動檢測和修復測試指令碼中的問題)和 AI 驅動的根本原因分析(RCA)(快速識別測試失敗的根本原因並提供修復建議)等功能來增強其應用除錯過程,從而實現高效可靠的除錯和移動應用測試

移動應用的除錯過程

選擇除錯工具後,您就可以開始移動應用除錯了。以下是執行移動應用除錯的方法。

  1. 執行功能:測試人員按照文件和驗收測試執行應用的功能。
  2. 查詢並記錄缺陷:執行測試用例;在缺陷資料庫中記錄找到的缺陷。
  3. 如果可能,找出根本原因:測試人員記錄場景供開發人員識別和修復缺陷的根本原因。
  4. 修復缺陷:開發人員透過將更新的程式碼合併到原始碼庫中來解決和修復缺陷。
  5. 驗證並關閉:測試人員重新驗證修復後的程式碼,並在滿足要求時關閉缺陷。
  6. 探索未來缺陷:分析過去的缺陷和測試,以預測和防止未來的問題。

總結

在每個衝刺/釋出週期中,開發和除錯是相輔相成的。加速除錯而不影響質量,能夠使企業更快、更自信地交付卓越的產品。透過將測試自動化與自動修復和自動化根本原因分析等功能相結合,開發人員和測試人員可以確保高效的測試,從而加快應用開發週期,減少維護工作,並提高整體應用質量。

這是一篇由LambdaTest贊助的文章。LambdaTest 是一個由 AI 驅動的測試編排和執行平臺,可讓您在 5000 多個環境中執行手動和自動化測試。來自 130 多個國家/地區的 10,000 多家客戶和 200 萬用戶依賴 LambdaTest 來滿足其測試需求。