QA要做code review嗎?
之前公司在討論, 成為資深QA要具備有哪些條件. 談著談著, 有位資深的architect說, Sr. QA要能做code review, 要能看code, 根據你的經驗早期給feedback.
QA真的需要做code review 嗎? 真的能做嗎? 根據Do testers do code reviews? 一文所描述的,
http://blogs.msdn.com/imtesty/archive/2008/03/11/do-testers-do-code-reviews.aspx
在Microsoft中, 大部分hire的QA是有較強的tech skills, 擅長寫些工作或是test automation, 並且對system有較深入的了解 . 但是對於QA做 code review一事, 則認為這是正常測試的一部份, 因為code review 只是其中一種測試方法, 有經驗的QA要能使用各種不同的方法來進行測試.
此外, 藉由code review, QA可以將quality的要求, 在開發流程的上游(其實只到construction階段, 也沒多前面)就開始注重和要求, 而不是等到測試階段才來談quality的問題. 此外QA也可以藉由這個機會, 更深入了解程式內部的運作, 以促進將來測試工作的進行
就我原先的觀點, 我們要測試的東西是程式碼, 因此要對程式碼了解是天經地義的. 所謂知己知彼, 百戰百勝. 你不懂它是什麼, 或是被後運作的原理, 如何能確保你能掌握所有變化呢?
但是後來想想, verification 和validation 的差別是什麼呢? 一個是do the things right , 一個是do the right things. 掌握程式內部運作, 只是確保do the things right. 若是QA不能確保 do the right things, 那事情只被做了一半. 因此在做code review時, QA不是要去談RD原本該談的部份, 像是strcpy or strncpy好, 要不要用strategy pattern, 要不要extract method等等, 這些是會讓code寫的更好沒錯, 但是這些不一定能夠滿足customer的需求.
另外還有一個重點是, 大部分的QA在coding 這方面, 都遠遠不如RD, 因為畢竟那不是QA平時的工作, 所以要提也提不出個所以然來, 反而讓QA自己失去信心, 讓你在RD心中的credit降低而已.
(當然啦, 如果你coding能力很強, 這點假設當然不成立)
所以QA在做code review時到底要怎麼辦呢? 我個人認為應該是著重在do the right things. 從customer的觀點來看, 你的程式是否有些地方要注意. 像是major user scenarios, maintainability, error handling, testability, performance concern, deployment, useability, operability, security等等, 這些通常是RD會忘記, 或是無法體會的地方. 但是這些地方卻是QA平常一直在接觸, 和熟悉的地方. 所以在做code review的時候, QA要能提出有關這方面的考量.
(當然我的前提假設是, 你不會都是在做functional testing而已, 你會兼顧到其他方面的testing方法. 否則你可能真的不適合去做code review)
(不過話說回來, 台灣的QA大部分只懂functional testing, 所以........, code review...還真的有點不容易)
之前公司在討論, 成為資深QA要具備有哪些條件. 談著談著, 有位資深的architect說, Sr. QA要能做code review, 要能看code, 根據你的經驗早期給feedback.
QA真的需要做code review 嗎? 真的能做嗎? 根據Do testers do code reviews? 一文所描述的,
http://blogs.msdn.com/imtesty/archive/2008/03/11/do-testers-do-code-reviews.aspx
在Microsoft中, 大部分hire的QA是有較強的tech skills, 擅長寫些工作或是test automation, 並且對system有較深入的了解 . 但是對於QA做 code review一事, 則認為這是正常測試的一部份, 因為code review 只是其中一種測試方法, 有經驗的QA要能使用各種不同的方法來進行測試.
此外, 藉由code review, QA可以將quality的要求, 在開發流程的上游(其實只到construction階段, 也沒多前面)就開始注重和要求, 而不是等到測試階段才來談quality的問題. 此外QA也可以藉由這個機會, 更深入了解程式內部的運作, 以促進將來測試工作的進行
就我原先的觀點, 我們要測試的東西是程式碼, 因此要對程式碼了解是天經地義的. 所謂知己知彼, 百戰百勝. 你不懂它是什麼, 或是被後運作的原理, 如何能確保你能掌握所有變化呢?
但是後來想想, verification 和validation 的差別是什麼呢? 一個是do the things right , 一個是do the right things. 掌握程式內部運作, 只是確保do the things right. 若是QA不能確保 do the right things, 那事情只被做了一半. 因此在做code review時, QA不是要去談RD原本該談的部份, 像是strcpy or strncpy好, 要不要用strategy pattern, 要不要extract method等等, 這些是會讓code寫的更好沒錯, 但是這些不一定能夠滿足customer的需求.
另外還有一個重點是, 大部分的QA在coding 這方面, 都遠遠不如RD, 因為畢竟那不是QA平時的工作, 所以要提也提不出個所以然來, 反而讓QA自己失去信心, 讓你在RD心中的credit降低而已.
(當然啦, 如果你coding能力很強, 這點假設當然不成立)
所以QA在做code review時到底要怎麼辦呢? 我個人認為應該是著重在do the right things. 從customer的觀點來看, 你的程式是否有些地方要注意. 像是major user scenarios, maintainability, error handling, testability, performance concern, deployment, useability, operability, security等等, 這些通常是RD會忘記, 或是無法體會的地方. 但是這些地方卻是QA平常一直在接觸, 和熟悉的地方. 所以在做code review的時候, QA要能提出有關這方面的考量.
(當然我的前提假設是, 你不會都是在做functional testing而已, 你會兼顧到其他方面的testing方法. 否則你可能真的不適合去做code review)
(不過話說回來, 台灣的QA大部分只懂functional testing, 所以........, code review...還真的有點不容易)
全站熱搜
留言列表