2008年3月13日 星期四

Embrace change, embrace test automation

做研究没頭緒,來聊聊新的興趣~

最近常常很高興的和別人說
「你知道嗎?我轉QA了,在做自動測試喔~」
最通常的反應是:
「你用rational嗎? 還是 mercury?」
次常的反應是:
「UI一直變動,不是自動測試改起來很痛苦嗎?」

(還有人覺得很奇怪,啊網頁測試不就點來點去而已…(我踢~~~))

其實對於自動測試的偏執,有大部份的緣由是來自對Iterative 開發的相信。Iterative 開發解答了需求變更的及降低技術風險的問題,但的確帶來新的疑問

「那測試呢?」

如果你是用人工測試,很好,每次新的release 出來,不但要測試新功能,舊功能也要一併測- 加新功能的時候應該沒有一個工程師敢掛保證舊功能不會掛吧? (好吧,至少我不敢…) ,如果你對外宣稱要支援IE6.0, IE7.0, FF2.0,還有safari...喔喔,那變成所有功能要測四次,因為很讓人沒力的是,每種瀏覽器run 起javascript 和css就是同中求異,異中求同,除了乖乖測之外也沒有其它的方法呀~ 全部都用人工,這太慘了(也太累(笨?)了)。

所以自動測試(for acceptance test)對於長期的、Iterative 的開發是必要的。市面上的工具也蠻多,不過我依照個人的偏好,選了selenium當我的戰友。雖然說是偏好,但其實是有幾個重要的理由。個人(真的是個人)覺得,一個好的,用來做 acceptance 的自動測試工具應該要有下列特點:

(1)Ease of Use
通常測試人員花比較少的時間碰code,所以他們對頁面的dom結構不會太熟,此時可能需要一些工具的幫忙,如firefox 的dom inspector, XPather,甚至是可以錄製的工具試錄一小段,幫助測試人員降低一些門檻
(2)Compatible
Must be compatible with browsers you want your software to support. Crystal Clear.
(3)Programmable
因為你的要測的軟體會變(而且有可能是大變)。所以你的腳本一定要能夠跟著改(而且要用十分少的時間成本跟上)。而改…如果指的是重新再錄一次,那也不必了,因為每個Iteration都有可能改,可能你錄完都到下一個Iteration去了,來不及測試是也。一個有效、能跟上軟體進化的測試腳本,應該是高度模組化的東西,當程式的某一個模組改了,你對應相對的模組即可跟上去。所以,個人的感覺是這些腳本要像程式一樣,可以refactor,可以有架構,也就是說,它要能用programming 的方式drive.

第三點也同時帶出一個新問題,那如果要測試的軟體本身就沒有架構(所謂前端的架構)可言,怎麼辦?其實我也不知道,因為沒有經驗過。不過以本人的直覺來看,應該會測不下去吧,至少是蠻痛苦的或會沒有效率。

目前也只是個開頭,不知道以這樣的測試方法來做能否真的有好的助益(早期發現大bug 啦…提高品質啦…等等),需要後續的努力和驗證才能見分曉囉。

2008年3月10日 星期一

騎在銀龍的背上



這首騎在銀龍的背上實在蠻熱血的,適合士氣委靡不振的研究生提振精神用:P
大意是說,雖然我現在像小雞一樣弱,但是總有一天我會變強,騎在銀龍的背上,穿越一切的迷惘和困惑。

歌詞翻譯可以看這裡

2008年3月9日 星期日

論文論文你要何處去...

最近論文已經進行到跑真實資料的階段了;
任務即是從一堆的移動軌跡資料中找出「共同的」移動軌跡;希望用在有sensor network的賣場中分析hotspot等等資訊. 但是…現在sensor network 在國內的賣場中仍然是雷聲大雨點小的狀態;所以轉進求取其它的真實資料做分析;詭異的是;原本預期的應該不一定對「其它」的資料有意義,所以還要為了這個資料說說故事。

偏偏說一個 domain 的故事,從來不是件容易的事。 除非在該領域裏已經有足夠的浸潤,否則你對一件事觀察的角度失準與深度不夠是正常,畢竟不是精通 Tigerology (唬爛學)的人,足以寫出玄幻或奇想風格的文章,真困難。

星期五聽了一個 Tigerology 黑暗爪牙的演講,其實在台下都要爆走了,不過外在則是空靈的眼神逃避演講者的目光。希望之後我去某某研討會時,不要在台下看到類似的眼睛。

2008年3月5日 星期三

自動測試竟然讓我眼盲了

年初的工作轉成QA之後,非常的興奮。最大的原因是可以投時間玩webapp的自動測試,超開心的。
花了約莫三星期的時間後,終於deploy 自動測試在新的build 上了。當然也捉到了一些bug,蠻有成就感。不過…

竟然在首頁的CSS Bug 被我忽略了

這種只依賴自動測試的睜眼瞎測試法十分危險,因為 layout 沒有半法自動測,即使CSS bug 導致頁面面目全非,只要DOM結構沒壞測試還是過得了啊啊啊… 目前所知的解法也只能用眼睛看了。

警惕一下