電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2014年4月25日 星期五

談軟體測試

軟體測試是一門很艱難的工作,軟體工程絕對不是會寫程式或是開發演算法而已。舉例來說,前幾天Facebook Android App一個bug讓我好幾天沒辦法發訊息和留言,還要我自己搞定。

這個bug跟密碼登入和multi-process programming有關:改密碼後,使用Android的Facebook App重新登入,但是無法留言和送訊息,原因應該是Facebook的外掛Messager程式不知道密碼改變了,所以一直送不出留言,但是也沒有給任何錯誤訊息,反而讓打了一大串的留言消失。

解決方案是直接打開Facebook Messager App,強制登出。這應該是Facebook App自己應該做的事情,但是它沒有做。Facebook這麼多厲害的開發者,還是如此,說明軟體測試的難度。

這個問題還有可能跟出國有關:在台北的時候沒問題,到日本才出問題,我一度懷疑到電信商頭上。如果是跟地區的網路服務有關的話,測試就更困難了。

這個問題可能比較特殊,因為還牽涉到資訊安全,但是可以作為一個很好的教案。也就是說,軟體工程要懂很多東西,還要會發揮想像力。

這裡提到好幾項技術領域:multi-process programming, networking, data center, distributed storage, privacy, security, cache coherence。具備實務經驗的高手,可以根據短短幾段描述想像出問題的來源,軟體高手的生產力,比庸手高太多了,就像神醫和庸醫一樣,天差地差。

不過,一般公司的QA通常是照著人家給的流程進行測試,應該是沒有能力自己發明測試流程,更不要談除錯,或是給建議了。測試流程,通常是產品設計師訂的,會有盲點也是人之常情。要突破這個窘境很難,除了願意請資深的產品設計師出來帶領驗證團隊,還要找到願意接這種位子的工程師。

Intel的晶片驗證工程師,往往比晶片設計工程師還要有經驗,原因便是如此,而且因為硬體不能有bug,所以非得如此不可。軟體界因為微軟一天到晚出問題,讓大家對於bug的忍受度不斷放大,所以軟體QA受重視的程度並不高,除非是mission critical的系統,另當別論。

3 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. 而且因為硬體不能有bug,所以非得如此不可。軟體界因為微軟一天到晚出問題,讓大家對於bug的忍受度不斷放大,所以軟體QA受重視的程度並不高,除非是mission critical的系統,另當別論

    >> 那是軟體工程的問題,根系統無關,微軟是因為壟斷後有恃無恐,如果做過日本人的軟體系統就知道日本人對於看待測試的重要

    回覆刪除