• 網站導覽 • 旅人群像 • 旅人行腳 首頁 • 旅人的台北印象 • 旅行行程規劃幫手 • 行李檢查清單 錫安 (Zion National Park) 石化森林 (Petrified Forest National Park) • 阿卡迪亞, 緬因 - 火島, 紐約 - 麥克亨利堡, 馬里蘭 - 阿薩提格, 維州-馬里蘭 • 仙納度, 維吉尼亞 - 威廉王子森林公園 , 維吉尼亞 - 藍嶺公園路, 維州-北卡 • 大煙山, 田納西 • 坎格瑞沼澤, 南卡 - 普拉斯基堡, 喬治亞 • 畢思肯, 佛羅里達 • 沼澤地, 佛羅里達 • 海龜, 佛羅里達 • 庫雅荷加谷, 俄亥俄 • 皇家島, 密西根 • 探險家, 明尼蘇達 • 猛獁洞窟, 肯塔基 - 傑佛遜國土擴張, 密蘇里 • 温泉, 阿肯色 • 羅斯福, 北達科塔 • 風穴, 南達科塔 • 惡地, 南達科塔 - 總統石像, 南達科塔 - 寶石洞窟, 南達科塔 • 瓜達洛普山, 德州 • 大彎, 德州 • 黃石, 懷俄明 • 大提頓, 懷俄明 - 魔鬼塔, 懷俄明 - 化石丘, 懷俄明 • 洛磯山, 科羅拉多 • 大沙丘, 科羅拉多 • 甘尼生黑峽谷, 科羅拉多 • 維德台地, 科羅拉多 - 恐龍, 科羅拉多 - 科羅拉多, 科羅拉多 - 佛羅瑞珊化石, 科羅拉多 • 卡爾斯貝洞窟, 新墨西哥 - 卡普林火山, 新墨西哥 - 白沙, 新墨西哥 - 阿茲特克廢墟, 新墨西哥 • 拱門, 猶他 • 布萊斯峽谷, 猶他 • 峽谷地, 猶他 • 頂礁, 猶他 • 錫安, 猶他 - Grand Staircase-Escalante - 天然石橋, 猶他 - 紀念谷, 猶他 - 包威爾湖, 猶他 • 大峽谷, 亞利桑那 • 石化森林, 亞利桑那 • 仙人掌, 亞利桑那 - Canyon de Chelly • 大盆地, 內華達 - 米德湖, 內華達 • 冰河, 蒙大拿 • 北瀑布, 華盛頓州 • 雷尼爾山, 華盛頓州 • 奧林匹克, 華盛頓州 • 火山湖, 奧勒岡 - 奧勒岡洞窟, 奧勒岡 • 紅木, 加州 - 火山岩床, 加州 • 拉森火山, 加州 • 優勝美地, 加州 - 莫諾湖, 加州 - 魔鬼柱, 加州 • 紅杉與國王峽谷, 加州 • 死谷, 加州 • 約書亞樹, 加州 • 峽島, 加州 • 紐約市 (New York City) • 巴爾的摩 (Baltimore) • 華盛頓特區 (Washington DC) • 拉斯維加斯 (Las Vegas) • 聖路易 (Saint Louis) • 紐奧良 (New Orleans) • 你也許不知道的國家公園 • 世界遺產 (World Heritage) • 各地美食 • 萊特建築之旅 • 佛羅里達 野生動物 • 四季之春天 • 四季之夏日美食 • 紐約市中城的耶誕節 • 紐約市植物園耶誕火車展 • 華盛頓特區櫻花季 • 華盛頓特區國家教堂的耶誕節 • 吃在華盛頓特區 • 國家耶誕樹 • 歐巴馬狂熱 總計 來訪人次
瓦哈拉的塗鴉簿 Quality Assurance (Mar 21, 18) 話說最近工作挺忙,花大把時間做QA。不是我中年危機跑去搞職場第二春,純粹是我在做的 operations & maintenance 所依賴其上運作的應用程式寫得太爛,爛到影響我的日常生活,於是我自己上場當 tester,想搞清楚到底是什麼妖物在咬人。這也算是某種 preemptive strike,把足夠多的妖魔鬼怪給抖出來攤在陽光下,這樣子問題在哪裡大家一目瞭然,省得將來出紕漏被終端使用者抱怨之後相關各部門才開始互相指責踢皮球,就算站在道理上,旁觀的路人還是難免會懷疑所有人同樣無能。
如果說程式師寫程式是建設性的行為,那麼 QA 就是標準的破壞性行為。有些人喜歡造橋鋪路,有些人喜歡殺人放火,大家角色各異,各有所長。我雖然挺喜歡寫程式,偶爾轉換角色去搞垮別人寫的程式,也還不算違反我的做人原則。話雖如此,但不免心虛自己幹的事有點像是治療師去把病人的腿給敲斷,然後說:「你看,都是因為你先前沒有認真做好復健,所以腿才這麼容易斷。」
程式師最大的惡夢應該是碰到一個同行,而不是個專業 QA ,來測試自己的程式。通常專業 QA 的行為可以預測,多半是按照既定的測試計畫執行測試,而測試計畫大多是按照正常的使用流程所設計。如果不是用自動程序花大量時間去測試,而只是用人工方式的話,多半測不出有用的結果。但如果測試者是寫程式來針對特定的錯誤行為或是用程式來產生測試樣本,那效率會高得讓人愉悅,簡直比搞建設的成就感還要大。過去兩星期以來的測試,幾乎是所有我懷疑的問題全部被確認是bug,擊沉率將近百分之百。
軟體工程有這樣的良性循環和惡性循環,因為我對這系統的品質完全沒有信心,而一旦所有的「該不會‧‧‧」全都被證實為「果然是!!!」,測試者會有更大的興趣和動機去嘗試更荒謬的可能性。而一旦程式師在時間壓力之下試圖去解決大量的軟體錯誤,就算解決了被報告出來的問題,但在缺乏全面完整的測試之下,無可避免會產生新的軟體錯誤。這時測試者只需要很輕鬆地重複流程,就能繼續發現新的錯誤,很像是個無法醒過來的惡夢。
前些年我在做一個兼差的工作,工作內容類似 QA ,是去檢驗一個線上軟體的網路安全性,那個系統算是有點國安的敏感性。我測試的方法不是盲目用正常使用方法走正常流程去測,而是直接去看前台的 java script ,發現那個系統在前台做一部分的使用者身份認證與暫存,我猜目的是想提高工作效率。對於那些會按照系統設計去使用的人當然沒問題,但碰到像我這樣心存惡意的人,這簡直像是伸長了脖子請人來割一刀。那個系統的使用者有不同的權限範圍,我看了之後寫了一段新的前台程序,在用測試帳號登入之後,拿修改過的惡意前台程序執行,把竄改之後的認證結果送回後台,成功地用那段程式把我的測試帳號權限擴張成為系統最高等級。我雖然見慣了各種bugs,但這麼愚蠢的錯誤相當罕見。
因為我的角色只是短期兼差,兩星期期滿,送出測試報告後就走人了,所以不知道後來發生了什麼事。我真心希望他們取消掉那個計畫,把整個系統放棄不用。這世界上充滿了半個屁股的程式師以這種態度寫程式,鬧出人命也一點都不稀奇。
我覺得 IT 產業和官場類似,是個極端腐敗封閉的社會。我認識的男性程式師幾乎全都目空一切,共同的態度都是:如果沒人找出bug,我的程式就是世界上最完美無雙的。而一但使用者發現問題提出疑問時,負責溝通協調的 PM 一般會幫著程式師去說謊愚弄使用者,欺負他們不懂行,大事化小小事化無的同時,串通程式師偷偷把問題解決,再把錯誤原因推諉成使用者錯誤。
上個月我們機構的後台 server 集體中了 bitcoin miner 病毒,狀況失控到他們必須在正常工作日無預警停止所有線上系統超過兩小時。我們被下令不准告訴使用者真正原因,如果被詢問,只能回答是因為硬體問題必須緊急關閉重新啟動。事發之後兩天我代表客戶去參加一次內部會議,負責的組織避重就輕,完全不解釋為何防毒軟體沒有偵測到病毒,也不解釋為什麼病毒會被帶到 server 上,甚至連是從哪一台 server 開始感染都被當做內部機密。一個小時的會議,主持人花了二十分鐘解釋電腦病毒,另外二十分鐘解釋什麼是 bitcoin ,什麼是 miner ,剩下二十分鐘解釋他們計畫的解決方法以及對使用者的可能影響,然後把第一個報告發現病毒的 System Admin 當做英雄來表揚。
因為事情並不和我直接相關加上和氣生財的處事態度,我什麼話都沒說。大家一團和氣,度過了一小時的時間。
瓦哈拉首頁
前一則
後一則
加入討論留言
瓦哈拉首頁
前一則
後一則