Re: [請益] 各位公司都怎麼去做軟體測試的阿?

看板Soft_Job作者 (自立而後立人。)時間14年前 (2012/01/09 00:35), 編輯推噓0(0024)
留言24則, 3人參與, 最新討論串6/8 (看更多)
寫一下幾點對測試的看法 (特別注意,測試只是QA的一環...) 請先參考 #1DqFRBDw (Soft_Job) [ptt.cc] [轉錄] 開發人員的測試悖論 這整串都蠻有參考價值的 基本上測試本身是一個很大的主題, 從組織上: 測試跟 RD 權力位階怎麼分配? 管理上: 測試何時進行 由誰進行 測試用的 use-case 由誰擬定 方法上: 不同語言/平台/環境有不同測試工具, 也有不同的限制。 所以測試是很難一篇文章涵蓋周全的東西。 ----------------------------------- 以下這邊算是我個人的經驗談,沒什麼學術佐證也不保證對,就是談談。 測試人員跟開發人員怎麼合作是一個大哉問。 有的單位是開發人員完全不管code會不會動, 寫完直接扔給QA確認,一個一個bug解。 有的單位是開發人員自己要想辦法找出所有 bug , 出到QA那邊被找到bug要扣績效。 這些合作模式哪個是對的並沒有定論,每個模式下也可以延伸出不同生態。 我採取的看法是開發者需要負擔一部分的測試責任, 而 QA 則也負擔另一部份的測試責任。 我自己認為應該由開發者進行的測試應該是 1.開發人員自己要對自己的 code 有經由測試而獲得的基本信心, 就是你送code出去時至少要有六成以上的把握,不能看都不看就扔出去。 對 unit test 等測試工具要有基本的概念, 能在不妨礙開發進度又評估能因此節省時間的狀況下, 使用測試工具進行基本的自動化測試。 自動化測試跟人腦測試最大的優點在於電腦效率比較好, 而且他不會一時恍神就出鎚,可以很忠實的呈現結果,不因狀態而影響。 但缺點是太一板一眼,有些bug還是要自己點過才看的出來。 對RD 開發過程我覺得,主要是手工為主,測試工具為輔, 不要為了測試而測試,確實掌握測試工具並且能節省時間再用。 像一些複雜難以用腦袋反覆驗證,但卻需要一直修改、調整的邏輯, 寫成 unit test 塞入許多 input/output 測資, 每次修正後加以驗證,避免人腦一直進行不必要的驗算,就是有賺的。 getter/setter 這種單純的設值操作, 就不是那麼有必要寫 unit test,因為cp 值太低。 2.測試不一定是用來找出所有 bug 的, 有時是盡可能避免「已知」的bug再冒出來。 或者避免違反基本原則的設計出現。 不要想要透過測試涵蓋所有可能出錯的案例, 基本上那幾乎是不可能的,而且很多時候很難定義什麼是對跟錯。 大多時候你還是需要倚賴工程師或人的判斷 3.測試測的是「邏輯」,不是「真正複雜環境產出的結果」 舉個例子,通常扯到 dao 的測試,我們不一定會用真的 DB 進行測試, 而會用 Mock object 假設 db 運作正常,回傳正常的物件。 這時候就會有人說,那我沒跑真正的 db ,我怎麼知道它會對? 跑db 可以用別的測試案例,但這裡你並不是要測所有條件都滿足的狀況下, 而是在給訂某些已知條件前提下,他是否如你所想的運作。 (當然,有時候會給錯已知條件,這就考驗設計者的功力...) 真正跑在類似真正的伺服器的環境的,我們稱之為整合測試。 (integration test) 這通常不是 RD 等級測的東西,因為環境相當的複雜, 適合交由專門的角色處理,在 RD 角色來看, 盡可能讓條件跟邏輯單純化,才能夠有比較好的效益跟產出。 筆電沒電,先寫到這裡當作拋磚引玉好了...... 歡迎論戰/回應,我自認只算測試入門,看看笑笑,有問題幫忙釘正一下。:P -- Life's a struggle but beautiful. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.80.197.64 ※ 編輯: TonyQ 來自: 111.80.197.64 (01/09 00:37)

01/09 00:45, , 1F
不管測什麼系統, 要幾乎沒什麼bug 就是要找白目來測.
01/09 00:45, 1F

01/09 00:45, , 2F
QA 當久了, 一些人的行為習慣也會了解, 久而久之, 也一
01/09 00:45, 2F

01/09 00:46, , 3F
樣會陷入開發者的角度看事情, 頂多是情度比較輕一點.
01/09 00:46, 3F

01/09 00:47, , 4F
君不見,什麼A, H什麼的, 人一堆,QA 也有, 但就是出貨後
01/09 00:47, 4F

01/09 00:48, , 5F
問題依然一堆, 哦忘了, 哪個S 星的也一樣.
01/09 00:48, 5F

01/09 00:48, , 6F
我們以前出貨的時候都會找業務主管試一試, 如果連他都OK, 就
01/09 00:48, 6F

01/09 00:49, , 7F
可以出貨了... 不過這對於園區某些業務主管是技術出身的可能
01/09 00:49, 7F

01/09 00:49, , 8F
不太適用就是了XD
01/09 00:49, 8F

01/09 00:50, , 9F
但有的bug的確也只有開發者找的到,找黑衣甚至是dummy test
01/09 00:50, 9F

01/09 00:50, , 10F
是有效,但作為『唯一』測試工具的話又有點弱。
01/09 00:50, 10F

01/09 00:51, , 11F
一定是要先找RD互掃一次的啦,我記得之前有一個在IXM的朋友說
01/09 00:51, 11F

01/09 00:52, , 12F
他們有一個bug,是133天又25分鐘會發作一次...如果要靠路人測
01/09 00:52, 12F

01/09 00:52, , 13F
只要不是使用者遇到的bug, 基本上於出貨就無礙了.
01/09 00:52, 13F

01/09 00:52, , 14F
測得出來才怪呢...
01/09 00:52, 14F

01/09 00:53, , 15F
有時候是時候到了才會炸,或者由一堆負負得正搞出來的東西,
01/09 00:53, 15F

01/09 00:54, , 16F
出貨會不會死很難下定論,但風險很高。
01/09 00:54, 16F

01/09 00:57, , 17F
我也是有看過團隊採取現在沒死就不管的態度啦,只是如果不幸
01/09 00:57, 17F

01/09 00:57, , 18F
要還債就會很慘...
01/09 00:57, 18F

01/09 01:02, , 19F
這種time bomb 誰也測不出來, win95 就是這例子了.
01/09 01:02, 19F

01/09 01:10, , 20F
有一個沒被測出來,不代表一定測不出來。
01/09 01:10, 20F

01/09 07:13, , 21F
win95 的問題, 也是在出貨後, 使用了好一陣子, 再被發現
01/09 07:13, 21F

01/09 07:13, , 22F
這種time bomb, 除非有一位高人去很細心的將code 看一遍
01/09 07:13, 22F

01/09 07:14, , 23F
否則,不是測不出來, 是非常難囉
01/09 07:14, 23F

01/09 12:03, , 24F
我相信有許多小的是在開發過城中就被測出來了 XD
01/09 12:03, 24F
※ 編輯: TonyQ 來自: 220.133.44.37 (01/09 12:04)
文章代碼(AID): #1F2SNMXP (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1F2SNMXP (Soft_Job)