[{"data":1,"prerenderedAt":47},["ShallowReactive",2],{"article-zh-pikmin-with-fake-gps":3},{"article":4,"related":18,"prevArticle":40,"nextArticle":44,"availableLocales":45},{"id":5,"slug":6,"image":7,"date":8,"published":9,"created_at":10,"updated_at":11,"title":12,"excerpt":13,"content":14,"custom_css":15,"keywords":16,"meta_description":17,"og_image":15,"image_width":15,"image_height":15,"category":15},"f8ca9973-a5ea-41fe-9a1c-a9a921f8244f","pikmin-with-fake-gps","https://hfrcmkawcuoorqukvkpe.supabase.co/storage/v1/object/public/pictures/blog_pictures/pikmin_qaptly_gps_mock.jpg","2026-02-03T12:44:00+00:00",true,"2026-02-03T13:33:00.587863+00:00","2026-02-03T13:35:48.274+00:00","原來測試工具也可以拿來玩","我們為什麼願意開放「跳過 Accessibility 檢查」的能力、這個設計背後的工程與產品思考，以及 Qaptly Auto for Android 如何在「正式測試」與「非典型使用場景」之間，保持工具的彈性與邊界。","\u003Cblockquote>\u003Cp>一個測試工具，是否一定要被限制在「原本想像的測試場景」裡？\u003C/p>\u003C/blockquote>\u003Cp>作為一個Android Test Tool，Qaptly Auto for Android v1.5發佈後，就停止更新好一陣子，畢竟這工具在Android App測試上，幾乎該有的都有了，真的遇到限制，再配合Qaptly本來就支持的adb自動切換，功能已經非常強大，也因為早期的更新頻繁，其實已經不太會收到客戶反饋的bug了。\u003C/p>\u003Ch1>陸續出現的需求\u003C/h1>\u003Cp>我們在Sentry上，偶爾會看到客戶反饋回來的需求，\u003C/p>\u003Cp>說希望可以把Qaptly Auto的GPS mock入口拉到設定頁面，\u003C/p>\u003Cp>也有收到說希望可以把原本強制要求要設定的Accessibility Service給關掉，或者是可以跳過，\u003C/p>\u003Cp>但這是Android Automation中，比較正式的做法，如果跳過，那就是只能走adb，\u003C/p>\u003Cp>雖然説對我們的用戶來說，通通不用自己操作，這應該都不是問題，但是這些需求背後的場景，我們其實真的比較難理解。\u003C/p>\u003Cp>一直到有一天...\u003C/p>\u003Ch2>客戶訪談結束後的閒聊\u003C/h2>\u003Cp>那天訪談結束得早，客戶也沒有接下來的會議，就隨意聊了起來。\u003C/p>\u003Cp>聊著聊著，話題又回到了「能不能跳過 Accessibility Setup」這件事。\u003C/p>\u003Cp>我半開玩笑、半認真地回應：\u003C/p>\u003Cp>「是可以設計成可以跳過啦，但是如果是遠端驅動，可能就不知道錯誤在哪裡了！我們這個工具是假設進入到命令歷史清單頁面，都是已經設定完成，可以隨時被測試狀態，這樣如果真的發生錯誤，不好找原因。」\u003C/p>\u003Cp>對方很快地說：&nbsp;\u003C/p>\u003Cp>「我們理解，所以測試機一定都會設定好，不會跳過。」\u003C/p>\u003Cp>這句話反而讓我更困惑了。\u003C/p>\u003Ch2>原來，我一開始就誤會了\u003C/h2>\u003Cp>我忍不住多問了一句：\u003C/p>\u003Cp>「那你們什麼時候會用到跳過設定？」\u003C/p>\u003Cp>對方笑了一下，說：\u003C/p>\u003Cp>「因為 Qaptly Auto 拿來跑 GPS mock 比其他 App 穩定，不會亂跳。我們全家手機都有裝，但每一支都要設 Accessibility、還要檢查 USB debug，真的太麻煩了。」\u003C/p>\u003Cp>那一刻我才意識到——\u003C/p>\u003Cp>\u003Cstrong>她根本不是在講測試。\u003C/strong>\u003C/p>\u003Cp>我又確認了一次：\u003C/p>\u003Cp>「為什麼全家都要裝測試工具？而且 USB debug 其實有風險。」\u003C/p>\u003Cp>她很自然地回答：\u003C/p>\u003Cp>「因為我們全家都有在玩皮克敏。但有些地方真的太難去，市區又一堆人搶蘑菇，用你們這個介面快又穩定，我試過就推薦給我先生跟女兒了。」\u003C/p>\u003Cp>接著她又補了一句：\u003C/p>\u003Cp>「既然都說了，那 Security Warning 也可以一起跳過嗎？」\u003C/p>\u003Cp>客戶的想法永遠是超前的，我自己也只有備用機才會裝測試工具。\u003C/p>\u003Ch2>工具的用途，從來不只一種\u003C/h2>\u003Cp>最後，我們做了一個很簡單的決定。\u003C/p>\u003Cp>我們\u003Cstrong>單獨出了一版 GPS mock 專用版本\u003C/strong>：\u003C/p>\u003Cp>不需要 Accessibility、不需要開 USB debug、也不走正式的測試假設。\u003C/p>\u003Cp>這樣手機安全一點，他們用得也安心。\u003C/p>\u003Cp>原本是為了測試而設計的工具，最後卻成了某一家人皮克敏征途中的「穩定裝備」。\u003C/p>\u003Cp>也讓我們再次確認了一件事：\u003C/p>\u003Cblockquote>\u003Cp>\u003Cstrong>真正好用的工具，往往會被用在你一開始沒預期過的地方。\u003C/strong>\u003C/p>\u003C/blockquote>\u003Cp>\u003C/p>\u003Ch2>v1.8.0真的提供Skip選項\u003C/h2>\u003Cp>話說回來，Qaptly Auto for Android 在即將推出的 v1.8 版，確實正式加入了「\u003Cstrong>可跳過部分強制設定\u003C/strong>」的設計。\u003C/p>\u003Cp>包含 Accessibility 檢查、部分前置環境驗證，現在都可以在特定模式下略過，直接進入命令執行與歷史紀錄頁面。這個調整，並不是因為我們改變了對 Android Automation 正規流程的看法，而是我們終於承認了一件事：\u003C/p>\u003Cp>\u003C/p>\u003Cblockquote>\u003Cp>有些人用工具，不是為了測試；但他們依然需要一個穩定、可控、可重現的執行環境。\u003C/p>\u003C/blockquote>\u003Cp>\u003C/p>\u003Cp>當然，還是要說一句正經的——\u003C/p>\u003Cp>\u003Cstrong>皮克敏就是要多走走，對身體比較好。\u003C/strong>\u003C/p>\u003Cp>\u003C/p>\u003Cp>至於那些「穩定 replay tracks」之類的用途嘛……\u003C/p>\u003Cp>我們就當那只是測試世界裡，一個很剛好的副作用。\u003C/p>\u003Cp>\u003C/p>\u003Cp>千萬不要告訴別人。\u003C/p>",null,"pikmin, 皮克敏, android, gps, gps mock, test, automation, accessibility, gps mock testing","一個用戶希望跳過 Accessibility 檢查，只為了用 Qaptly Auto for Android 跑 GPS mock 玩 Pikmin。這篇文章分享我們如何從這個需求，重新思考 Android 自動化測試工具的彈性與設計邊界。",[19,26,33],{"id":20,"slug":21,"title":22,"excerpt":23,"image":24,"date":25,"category":15},"deb70edd-ff7f-4b6e-b230-fa1c83dc0afa","qaptly-v0175-codex-support","Qaptly Desktop 開始支持 Codex","Qaptly Desktop 的 AI Assistant 從 v0.17.5 開始正式開放 Codex 支持。如果你本來就是 ChatGPT 訂閱用戶，現在可以直接讓 AI Assistant 使用 Codex，在日常測試設計與自動化調整上節省成本。","https://hfrcmkawcuoorqukvkpe.supabase.co/storage/v1/object/public/pictures/blog_pictures/qaptly_support_codex.jpg","2026-05-16T13:01:00+00:00",{"id":27,"slug":28,"title":29,"excerpt":30,"image":31,"date":32,"category":15},"eebc38be-6eec-4e68-af7f-e5dd6c611a0f","ai-agent-workflow-critical-things","AI 協作進入 workflow 之後，那些最容易被低估、卻最關鍵的幾件事","過完年後，基本上都在幫幾間新創與大公司內部的開發部門導入 agentic development。這段時間看了不少團隊的做法，也有一些很直接的感受，想趁這個機會整理一下。","https://hfrcmkawcuoorqukvkpe.supabase.co/storage/v1/object/public/pictures/articles/ai-workflow.jpg","2026-03-24T16:10:00+00:00",{"id":34,"slug":35,"title":36,"excerpt":37,"image":38,"date":39,"category":15},"1092dc59-4718-4902-809c-74cfdfc5fffd","from-tool-to-process-challenges","從單點工具到流程閉環的虛實與挑戰","探討2026年AI在軟體開發生命週期中的實踐，從單點工具普及化到流程閉環協作的轉變，以及QA自動化的真實與虛假繁榮。","https://hfrcmkawcuoorqukvkpe.supabase.co/storage/v1/object/public/pictures/blog_pictures/from_tool_to_process.png","2026-03-02T03:06:00+00:00",{"slug":41,"title":42,"date":43},"upp-natural-language-iot-testing","當軟體測試碰到真實世界","2026-02-01T04:30:00+00:00",{"slug":35,"title":36,"date":39},[46],"zh",1786449982232]