簡介許多測試人員經(jīng)常缺失測試和交付高質量產(chǎn)品所必需的思維。有時,看起來它是質量意識的缺失。難怪有些測試人員只能發(fā)現(xiàn)明顯的缺陷,這也是為什么盡管項目具備測試人員但質量與程序測沒測過沒多大關系。為增強高質量產(chǎn)品的成功發(fā)布,每個角色都應對其他角色有充分、適當?shù)睦斫?,如果一個項目缺乏了這種理解,那么不必要的挑戰(zhàn)就會如暴風雨般不期而至。本篇文章,探討的就是我是如何培養(yǎng)測試思維的,以及對增強我的測試技能有多么大的作用。 我的思考:我是什么類型的測試人員,我想要成為什么類型的測試人員? 我一開始只是個“明顯缺陷的發(fā)現(xiàn)者”。好吧,作為測試人員的第一天,我的確僅僅就是這樣的。我認為,許多測試已經(jīng)都經(jīng)歷過或正在經(jīng)歷著這一階段,他們看起來只能發(fā)現(xiàn)明顯的缺陷。而其他測試人員可以在我已經(jīng)測試過的程序中挖出重大缺陷,在這個時候的我,將這些人稱之為“優(yōu)秀的測試人員”。我常常問自己,“他們是如何找出這些缺陷的呢?”以及“為什么我和他們不一樣?” 我最初安慰自己說,那是因為隨著時間的積累他們有著更多的經(jīng)驗。我有希望變成他們。但沒過多久,我發(fā)現(xiàn)某些沒有經(jīng)驗的測試人員也能在我或其他測試人員已經(jīng)測試過的程序中發(fā)現(xiàn)重大缺陷。還有一些有著多年經(jīng)驗的測試人員卻只能發(fā)現(xiàn)“明顯的缺陷”,就像我。所以我認識到,哦……嗯……好吧……這似乎不是經(jīng)驗的關系! 所以,我對自己說,可能是因為他們通過了某些認證。我也去過認證,然而并沒有什么用。我記得這段時間我參加了一次面試,面試官問我某段具體的程序將如何測試。我開始告訴他,我將編寫測試計劃和測試用例,即用我在認證中學到的方式。他對我說,“……你知道嗎,我不想要像你這樣的測試人員!我想要的測試人員是在測試之前不必寫長長的測試計劃,只寫一行測試用例就能測試。”這次面試使我認識到,認證并沒有教我太多有用的東西。 然后,我想,可能“優(yōu)秀的測試人員”讀過許多關于測試的書籍。所以,我開始讀書。事實證明,這真的非常有用,但速度卻不盡如人意。 我還發(fā)現(xiàn),“優(yōu)秀的測試人員”在項目中會得到更多的重視。測試負責人通常會把更關鍵、更重要的功能分配給他們,與此同時,把不怎么重要、不怎么關鍵的特性或任務分配給“明顯缺陷的發(fā)現(xiàn)者”。 作為一名“明顯缺陷的發(fā)現(xiàn)者”,一名把認證作為工具的測試人員,我的感覺很糟糕。我渴望成為一名有價值的測試人員,能幫助提供更重要的信息,從而幫助提升產(chǎn)品的質量。 我經(jīng)常受一種想法的打擊,我不時地問自己,如何能把愿望變成現(xiàn)實,“為什么這些我稱之為‘優(yōu)秀測試人員’的測試人員能看到和找到我看不到和找不到的東西?”。如果我能找出這些來,很可能就會知道什么令其變得不同和如何成長了。所以,要著手尋找前進的道路了! 改變我測試方式的探索:測試人員的思維和思維工具! 思維工具就像我一直在思考什么使其變得不同一樣,應該在周圍發(fā)生的事中學到什么也一直縈繞在我的心頭。所以,當我或團隊中的其他人發(fā)現(xiàn)重要缺陷時,我開始去觀察、分析和反思:我或他們是如何找到它們的?那時我或他們的思考過程是什么? 我的反思把我的注意力引到了發(fā)現(xiàn)缺陷的測試故事上,以及日常測試和交流中遇到的項目中的不同角色。我發(fā)現(xiàn):
隨著繼續(xù)地觀察、分析和反思,我得出的結論是,測試需要我:
于是,每當面對我要測試的待測程序時,都需要各種思維或推理。 為了保持思維的靈活性,并幫助我從不同視角看待事物:
舉些思維工具的例子,它們是我從測試故事中識別和標記出來的,它們包括:
呯!我給你說吧,更好更有效地測試這個宇宙引發(fā)了最初的大爆炸,而且還在快速成長! 所以,我自己想,這是令你不同的東西!缺少這些能力意味著只能看到明顯的缺陷!難怪有些測試人員只能發(fā)現(xiàn)明顯的缺陷,這也是為什么盡管項目具備測試人員但質量與程序測沒測過沒多大關系! 測試人員的思維:作為這些經(jīng)驗的后續(xù),我為測試人員的思維想出了一個定義。我是這樣定義測試人員的思維,或者測試思維的:
測試人員的思維需要:
思維工具:如何做使其有效?為解釋我是如何使用思維工具的,我將給出三個例子。 第一個例子是“用戶”思維工具:測試故事背景:在我是測試人員的初期,經(jīng)常會出現(xiàn)這么一種情況,當我找到一個特定的缺陷時,程序員或軟件團隊主管會說,“用戶不會這么用產(chǎn)品的!”曾經(jīng)有一次,產(chǎn)品帶著這么一個“用戶不會這么用產(chǎn)品的”缺陷發(fā)布了,而這個缺陷一開始就在我們的測試報告里。你猜怎么樣?經(jīng)研究,我們發(fā)現(xiàn)用戶實際上會以之前程序員已聲稱用戶不會這么用產(chǎn)品的方式去用產(chǎn)品! 去相信用戶將不會以我們預期之外的特定方式來使用產(chǎn)品,這簡單就是謬論!而我們需要張開想象力的翅膀,想象用戶使用產(chǎn)品的方式。基于這個測試故事,我標記了“用戶”思維方式,并識別了以下在我測試時要使用的思維調整。它們在發(fā)現(xiàn)此類重要缺陷中發(fā)揮了巨大的作用。 思維調整(從經(jīng)驗教訓中提取出來的):
第二個例子是“已經(jīng)測試過了”思維工具測試故事背景:我經(jīng)常遭遇的一種情況,說是這塊程序已經(jīng)測試過了,所以要做的就是快速檢查一下。有一次,有個程序員同事告訴我一個功能里的函數(shù)已經(jīng)測試過了,我不應該再操心再去測試它了。但為預防意外,我仍然決定簡單地檢查一下。令我驚訝的是,這個程序員所謂的已經(jīng)測試過的函數(shù)根本不能用。 我當時遇到的挑戰(zhàn)是,怎么告訴他我仍然去檢查了他說不用測試的程序呢。好吧,我建立了一個測試場景,在當前的測試中包括對失敗函數(shù)的使用,從而解決了這個問題。所以,我邀請他去實驗和解釋我所觀察到的在眾多測試中其中一個我所不能理解的行為,我希望他看一下。當他看到時,說“……但我之前測試過呀?!彼^續(xù)說,“Vivien,你不會再相信我了?!?/span> 我看到他渾身透出的難堪,清楚需要緩和一下這樣的局面。所以,我回應說,“一點也不,相信我,我信任你,而且我知道你總是在努力完成工作。然而,我清楚一點,那就是有缺陷是代碼的本質。”(化解尷尬和信任思維在此都發(fā)揮了重要作用) 還有一次,我的一個程序員同事告訴一名測試人員不必測試就把一段程序合并到主分支上。按他的說法,他只是做了很小的改動,只是清理了一行無用的代碼,那是之前的一行注釋。但他不知道的是,在這個過程中他多刪除了一行有用的代碼。 那么,測試人員未經(jīng)測試就合并了,之后就沒人能使用這個軟件的主分支了。調查期間,導致問題的原因被找出來了,就是他讓測試人員合并的那段代碼。 基于這些測試故事的經(jīng)驗教訓,我命名它們?yōu)椤耙呀?jīng)測試過了”思維工具,測試時將采用以下思維調整: 思考調整:
第三個例子是“懶惰的測試人員”思維工具:測試故事背景:以前我出席一次會議,我聽到軟件領導說:“……懶惰的測試人員發(fā)現(xiàn)了那些缺陷”。他繼續(xù)說道:“有他們在項目上很不錯,但也別太多呀?!边@引起了我的注意。我記下了缺陷報告中的ID并找出了“懶惰的測試人員”是誰。 我發(fā)現(xiàn)那個被提到的人是我的一名測試同事,他經(jīng)常找非常重要的缺陷。但他采用的方式是,在測試的過程中,會跑到咖啡機那邊休息。在咖啡旁,他開小差與同事聊著天,似乎已經(jīng)忘了他還在運行測試呢。當他回來時,發(fā)現(xiàn)一些反常的情況:發(fā)生錯誤了!他報告了這個錯誤,還附上了他開小差去找同事聊天了。因此,他得到的標簽是:“懶惰的測試人員”。 分析這個測試故事,我研究懶惰后發(fā)現(xiàn),比爾蓋茨這樣說過:“我永遠都會用懶惰的測試人員去做困難的工作,因為我清楚,他永遠都會找到輕松完成它的方法”。然后我自己這樣想:
所以,我想到以下思維調整,在我測試時會采用它們: 思維調整:
測試思維的定論:思維工具適用于每一個人! 作為我對團隊內(nèi)部交互的進一步觀察結果,我發(fā)現(xiàn)某些行為并不停地問自己:
因為對測試相關的內(nèi)容缺乏適當?shù)睦斫?,這些認知損害了我們的項目。 現(xiàn)在,讓我們想像一條正在漏水的船,以及下圖中描述的態(tài)度: 誰處于小船的那一邊并不重要,如果船沉沒了,每個人都會淹死。同樣的,如果項目失敗了,每個人都會受到影響,不僅僅是測試人員和程序員。 所以,來思考一下:
每個角色都有對測試人員的期待:他們應該找出軟件中的所有缺陷。 但依我看來,要想測試成功和有效,首先需要每個角色的個人認識到:
如果你同意以上觀點,那么大概也會同意,與待測程序相關的每個人都需要測試思維以開發(fā)和發(fā)布高質量的軟件!如果你同意這一點,你很可能會繼續(xù)同意,思維工具適用于每一個人! 如果每個與產(chǎn)品開發(fā)相關的人都在測試思維上有合理的投入,充分地理解我們的工作對測試和最終產(chǎn)品的質量有怎樣的影響,那么質量就不會是靠不住的了! 探索和開發(fā)你自己的思維工具 通常我們不會觀察,或者有時觀察,但沒有反思觀察結果,或者即使我們這么做了,很可能也未下結論或從反思中總結經(jīng)驗教訓。測試故事到處都是,在每一天,在我們工作于軟件開發(fā)項目的各個地方。如果我們?nèi)ヌ剿魉鼈?,那么它們會成為學習的良好來源。我通過觀察、反思和針對反思結果調整推理,提出了這些思維工具的理念。 人們經(jīng)常問我:我們?nèi)绾卫斡涍@些思維工具和思維調整呢?這個問題我實際上已經(jīng)思考過了,我想的是,不需要死記硬背。因為思維工具來源于我們身邊發(fā)生的測試故事,如果我們觀察到這個過程,自然就會領會它們,甚至開發(fā)出我們自己的思維工具。因此,我建議的思維工具模型如下: 觀察:
反思:
行動/回應/調整
總結如果我們敢于觀察,并敢于反思觀察結果,進一步敢于就反思結果采取行動,那么我們就敢于學習和成長!當我開始使用思維工具時,我就開始成長更擅長測試了。我成了更有價值的測試人員,在產(chǎn)品質量方面有了更強的話語權。除那些明顯的缺陷之外,我看到了事情的差異并找到重大的缺陷。我的程序員同事喜歡問我的意見,看是我對要解決的問題有什么看法,或者我認為修復特定缺陷或問題的最佳解決方案是什么。他們認為薇薇安總能看到軟件中會出錯的那些東西。這,我認為,是因為他們認識到了我對軟件有價值的推理。 我發(fā)現(xiàn)同事問我,我是如何發(fā)現(xiàn)特定缺陷的,因為有時他們感到困惑,什么會使人想到這么有價值的場景的。我的項目經(jīng)理給我的公司反饋說:薇薇安是個“超級明星”測試人員。有一次,我們拜訪一個客戶,程序員把我介紹為“全世界最好的測試人員”(……盡管我覺得離成為最好的或超級明星測試人員還有非常遠的距離,但我猜這是他們用這種方式來表達我的測試方式的價值)。還有一件有意思的事,在我實際使用思維工具的時候,我注意到它還影響了程序員的工作方式。他們也成長了,學習和改進了他們的測試思維。 這多虧了思維工具的想法呀!我成長了,并在不斷成長! 可點擊此處鏈接查看思維工具的幻燈片。 本文轉自:開發(fā)者頭條 微信號:IdeaofSE |
|
|