Re: [心得] 為什麼軟體開發者需要在意軟體品質指標

看板Soft_Job作者 (十三夜)時間12年前 (2012/05/29 18:16), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串19/20 (看更多)
恩...小PG也來分享下經驗 先回到主題 為什麼軟體開發者需要在意軟體品質指標? 有些情況就像是前面有人說的 程式都寫不完 哪來時間寫測試? 人一批一批換 程式品質能多好? 我稍為了解過一些公司的做法 傳產 金融業 公家機關 外商 在加做專案經驗 這邊提出點想法 為何要提升我的軟體品質 我想v&v離我太遠 不是我能管的領域 先回頭看一些方法 參考版友derekhsu在[心得] 軟體測試自動化 分享的資訊 自動測試:Automation Test,採用電腦自動執行Test Case中的Step。 人工測試:Manual Test,採用人力執行Test Case中的Step 隨意測試:Ad-hoc Test,在沒有Test Case的情況下人工亂打。 單元測試:Unit Test,程式碼層級的測試,主要透過Unit Test Program自動完成。 理想的Unit Test應該能夠去除類別之間的Dependency. 這四種我根據我的了解 說說我看到的做法 1.寫台灣某家大超商的後端, 無資料庫使用VB.NET, 他們寫AP做檢測用的是Manual Test. PG寫完程式以後, 接著寫Test Case, 雖然想代入Unit Test 不過看來因為客制化太嚴重, 流程跟需求看起來都失控了, 我感覺是只能土法煉鋼慢慢在錯誤中探索正確的資料, 最後總有天做的出來的.(?) 2.做網站專案的時候, 使用C#.NET MVC, 公司採用的是Ad-hoc Test, 這項工作被交給企畫負責, 然後有問題再來請工程師處理, 企畫亂槍打鳥, 工程師見一個改一個. 然後因為品質參差不齊, 加設計上有問題, 而且還超趕時間, 一整個就是災難, 企畫說她的生命都浪費在Ad-hoc Test上面, 部分工程師也不夠了解整個案子, 自然整個案子的品質就好不起來. P.S. 其實本來企畫做的可以算是Manual Test, 有流程有錄影, 沒正式文件而已. 只是錯誤太多, 到最後測不完就變成Ad-hoc Test. 題外話, 最後趕出來功勞算在PM跟業務頭上, 有問題又怪PG, 超@#!%$#, 不過習慣就好, 專案公司常常這樣. 3.這是在一家Y外商的學習經驗, 使用PHP, 寫好的程式碼要求都要做Unit Test, 然後在CI的時候會做Automation Test, Automation Test必須在10分鐘內跑完, 當出問題的時立即通知上傳code的人做處理. 有一些舊的code其實很難做Unit Test, 早期設計的時候就沒想到, 所以要補上其實蠻困難的, 所以舊的部分只要求Unit Test的Code Coverage 80%. 工程師負責Unit Test, QA負責Test Case, 最後再給企畫試用. 目前學到的成功的經驗是第三項, 畢竟是大公司, 流程跟做法非常完善. 需求與流程都不會失控, 感覺有20%以上成本在檢測的部分. 現在回到前面的第二個例子, 假設我在做一個案子, 如何保持我的軟體品質? 能為我帶來甚麼好處? 我要做Automation Test, 我需要付出的是 1.寫Unit Test的時間 2.建立Automation Test的時間 3.學習寫出可測試程式碼的時間 我能獲得的是 1.程式碼的自動檢測, 有depend的library都可以立刻發現問題. 2.可省下Ad-hoc Test大部分的時間, 可以不用同樣錯誤一測在測. 3.Automation Test的數據可以避免掉很多爭論. 4.不同的PG接手可以更容易發現問題. 以我的評估來說 在第一次做Automation Test, 付出的有可能比獲得的多一些. 當案子越大的時候效果越好. 第二個案子, 第三個案子以後, 付出的成本會越來越少. 而當你的軟體品質好的時候, 後續不只省下了多餘成本, 更獲得了信任, 不論是對企畫, 老闆, 客戶, 甚至對你自己都一樣. P.S. 當然也有可能你付出人力, 省下的成本被算在企畫跟PM身上, 然後被老闆抱怨浪費PG部門人力, 叫你多跟其他部門學習 這種事情應該蠻常見的. 本來還想示範下如何在PHP MVC概念下寫Unit Test, 之前都在想怎麼寫才能漂亮的切開Model跟Control, 畢竟還沒學到高手的做法, 而且不自己寫過是不會有深刻了解的. 雖然有些構想, 不過怕有點偏離主題就不說了. -- 最喜歡的一句話是? 世界和平 最尊敬的人是? 德蕾莎修女 請說一句話。 大家都要幸福喔~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.89.121.16 ※ 編輯: lance70176 來自: 202.89.121.16 (05/29 18:17) ※ 編輯: lance70176 來自: 202.89.121.16 (05/29 18:17)

04/20 16:12, , 1F
推~~
04/20 16:12, 1F
文章代碼(AID): #1FnA81Ny (Soft_Job)
討論串 (同標題文章)
完整討論串 (本文為第 19 之 20 篇):
文章代碼(AID): #1FnA81Ny (Soft_Job)