一個好的軟件經(jīng)過測試,一個不好的軟件也經(jīng)過測試,但是到了市面上還是出現(xiàn)了好與不好的區(qū)別;軟件測試對于軟件有什么樣的價值呢?

  討論這個話題之前,可以先討論一下什么事好的軟件,好的軟件有哪些特征;其實總結一下市面上的大家公認好的軟件一般來說有以下幾個特征:

  1、簡單易用,看看Iphone,google的東西,簡單易用,你不用去讀說明書,知道如何操作,而且效果完全達到了你的預期,實現(xiàn)了你想要的期望值;

  2、滿足需要,比如你想搜索,你知道google可以滿足你這個需求,你要方便的用手機同時實現(xiàn)拍照,上網(wǎng),玩游戲,Iphone可以滿足你的需求

  3、性能優(yōu)越,搜索的時候希望返回結果要快,玩游戲的時候,希望顯示效果要好;而且這個不是說剛開始的時候性能好,而是持續(xù)使用一段時間以后,性能還能保持,使用過IE都知道,過了一段時間,比如3個月到半年,IE速度明顯慢了,有些網(wǎng)頁甚至顯示不出來,當然這個其中一個解決方式是隔一段時間做一次清理,比如現(xiàn)在有些空調(diào)隔一段時間提示你過濾網(wǎng)需要清洗,這個可以延長空調(diào)的壽命,同時可以提供性能;這要求設計軟件的時候考慮到sustainablity

  設計出來的軟件需要有這些特征才能稱之為好軟件;大的contributor應該是開發(fā)者,這是毋庸置疑的,再好的測試是測試不出好軟件的,那么應該怎么樣去衡量測試是好還是不好呢,來自幾個方面:

  1、開發(fā)人員的反饋,因為測試其實是相當于給開發(fā)過程提供服務,確保開發(fā)高效的進行;比如bug經(jīng)常返工,這個效率比較低下(當然的程序人員可以盡量避免這點);

  2、Teamwork,團隊合作精神,除了開發(fā)人員之外,其他的角色,比如項目經(jīng)理,用戶體驗工程師,界面設計人員,測試人員都是團隊的成員,大家一起的團隊合作效果和效率也影響到了終的用戶體驗,在這點上測試無異于其他角色,都是需要好的溝通能力,合作精神。

  那開發(fā)人員的對于好的測試人員會有怎么樣的反饋呢?

  1、發(fā)現(xiàn)了很有價值的bug,一般用戶發(fā)現(xiàn)不了的bug,在cornercase發(fā)現(xiàn)的,而且用戶也會遇到的,(不是說在cornercase發(fā)現(xiàn),但是用戶基本上碰不到的)

  2、及早的發(fā)現(xiàn)了這些bug,越早越好的原則

  3、性能或者是安全方面的問題,因為這些問題都比較隱蔽,所以如果能夠發(fā)現(xiàn),開發(fā)人員自然覺得你很不錯

  4、review的時候提出很有價值的觀點,比如用戶在某種使用情景的情況下,設計文檔好像沒有考慮到;再比如如果和網(wǎng)絡相關的應用,是否考慮到離線的情況,是否考慮到帶寬低的情況,這個時候的測試人員其實是站在開發(fā)者的角度,提出自己的設計思路---當然還要開發(fā)人員buyin

  5、肯定你的技術能力,如果一個開發(fā)人員覺得一個測試人員,“技術很不錯”這個是相當大的肯定,也是很好的反饋

  6、Appreciate測試人員的其他幫助,比如你可以幫忙看一些bug,幫忙做診斷,幫助開發(fā)人員快速理解這個bug,甚至修復一些bug,幫忙做codereview,提出一些有價值的觀點等等。

  其他的更有影響力的情形:

  1、測試團隊可以影響到release的進程,比如如果release的時候必須達到某些質(zhì)量的criteria;

  2、測試團隊可以影響到feature的開發(fā),比如可以提出意見,覺得哪些featurepriority更高,應該放到哪個milestone開發(fā);

  3、測試團隊可以影響到開發(fā)的流程,比如建議checkin之前進行測試,比如什么時候codefreeze,什么時候進入下個milestone等等,通過bug的taxonomy/pattern從而影響開發(fā)的一些習慣;

  這些都是衡量一個測試人員在開發(fā)人員心目中是否是一個好的測試人員的因素;而團隊合作,同理其他成員對你的反饋也是很重要的。