Re: [討論] 工作上寫單元測試的比例
※ 引述《chopinmozart (aha)》之銘言:
: 想請問一下
: 大家工作上寫單元測試的情況
: 1.大部分寫完一個功能, 就馬上完成單元測試
: 2.先把該做的功能寫完, 再回來統一寫單元測試
: 3.不怎麼寫單元測試
: 想請問大家工作實際情況大概是哪一種QQ
原則上要寫測試的話我會用很古老的 TDD 的方式做,先寫測試之後再寫實作。
現在的話則是寫完測試之後 Copilot 就幫我寫完一半了,然後就開始 review copilot
的 code 了。
目前經驗上能不能寫測試的話我認為有三個維度會是主要影響關鍵,提供參考:
1. 文件是否齊全
2. 設計是否經常變動
3. 該功能會被是否不容易被其他方式偵測錯誤
文件是否齊全應該是主要的關鍵,如果前面沒有文件的話搞不好測試本身就是錯的了。
齊全的文件像是 json.org 的 json 格式
不齊全的像是 PM 要求要有使用者登入功能,但是沒有說清楚是 username, email 或是電話號碼,電話號碼可不可以有加號,密碼有沒有長度限制。
設計是否經常變動也是重要的主要關鍵,因為變動就有可能增加意外(人為失誤)
像是財政部電子發票交換格式可能幾年變動一次文件又明確的話就可以寫測試
如果說是一次下要求密碼8碼然後下個 Sprint 又變成 12 碼,然後再下個 Sprint
又說十碼就夠了,這時候測試就容易出包,或者是要思考是不是修改架構,讓使用者
密碼長度可以自由設定,驗證條件多加入讓管理者自訂密碼長度這樣。
再來是否會被其他方式偵測錯誤我認為是現況下很多程式不做測試也可以用的原因
因為使用者會幫忙做測試,所以造成某些容易發生的問題自然就容易被發現找到,同時
如果該問題損害低的話,那麼就期望值而言也許損失期望值會大於寫測試的成本。
舉例來說,如果是比較少出現的設計,例如錯誤處理,就會比較建議測試,因為後面的
QA 漏測的機率比較大,如果是比較多人常用的部分,例如正常登入,再後續測試通常
能抓到,在寫測試的優先順序可能就會往後。
我想這應該是 pttbbs 的程式碼基本上都沒測試但是還是活得好好的原因吧?
---
另外流程是否文件化或是測試程式碼的數量有的時候其實是管理層責任,畢竟大腦判斷
某項細節不重要就有可能忘記,所以以前某段程式碼怎麼寫的即使是作者本人也有可能
不記得,更不用說人員流動離職交接的狀況了。
大量沒有測試(或是文件)的程式碼造成的問題基本上就是程式碼變動的成本會隨系統
架構呈現指數上升。本來要在五行裡面來回測試哪一行有問題,變成在一百行裡面找出
哪一行有問題。
--
人紅是非多,活益比非多。
--
41
首Po想請問一下 大家工作上寫單元測試的情況 1.大部分寫完一個功能, 就馬上完成單元測試 2.先把該做的功能寫完, 再回來統一寫單元測試 3.不怎麼寫單元測試5
你講的三種我都做過,還有第四種:TDD 1. TAD,講白了就是先射箭再畫靶,如果你箭射對了那當然沒問題 但如果你一開始就射錯了還忘記拔出來,就是無效的測試 2. 同樣也是TAD,這個是我們被要求做的,code不是我們寫的、但我 們要幫其他team補測試。我主管也覺得很奇怪、我也覺得很奇怪,3
我覺得命題不是寫/不寫。 真的該問的是,工作上 reviewer 也好、或者是開發流程也好, 有沒有辦法【正常的判斷】 test 是不是寫對的。 XD 起碼是 team 能有一定認同的前提。 其實最後都回到 quality check,不然只是繞圈圈而已。 XD17
我想補一個情境 當到新公司或轉到新單位時 發現沒有在做unit test 此時身經百戰寫過上千次unit test的你 會選擇憑一己之力6
底下這是比較「野性」」的作法,算是實務專案的經驗: 其實我覺得你到一個完全沒有測試的專案,要分兩個策略: 1. 補重要主線的 integration test 反正哪邊常被報修就補哪邊。 如果一開始補不上去就先做下一點,理論上常被報修的地方會一直出現在下一點, 累積多了就可以變成1了。1
先說我不是故意要回兩篇, 但剛看到 landlord (就 joey chen, 江湖名 91) 在 FB 的回應,我覺得也蠻好的, 他說他最近在忙沒空過來,我問過他之後幫他轉過來。 以下基本上逐字照轉 (source from )2
因為大家的討論都很基於心法 實作上相對很模糊 利用這個機會也跟大家請教實作上的方式 因為最近工作被指派要針對公司產品的程式做整理,其實運作都還好 只是大家功能是一層疊一層,一堆巢狀邏輯,跟依賴中的依賴7
ㄅ是啊,你應該是先有需求才有測試, 通常是先假設已經在線上的已經經過線上考驗。 如果沒有這種需求,你根本就不應該整理。 我個人認為任何在沒有需求的前提下情況下整理程式碼, 是一個浪費自己時間又沒意義的行為。16
分享最近遇到的鬼故事 當初開發完A功能後有順手寫了UT確保該功能基本能動 後來有同事在開發B功能時把他的B功能加進去我的UT default flow內 也沒有請我code review 導致我在跑UT時發現不預期的行為
52
Re: [問題] 遊戲試玩員是不是很爽?小弟進入遊戲業的第一份工作剛好就是遊戲測試工讀生, 當時,很多人聽到我工作是遊戲工讀生時,都會說:好爽喔,玩遊戲還有錢拿, 但實際真的沒有大家想像地那麼開心,讓我來分享一下QA部門的日常。 1. 首先,一般玩家玩到的是已經完成的遊戲,33
[請益] 新鮮人offer請益兩個職位都各有優缺點,想來板上請教看看大家的意見,謝謝大家的幫忙。 原Po是第一份工作,四大資管碩畢 1.台積 工時:08:30-19:30 薪資:N*14+分紅 (租屋)24
重構的幾個迷思覺得最近很多文章都有些不求甚解的問題,來寫點論述。 1. 重構不是什麼了不起的事情 2. 變更程式碼,重寫舊的程式碼成自己爽的樣子,不一定是重構。 3. 重構是一種相對安全的工具型開發方法論, 但仍然有不少風險跟誘惑。X
[心得] 實在是難以想像的公司從公司登出了,可以分享一下一些非常荒謬的事情 整個研發團隊全部離職,第一次看過這種景象 1. 老闆莫名找來的顧問 一個超過70歲的顧問,整天就是對公司員工指手劃腳,但全部是廢話 經典廢話加上腦殘事蹟如下:18
Re: [心得] 我在科技業遇到的鬼故事之一單純經驗交流一下 我遇到正常的軟體UT與品質驗證流程吧: 1.開發者寫完程式碼與UT。 2.在自己電腦上跑UT。 在自己電腦上跑UT,是部門不認的UT。15
[請益] 台積/訊連offer請益兩個職位都各有優缺點,想來板上請教看看大家的意見,謝謝大家的幫忙。 原Po是第一份工作,四大資管碩畢 1.台積 工時:08:30-19:30 薪資:N*14+分紅 (租屋)6
Re: [問卦] 寫程式的基本功是什麼?寫程式的基本功是寫測試 再好的程式碼如果沒有寫測試保護,就有機會在上線才知道程式碼被改壞掉。 平常有在寫測試的人,寫的程式碼也好讀很多,因為把程式碼寫太難會很難寫測試 --5
Re: [請益] 如何當軟體QA??測試其實很多概念 難度其實不一定低於RD 首先來講講環境 DevOps之所以出現 最主要就是解決環境差異造成的問題