iT邦幫忙

0

製作注意事項請益

php

基本上後台大致上沒什麼在變動,不同的Case除非特殊的需求
否則通常只是針對欄位作局部的修改
但前台因應設計版位的不同,即便是一樣用固定的class去串接
免不了一定得套用的命運,只要是要套用,就多少會有Bug
想跟各位請益,使用是否有什麼流程或者工具,在套用時可以減低Bug的產生
或者可以較有效率的作QC

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

14
fillano
iT邦超人 1 級 ‧ 2010-06-28 15:53:35
最佳解答

前台很複雜,變因很多,我想應該是很難用一套工具來解決。要應付外觀變動,在coding上目前最好的方法還是將外觀與資料分離,讓程式邏輯與UI外觀不會在coding時互相影響,這通常是邁向MVC的第一步。(第二步是商業邏輯與應用程式邏輯分離)

至於要怎麼分離...常用的一個方法是在專案中使用Smarty這一類的樣板引擎。不過也有人覺得用這個太麻煩,因為他有自己一套樣板語言,而php就是夠好的樣板語言。不管你要不要用Smarty,第一步都要把程式的邏輯跟html想辦法完全分開,要在頁面中呈現的動態資料都先存入變數,最後把這些變數傳遞給樣板引擎,或是內嵌在html內,只含顯示邏輯(例如把二維陣列處理成表格)的php程式。利用這樣的方式,多少可以減少介面與程式之間互相的干擾。

做QA的話,UI最困難...目前實在沒有聽說有完美的方案。另外專業的測試解決方案很貴(ex. LoadRunner etc.)...所以我這裡只能建議免費的...你可以嘗試看看。

第一個方案是Selenium,你可以利用他在Firefox錄製操作行為,然後就可以播放錄製下來的行為,反覆對頁面進行測試。不過有一個大問題,就是Selenium是利用DOM來找到你要操作的頁面元素,如果你改了整個頁面的設計,他就沒轍了。

第二個方案是有趣的Sikuli,這是一個泛用的GUI測試工具,他利用圖形辨識技術來操作GUI,不過同樣會碰到改了畫面測試就要重寫的問題。

傳統的介面測試工具著重在資料的I/O,例如透過post/get/ajax送出資料後,是否返回正確的東西(比較返回頁面的特徵資料等),對於頁面是否正確呈現更無力。不過也許現在有更好的工具也說不定啦,有一段時間沒碰了。我記得jmeter有proxy的plugin可以做這方面的資料錄製與播放,你也不妨試試看,不過不知道他有沒有支援ajax。

參考網址:
Selenium: http://seleniumhq.org/
Sikuli: http://groups.csail.mit.edu/uid/sikuli/
Jmeter: http://jakarta.apache.org/jmeter/

另外,要怎麼往有比較好的程式架構的網站前進,可以參考這個簡報:
http://www.slideshare.net/jaceju/web-1494836
(Jace之前寫過一本關於Smarty的書,他最近可能會在StudyArea講他在網站開發中使用的Design Pattern,時間還未定就是了)

chan15 iT邦新手 2 級 ‧ 2010-06-28 16:59:31 檢舉

那本書我也有買呵呵
基本上我也覺得只要是人就會有bug的可能
畢竟程式是錯一個符號都不行的東西
我想聽取別人的作法來強化這一塊

fillano iT邦超人 1 級 ‧ 2010-06-28 18:21:48 檢舉

另一個方向是測試驅動開發。或是,至少讓測試可以為軟體把關。

不過在台灣的環境,尤其在php的環境,很少人這樣落實。光是寫出來的程式是「可單元測試」的就不是很多了...不過除了經驗跟小心,測試還是個比較好的方法。

如果程式無法單元測試,那用我上面講的這些工具來做整合測試大概是沒方法中的方法了。至少,你可以預期如果輸入(ex GET, POST)相同,那輸出也應該一致。只要預期輸出是一致的,那就可以用輸出的結果做測試,這是測試的基本原理。不論用什麼工具,只要可以這樣檢驗,應該就可以做測試。

另外,一些軟體工程的概念也可以參考看看啦,方法應該是很多的。

Jace目前正努力透過測試驅動開發、應用Design Pattern、重構、讓專案立基在內部共享的framework上等的方式,讓程式容易根據客戶的要求變動,又能兼顧品質,不過這是一條長路,沒有老闆支持大概很難走,還真有點羨慕。他的部落格上應該不時會有一些心得。

總之,加油吧...

對了,還有一個可以專心工作又減少錯誤的方法,叫做pair programming。不過據試用過的朋友說,因為實在太專心,一天最好不要超過四小時,否則會很累。方法是:兩個人同時寫一樣的程式,一個人寫的時候,另一個人在旁邊看,不時交換一下角色...(這個恐怕更少人做)

我要發表回答

立即登入回答