qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          軟件測試執行不僅僅是“是非判斷”

            測試執行過程中,測試人員在大多數時候面對的是“是非判斷”。即對照需求(包括需求文檔、原型系統、用戶字典、設計文檔、其它參考文檔等),來判斷被測系統的行為是否正確。但實際上測試人員也有許多需要做出“非是非判斷”的時候。而這種能力往往對于“測試質量”(指如果將測試作為一種服務,提供給需要者的服務質量)更為關鍵,也更難培養。本文將分為兩大部分來表述筆者對于如下兩個問題的理解:

            (1)測試執行過程中有哪些“非是非判斷”,它們為什么重要?

            (2)這些“非是非判斷”能力可以如何培養?

            “非是非判斷”之一:難以重現的問題

            請回憶如下手工測試的場景:你正在執行測試,發現了一個缺陷,卻很難重現。這時候你面對的就不是一個判斷題了(即是不是缺陷的判斷),而是一個證明題,要證明在什么樣的前提條件下,如何經過一步步的演繹,程序在此場景下一定會出錯。

            解決這類問題為什么是重要的呢?因為大家最害怕的是風險,而難以重現的問題在我們沒有重現它之前都蘊藏著無法把握的風險。我們知道風險帶來的影響受到兩個因素的影響,一個是風險發生的概率,二是風險帶來的危害。難以重現的缺陷雖然發生概率也許比較低(也不一定,因為也許只是你沒有發現它出現的必要條件,而此條件有可能是經常發生的),但如果后果是嚴重的,那它帶來的影響可能并不小。所以作為第一現場的目擊者,測試人員最有責任和義務去多花一些時間精力試圖重現它。對于一個可以重現的問題,它的危害往往更容易被相對準確地度量。所以即使這個缺陷最后被決定不予修復,測試人員也不要覺得氣餒。因為這個不予修復的結果是經過論證的,與無法重現而直接取消是不一樣的。我比較認同Cem Kaner對于測試的定義“Software testing is an empirical technical investigation conducted to provide stakeholders with information about the quality of the product or service under test.”即,軟件測試是一個為了給干系人提供關于被測產品或服務提供質量信息而進行的以觀察或實驗為根據的技術考察工作。所以測試的價值是提供有價值的質量信息,暴露風險,而不是做決定或者直接產生改變。

            “非是非判斷”之二:可以重現,但不容易解決的問題

            請再回憶如下自動化測試的場景:你的某個自動化腳本沒有語法錯,也可以運行,但結果就是不對(明明正確的結果卻被誤報出錯)。例如,我現在手頭還擱置著這樣一個下載查詢結果到本地,結果比對文件名總報失敗的腳本問題。又如,執行性能測試的時候出現了異常的服務器自動重啟。這兩種問題都可以反復重現,但通常你是第一次碰到,你想不通,也沒有信心可以解決。這時候你面對的也不是一個判斷題了,而是一個應用題,要找到產生這種差異的根源,并且試圖解決。

            解決這種問題的重要性比較明顯。因為不解決它們,你對于它們提供的信息就沒有信心。你沒有信心,你就不能給你的干系人信心。從悲觀的角度看,這種問題要耗費我們許多的精力,我們也不知道何時才能找到正確的方向和結論。從樂觀的角度想,能夠重現的問題都是好問題,解決它只是早晚和ROI的問題。

            其實,測試人員在測試執行過程中會碰到的“非是非判斷”還有很多,在非執行過程就更多了。如需求的學習、參加設計評審、編寫測試計劃和進行測試結果分析等等。所以,培養測試人員解決“非是非判斷”問題的能力就成為一個值得思考的問題。

            如何培養解決“非是非判斷”問題的能力?

            首先,要意識到自己有薄弱環節需要加強

            一般測試人員在經過一到兩年的工作之后,對于被測系統的需求有了一定了解,對黑盒測試常用的方法和技術有了一定運用,加上一些責任心和細心,已經能夠獨立地負責一些測試了。但是在碰到一些棘手的問題,如上面提到的“非是非判斷”的時候,往往有些手足無措。感到手足無措是正常的,但是請不要把這些問題當成一個個特殊的問題,然后告訴自己“這個問題我從來沒有碰到過,所以我不知道如何解決是正常的。”而是要透過這樣一個一個比較有挑戰性的問題,看到自己在哪些方面還需要大力地投入和改進。也許是對架構的理解、也許是對設計和編碼的了解、也許是多樣的測試手法、也許是綜合考慮問題的思路。。。

            其次,要珍惜碰到棘手問題的機會

            前陣子我在小區里散步,走到一棵枇杷樹下,抬頭看到高一些的枝頭上掛滿了淺黃色成熟的枇杷,略矮一些的樹枝上殘留的枇杷多半是半青半黃的,而最低的枝頭已經沒有枇杷了。這象極了我們工作時,有些事情是我們舉手之勞,輕易就可以完成的,正如去摘取那低處的枇杷。有些事情我們需要努力去蹦、去跳才能夠到,正如摘取那略高處的枇杷。還有些事情是我們覺得有更高的價值,如那高處最甜美的枇杷,但以我們現在的能力,光多蹦幾次也無濟于事,所以我們需要手腦并用,去創造一些新的條件才可以做到。如通過一些工具武裝自己,或者借用一些資源等。這樣想來,碰到超出我們能力的棘手問題的時候,我們是否應該從更樂觀的一面去看待它,把它當成那高處的枇杷呢?

            當然,工作中有時迫于時間的壓力,心急是難免的。但急是解決不了問題的,所以我們要用冷靜理性的思考來緩沖自己迫切需要解決問題的情緒,要及時在感覺不對的方向停止前進,避免南轅北轍。更多的時候,我們需要培養自己及時停止在錯誤的方向前進的能力,而不要僥幸地期盼一下子就找到正確的方向。

            如果你很少碰到棘手的問題,那恐怕你要刻意地去尋找一些這樣的問題了。因為人一般是會傾向于蝸居在自己的舒適區里自我感覺良好的。但進步往往要開始于一些你感到不舒服而希望改變的地方。可喜的是這樣的問題并不難找。

            再次,運用系統思考方法來鍛煉自己認識問題和解決問題的能力

            即使有多年的工作經驗,工作中有時我也會手足無措,感到自己面對的是一個小時候弄亂的毛線球,左拉右扯找不到解開打結的關鍵,甚至越來越亂。但當我有了這種感覺后,我一般讓自己喊停,不再對著計算機快速地輸入和快速地試錯,而是停頓手上的動作,開始更多的思考和整理。我發散地想各種可能的因素,排除一些不可能的因素,重新理解各種已知的信息,重新審視我的思路和操作過程,分解大問題到小問題,逐步驗證我的假設和實際結果。。。我相信,計算機不會騙人,解決復雜的計算機問題不能靠碰,也不能僅靠我腦子里原來已有的認識,而要臨場學習更多的東西。但每次解決一個棘手的問題,我就得到了對于問題本身的新的認識,也掌握了解決它的至少一種方法。更重要的是,我更多地了解了自己,也為日后摘取更高處的枇杷在自己腳下多墊了一塊磚。

          posted on 2012-07-31 10:17 順其自然EVO 閱讀(244) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄性能測試

          <2012年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 利津县| 西峡县| 安仁县| 邳州市| 达州市| 九龙县| 通道| 肥西县| 文山县| 肇东市| 阿勒泰市| 桐柏县| 米林县| 东至县| 新余市| 西宁市| 方山县| 万载县| 平南县| 罗定市| 文山县| 临颍县| 临沧市| 永修县| 江都市| 台南县| 绍兴县| 裕民县| 兴仁县| 镇江市| 文化| 永平县| 阳山县| 伊金霍洛旗| 遵义县| 伊通| 新乡市| 关岭| 嘉荫县| 炎陵县| 子洲县|