好的軟件少不了測試?

閱讀時間約 5 分鐘

tl;dr, 沒有測試談不上好軟件!


軟件編碼的質素和一間公司發展的關係,在之前的文章《Code 寫得好對公司有用嗎?》已有討論,那麼有什麼因素會左右編碼的質素?其中一樣就是軟件測試。
軟件測試(Software testing),指的是透過測試以作鑑定軟件的品質,及早找出軟件中的程式錯漏,並驗證軟件是否適合使用。軟件測試主要以運行軟件的某部分元件,評估該部分是否正常運作或合乎一些基本標準,如:
- 符合軟件設計及開發要求;
- 正確地回應各類型的輸入;
- 在可接受的時間內執行所需功能;
- 軟件功能可使用度高;
- 可以在預期的環境中安裝和運行;
- 可以達到持份者期望的總體結果;

每一個軟件中的元件,理論上都可以有無窮盡可行的測試,但資源並非無限.。所以實際上,軟件測試會傾向有策略地利用現有的時間及資源,去選擇一些比較有價值的可行測試,從而去嘗試運行該軟件並找出程式的錯漏。
不少軟件公司都會聘請專責品質保證 ( Quality Assurance,縮寫為 QA ) 的員工,在軟件推出之前進行一系列的人手測試。不過,這種比較傳統的測試方法往往有不少問題。

一是若果軟件本身規模大的時候,開發一方就要投放比較多的人力資源,以作出較快而全面的測試;而當每一個程式錯漏出現,品質保證人員和開發人員都必須一一檢視。
二是因為每一次重大的軟件更新,都必須經過全面的測試,才能確保軟件沒有因為更新期間編碼上的改動而產生紕漏,結果往往花費很多時間才能將新的版本推出。

近年DevOps的出現,就嘗試解決QA的工序冗長問題。在DevOps的環境下,開發人員 (Dev)、技術運營(Ops)和品質保證並非各自運行,而是傾向在每一次程式發布都有緊密合作。DevOps 希望藉著採用敏捷(Agile)般的開發方式,減少每一次編碼的變更範圍,使得每次部署不會對軟件生產系統造成巨大影響,軟件得以平滑的速率逐漸生長。開發人員亦使用各種自動化的測試,配合持續交付( Continuous delivery,縮寫為 CD)和持續整合( Continuous integration,縮寫為 CI),確保軟件本身不受編碼改動影響之餘,亦能將QA繁瑣重複的工作分攤, 減少每次部署出錯。
以下三種測試是軟件開發中經常利用到的自動測試模式,包括:
  1. 單元測試 Unit test,是針對軟件組成的元件進行測試,其目的在於檢驗軟件基本組成單位是否正常運作。
  2. 整合測試 Integration test,是將程式模組採用適當的整合組裝,並對系統的介面及整合後的功能進行測試,其目的在於檢查軟件單位之間的介面是否運作正常。
  3. 功能測試 Functional test,是針對軟件功能進行測試,其目的在於檢驗軟件是否正常運作,並是否實現業務上的要求。
單元測試的好處在於能在很早期的開發階段就能夠發現問題。它能夠將其所針對的元件中從整個軟件架構分離,並提供嚴謹的測試以確保該元件運作正常。開發人員能夠利用單元測試,在編碼的層面上自動測試每個單元最基本的功能,而毋須品質保證的人員親自檢驗。
而基於這種由下而上的結構,各個元件已經經過單元測試,而系統就能夠透過整合測試去專注檢驗元件之間是否正常運作,而功能測試則能在各部件間得以確保有效整合之下,集中在用家的層面測試軟件是否符合原有的軟件設計。
這三種測試在開發的不同時段都各有需求:
  1. 當軟件進行開發時,測試主要為了配合開發人員工作,盡快從系統得到回饋,所以多以單元測試為主;
  2. 在預備環境,這階段主要偵測問題,如問題發生,則停止軟件部署。通常所有測試皆符合此階段;
  3. 在生產環境,主要會運行如冒煙測試(smoke test)等比較快速的功能測試,在有限的時間內廣泛涵蓋測試軟件的主要功能。
