測試工程師的素質我覺得分兩個層次,普通的測試工程師需要細心、耐心、良好的溝通能力以及責任心等。如果你希望成為一個優秀的測試工程師,相比較其他行業并沒有什么特別之處,保持自信,保持好奇心,在你的專業上持續的解決復雜問題。
CSDN:軟件測試人員大多被稱作測試工程師,但也有不少的人認為其只是QA,你覺得測試和QA是怎樣的關系?
賀炘:這是個很重要的事情,其實測試工程師并不是QA,而應該稱為QC。之前我在《程序員》雜志上投過稿。
和這個問題有關的內容摘抄如下:
QA的英文為:Quality Assurance 我們翻譯為“質量保證”
QC的英文為:Quality Control 我們翻譯為“質量控制”
我們將這兩個角色之間進行一下職責劃分,以方便我們后續的討論。
QA:監控公司質量保證體系的運行狀況,審計項目的實際執行情況和公司規范之間的差異,并出具改進建議和統計分析報告,對公司的質量保證體系的質量負責。
QC:對每一個階段或者關鍵點的產出物(工件)進行檢測,評估產出物是否符合預計的質量要求,對產出物的質量負責。
通過上面的職責劃分,我們發現,如果我們將軟件的生產比喻成一條產品加工生產線的話,那QA只負責生產線本身的質量保證,而不管生產線中單個產品的實際質量情況。QA通過保證生產線的質量來間接保證軟件產品的質量。
而QC不管生產線本身的質量,而只關注生產線中生產的產品在每一個階段的質量是否符合預期的要求,如果我們生產的是杯子,那QC只關注:生產的材料是否是預期的,每個杯子瓶口的直徑是否符合要求,杯子把手是否符合設計要求等等具體的、可量化的點。
針對軟件企業的軟件開發過程而言:
QA可以進一步明確為SQA,即:軟件質量保證,只負責軟件開發流程的質量,企業內相對應的角色為:軟件質量保證人員,有的企業就直接稱之為SQA。
QC可以進一步明確為SQC,即:軟件質量控制,只負責軟件開發過程中各個階段產出的工件的質量,產出的工件可能是相關的文檔或者代碼等,企業內相對應的角色為:軟件測試人員。
CSDN:在軟件項目開發中,測試是開發流程的一部分,也就是對其開發功能的驗證,使得有些人認為測試工作可以被開發人員兼做,你認為軟件測試與開發有什么區別?
賀炘:這個談到了測試的目標是什么?如果認為測試的目標只是找出Bug,那誰找不都一樣嗎,在這里我們談到的軟件測試應該是個建立信心的過程,只有過程可靠了,信心才能建立起來!
測試工程師是否可以由開發,或者某種技術取代?這個很難講,他牽扯到了被測系統、技術水平、開發成熟度、工具應用等諸多層面的綜合判斷,取代的例子目前有如Facebook,但是我看到的更多是無法取代的例子。
文字很難在這個層面說清楚,有興趣的話可以查看一下領測軟件測試沙龍的視頻,專門有一期就是講的這個問題。
在這里我舉個例子,大家都看過足球比賽,為什么11人的隊伍要區分前鋒、中鋒、后衛、守門員?為什么還有不同的陣型?前鋒不能守門嗎?守門員不能直接進球嗎?那種情況都有極端的例子,但不是常態。常態是什么?分工協作才是效率最高的方法!
測試工程師會被淘汰嗎?會的,一定有那一天!開發工程師會被淘汰嗎?會的,也一定有那一天!但是請記住,淘汰的是人,而不是這件事情,如果你做的不專業隨時都會被淘汰!測試工作是永遠不會被淘汰的。但是不專業的工程師隨時都會!
CSDN:在軟件開發產業中有一種非常普遍的習慣,那就是讓那些經驗最少的新手、沒有效率的開發者或不適合干其他工作的人去做測試工作;甚至有些人認為廣大的測試員所做的工作毫無意義,有沒有他們公司一樣運轉,項目一樣進行。你認為軟件測試人員的地位是怎樣的?
賀炘:首先這樣的事情確實存在,其次使用這種方法的公司至少目前質量絕對不是他的核心競爭力。并不是說這樣的方法不對,而是要辯證的看問題,一個公司存活下來一定有一定的道理,我總結了幾個理由:人無我有、人有我精、人精我賤。有興趣的話可以看看我在領測軟件測試沙龍中的視頻錄像,詳細闡述了這個觀點。
我的判斷:公司的競爭會在不同的層次展開,質量并不是每個企業在所有生存階段的必然選項,什么時候談什么話。不過一個偉大的企業是不可能不重視質量的,但是在通往偉大的道路上會有不同的階段性選擇。
原文轉自:http://www.csdn.net/article/2013-06-04/2815534