對于那些不知道程序員/開發(fā)者的時(shí)間都去哪了的人,本文可能會提供一些線索。我記錄了這份日志不僅是為了看看時(shí)間都花費(fèi)在哪了,也是為了看看我都做了些什么,檢視下自己是否偷懶了。當(dāng)回顧之后,我發(fā)現(xiàn)花這些時(shí)間都是值得的。
作為開始,下面是我在前一階段追蹤的bug,(假設(shè))你應(yīng)該可以看到其中的錯(cuò)誤。僅僅拿出這10行JavaScript并找到錯(cuò)誤在哪里并不難,但要在茫茫的代碼中定位這10行并證明那些就是bug,這就有一定的難度了。
如此寧靜的一天。通常情況下,有三個(gè)人可能打斷我工作的連貫性,因?yàn)?1:30之前,我要不時(shí)的與他們通過語音或文字信息交流和討論。把這些過程以log記錄下來,實(shí)際上是對我工作的推進(jìn)是有幫助的。這使得我能端坐在鍵盤前專注于我的工作,以免被別的問題分心。
09:50 收到了一封來自團(tuán)隊(duì)成員的郵件,內(nèi)容是關(guān)于一些可能會產(chǎn)生問題的代碼。我看了一下,并把目前解決不了部分整理起來。
10:10 繼續(xù)昨天IE7虛擬機(jī)的下載(4gb)。
10:15 由于IE7下載的時(shí)間比較長,我趁著下載的時(shí)候,申請了TestingBot的賬號。
10:20 與一名開發(fā)者Skype語音,討論關(guān)于他新添加的功能。
10:21 由于設(shè)計(jì)師沒有正確的把圖片上傳到網(wǎng)站,產(chǎn)生了大量的報(bào)錯(cuò)郵件。我花費(fèi)了兩天的時(shí)間讓設(shè)計(jì)師掌握源代碼控制軟件。由于有些設(shè)計(jì)師沒有Visual Studio,我也建立了一些用來存儲特定內(nèi)容的文件夾,這些文件夾可以自動(dòng)發(fā)布問題給這些設(shè)計(jì)師。我有沒有提到,無論是在測試中,鏡像模擬階段還是已發(fā)布的產(chǎn)品中出現(xiàn)的每一個(gè)錯(cuò)誤我都會記錄下來。我認(rèn)為這些設(shè)計(jì)師都應(yīng)該看一看。
10:22 一名開發(fā)者要與我進(jìn)行Skype語音。為了防止下載軟件占據(jù)網(wǎng)速,而影響通信,我不得不暫停下載IE7。
10:45 完成與那名開發(fā)者的語音通信。
10:50 由于持續(xù)的退信錯(cuò)誤,250個(gè)報(bào)錯(cuò)郵件不能夠正常工作。我繼續(xù)了IE7的下載。放棄刪除報(bào)錯(cuò)郵件,手動(dòng)連接Azune并刷新那些設(shè)計(jì)師之前沒有正確上傳的圖片。
10:55 通過網(wǎng)絡(luò)服務(wù)器繼續(xù)測試IE7瀏覽器。查看日志中IE7報(bào)錯(cuò)的部分并找到錯(cuò)誤發(fā)生的原因。
11:00 測試位置出現(xiàn)了新的錯(cuò)誤。我發(fā)現(xiàn)是由于某一名開發(fā)者的原因,如果他能修復(fù)錯(cuò)誤,測試將會繼續(xù)進(jìn)行。我發(fā)現(xiàn)缺失圖片錯(cuò)誤的原因是設(shè)計(jì)師仍然沒有圖片添加到源碼中。由于仍然報(bào)出大量的錯(cuò)誤,Will不得不提醒那名設(shè)計(jì)師。查看進(jìn)度服務(wù)器(設(shè)計(jì)師的樂園)上的圖片,我發(fā)現(xiàn)設(shè)計(jì)師還是沒有上傳。我為設(shè)計(jì)師收集了一份錯(cuò)誤列表,其內(nèi)容是由于缺少圖片而產(chǎn)生的錯(cuò)誤。我提取了這些錯(cuò)誤,記錄在一份Excel中,這里提取的僅僅是關(guān)于圖片的報(bào)告。我創(chuàng)建了一個(gè)支持工單(譯者注:support ticket 支持工單系統(tǒng)),并發(fā)郵件給設(shè)計(jì)師。
11:11 回到IE7的錯(cuò)誤上。通過查看日志,我找到了錯(cuò)誤的原因。
11:16 在日志中找到IE7的錯(cuò)誤并下載下來。由于文件比較大,下載花費(fèi)了一點(diǎn)時(shí)間。
11:21 從日志中提取50個(gè)IE7的JavaScript代碼錯(cuò)誤。追蹤Excel中的錯(cuò)誤并試圖減少這50行代碼的錯(cuò)誤。
11:23 發(fā)現(xiàn)錯(cuò)誤出現(xiàn)在日志的起始處,而不是最近的記錄。我對日志進(jìn)行時(shí)間倒序排序并找到更多的錯(cuò)誤。
11:26 不再查找Excel中新加入的錯(cuò)誤,僅僅查看現(xiàn)在已經(jīng)記錄下來的。
11:30 第一個(gè)錯(cuò)誤是無法加載谷歌的網(wǎng)站分析服務(wù)。原來又是那可惡的百度搜索引擎。
11:31 在開發(fā)過程中修復(fù)了下一個(gè)錯(cuò)誤。
11:32 下一個(gè)問題發(fā)生在Mac中的FireFox瀏覽器。我想在上Mac需要建立一個(gè)完全單獨(dú)的測試計(jì)劃,因此我創(chuàng)建了一個(gè)支持工單。
11:35 余下的50個(gè)錯(cuò)誤都是由于同一個(gè)Mac系統(tǒng)的問題,我不得不去找一些較早時(shí)間發(fā)生的錯(cuò)誤。
11:37 在錯(cuò)誤搜索中,用“或”取代“與”,并試著取消搜索過程,但無反應(yīng)。
11:42 一封報(bào)錯(cuò)郵件提醒我,測試位置發(fā)現(xiàn)字體缺失的問題,我將此問題發(fā)郵件給設(shè)計(jì)師。
11:43 之前的搜索過程被取消,開始重新搜索。
11:45 設(shè)計(jì)師回郵件說,那些文件出現(xiàn)缺失并非偶然,現(xiàn)在問題已經(jīng)解決了。
11:46 在等待下一批錯(cuò)誤的時(shí)候,已發(fā)布產(chǎn)品又出現(xiàn)了一個(gè)不可思議的IE7錯(cuò)誤。我用支持工單記錄下了這個(gè)錯(cuò)誤。如果當(dāng)初我能有時(shí)間(5分鐘),我絕不會去考慮其他錯(cuò)誤細(xì)節(jié)。
11:50 最后,通過使用textingbot.com網(wǎng)站去查看IE7的錯(cuò)誤,我現(xiàn)在知道為什么IE7不得不被淘汰了。除了提示一個(gè)模糊的行數(shù)、字符位置信息和“期望一個(gè)標(biāo)識符,字符串或數(shù)字”這類日志中已經(jīng)有的信息,再也沒有什么可用的開發(fā)工具可以幫助提供更多的錯(cuò)誤信息了。
11:52 借助IE7測試瀏覽器的“查看源碼(View source)”功能和之前記錄錯(cuò)誤的行數(shù),我發(fā)現(xiàn)少了幾行。再試一次,提示超時(shí)。我想我并沒有少了那幾行,因?yàn)镮E7報(bào)告有一行沒有JavaScript代碼,這個(gè)功能一定被行數(shù)和空白符(空格、Tab和回車)干擾了。
11:57 我剛注意到某頁的中間幾段JavaScript時(shí),再次被設(shè)計(jì)師打斷。通過查看這段代碼,我發(fā)現(xiàn)它們主要負(fù)責(zé)處理移動(dòng)端顯示的問題。我試著直接在測試服務(wù)器上編輯這段代碼,看看能不能注釋掉這些錯(cuò)誤。
12:04 不能直接編輯。由于測試服務(wù)器需要密碼,網(wǎng)絡(luò)蜘蛛程序禁止我建立索引。這意味著測試瀏覽器服務(wù)無法進(jìn)入測試服務(wù)器。
12:06 哦!!!我進(jìn)入測試服務(wù)器發(fā)現(xiàn)錯(cuò)誤還在那里。哦不,測試服務(wù)器崩潰了。
12:08 重啟IE7的測試并再次執(zhí)行測試,日志上沒有出現(xiàn)任何JavaScript錯(cuò)誤。
12:09 刪除那些可能有問題的代碼的注釋,我發(fā)現(xiàn)錯(cuò)誤再次出現(xiàn)在日志中。接下來要縮小范圍查找錯(cuò)誤。
12:10 測試服務(wù)器又開始無反應(yīng),無法刷新頁面。啟動(dòng)另一個(gè)服務(wù)器,并登入,我發(fā)現(xiàn)依然會出現(xiàn)錯(cuò)誤。注釋掉一些代碼后,我發(fā)現(xiàn)錯(cuò)誤是由于最后10行代碼。為了確定,我們將這10行代碼頁注釋掉,發(fā)現(xiàn)可以運(yùn)行了。我們再縮小一下范圍,加一些alert函數(shù)。IE7再次崩潰。
12:26 一些嘗試之后,我重啟了IE7測試服務(wù)器,我發(fā)現(xiàn)了錯(cuò)誤的原因。由于一段腳本代碼使得IE7崩潰,我想這段代碼也可以造成其他瀏覽器崩潰。這些代碼不算很糟糕,我也不會(太)責(zé)備設(shè)計(jì)師。但是,這些代碼本來不應(yīng)該在任何瀏覽器上運(yùn)行,更確切的說,進(jìn)入到產(chǎn)品運(yùn)行的環(huán)境中。它被嵌入到那頁代碼的中間部分。這屬于JavaScript代碼的問題,設(shè)計(jì)師用它們做一些黑客行為的事情,比如隱藏移動(dòng)設(shè)備的菜單,而且這些JavaScript代碼被藏在一頁中的中間部分。這些代碼附近并沒有放置測試代碼,沒人會在最初的快速瀏覽中發(fā)現(xiàn)它們。但它們帶來的后果顯而易見。
12:30 我在源代碼中修復(fù)了這個(gè)bug,并記錄下這個(gè)過程。接著,我開始解決其他IE7的bug。它們是。。。
12:34 我意識到,我必須將這段經(jīng)歷告訴開發(fā)團(tuán)隊(duì),因?yàn)樗麄兌伎赡軙懮厦婺欠N代碼(除了IE7,哪里都可以運(yùn)行),而且仍然有相當(dāng)多的用戶在使用著這個(gè)功能。
12:45 完成這個(gè)bug的修復(fù)。
上面提到的bug,都是由那些初始化語句中的一個(gè)逗號引起的。
一定是有人復(fù)制粘貼了這段代碼,一天之后,我又在其他地方發(fā)現(xiàn)了它們。
-
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30263
發(fā)布評論請先 登錄
Java開發(fā)者必備的效率工具——Perforce JRebel是什么?為什么很多Java開發(fā)者在用?

為何嵌入式開發(fā)者覺得 MCU 開發(fā)無趣,更傾向 MPU(Linux)?

阿里云升級通義靈碼AI程序員,全面上線
開發(fā)者的開源鴻蒙故事
機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

潤開鴻受邀參加華為云開發(fā)者日南京站
AI編程工具會不會搶程序員飯碗
第五屆長沙·中國1024程序員節(jié)開幕
華為原生鴻蒙之夜官宣1024程序員節(jié)彩蛋:與鴻蒙開發(fā)者共碼未來

KaihongOS 4.1.2開發(fā)者預(yù)覽版正式上線,誠邀開發(fā)者免費(fèi)試用!

程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

評論