前兩天去參與了一個
產品測試的研討會,業者從國外請了一個Team來講述有關產測(產品測試)的
技術跟
注意事項,雖然先前在採購某些軟體前,自己也會做一些簡單的測試,但是跟這一群專業人士所做的測試相比,可能連
三成都不到。(
但是...測試的結果是否真能反應在採購上呢?我後面會再細述)
雖然產品測試的出發點很好,但是對大多數的使用者來說,它並
不適用,因為他們通常只要得知
結果,至於是不是自己所測試,或者這個結果是否真的能套用在自己的作業環境上,往往就被輕忽而選擇性的遺忘了。
或許有人會說,我那有這麼多時間可以做測試,況且某些條件的測試,對一般人來說的
門檻過高(例:Tom Hardware的專業測試),所以直接引用專業人士的報告(結論),能夠
交差就好。
在某部份而言,我能夠接受且認同這樣子的觀點,但是...
應用軟體上的測試,這點就不太能夠苟同,畢竟,絕大多數的軟體都有"
試用版",就算是
閹割後的版本,但是主要功能應該都會保留,這樣子的測試門檻,除了手邊是否有
工具與
可重複性測試的平台,其它就只是
時間的長短。
因為當天的議程是整整一天....,我也只能摘要式的點到為止,而且會場有發給我們"兩大本"的內容,基本上講述的內容,在那兩本講義中均有整理,讓我能夠盡情的聽台上的人講述心得與技巧。(雖是全程英文,但有即時翻譯,這一點還蠻有人性的,不過...)
回歸正題,雖然這個產品測試的研討會,主要討論的對象是AV Software(防毒軟體),但是我相信同樣的技巧與概念,也能夠跨到其它軟體且都能適用才對,畢竟基本功是人人都得練的,不是嗎?
在台上的講者,提到的內容包括下列幾個重點:
1.樣本的選擇。(測試的條件)
2.線上威脅介紹。(外在因素)
3.動態測試。(實際會遭遇的狀況)
4.效能測試方法論。(操作環境的適用性)
雖然聽起來好像都是針對AV(防毒軟體,不是Adult Video...)來說,但是「()」中是我自己加註的,主要是思考那些是否能適用於其它軟體的測試呢?
1.樣本的選擇:
主要是告訴我們在取得測試樣本時,應該注意廣度及適用性,其中包括:
(1)擴大測試樣本的來源。
(2)篩選有效的樣本(這點我覺得極困難)。
(3)加入乾淨的樣本(做為鑑別測試)。
如果換到別的軟體測試的話,應該就是要確認測試項目,以及要採用什麼樣的方法來測試,要先有所準備,才能開始針對不同產品來做一連串的測試,否則一個偏頗的取樣範圍,很容易造成過大的誤差,甚至會造成數據失效。(無鑑別度可言)
2.線上威脅介紹:
可能會遭遇到那些不同的攻擊,或者說是應該要具備怎樣的防範能力:
(1)釣魚網站。
(2)木馬。
(3)病毒。
(4)廣告軟體。...族繁不及備載
這一點,在我看來...其實最大的外在因素,往往是來自使用者的觀感,或者說是使用者對於產品熟悉的程度,因為每種軟體的目的不同,所以在測試的過程中,要試著站在使用者的角度來思考,也就是說...測試者本身對軟體應用的領域也要有一定程度的瞭解,不然就有可能發生「拿大砲打麻雀」的狀況,一整個不切實際。
3.動態測試:
進行實際的測試,透過軟體來收集實際感染惡意程式或病毒後的變化,藉此來確認所採用的防毒軟體是否能夠有效的阻擋相關的威脅。(這點還包含了相關惡意程式的收集)
(1)利用第三方的軟體來找出系統或軟體漏洞。
(2)透過虛擬化的技術來協助資料的收集。
(3)模擬真實環境下可能會遭遇的狀況。
(4)在無防備的乾淨系統內啟動惡意程式。(資料收集)
這種動態測試,其實在所有的測試過程中是最重要的部份,往往也是最嚴苛的部份,因為你永遠無法知道在「真實」情境中,可能會碰到什麼事,未知的錯誤、硬體或作業系統不支援,甚至連能不能把測試的軟體安裝上去都還很難說。
況且,在動態測試的過程中,還得考量系統實際會運行那些程式,是否會因為使用者習慣的不同,造成有差異的測試結果,如果非得加入通用性的測試,自己是否具備足夠的能力來達成,我想都是在做動態測試前,甚至在規劃該如何測試前,就得先衡量進去。
4.效能測試方法論:
其實這是網路上最多人愛討論的部份,例:誰最不佔系統資源?誰的某某能力最好?說穿了,這個效能測試,一直以來都很難有所定論,因為,尚未有大一統的標準,或者說...還沒有一個能夠讓各家廠商都信服的準則。
(1)測試平台的統一性。
(2)數據取樣的平均值。
(3)效能判定的標準。
(4)使用工具的客觀性。
其實在所有軟體的測試過程中,效能一直是兵家必爭之地,尤其是現在硬體的思維已經漸漸地走向同時間能夠做好多少事,而不是做好一件事能多快(多核心的演進),所以這項測試也是必做的項目之一,最好是能夠再把效能的快慢與實際的條件相關連,例:能夠為公司節省多少時間成本、讓舊有的硬體達到最大化的效能...等。
雖說效能是很重要的一件事情,但是再好的效能還是比不上使用者的真實感受,例:使用者只要感覺到lag的現象發生,無論是10或30秒,對他們來說差別並不大。但是在效能的數據上,就會有三倍的差距,所以效能測試這部份僅能做為參考依據,並無法讓使用者能夠完全接納該產品的條件(除非你能做到使用者完全沒有感覺...)
至於,為什麼我在最前面會提到測試結果不一定能反應在實際採購或選用上?原因很簡單,因為產品測試這部份並沒有考量"價格"或"成本"這個項目,這部份牽扯的層面很廣,人數多寡、是直接由廠商、經銷或零售商能夠談到的價位,各別有所不同。
因為企業主或老闆,其實最在意的不外乎也是這一點,他會跟你說,我可以犧牲一些效能來換取更低的購入成本,或者是能採用較精簡的版本來壓低支出,就是不太能接受用較高的價格來購入效能較高的產品(除非你能夠提出數據來佐證,最好還是能夠顯而易見的...千玩不要是那種經過三年五載才看得到的,因為那太遙遠且不可期待。)
這也是為什麼「產測」在一般人或相關人員的手中,成了一門既愛又恨的技術或文化,因為想讓自己或技術人員信服自己的選擇,你就得具備產測的能力及條件,但是在實際的操作上,卻又敵不過金錢攻勢,而淪為一疊白紙黑字的佐證報告。(可能只剩學術性的價值吧!)
所以,這些技術就當做是練內功!光有技術是無法讓老闆信服的(不過...千萬別只剩一張嘴),在技術的最外層,請回歸現實面後再來跟決策者討論產品的優劣,不然,就是加入實際的商業考量跟明確的(預算)數字,我想...這一點在每個領域都適用吧!