淺談工作中的軟體測試

shbwf發表於2012-03-16

  我沒系統的學習過軟體測試相關的技術,從事軟體測試崗位已經有3年的時間了。之前從事過2年的軟體開發,所以在這裡僅僅表述下這3年在軟體測試工作中遇到的一些問題和想法。

  1、Testcase設計的源頭

  這是個基本問題,偏離了主題的軟體測試無論如何進行,結果都是錯誤的。軟體測試工作中測試的testcase必須是從使用者的使用角度和需求出發來設計,千萬不能根據程式碼或者開發過程中的概要設計和詳細設計來做testcase的設計。否則在細緻的testcase都不能得出一個正確的結果。

  剛畢業的幾年裡我在**大型軟體公司做開發工作,這是一家比較注重開發而輕測試的公司,所以大部分開發人員即承擔著開發工作也承擔著測試工作。

  中國有句古話“自刀削不了自刀把”,在軟體測試上也同樣可以應用。當時的testcase都是我一個人設計,然後測試。就是自己寫程式碼自己測試,所以testcase的設計都是按照程式碼,概要設計,詳細設計來寫,因此測試的過程中當然會發現不到問題。如果是按照程式碼來設計testcase基本是發現不了任何問題,如果是安裝詳細設計和概要設計來寫testcase,就發現不到需求上的錯誤,而且往往概要設計和詳細設計在不同人的眼裡也許理解也不一樣,寫出來的功能也可能會千差萬別。

  所以testcase的設計一定要脫離開發,脫離實踐。就按照使用者的日常的使用和對使用者軟體的需求來做。這就要求QA一定要參加到前期的使用者需求調研工作當中去。

  在一次客戶交流的活動中聽到客戶如下的抱怨:“購買我們的產品就是因為我們產品設計特徵符合他的需要,然而在我們的一次升級中卻改變了這個特徵。讓他很不爽”。

  測試人員是軟體交付的最後一道關口,正是因為沒有真正瞭解到客戶的需求,導致了整體軟體的更新偏離了使用者的需求,把使用者關心的東西抹去。

  其實能抱怨的客戶都是好客戶,我們要長期與客戶溝通,瞭解其真正的需求,從而去設計產品,測試產品,這樣生產出的產品才有其存在的價值。因此我們不是要做全球最優秀的產品,也不是要做出沒有bug的產品,只需要做出讓客戶滿意的產品就好。而客戶滿意的產品,就是Testcase設計的目的。

  2、測試樹

  這是我自己想到的一個詞,測試的產品可以比做一棵大樹,每個產品都有一個主幹,分支就是這個產品的各個功能,每個功能還有它的枝葉。所以測試的過程就是沿著主幹去測試各個分支以及分支的枝葉。

  每個release釋出的時候,都需要確保主幹中各個分支能夠執行通過,這部分當然最好是由automation來做。不過這個測試希望是由釋出release之前開發人員們自己測試好,所以開發者要做好UI和IT測試。因為一旦分支功能不能正常執行,後續的測試工作是無法進行的,而且一旦執行不通過也會讓測試人員感到很懊惱。所以有的書中把這個路徑定義為快樂路徑,這個路徑沒走通,當然也不會快樂了。

  這樣由主幹道枝幹,在進行到枝葉,一步步的測試就可以完成了。在測試每個枝葉的過程,加入error handle的測試,就基本可以構建出一顆大樹了。

  3、不要相信開發人員的話

  測試過程中會發現各種問題,在找到開發人員分析問題的時候,開發人員經常會說出:“這個不是問題,我們就是這樣設計的、我們不能呼叫到**的函式,所以只能這麼做、這個問題解決不了。等……“身為開發者,往往都會對自己的程式碼有著充分的信心和自信。也許他們做的是對的,但是設計出了問題,他們看不到。也許是他們沒有找到一種更好的解決方案。

  在軟體細節的領域上測試人員不如開發人員掌握的詳細,所以初級測試者往往會被開發人員”忽悠“。接受了開發人員的思想。所以導致很多問題的流出。

  因此在發現問題的時候,不要管產品當前的設計如何,因為也許設計本身就是錯誤的。

  不要管程式碼能不能做到,因為那是開發人員的事情。測試人員要做的事情就是以用的角度來使用這個產品,任何不爽的地方也許使用者也和你一樣不爽。

  人都是有定向思維,很難走出自己的圈子,所以開發人員站在開發的角度上認為一些問題都不是問題。所以在測試過程中要堅持自己立場,不要輕易被開發者講出的技術理由改變看法。

  4、好的產品就是簡單的產品

  美國的陪審員都是普通民眾,他們不需要有任何專業知識,越普通越好,所以他們才能按照人情常理來斷案。

  優秀的產品也一樣,越優秀的產品,就可以讓它的使用者越普通,沒有任何專業知識就可以熟練的掌握和操作。

  我最早使用的搜尋引擎是搜狐,它把搜尋條放在了它主頁的中間。後續的其他網站也是如此,當需要搜尋時,都需要開啟他們的入口網站,然後找到搜尋條,在進行查詢。直至百度,谷歌的出現。進入主頁我就可以直接進行搜尋,而百度後續又做出了詞條聯想功能,在搜尋之後,網頁下還有許多聯想出來的詞條供使用者使用,叫做”相關搜尋”所以因為這個功能,我更多的時候喜歡用百度,因為我的操作變得更簡單了。現在谷歌也引進了這個功能,不過在商務中有個”領先法則“,這點註定了谷歌這個功能超越不了百度了。

  武功的最高境界是忘卻,無招勝有招,測試也許也是如此,把”自己伴成使用者“,”在使用者的環境下“正常使用就完成測試了。這兩個條件都不可缺少,第二個條件經常被人遺忘。這裡舉例說明下:

  使用者的環境:“軟體使用者人數,同時線上人數,產品所處環境氣候溫度,產品網路環境等”。

  總之,明確測試目的是前提,在不偏離前提下模擬使用者使用環境和方法進行鍼對性的測試,步步為營滿足使用者需要即可做好測試工作,保證軟體質量。當然,天下武功唯快不破,加強自動化測試覆蓋率更是提高軟體產品質量的重中之重。

本文轉載自51Testing軟體測試網,檢視更多:http://www.51testing.com/html/news.html

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1057607/,如需轉載,請註明出處,否則將追究法律責任。

相關文章