电竞比分网-中国电竞赛事及体育赛事平台

分享

使用思維工具增強測試技能

 逍遙302 2017-08-20

簡介

許多測試人員經(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ù)地觀察、分析和反思,我得出的結論是,測試需要我:

  • 在測試時保持靈活的思路

  • 不同的角度,用不同的眼光不同的思維來看待不同的測試任務或功能

于是,每當面對我要測試的待測程序時,都需要各種思維或推理。

為了保持思維的靈活性,并幫助我從不同視角看待事物:

  • 我把有助于找出缺陷或有助于項目交互的思維方式識別出來

  • 我給這些思維方式貼上標簽,把每個貼上標簽的思維方式稱之為一種思維工具

  • 想個更容易記起來的名字或更容易與已識別的思維工具聯(lián)系在一起的名字

  • 我逐條列出從這些測試故事中學到的經(jīng)驗教訓,將其稱之為思維調整(Mindset Tweaks

  • 每當測試時,我都會按照思維調整去調整或應用我的思維,借助思維調整把每種思維工具用起來

舉些思維工具的例子,它們是我從測試故事中識別和標記出來的,它們包括:

  • “用戶”思維工具

  • “已經(jīng)測試過了”思維工具

  • “懶惰的測試人員的”思維工具

  • “善于分析”思維工具

  • “批判性思維”思維工具

  • “好奇心”思維工具

  • “缺陷信念”思維工具

  • “傳播者”思維工具

  • “信任,商業(yè)”思維工具

  • “團隊領導”思維工具

  • “應對批評和遣責”思維工具

  • “應對困境”思維工具

呯!我給你說吧,更好更有效地測試這個宇宙引發(fā)了最初的大爆炸,而且還在快速成長!

所以,我自己想,這是令你不同的東西!缺少這些能力意味著只能看到明顯的缺陷!難怪有些測試人員只能發(fā)現(xiàn)明顯的缺陷,這也是為什么盡管項目具備測試人員但質量與程序測沒測過沒多大關系!                 


測試人員的思維:

作為這些經(jīng)驗的后續(xù),我為測試人員的思維想出了一個定義。我是這樣定義測試人員的思維,或者測試思維的:

  • 一種推理方式,決定了測試人員、程序員或項目經(jīng)理看待對待測程序測試態(tài)度、觀點和心理狀態(tài)

  • 在對待測程序的討論和研究中需要這種推理。這一條受到了測試的定義的啟發(fā),即:對待測程序進行討論和研究,從而增加產(chǎn)品質量的相關信息。(James Bach)

  • 定義測試人員、程序員或項目經(jīng)理在涉及待測程序和其他相關事物(比如,測試活動、伙伴程序員、項目經(jīng)理、團隊成員等等)時如何采用他或她的思維或推理的一種行為

測試人員的思維需要:

  • 測試人員始終回答這個問題,“涉及到待測程序及其相應事物時我想怎么做,從而有效地提供有價值的信息,幫助做出待測試程序質量相關的決策?”

  • 程序員、測試主管和項目經(jīng)理始終回答這個問題,“我想要如何支持測試,從而為高質量產(chǎn)品的開發(fā)和發(fā)布帶來提升?”


思維工具:如何做使其有效?

為解釋我是如何使用思維工具的,我將給出三個例子。

第一個例子是“用戶”思維工具:

測試故事背景:在我是測試人員的初期,經(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)驗教訓中提取出來的):

  • 化身為用戶,也就是說測試時把自己想象成用戶(不論程序員還是測試人員)

  • 用戶將用五官來感受產(chǎn)品:他們是如何接觸的,感受到了什么,接觸、品嘗、聞產(chǎn)品和聽產(chǎn)品的聲音時可能會有什么反應

  • 人類有著天然的探索屬性,所以用戶會探索!

  • 收集用戶會如何使用待測程序的相關信息,以幫助你的推理

第二個例子是“已經(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)測試過了”思維工具,測試時將采用以下思維調整:

