前言
因為已經帶領和訓練測試團隊多年,所以按慣例我總有些東西確定需要傳達給測試新手。不管你是一個測試新手還是一個經驗豐富的測試專家,都有不少有益的東西需要牢記在心。
1、你是一個檢查者,你不需要為質量負責
很多測試人員誤入歧途,不明白他們是評測產品的而不是控制產品的。這兩者之間有著天壤之別。例如,一個測試團隊花費好幾周時間測試并發現很多缺陷,只是為了看著管理層決定發布一個有已知嚴重缺陷的產品。測試團隊經常會感到士氣受挫,置疑他們測試的目的。
我詢問團隊中的成員他們是否被支付薪水了,通常得到的回答都是“是”。我又詢問他們是否盡力去做工作了,再一次,通常得到的回答都是“是”。我于是告訴他們,“你們做了你們的工作。你們盡力測試,發現了缺陷并進行了上報。那么現在可以回家休息了。實際上,作為一名測試人員唯一失敗的地方是不上報一個已知的缺陷。”
這不會提高士氣,但卻有助于事情向正確的方向發展,特別是能讓人不用每天晚上都在家接著辦公。
很多測試人員,包括我,當我們剛開始測試工作時,似乎會覺得自己對我們所測試的系統應用的質量負責。盡管這個工作的出發點是讓人欽佩的,可實際上我們測試人員對于產品的質量基本沒有控制能力。也是由于這個原因,測試人員不為質量負責。現在問題是管理層并不總是能看到這種區別。所以經常看見管理層提出類似于“我們付錢給這些人不是為了獲得高質量的軟件嗎?”的問題。
2、缺陷都是有價值的
每一個缺陷都是深入了解和提高的機會。我們可能只有一次機會觀察到一個缺陷,所以我總是告訴測試人員始終保持高度注意力,不要為測試的乏味所折磨。
缺陷信息可能是可獲取的項目數據中最有效的資源之一。但是這都取決于我們能多好的捕捉和傳達我們所發現的缺陷的相關信息。
每個缺陷都會花費整個組織的金錢。如果我們不能從中更進一步了解產品,我們會浪費大量時間和金錢。當我們把一個錯誤轉換成一次深入了解的機會時杠桿作用就出現了。讓我們面對它――有些教訓只能通過經歷來學習的。
由于一個缺陷而責備誰不會有任何好的作用。責備只會讓士氣低落、溝通中斷。這就像不斷鞭打一匹死馬希望它能活過來一樣。
3、你報告第一個問題之前一切都是美好的
這就是一個測試人員所面對的現實。你可以計劃測試,獲取所需要的資源,看起來所有人都站在你這邊。可當你報告第一個問題之后,事情就開始變得緊張了。
出現這種態度上的突然變化的原因是現在你在批評某些人的工作了。自尊心使得自我收到傷害,關系變得緊張。有些情況下自尊心是值得期盼的,只要知道當你開始發現問題的時候態度有可能變化就可以了。
我經常建議測試人員做的一件事是讀一讀一些你過去寫的缺陷報告,假設自己是接收缺陷報告的人。你會發現自己需要更老練一些。寫一個沒有任何挖苦語句的缺陷報告可能沒什么樂趣,但它的確有助于和開發人員之間保持一個好的關系。
4、 只能測試你能觀察的
你可能總想測試一些真正有創造性的用例,但如果你沒有辦法觀察到結果,那有什么意義?盡管有些應用讓你能觀察到很多,但仍然有你沒辦法接近的,例如結構、隱藏的對象、后臺進程等。
5、 別忘記你是怎樣到一個地方的
我不是在談論知道為什么你走進一個房間,而是在測試時執行的步驟。對于測試新手常見的是發現了一個重大的缺陷,但卻無法復現它以便定位解決。這樣你只會覺得不舒服,不知道自己到底是真發現了一個缺陷,還是說僅僅是錯誤的使用了應用。
你能用來跟蹤你的測試步驟的方法有測試腳本、測試記錄、敲鍵記錄器如Spector和屏幕視頻捕捉工具如Hypercam。
6、 標準和流程是你的朋友
盡管標準和流程讓一些人覺得受限,但它們為你的工作提供了有價值的指導。不要拒絕標準因為它們是詳細的、具體的。因此用它們指導自己更快、更一致的完成自己的工作。
7、 沒有足夠的時間用于測試
幾乎每一個測試人員都抱怨沒有足夠的時間用于測試,但實際情況是測試任何東西到完整的程度都是不可能有充足時間的。當你充分考慮軟件的特性如可用性、安全性、兼容性、互操作性等時這一點尤其正確。
不要再抱怨缺少時間,學會根據風險來進行優先級排序,把注意力都放在對管理層很重要的應用目標上。有時候我們測試的內容超出了我們需要測試的,因為我們的目標偏離了產品的價值。
8、 你不可能發現所有的缺陷
如果你測試的東西后來有缺陷被發現,不要變得氣餒。你可能已經做了非常全面的工作,獲得了高水平的缺陷移除,但100%都是不可能的目標。
9、 保持幽默感和對前景充滿信心
經常微笑、保持健康可能是你最好的生存方式。如果你正處在困難條件下,請相信,這一切都將過去。
10、 爭取做到最好而不是完美
測試新手經常會陷入追求完美的過程中,認為100%的正確才是標準。我曾經也是受害者之一,但要為自己辯護的是,我以前深受80年代后期類似于“99.9%還不夠好”的TQM帖子和文章的影響。
追求完美的問題在于它會讓測試進程變慢,將擔心引入你所做的一切,使得你對別人更挑剔,而且通常會讓你的朋友和家人感到失望。
當然,沒人愿意犯錯誤,但他們稍不注意就出現了。想不犯錯誤就是否認現實。爭取做到最好是一種好的習慣,表明你對工作的態度和投入程度。如果你想努力做到最好,你就會往前再多走一點。
根據我的觀察,大多數人看到錯誤或者經歷失誤時都是很寬容的。人們最關心的是你對待問題的反應。
11、 開發人員不是敵人
需要整個項目團隊的努力才能遞交高質量的產品。有時候似乎開發人員不太關心質量,這個時候事情背后可能存在隱情。這時候你需要更好的和開發人員合作而不是反對他們。要始終牢記良好的交流是一個項目成功的關鍵因素。當你和開發人員站到對立面時,交流就停止了,你測試所需的很多信息也無法獲取了。
12、 建立和維護一個私人的交際網
你的私人和工作關系是一個很重要的資產。無論時當你有工作時還是當你沒工作時他們都是一個很好的支持系統。找一個好的指導者,而當你學到足夠的東西時成為別人的指導者。
13、 持續鍛煉自己的技能
你的技能把你和別人區分開。始終通過參加專業會議、獲取認證、閱讀專業資料等來不斷學習。我給自己制定的目標是每周至少讀一本和個人發展以及職業發展相關的書(測試、領導藝術、商業、IT等)。
一個個人發展方面的專家說過如果你每天在任何特定的主題上花費30分鐘進行閱讀,五年之內你肯定能成為這個主題方面的專家。這一點對我是起作用的――你也可以試試。
另一種讓自己始終內行并建立網絡的好的方式是活躍在一些QA或者測試論壇上。
14、 當前進變得困難,懶惰就需要創造力了
當我第一次成為一個測試團隊負責人時,我用這句話做了一個字條掛在我的桌上。它不斷提醒我把創造力作為我解決問題的一個杠桿。
學著從一個新的有創造性的方式來看待問題。你可能有一個好的測試計劃,但你如何應付各種變化呢?彈性是一個優秀的問題解決負責人的關鍵特性。
15、 簡單并不總是很容易
我們測試中做的很多工作看起來都很簡單。但是,挑戰在于保持努力的連貫性。
有些解決問題的方式剛開始看起來很簡單,但不要由于它簡單和明顯就丟棄任何一種想法。同樣,不要低估實現一個簡單想法所需要付出的努力。
一些看過我和William E.Perry合著的書“Surviving the Top Ten Challenges of Software Testing”評論說這些挑戰都很簡單且很容易解決。這就讓我奇怪為什么人們還在年復一年的提出“人的問題”。我認為在大腦中產生想法比實際實現出來要簡單的多。
結論
智慧比知識更重要。你可能已經學習了大量測試技術,但如果你沒有足夠的智慧判斷什么時候采用它們,沒有從整體上理解它們,你應用它們的能力將受到很大限制。對任何都有涉獵的你存在的一個問題是“你不知道什么你不知道”。智慧幫助你明白你需要知道哪些東西才能成功。
上面羅列的這些都是我希望我剛開始測試時都已經完全認識到的。我希望它們對你有幫助。