所以我們可以說,雖然編寫測試所花費的時間不短,但對於持續開發來說,確是能夠透過預防因為編碼改動而產生的問題,來減輕長遠的技術債項,加快開發的速度,大大減輕開發的成本。

更多資訊可以留意 ONES Publication 定期發佈的文章,亦可以聯絡我們,我們的網址是: https://ones.software
We share what we have learned about app and web development. Find us in ones.software. Email: hello@ones.software
聯絡我們:
電郵地址: hello@ones.software
Contact us:
Email address: hello@ones.software

Reference:
https://juejin.im/entry/584ab2dc128fe1006c7cdc11
https://medium.com/@frozenfung/unit-test-%E8%88%87-integration-test-%E6%A6%82%E8%AB%96-41b39f0f823
https://zh.wikipedia.org/wiki/%E5%86%92%E7%83%9F%E6%B5%8B%E8%AF%95_(%E8%BD%AF%E4%BB%B6)
為什麼會看到廣告
通過 Offision 立即提高您的辦公績效!免費試用! 無需信用卡 即開即用
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
相比傳統軟件一次收費或定期訂閱收費,開源軟件走的是截然不同的方向,而明顯的是,不同商業巨頭亦開始樂意走進這條新路。
如果有接觸過網頁開發的讀者,或者會聽過很多不同的專有名詞,其中不少得Front-end (前端) 和 Back-end (後端)這兩個字詞。有一些網站可能只需要設計師和前端開發者,有些則需要後端開發者和測試人員等等,那究竟前端和後端如何分辨?首先,讓我們搞清楚前端開發是什麼一回事。
「究竟應該花多點時間去寫好編碼,還是應該快快寫好新的功能,往後才改善編碼的質素」,雖然大家心裏面都希望花時間寫好每一個功能的編碼,但面對開發時間永遠不足、上司的壓力,很多時就會無視編碼的質素,來成就新功能/新產品可以及早推出。我們怎麼說服你自己、你的上司一開始的編碼質素是何其重要?
在現今的商業世界,軟件是企業營運中不可缺少的部份。要決定您的企業是否購買現成的軟件,還是自行開發一套軟件,這可能是一項艱鉅的決定:自行開發一套軟件相對昂貴,但現成的軟件卻缺乏彈性。但為什麼還會有企業自行開發軟件?
軟件可以即要即用?企業級軟件訂閲服務 (SaaS) 開發 - 系統架構篇:Single tenancy (單一租戶模式) 和 Multi tenancy (多租戶模式) 歡迎聯絡我們: http://ones.software
相比傳統軟件一次收費或定期訂閱收費,開源軟件走的是截然不同的方向,而明顯的是,不同商業巨頭亦開始樂意走進這條新路。
如果有接觸過網頁開發的讀者,或者會聽過很多不同的專有名詞,其中不少得Front-end (前端) 和 Back-end (後端)這兩個字詞。有一些網站可能只需要設計師和前端開發者,有些則需要後端開發者和測試人員等等,那究竟前端和後端如何分辨?首先,讓我們搞清楚前端開發是什麼一回事。
「究竟應該花多點時間去寫好編碼,還是應該快快寫好新的功能,往後才改善編碼的質素」,雖然大家心裏面都希望花時間寫好每一個功能的編碼,但面對開發時間永遠不足、上司的壓力,很多時就會無視編碼的質素,來成就新功能/新產品可以及早推出。我們怎麼說服你自己、你的上司一開始的編碼質素是何其重要?
在現今的商業世界,軟件是企業營運中不可缺少的部份。要決定您的企業是否購買現成的軟件,還是自行開發一套軟件,這可能是一項艱鉅的決定:自行開發一套軟件相對昂貴,但現成的軟件卻缺乏彈性。但為什麼還會有企業自行開發軟件?
軟件可以即要即用?企業級軟件訂閲服務 (SaaS) 開發 - 系統架構篇:Single tenancy (單一租戶模式) 和 Multi tenancy (多租戶模式) 歡迎聯絡我們: http://ones.software
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
純白細緻,軟Q卻彈力十足,還沒入口就引人遐想。串在長叉尾端,高懸在火焰上方十公分處,烤棉花糖的姿勢彷若老僧的垂釣,只不過釣的是口水直流的期待。
Thumbnail
也許我們應該想的不是「自己準備好了沒有?」而是對任何事都充滿好奇、勇於嘗試,並且不斷累積自己的經驗值,你也許不會有大鳴大放的機會,但肯定可以發掘許多未知的自己,進而展開屬於你人生。
Thumbnail
在诗人顾城的《一代人》有着这样一句经典语句“黑夜给了我黑色的眼睛,我却用它寻找光明”,这里光明可以是很多,比如你我的理想世界... ... 在生活中,我们无时无刻不在使用眼睛,尤其是在进行脑力劳动的时候,眼睛一直都是我们的绝佳“伙伴”——从读书看书到写作,眼睛从未离开过。 干货分享 既然眼睛对我们
Thumbnail
香港學生普遍面對三大「懼怕」。 學業方面的「四大試」——分班試、呈分試、面試、文憑試。 背負父母的期望——若自己的表現與父母的期望有所落差時,就會覺得自己辜負家人而感自責。 朋輩間的人際關係——孩子間會因為青春期的身心變化、學業成績、社經地位等互相比較,甚至因而出現一些取笑或作弄同儕
Thumbnail
一段不開心過去,時而結痂、時而流血, 我曾想過這是一個好不了的傷...... 這傷深藏在於心底,卻時不時提醒著我那痛的感覺,當我一不小心觸碰時,我的不安、難過和氣憤常常一擁而上,我常想著為什麼當初受傷的是我,而直到現在飽受折磨也是我...
Thumbnail
     那年,是我第二年踏上教師甄試。在桃園的這場,是我當年度的最後一場考試。如果沒有考上,今年的戰役就會在此止步。  在考前,我已經想過無數次,如果我沒有考上,我要做什麼?我打算當個職業考生,畢竟同時代課及念書,新手教師上路,白天的工作就已耗費我大部分的心力,晚上念書時,確實讓人有點「心有餘而
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
純白細緻,軟Q卻彈力十足,還沒入口就引人遐想。串在長叉尾端,高懸在火焰上方十公分處,烤棉花糖的姿勢彷若老僧的垂釣,只不過釣的是口水直流的期待。
Thumbnail
也許我們應該想的不是「自己準備好了沒有?」而是對任何事都充滿好奇、勇於嘗試,並且不斷累積自己的經驗值,你也許不會有大鳴大放的機會,但肯定可以發掘許多未知的自己,進而展開屬於你人生。
Thumbnail
在诗人顾城的《一代人》有着这样一句经典语句“黑夜给了我黑色的眼睛,我却用它寻找光明”,这里光明可以是很多,比如你我的理想世界... ... 在生活中,我们无时无刻不在使用眼睛,尤其是在进行脑力劳动的时候,眼睛一直都是我们的绝佳“伙伴”——从读书看书到写作,眼睛从未离开过。 干货分享 既然眼睛对我们
Thumbnail
香港學生普遍面對三大「懼怕」。 學業方面的「四大試」——分班試、呈分試、面試、文憑試。 背負父母的期望——若自己的表現與父母的期望有所落差時,就會覺得自己辜負家人而感自責。 朋輩間的人際關係——孩子間會因為青春期的身心變化、學業成績、社經地位等互相比較,甚至因而出現一些取笑或作弄同儕
Thumbnail
一段不開心過去,時而結痂、時而流血, 我曾想過這是一個好不了的傷...... 這傷深藏在於心底,卻時不時提醒著我那痛的感覺,當我一不小心觸碰時,我的不安、難過和氣憤常常一擁而上,我常想著為什麼當初受傷的是我,而直到現在飽受折磨也是我...
Thumbnail
     那年,是我第二年踏上教師甄試。在桃園的這場,是我當年度的最後一場考試。如果沒有考上,今年的戰役就會在此止步。  在考前,我已經想過無數次,如果我沒有考上,我要做什麼?我打算當個職業考生,畢竟同時代課及念書,新手教師上路,白天的工作就已耗費我大部分的心力,晚上念書時,確實讓人有點「心有餘而