Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
軟體品質與持續整合
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
SJ Chou
April 28, 2015
Technology
120
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
軟體品質與持續整合
軟體品質與持續整合
SJ Chou
April 28, 2015
More Decks by SJ Chou
See All by SJ Chou
LangChain Framework 與 RAG 實做教學
samejack
1
19
LLM RAG 擷取增強生成介紹 - 3 種 RAG/Self-RAG/CRAG 全解析
samejack
1
130
NVIDIA Omniverse Kit Introduction
samejack
1
95
用 Keras 玩 Machine Learning
samejack
1
170
2020 MLaaS 產業介紹
samejack
1
99
Linux Container Introduction
samejack
1
57
Cloud Foundry Introduction
samejack
1
93
WordPress Blog SEO 兩三事
samejack
1
87
小猴子也會的 Ubuntu Desktop 14.04 安裝教學
samejack
1
130
Other Decks in Technology
See All in Technology
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
9
560
GoとSIMDとWasmの今。
askua
3
520
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
53
59k
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
3.8k
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
280
MCP Appsを作ってみよう
iwamot
PRO
4
350
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
160
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
8
4.4k
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
330
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
180
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
2
160
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
110
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
610
Six Lessons from altMBA
skipperchong
29
4.3k
How to Talk to Developers About Accessibility
jct
2
230
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Transcript
軟體品質與持續整合 Software Quality & Continuous Integration
[email protected]
http://blog.toright.com 2014/12/25
持續整合 Continuous Integration 敏捷開發方法論 其中的武功招式之一
Why ? 想解決什問題...
希望能掌握軟體開發節奏 說好的 Feature 與 Deadline 呢?
開發節奏 Tempo of Development 程式設計師想踏實地寫程式 專案經理想確實地掌握時程 組織想降低成本與開發風險 客戶想拿到品質優良的產品 !?
回顧一下歷史的眼淚先... A Story of Integration Hell
悲劇的初章 PM:各位,明天新功能要上線囉! RD 甲:我負責的功能早完成了! RD 乙:我快完成了,剩下的 Bug 今晚可以搞定。 QA 甲:現在測試狀況還可以,剩下一些
Bug 等著修。 QA 乙:系統怪怪的,總覺的哪裡不對勁... PM:不要緊,大家晚上加個班,讓我們一起迎接明日黎 明的勝利!
黎明的前夕 RD • 處理惱人的程式碼衝突 • 忙著修正系統自動產生的 Bug !? • 執行環境差異太大
• 整合測試出現奇妙的錯誤 (我的電 腦明明正常啊) • 開始用一些所謂「快」的方法解決 問題 (你懂der) QA • 壞的功能貌似修好了 • 原本好的功能變得怪怪的 • 永遠沒有最終版 • 時間緊迫根本測不完 PM • 有時暴跳如雷 (Bug 如雪花般的飛來) • 有時安靜的像隻貓 (禱告中...) • 去全聯買「乖乖」
黎明到來 Bug 已經修正 (隱藏/規避),系統整合後 運作起來還算正常,終於可以上線了!
新功能啟用 大量使用者湧入使用 團隊忐忑不安的心情
PM 正準備吹起勝利的號角 ...
系統炸了,歷史悲劇再度上演!
這故事各位是否熟悉?
面對軟體開發的複雜性 漸漸由 病 轉變為 疾
回到「持續整合」 先從字面上解釋!
持續 整合 不間斷、不停地、一直、有事沒事就做一下
持續 整合 把大家寫的 Code 在一起跑看看有沒有錯!
持續 + 整合 就是 有事沒事就把大家寫的 Code 在一起跑看看有 沒有錯!
持續整合生命週期 Start … End 等同整個軟體生命週期!
結論 持續整合的目的在於掌握軟體開發節奏
How ? 該怎麼做...
有事沒事就把大家寫的 Code 在一起跑看看 有沒有錯! 就是「自動化」!
假自動化 vs 真自動化
假自動化 (半自動 / 手動)
人有失蹄、馬有失足 不管多細心,只要是人做的都會錯!
真自動化才是王道!
天下武功、無堅不摧,為快不破!
自動化的好處 快 執行成本低 錯誤機會低
實行自動化的痛 不知道怎自動化 不容易自動化 沒辦法自動化 自動化過程耗費高成本
如果沒辦法全面自動化呢? 那就盡可能自動化吧!
有事沒事就把大家寫的 Code 在一起跑看看 有沒有錯! 這不就是「版本控制」嗎!?
版本控制系統 Version Control System Git, SVN, CVS...
有事沒事就把大家寫的 Code 在一起跑看看 有沒有錯! 這不就是「系統測試」嗎!?
測試模式 Unit Test、Function Test、Monkey Test、UI Test… 不管黑箱還是白箱,可以自動測的都是好箱!
測試到底該測些什麼? • 對的要對 • 錯的要錯 • 錯的不能對 • 對的不能錯
撰寫自動化測試 最大的問題是? 既有的程式架構根本很難寫測試!
測試驅動開發 TDD, Test-driven development 不寫測試不寫程式 沒有通過測試的程式不是程式
不要迷戀哥(TDD),哥只是個傳說! 有時開發模式的核心不是在實踐,而是在目的!
透過認識方法論,找出適合手段! 透過測試先行幫助思考,進而改善軟體架構、實作與設計...
明明有了測試,怎麼還是錯了? 根本沒測到 (覆蓋率不足) 程式寫錯、測試也剛好寫錯
先別說這個了,你聽過「系統反饋」嗎? 什麼鬼?
系統反饋 System Feedback 如果你傷害它,它就會喊痛!
反饋的喜悅
每日建置 Nightly Build 每晚自動抓最新的程式碼,嘗試進行編譯、封裝、 佈署、測試、建立報告...最後獲得系統反饋
自動化 + 測試 + 系統反饋 持續整合的核心價值!
What ? 實踐...
持續整合系統 Continuous Integration System
今天不介紹 詳細安裝與設定請與我聯繫...
Pull Code Syntax & Coding Style Check JS / CSS
Compress Make Source Map Pack Depoly Generate Document Unit Test Function Test Release Tag Report (Notification)
每件事物都有適合自己的持續整合流程 請試著找出屬於自己的整合流程
請保持心中的信念 我們需要義無反顧的勇氣
對航海的人來說,擱淺的船舶就是燈塔。 [荷蘭諺語] 最後...
Thanks!!
[email protected]
http://blog.toright.com