2012年11月16日 星期五

粗心可以殺死一條狗~~


這幾天發生一個事件,因為我的不細心及不夠完整的思維,讓我所屬的開發團隊,遭到二線人員的質疑,說我們的程式沒有quality。這讓我對我的團隊感到很抱歉,尤其是我的leader,因為他是首先第一個被質詢的人。

這件事情是這樣的,我們從B系統移植一個X功能到A系統中,負責人就是我。我在移植的過程中犯了一些過失:

1. 系統中提示文字的顯示迷思
因為A系統和B系統處理顯示的文字是使用不同的動態連結檔,剛好A系統的某個設定有問題,使得A系統會連結到錯誤資料夾中的檔案,也連帶讓X功能可能存在顯示不正常的機會。只是剛好我的電腦在那個錯誤的資料夾中,存在了對的檔案,所以移植到A系統的X功能,在我的電腦可以顯示正常,但測試人員的電腦就出現問題了。
è 我應該更細心的檢查程式碼,發現他們是使用不同的DLL,並檢查出A系統呼叫到錯誤資料夾中的檔案。這樣我就可以修改它,使其可以永遠顯示正常的文字。

2. 忽視一個重要錯誤的不應該
因為我的開發環境是Win7,而使用的開發語言是VB6,所以常常在發生由Win7建構出的程式,在執行時會造成一些錯誤。而我卻把這次的一個錯誤,誤認為是由於Win7所建構造成的,結果最後被發現其實是程式的bug
è 我應該要用另一台XP電腦來建構這個程式,然後再加以測試。這樣就會發現到這個問題並不是由於win7的建構環境所造成,而是我乎叫某個函式的先後順序有誤所產生。

3. 忽視測試過程中每個數值變化的情況
在執行我想得到的測試案例時,我沒有注意到所有使用到的數值的變化,使得我沒有發現到,在寫入歷史紀錄時會誤用到預設的帳號,而不是真正當時在操作的使用者帳號。
è 我應該要更細心的查看每個數值得記錄與更動,只要稍微把每個資料都看過一遍,就一定會發現這個錯誤,但我沒有。

4. 思考到的使用案例不夠全面的後果
在測試的過程中我只著重在X功能本身的測試,沒有思考到與這個X功能有相關的其他功能。根據原本的設定,在X功能中設定某些資料後,啟動Y功能時,Y功能應該要讀取在X功能中設定的資料,並用這些資料來更新資料庫的數值。但因為我不夠全面的思維,沒有發現到Y功能這樣的行為沒有被啟動。
è 我應該更主動去瞭解X功能及與X功能相關的其他功能,並盡可能的找出這些功能的所有使用案例,如果可以依循使用案例來測試,這樣就可以避免掉產出半殘的X功能。

總結:
雖然大部分的問題,很多是由於我對於整個系統的架構和機制還不是很了解所造成,但這不應該作為藉口,因為現在負責的人是我。我應該要想辦法去瞭解,不過我卻沒有做到,只有簡單的測試一下,然後覺得看起來很OK應該沒問題了,這真的是要不得的想法。這些天來我也看了許多測試的書籍,發現上面我犯的許多錯誤,其實書中都有提到,也註明了這是許多測試人員會犯的通病,沒想到就真的發生在我身上了(雖然我是開發人員)。最後,這次的事件對我來說真的是一個很好的教訓,但也是一次很好的學習機會。希望這次的學習,可以讓我更加的成長,並在下次或將來開發時都能更加注意、更加細心地去思考及處理。

沒有留言:

張貼留言