要解決這樣的問題,可能有兩個方面的要求
1. 測試人員(其實也包括開發人員)應該更多的從用戶的角度來考慮問題。也就是常說的customer insight,從這個角度我們不是完全被動的按著spec走,而是可以challenge它,為什么做成這樣,至少要知道為什么。
2. 測試人員要往開發流程的更前面走,而不只是等到產品做出來了之后去裝起來驗證。那樣太晚了,而且修改的成本比早期要高很多。測試人員一開始就應該參與到產品的設計中,并且從用戶的角度給出自己的意見。當然,這一部分也依賴于domain knowledge和個人的經驗。
以上兩個方面,對測試人員來講,是挑戰,因為要求更高了,也是機會,因為工作更有value了。
到目前為止,看起來我們的質量范圍已經比較完整了? not yet。
Quality scope #4: 處理異常情況的能力
說到這個問題,還是舉個例子吧。很多人可能對nokia手機的抗摔能力印象深刻,自己遇到的或者聽朋友說的。常見的情節是這樣的,一不小心從桌子上,或者從樓梯上把手機摔了下來,然后蓋子摔開了,甚至電池也掉出來了,這時候心里拔涼的,但是抱著僥幸心理把它們重新裝到一起,按下開機鍵,everything is OK,然后很happy。這種故事的后續是很多人因此第二次,第三次稱為諾記的用戶。因為覺得他們的手機質量很好。
這個故事有趣的地方在于說明書上從來不會寫我們的手機從樓梯上摔下來不會有問題,廠家估計一般也不敢寫。從樓梯上把手機摔下來絕對是一個異常的情況,也不是產品針對的場景,嚴格來說摔了之后壞了也屬正常。但是反過來,如果這種異常的情況下,都沒有問題,就會讓人覺得質量很好。所以是一個質量加分的地方,也是branding build up的地方。比如你可以(以前?)不小心把水倒在Thinkpad的鍵盤上,也可以踢到macbook的電源線。
從軟件的角度,異常的情況也有很多,比如
1. 突然停電
2. 硬件故障
3. 操作系統故障
4. 網絡連接意外中斷
5. 系統資源(內存,硬盤,網絡端口等)耗盡
6. 用戶的誤操作
通常情況下,這些情況都不會發生,但是還是會發生(墨菲法則)的。如果只是一個PC上播放MP3的軟件,遇到上面的情況就出問題了,甚至不能恢復需要重裝,也許還是可以接受的,畢竟不是很重要的任務,而且也不常發生。但是如果是很重要的軟件系統,而且有著重要的數據,不能恢復就問題大了。
對于這一部分,我們都應該考慮到,不管是開發還是測試。在測試的過程中,我們也要盡量的去驗證。
其實質量還有很多的方面,比如。
Quality scope #5: 易用性
這是一個很重要的也常常被忽視的方面。很多時候我們開發產品的人會覺得自己的產品很好用,但是用戶不覺得。我想其中一個很重要的原因是我們自己對這個領域很熟悉,而且對產品的各個功能,甚至他們內在的聯系很清楚,再者因為工作的原因我們已經用了幾十上百遍。這樣算來易用性當然不是問題。但是我們不能要求我們的用戶如此,因為用戶不會(很多產品也不應該)花很多的時間研究學習我們的產品,他們購買我們產品提供的功能,就是要更有效和高效的完成他的工作。如果用戶為了完成一件常見的工作,比如修改一項小的設置,就需要去修改很多的地方,而且沒有提示要告訴他修改對應的地方,那么這就是我們產品的問題。
很多時候用戶錯用或者誤用我們產品的功能,除了用戶自身知識和經驗不足之外,我們也應該反思一下是不是我們的產品做得不好用,流程和界面設計得太讓人困惑。
易用性不只是產品的UI做得比較好看,更多的時候還包括產品的流程和接口的設計。這是一個很大的領域,這里限于自己的自己的了解和篇幅就不詳述了。最基本的,我們可以把自己想象成對產品了解有限的初用者,很多問題就容易暴露出來了,或者還有一個辦法,找一個不太了解人的,給他一些任務,讓他去操作,然后去觀察,聽聽他的感受。
Quality scope #6: 可維護性
維護的目的有很多,比如產品升級,功能升級,打補丁等等。 對于一個正式而長期使用的系統而言,特別是服務器軟件,這是很常見的工作。這些方面處理的好壞往往也非常容易影響到用戶對產品的判斷和印象。常見的問題包括
1. 產品升級不能將來的版本的數據導過來,或者數據出錯
2. 升級后不兼容或者對硬件要求很高
3. 打補丁或者升級后遇到問題是否可以回滾?
4. 用戶報過來問題,如果收集信息定位問題
軟件質量其實是一個很復雜的東西,上面提出的其實也只是工作中常遇到的一些方面(即便如此,很多還是常被忽略),比如用戶對產品質量的看法還會受到情感因素的影響,比如產品的UI,和客服人員的溝通過程,以及公司和產品的品牌等等。
從軟件測試的角度,針對質量的不同的方面,我們也有不同類型的測試活動來保證,比如design review,還有各種測試類型,functional,stability,performance,deployment,migration,usability,stress,compatibility 等等。
Ricky
Jun 15, 2010