思考調整:

  • 考慮之前完成過的測試的質量

  • 考慮“令測試人員或程序員感到壓力的可能性”

  • 我們看到了差異、推理差異以及程序員與測試人員擁有不同的專業(yè)知識

  • 小心所謂的“微小的變更”,就沒有“微小的變更”

第三個例子是“懶惰的測試人員”思維工具:

測試故事背景:以前我出席一次會議,我聽到軟件領導說:“……懶惰的測試人員發(fā)現(xiàn)了那些缺陷”。他繼續(xù)說道:“有他們在項目上很不錯,但也別太多呀?!边@引起了我的注意。我記下了缺陷報告中的ID并找出了“懶惰的測試人員”是誰。

我發(fā)現(xiàn)那個被提到的人是我的一名測試同事,他經(jīng)常找非常重要的缺陷。但他采用的方式是,在測試的過程中,會跑到咖啡機那邊休息。在咖啡旁,他開小差與同事聊著天,似乎已經(jīng)忘了他還在運行測試呢。當他回來時,發(fā)現(xiàn)一些反常的情況:發(fā)生錯誤了!他報告了這個錯誤,還附上了他開小差去找同事聊天了。因此,他得到的標簽是:“懶惰的測試人員”。

分析這個測試故事,我研究懶惰后發(fā)現(xiàn),比爾蓋茨這樣說過:“我永遠都會用懶惰的測試人員去做困難的工作,因為我清楚,他永遠都會找到輕松完成它的方法”。然后我自己這樣想:

  • 似乎懶惰的人有些價值,因此我把這個思維工具命名為“懶惰的測試人員的”思維工具

  • 有些缺陷可能是我們永遠都無法發(fā)現(xiàn)的,除非我們像懶惰的測試人員那么做測試

  • 我不必變得懶惰,只是切換做事的思維!

所以,我想到以下思維調整,在我測試時會采用它們:

思維調整:

  • 探索懶惰的測試人員所做的事情;他們探索軟件的方式是勤奮的測試人員不會采用的!

  • 對于測試領導來說:發(fā)掘團隊中的人才:比如不要清退“懶惰的測試人員”

測試思維的定論:思維工具適用于每一個人!

作為我對團隊內(nèi)部交互的進一步觀察結果,我發(fā)現(xiàn)某些行為并不停地問自己:

  • 當所有測試人員得到的計劃表是不可能完成的任務時,為什么應該由于沒發(fā)現(xiàn)某些缺陷而責備他們?

  • 為什么程序員被規(guī)定在他們的代碼中發(fā)現(xiàn)多少缺陷,或者測試人員被規(guī)定要找出多少缺陷?

  • 為什么在生產(chǎn)期間未找到缺陷,而期待測試的時候僅由測試人員過一遍檢查表就找出來?

  • 為什么待測程序不是“蟲富五車”,測試人員的大腦和思維被局限于寫測試用例,從而限制他們?nèi)ネ评硭鶎憸y試用例范圍之外的缺陷?

  • 為什么產(chǎn)品的測試和質量被認為是測試人員或程序員的責任?

因為對測試相關的內(nèi)容缺乏適當?shù)睦斫?,這些認知損害了我們的項目。

現(xiàn)在,讓我們想像一條正在漏水的船,以及下圖中描述的態(tài)度:

誰處于小船的那一邊并不重要,如果船沉沒了,每個人都會淹死。同樣的,如果項目失敗了,每個人都會受到影響,不僅僅是測試人員和程序員。

所以,來思考一下:

  • 程序員說:我想要構建軟件

  • 測試人員說:我想要測試軟件,并為改進質量提出意見

  • 項目經(jīng)理說:我想要為干系人交付可工作的軟件

  • 市場人員說:我想要銷售有利潤的軟件

每個角色都有對測試人員的期待:他們應該找出軟件中的所有缺陷。

