軟體品質全面思維
從產品設計、開發到交付,跨越DevOps、安全與AI的實踐指南
從產品設計、開發到交付,跨越DevOps、安全與AI的實踐指南
成大李信杰教授主編 / 博碩出版發行2025-7
王凱慶、江仁豪、吳龍紅、凃里俐、郁家豪、徐亨、涂富祥、陳正瑋、陳泉錫、郭榮智、張馨方、黃冠元、鄒翔如、詹淳涵、廖元鈺、劉建萍、盧建成、蔡育珊、蔡凱翔、蘇瑞亨 合著
目標讀者:設計師、PM、QA、主管、RD、DevOps、SRE、資安與AI工程師
本書介紹
本書為《軟體測試實務:業界成功案例與高效實踐》之延伸著作,主題從「軟體測試」拓展至更廣泛的「軟體品質」領域。各章作者皆為來自國內軟體團隊中不同角色的業界實務專家,涵蓋設計師、PM、QA、主管、RD、DevOps、SRE、資安與AI工程師等多元職能。延續前作精神,本書旨在協助讀者「參考業界成功經驗,快速建立軟體品質思維與實務做法」,無論您在軟體團隊中扮演何種角色,皆能從本書中獲益。
本書特色如下:
業界專家介紹最需要與最可行的實踐經驗
引導讀者入門的思緒脈絡、竅門要領、起手式作法
每個主題精煉於一個專章,充實且精華,易於理解吸收
多元主題,精煉集成
CH01 全球數位產品的開發與設計
廖元鈺
1.1 從零到一創新產品的誕生
1.1.1 點子發想
1.1.2 從點子到數位產品:將構想轉化為具體產品的關鍵步驟
1.1.3 支付系統的革新──從現金到掌紋支付
1.1.4 未經過足夠驗證與測試而失敗的案例──Make Renovation
1.2 從一到二 產品成長與優化
1.2.1 產品擴展與功能優化的策略
1.2.2 如何在競爭中保持領先優勢
1.3 A/B 測試 實驗精神驅動的產品進化
1.3.1 A/B 測試原理與實踐
1.4 跨國界的使用者研究與驗證
1.4.1 全球市場中使用者行為的多樣性分析
1.4.2 如何進行有效的跨文化用戶研究與驗證
1.4.3 有限的資源去做使用者研究
1.4.4 全球化產品設計的挑戰與機會
1.4.5 以開發埃及鈔票付費系統為案例
1.4.6 以了解韓國音樂流行文化為案例
1.4.7 總結
1.5 持續創新與成長 成熟產品的競爭優勢策略
1.5.1 發掘新市場需求,主動尋找成長機會
1.5.2 保持敏捷,透過持續迭代強化競爭力
1.5.3 建立實驗文化,讓「失敗」成為學習動力
1.5.4 促進跨部門協作,提升創新效率
1.5.5 培養成長型心態,讓創新成為團隊文化
1.5.6 結論:創新不只是一種策略,而是一種持續進化的能力
CH02 零基礎也能掌握的QA核心與實務技巧
鄒翔如
引言:測試的核心是理解與探索
2.1 朋友的求救電話:從一次測試任務說起
2.2 測試人員與實際使用者的差異
2.2.1 視角不同
2.2.2 角色對比
2.2.3 兩者都很重要,缺一不可
2.3 測試的核心精神
2.3.1 那麼,測試的核心精神究竟是什麼?
2.4 測試實踐中的常見誤區避坑指南
2.4.1 新手測試人員的常見誤區
2.4.2 進階測試技巧:提升測試品質的方法
2.5 跨產業經驗如何在測試領域靈活運用
2.5.1 製造業 vs. 電商:從供應鏈到庫存管理的測試連結
2.5.2 財務 vs. SaaS 企業系統:從會計報表到 SaaS 訂閱模式
2.5.3 HR 系統 vs. 企業內部管理系統:從員工薪資到績效評估
2.5.4 結論:跨領域測試經驗,讓測試人員更具價值
2.6 測試是一種洞察力與經驗的累積
CH03 有效管理軟體開發專案和品質
凃里俐 蘇瑞亨 吳龍紅 蔡育珊 劉建萍 張馨方 詹淳涵 涂富祥《叡揚資訊》
陳泉錫《前財稅資訊中心主任》
前言:透過專案管理及品管 賦予資訊系統生命力
3.1 軟體專案的關鍵成功因素
3.1.1 明確的目標及嚴謹的規劃,確保專案成功
3.1.2 促成不同領域的專家團隊合作
3.1.3 安排足夠人力與資源支持專案
3.1.4 勇敢面對風險並設法減緩
3.1.5 監控專案及提供清楚報告
3.2 委託方視角的委外專案成功策略
3.2.1 專案委外前的重要考量
3.2.2 需求管理機制
3.2.3 完整RFP應有框架
3.3 成功關鍵的專案管理方法
3.3.1 專案規劃與管理
3.3.2 軟體開發生命週期作法
3.3.3 專案控制及審查
3.3.4 PMO協助監督專案及推動管理機制
3.4 專案品質的驅動關鍵在於專案管理能力
3.4.1 品質目標的設定來自承諾
3.4.2 行動後學習AAR(After Action Review)
3.5 混合式專案管理(瀑布式+敏捷式)
3.5.1 敏捷開發方法用在雲服務與產品
3.5.2 合約約束的專案採用混合式
3.6 專案的挑戰與風險
3.6.1 緊迫的時程是最大的挑戰
3.6.2 挑戰來自於全新的技術和領域
3.6.3 關鍵成員異動帶來的挑戰
3.7 案例分享與學習
3.7.1 案例一:新舊系統轉換的典型挑戰
3.7.2 案例二:甲乙雙方關係不和諧且乙方人員異動
3.7.3 案例三:當流程再造與數位轉型碰上疫情
3.7.4 案例四:問題專案解決的心得與心法
3.8 結語
CH04 品質真的能被管理嗎?
江仁豪《OnedaySoftware軟體品質社群創辦人》
4.1 測試團隊的建設
4.1.1 在測試團隊建立之前
4.1.2 測試團隊的建設策略
4.1.3 TCoE 在敏捷團隊中的應用與挑戰
4.1.4 TCoE 的優勢與適應性調整
4.1.5 整合敏捷與TCoE 的理想模式
4.2 測試團隊的定位
4.2.1 測試團隊的戰略角色
4.3 品質管理系統
4.3.1 QMS 與最佳實踐
4.3.2 衡量和管理軟體品質的工具
4.4 品質指標與品質度量
4.4.1 品質指標
4.4.2 品質度量
4.4.3 品質指標與品質度量在軟體開發生命週期的應用
4.5 綜合應用:從指標到數據,從數據到決策
4.5.1 將品質指標與品質度量轉化為實際行動
4.5.2 結合品質管理系統與數據驅動決策
4.6 小結
CH05 品質與價值不可兼得?讓DevOps助你兩全其美!
陳正瑋《DevOps Taiwan Community & DevOpsDays Taipei Co-organizer》
前言
5.1 軟體品質不只是關乎於程式碼
5.1.1 我們交付的「軟體」包含什麼?
5.1.2 使用者認為的軟體品質問題?
5.1.3 任何的「變更」都會影響品質
5.2 DevOps與軟體品質
5.2.1 DevOps的全貌與現況
5.2.2 常見的DevOps實踐框架
5.2.3 常見的DevOps工程實踐
5.2.4 DevOps強化企業競爭力
5.3 DevOps案例分享
5.3.1 案例一
5.3.2 案例二
5.4 小結
CH06 被Sec攔腰折斷的DevSecOps?
盧建成《靖本行策 CPHT》
前言:從合作到衝突?
6.1 做安全vs.要安全
6.2 左移的困惑
6.2.1 什麼是左移?
6.2.2 一開始不就都有告知安全需求了嗎?
6.2.3 左移的挑戰
6.3 軟體生命週期內的安全活動
6.3.1 需求與設計
6.3.2 程式編寫
6.3.3 測試與交付
6.3.4 運行與維護
6.4 從現狀開始擁抱DevSecOps
6.4.1 評估現狀
6.4.2 工具和技術的選擇
6.4.3 規劃過渡時期
6.4.4 標準化與持續改善
6.5 結語和回顧
CH07 資安人才養成地圖與基礎實戰技能
郭榮智 王凱慶《中華資安國際股份有限公司》
前言:踏上資安的旅途
7.1 資安人才培育
7.1.1 各國資安計畫與框架
7.1.2 台灣資安人才職能地圖
7.1.3 資安職能分析與證照
7.1.4 資安證照地圖
7.1.5 業界職缺
7.2 建立實戰技能與基礎知識
7.2.1 如何開始學習資安技能
7.2.2 什麼是 CTF(Capture The Flag)
7.2.3 如何透過 CTF 進行學習
7.3 透過 CTF 進行學習的實際範例
7.3.1 平台介紹
7.3.2 以 PsucheLion 為例
7.3.3 透過變形題目進行驗證
7.4 學習資源與社群
7.4.1 Hack The Box(HTB)
7.4.2 TryHackMe
7.5 結語
CH08 從測試探索Web Services可靠性設計
黃冠元《技術部落格Complete Think》
前言
8.1 定義可靠性
8.1.1 對象
8.1.2 定義範圍
8.1.3 系統分層
8.1.4 小結
8.2 測試可靠性系統:案例分析
8.2.1 產品規格與目標
8.2.2 應用程式輪廓
8.2.3 初次的量測
8.2.4 效能調教與再次量測
8.2.5 重新思考:RPS=1
8.2.6 探索極限:FileSize=1GiB
8.2.7 重新思考:系統可靠性與產品規格
8.2.8 修正後產品規格與設計
8.2.9 小結
8.3 總結
CH09 生成式AI改變傳統的測試流程
郁家豪《Appier沛星互動科技股份有限公司》
前言:生成式AI為QA帶來的新機遇
9.1 探索人工智慧創造力:生成式AI工具概述
9.1.1 生成式AI的發展歷程
9.2 生成式AI在QA領域的應用
9.2.1 生成式AI在QA領域中的主要應用
9.2.2 生成式AI提升QA效率的方式
9.3 在本地端運行生成式AI:Edge AI
9.3.1 在本地端運行Edge AI
9.3.2 LM Studio
9.3.3 Open WebUI + Ollama
9.4 在本地端運行Edge AI:自動補齊程式碼
9.4.1 Edge AI:自動補齊程式碼
9.5 總結
CH10 大語言模型應用程式安全實務:提示注入攻擊和防禦手法
蔡凱翔 徐亨《趨勢科技》
前言
10.1 大型語言模型演進與技術革新
10.1.1 大型語言模型應用程式發展生命週期(LLMOps)
10.1.2 大型語言模型安全威脅概述
10.2 提示注入攻擊:潛藏在大語言模型中的致命漏洞
10.2.1 何謂提示注入
10.2.2 有哪些類型的提示注入
10.2.3 真實案例
10.2.4 如何防範提示注入
10.3 結論
10.3.1 確保大型語言模型安全的關鍵實務
10.3.2 對企業的重要性與未來的戰略佈局
白話一點來說,「軟體工程」其實就是軟體仔仔們日常工作中所有的大小事。而每天在職場上聽到的各種「靠北聲量」,某種程度上正是在反映這些事做得好不好(Inspired by Martin, 2008)。至於我們常聽到的「軟體品質特性」(像是 ISO/IEC 25010),可以被視為這些聲量的專業術語。換句話說,軟體品質正是軟體工程活動的「後果」。因此,透過這本書的書名,我想傳達一個概念:從「後果」(也就是軟體品質)的思維出發,去呼應讀者在工作場域中的痛點,進而激發閱讀動機、強化學習效果。
「成功案例」是這一系列專書的核心精神。我想藉此強調一個觀念:軟體工程活動經常牽涉「人」、「流程」、「工具/技術」與「組織文化」等面向,而這些因素在不同公司、團隊或專案間差異極大,並不像數學或演算法那樣容易被通用化(generalized)直接套用。簡而言之,一個軟體工程方法在特定場域中可能特別奏效,獲得高度共鳴,但這並不代表所有不同組織或團隊都應將其視為通用準則。每個團隊所處的環境與需求各有不同,「在你的場域有效,不代表在我的場域也適用」的情況時常發生。這也是為什麼在較為嚴謹的軟體工程研究中,常會針對 external validity(外部效度)進行審慎的討論與說明。在這樣的前提下,軟體工程領域中的「成功案例(在此書中即為每個專章)」顯得特別珍貴。它們可以成為我們在各自不同軟體發展環境中做決策的重要參考,讓我們得以站在他人經驗的基礎上反思自我處境,調整出適合自己場域的策略、降低試錯風險。
最後,我要誠摯感謝每位專章作者在百忙中抽空撰寫此書,也感謝各位主管的全力支持。更要特別感謝博碩出版社,以及小編Abby與Cathy,你們在編輯上的用心與細緻實在令我敬佩。最後,也感謝您願意撥冗閱讀這本書,相信它一定能為您帶來不少啟發與收穫。
主編 李信杰
國立成功大學資訊工程學系副教授