Product Information
ISBN: 9786264140010
出版日期: 2024-12-02
作者: 吳政樺(Paul)
裝訂: 平裝.單色印刷.304頁.23.
打造自動化測試策略,完美交付高品質App!
從基礎自動化測試技術開始,為進階測試技術奠定基礎!
從基礎自動化測試技術開始,為進階測試技術奠定基礎!
♔ 測試最佳實踐:由淺入深討論測試,探討如何優雅實踐
♔ 學習測試概念:了解單元測試、Widget測試與整合測試
♔ 展示實戰案例:結合真實案例,展示不同面向的測試
♔ 延伸進階議題:使用TDD、IDE工具,提升產品開發效率
本書內容改編自第15 屆iThome鐵人賽Mobile Development組的佳作系列文章《30天輕鬆學會Flutter 測試》。市面上有許多關於測試的書籍,對於使用Java或C#的開發者,通常能輕鬆找到與熟悉語言相關的測試實踐書籍,但是對於Flutter開發者來說,資源相對較少且分散。雖然Flutter本身支援單元測試、Widget測試和整合測試,但專門針對Flutter開發的完整測試指南並不多見。
本書專注於Flutter App開發中常用的各類自動化測試技術,從單元測試入門,逐步延伸至Widget測試與整合測試,並討論一些測試中會遇到的困難與如何解決,以及好的測試實踐做法,為其他進階測試技術打下基礎。除此之外,本書也會簡要介紹一些進階主題,例如:廣為人知的TDD、如何在CI系統中自動測試、善用工具加速測試等議題。
本書特色
✪由單元測試入門,奠定基礎測試概念。
✪運用3A原則,奠定測試基礎架構。
✪善用測試替身,讓測試執行起來快速又穩定。
✪延伸進階測試議題,探討如何避免不穩定因素干擾。
✪探索Widget測試,從使用者視角進行更全面的測試。
✪探索如何讓測試執行快速、穩定且可重複。
✪不只程式碼需要重構,測試也同樣需要重構。
✪介紹如何渲染測試畫面,搜尋畫面元素,模擬使用者操作。
✪由淺入深來探索Widget測試的實際應用。
✪使用社交型Widget測試,避免測試與結構耦合。
✪不只畫面需要測試,頁面跳轉也需要被測試。
✪在真實裝置上執行整合測試,讓測試更加真實。
✪運用整合測試完整保護產品功能。
✪使用可控制的依賴,增加測試的穩定性。
✪帶領讀者快速認識常見測試議題:持續整合、設計測試案例、測試驅動開發。
【目標讀者】
✪希望認識自動化測試的Flutter開發者。
✪想要透過測試維護產品品質的Flutter開發者。
✪幫助不同專業的開發者快速上手Flutter測試。
✪提供熟練Flutter的開發人員,探索適用於實際開發場景的進階測試技巧。
專業推薦
「身為Flutter開發者的你,也想提升工作效率、降低錯誤,變成像Paul一樣不慌不忙的開發者嗎?你可以從第一章、第二章先了解在Flutter中測試基本的編寫方法、與框架的互動,以及撰寫時該注意的事項。接著,在三到六章中,學會何時與如何隔離依賴,藉以提升開發效率,不再受限於框架的規定,並藉由Widget的測試來讓你的測試更靠近用戶的使用場景,而避免過度依賴於底層邏輯,進而輔助架構的重構。最後,可以在七到八章中,了解到適度的整合測試、好的IDE工具、自動化的CI/CD流程,以及大家最愛講但很少做的TDD如何幫助你的開發效率更上層樓。Paul在本書中引用了許多前輩大師的經典作品,對我來說,就像是絕世武功的目錄,幫助我們想要探究更深入的內容與理論時,可以按圖索驥、順藤摸瓜地找到該找的內容,而節省在茫茫Google海摸索,與在ChatGPT每次不盡相同的答案中比較探索的時間。」
─ Kuma Syu,「Kuma老師的軟體工程教室」板主
作者簡介
吳政樺(Paul)
作者簡介
吳政樺(Paul)
從事軟體開發大約10年,大半時間在開發Mobile App,其中開發Flutter約4年經驗,也不時地會參與Web與後端開發、甚至系統維運。最大的願望就是透過在日常開發中努力練習各種技術,讓技術不只在書中,而是能真實應用在現實開發中,用最小的力氣來創造產出最大的價值。除此之外,平時也喜歡透過技術寫作來分享工作中的心得與強化學習成果。連續二年以主題《關於Flutter開發的一些設計雜談》與《30天輕鬆學會Flutter測試》獲得iThome鐵人賽佳作。

Shipping Information
Zone | Order Total (RM) | Delivery Fee (RM) |
---|---|---|
West Malaysia | Flat Rate | 6.00 |
Zone | Items/Weight | Delivery Fee (RM) |
---|---|---|
East Malaysia | First 1.00 kg | 13.00 |
Extra 1.00 kg | 5.00 | |
Singapore | First 1.00 kg | 25.00 |
Extra 1.00 kg | 5.00 | |
Australia, New Zealand | First 1.00 kg | 159.77 |
Extra 0.50 kg | 52.65 | |
Austria, Denmark, Finland, Ireland, Switzerland, Russia | First 1.00 kg | 157.78 |
Extra 0.50 kg | 34.31 | |
Brunei, Cambodia, Laos, Mongolia | First 1.00 kg | 175.10 |
Extra 0.50 kg | 87.14 | |
Belgium,France, Germany, Netherlands, Spain, U.K | First 1.00 kg | 150.94 |
Extra 0.50 kg | 30.46 | |
China | First 1.00 kg | 96.44 |
Extra 0.50 kg | 25.35 | |
Bangladesh, Brazil, Iraq, Pakistan, Qatar, S.Arabia, UAE, Sri Lanka | First 1.00 kg | 118.52 |
Extra 0.50 kg | 24.96 | |
South Africa | First 1.00 kg | 118.52 |
Extra 0.50 kg | 24.96 | |
Philippines | First 1.00 kg | 91.42 |
Extra 0.50 kg | 15.29 | |
Canada, United States, Mexico | First 1.00 kg | 162.58 |
Extra 0.50 kg | 35.90 | |
Hong Kong | First 1.00 kg | 80.63 |
Extra 0.50 kg | 29.06 | |
India | First 1.00 kg | 113.30 |
Extra 0.50 kg | 22.28 | |
Indonesia | First 1.00 kg | 107.35 |
Extra 0.50 kg | 24.87 | |
Japan | First 1.00 kg | 112.97 |
Extra 0.50 kg | 35.03 | |
Macau | First 1.00 kg | 92.93 |
Extra 0.50 kg | 13.82 | |
Singapore | First 1.00 kg | 74.75 |
Extra 0.50 kg | 21.49 | |
Taiwan | First 1.00 kg | 94.42 |
Extra 0.50 kg | 34.76 | |
Thailand | First 1.00 kg | 94.10 |
Extra 0.50 kg | 28.25 | |
Vietnam | First 1.00 kg | 98.94 |
Extra 0.50 kg | 14.34 |