但依我看來,要想測試成功和有效,首先需要每個角色的個人認識到:

  • 測試依賴于他們的角色,而且他們的成功也依賴于測試。換句話說,測試不成功,他們也不會成功。

  • 構建高質量的軟件是每個人的責任,因此軟件開發(fā)項目中的所有角色必須一起協(xié)作。

  • 隨時理解每個角色的心理以及什么是最重要的,這對于高質量軟件的開發(fā)和發(fā)布來說是必要的。

  • 與待測程序相關的每個人都需要具有一種思維,那就是理解每種角色以及他們的目標。

如果你同意以上觀點,那么大概也會同意,與待測程序相關的每個人都需要測試思維以開發(fā)和發(fā)布高質量的軟件!如果你同意這一點,你很可能會繼續(xù)同意,思維工具適用于每一個人!

如果每個與產(chǎn)品開發(fā)相關的人都在測試思維上有合理的投入,充分地理解我們的工作對測試和最終產(chǎn)品的質量有怎樣的影響,那么質量就不會是靠不住的了!


探索和開發(fā)你自己的思維工具

通常我們不會觀察,或者有時觀察,但沒有反思觀察結果,或者即使我們這么做了,很可能也未下結論或從反思中總結經(jīng)驗教訓。測試故事到處都是,在每一天,在我們工作于軟件開發(fā)項目的各個地方。如果我們?nèi)ヌ剿魉鼈?,那么它們會成為學習的良好來源。我通過觀察、反思和針對反思結果調整推理,提出了這些思維工具的理念。

人們經(jīng)常問我:我們?nèi)绾卫斡涍@些思維工具和思維調整呢?這個問題我實際上已經(jīng)思考過了,我想的是,不需要死記硬背。因為思維工具來源于我們身邊發(fā)生的測試故事,如果我們觀察到這個過程,自然就會領會它們,甚至開發(fā)出我們自己的思維工具。因此,我建議的思維工具模型如下:

觀察:

  • 觀察每天的任務中發(fā)生了什么

  • 關注你或其他測試人員是如何發(fā)現(xiàn)缺陷的

  • 學著訴說或記錄團隊中測試人員、程序員、測試主管和項目經(jīng)理相互協(xié)作的測試故事

反思:

  • 反思每一天的觀察活動、找到的缺陷,看他們是如何在團隊中的測試人員、程序員、測試主管和項目經(jīng)理等等人的共同協(xié)作下找出來的。

行動/回應/調整

  • 識別在測試故事中和在執(zhí)行項目任務時覺得有用的推理或思維,給它們加上標簽。

  • 列出經(jīng)驗總結清單,提出思維調整。

  • 隨著執(zhí)行項目任務,基于已識別的思維工具和思維調整調整推理


總結

如果我們敢于觀察,并敢于反思觀察結果,進一步敢于就反思結果采取行動,那么我們就敢于學習和成長!當我開始使用思維工具時,我就開始成長更擅長測試了。我成了更有價值的測試人員,在產(chǎn)品質量方面有了更強的話語權。除那些明顯的缺陷之外,我看到了事情的差異并找到重大的缺陷。我的程序員同事喜歡問我的意見,看是我對要解決的問題有什么看法,或者我認為修復特定缺陷或問題的最佳解決方案是什么。他們認為薇薇安總能看到軟件中會出錯的那些東西。這,我認為,是因為他們認識到了我對軟件有價值的推理。

我發(fā)現(xiàn)同事問我,我是如何發(fā)現(xiàn)特定缺陷的,因為有時他們感到困惑,什么會使人想到這么有價值的場景的。我的項目經(jīng)理給我的公司反饋說:薇薇安是個“超級明星”測試人員。有一次,我們拜訪一個客戶,程序員把我介紹為“全世界最好的測試人員”(……盡管我覺得離成為最好的或超級明星測試人員還有非常遠的距離,但我猜這是他們用這種方式來表達我的測試方式的價值)。還有一件有意思的事,在我實際使用思維工具的時候,我注意到它還影響了程序員的工作方式。他們也成長了,學習和改進了他們的測試思維。

這多虧了思維工具的想法呀!我成長了,并在不斷成長!

可點擊此處鏈接查看思維工具的幻燈片。



本文轉自:開發(fā)者頭條

微信號:IdeaofSE


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多