Ⅰ 計算機找bug的人叫什麼
Software Test Engineer
Ⅱ 互聯網前輩總是說「bug是改不完的」,新入職的程序員該怎樣應對bug
互聯網前輩總是說“bug是改不完的”,新入職的程序員應對bug:
Ⅲ 程序員改bug有沒有一個專門的網站來整理與回答這些bug的啊遇到bug經常折磨我好久,有沒有地址
stackoverflow,這個網站有很多編程上的問題,基本上你碰到的在上面都能找到
Ⅳ 程序員遇到百度不出來的bug都是怎麼解決的
筆者不同意下面網友的回答。程序員如果解決bug的水平停留在網路,那麼本質上只是一個「面向搜索引擎的代碼搬運工」,是不合格的程序員。
程序員對面bug,正確的「打開方式」是像福爾摩斯和柯南那樣,尋找線索、運用邏輯推理來縮小問題可能的根因范圍,最終精準定位。
常用的方法有:
1. 壞境上下文變換法
2. 工具調試法
3. 版本回溯對比法
4. 代碼審計法
……
沒有編程問題是stack overflow和Google解決不了的,假設你在編程中遇到了問題,你自己解決不了、你周圍的的人都解決不了的時候,我覺得stack overflow、Google是你最好、也是最後的幫手。
作為一個程序員,我覺得Google、stack overflow是你必須要學會使用的兩個工具,這兩個工具本身並沒有使用門檻,只不過因為一些眾所周知的原因,很多人不能使用Google和stack overflow這兩款工具。
Google主要還是方便,而且很多編程問題都需要用到英文搜索,當然現在網路在專業能力上也提升明顯,不過跟Google也還是有比較大的差距,因此我還是強烈建議要學會使用Google,這會幫你在工作、學習上事半功倍。假設Google確實因為某些原因沒辦法很好的使用,我也建議你至少要會使用Bing搜索。
現在可以說stack overflow上沒有你找不到的問題了,從IDE環境安裝問題,到各類編程語言問題。演算法問題,數據結構問題,調試,重構等等,幾乎這里就沒有你找不到的答案,可以說在stack overflow上你可以找到任何解決方案,並且上面的回答者基本上都是非常有經驗,而且都是實際中遇到的問題分享出來的,這個工具一定要會使用。同理,除了stack overflow這個專業的垂直程序員問答社區,你也可以使用Quora這個綜合問答社區,這上面也能找到很多問題的答案。
一些比較優秀的文本編輯器: Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。
一些比較非常出色的IDE集成開發環境: visual studio,IntelliJ IDEA,PhpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。
macOS平台比較好的第三方包管理工具: Fink,Macports,Homebrew等。
一些比較好的終端工具: Zoc7,iTerm2,Cmder,terminus,hyper等。
一些比較好的筆記軟體、markdown工具、效率工具: Evernote,有道雲筆記,為知筆記,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。
虛擬機軟體、容器軟體: Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。
我是個程序員,職務是linux底層驅動工程師。平時的主要工作是調試驅動,但產品遇到諸如死機、重啟、不開機之類的問題時,也要參與查找原因。一部分問題,確實可以查看相關的log,然後網路這些log的關鍵字來解決;但更多的問題,牽扯的條件太多,並不是簡單的網路就能解決的。
觀察了周圍同事們的做法,我總結出以下幾種解決方法:
網路因為競價排名的原因,搜索出來的結果有很多廣告的成分,所以有時候要翻好幾頁才能看到一條相關的答案,有些甚至要翻幾十頁。
因為網路搜索使用的是SEO技術,即普通用戶可以通過優化網站內容來提升關鍵詞排名。
而這就會導致一個問題:你搜索關鍵詞後展現出來的結果是有人想要讓你看到的,並不是質量最好的。
也就是說,網路搜索結果被人為干預了。所以網路一直被網民所詬病。
但網路搜索不出結果,未必是網路的原因,也有可能是自己輸入的搜索詞不準確造成的。所以對於網路,我們要做到如下幾點:
除此之外,網路搜索還有點小技巧,粥左羅《萬字干貨,徹底講透搜索技巧,10倍提升你的搜索力(免費教程)》這篇文章寫得非常好,我整理幾點,僅供參考:
01 過濾目標內容
命令:「+」「-」
用法:通過「+」和「-」來對搜索結果進行過濾
比如在關鍵詞後加上「-推廣 -推廣鏈接」就可以排除搜索結果中包含相應字樣的鏈接。如果你發現廣告還沒有排除干凈,你也可以再加上「-廣告」通常就能徹底的消滅廣告。
02 搜索包含某關鍵詞的內容
命令:「intitle」
用法:通過「intitle」命令指定搜索結果中要包含的關鍵詞,注意「intitle」後邊連接的冒號是英文狀態下的。
03 搜索某一個格式的文件
命令:「filetype」
用法:通過「filetype」命令可以限制我們要搜索文件的類型,注意「filetype」後邊接的冒號也是英文狀態下的。
04 搜索特定時間范圍的內容
命令:「時間..時間」
用法:通過「時間..時間」命令可以限制我們要搜索的文件的時間,注意兩個時間的中間頓號沒有空格。
相對網路,谷歌、必應對於技術搜索,就相對准確許多,所以當你網路搜索不到時,嘗試下別的搜索引擎,說不定會有新發現。
現在程序員使用的機器語言,都是國外的,更准確的說,都是美國的。所以很多論壇、資料等,都是英文。如果你只會用中文來搜索,某些小眾的問題,當然搜不到啦。
所以,要學會使用英文關鍵字來搜索。
有時候甚至要去國外的一些論壇來搜索想要的答案,這就要求要有一定的英語閱讀能力,不能一看到英文帖就放棄。
有時候不管你如何搜索,都找不到自己想要的答案,該怎麼辦呢?這種情況下,就只能硬著頭皮嘗試自己解決了。
或者,尋求同事或朋友的幫助,尋求大腦風暴,說不定就會有思路。
如果有些問題是因為新器件帶來的,還可以找到器件供應商,讓他們安排技術支持幫忙查找原因。
除此之外,還可以把問題整理好,寫清發生的條件、復現步驟、測試方法、相關的LOG截圖等資料,去一些技術論壇發求助帖,尋找大牛的幫助。
做技術時間久了,發現有些問題確實無解,根本沒有辦法去解決它。
這時候,我一般會嘗試把它繞過,就是說,想辦法讓它無法復現,雖然問題還是存在,但是能把它掩蓋過去。
比如有些驅動在開機啟動時會載入不正常,那麼就讓它晚點啟動,或者手動載入。這也不失為一種解決問題的方法。
以上就是我的建立,希望對你有幫助。
首先作為一個程序員,一個優秀的程序員最最最重要的能力就是解決問題的能力。這里解決問題的能力當然就包含了解決 bug 能力了
畢竟,程序員這一生,可能會寫無數個 bug ,沒有說哪個程序員敢保證自己寫的程序沒有 bug 。 所以,寫了 bug ,遇到 bug 並不可怕,可怕的是你沒有解決 bug 的能力 。
作為一個程序員,解決 bug 的途徑有哪些呢?我們來一起聊一聊!
其實,每個程序員在學習編程的時候,都會使用編程工具,而現在的開發工具,其實功能都很強大。如果你自己合理利用編程工具,都了解和懂得開發工具的一些技巧,其實不僅僅能夠提高開發效率,而且還能夠幫助你解決很多編程中的實際問題。
debug 調試,大部分你常用的開發工具,都會有調試模式的,簡而言之,就是你編程的時候,遇到了不是自己所想的結果的時候,你可以使用 debug 模式,來一步一步的調試,在調試模式下一般每一步都會顯示所執行的結果,你可以看看在哪一步出錯了,執行的結果與你預想的結果不對,那麼你就能夠找到問題所在了。
還有就是,開發工具的控制台,都會提示出報錯信息的,現在的開發工具,都會直接告訴你哪一行,報了什麼錯。其實,很容易定位到錯誤的。你只需要在編程的過程中積累經驗,知道報什麼錯,用什麼方法來解決就行啦。
可是,提示的報錯信息,我不知道用什麼方法來解決的時候,該怎麼辦呢?這就是你需要積累的,也是問題中所描述的,就是通過搜索引擎來找答案。
不對,這里不應該是合理使用搜索引擎,應該是學會正確使用搜索引擎。比如:網路,你就不要用了,搜出一堆重復的信息,而且廣告也多。作為程序員,建議你使用谷歌搜索。
其實,你在編程中所遇到的幾乎所有的問題和 bug ,別人也同樣遇到過,因為不管是經驗豐富的老程序員,他技術再牛逼,也是初學者過來的,也都踩過你踩的坑。所以,互聯網是個好地方,裡麵包含了你想要的問題的答案。
你只要把報錯信息往搜索引擎上一放,回車一下,很多關於這個 bug 的答案就出來很多,你只需要找到跟你一樣的 bug ,就能找到答案了。
在這里必須提一下這個網站,所有的程序員有必要學會使用這個網站,其實,你編程中所遇到的問題,這個網站上幾乎都是由解答的。
Stack Overflow 可以說是最好的軟體程序類問答網站了,給軟體開發人員工作和學習提供了非常大的便利,以至於像小白,離了 Stack Overflow 簡直都不會寫程序了。
所以,建議大家一定要學會使用這個網站,對你編程肯定會有非常大的幫助的。
通過上面的方法,幾乎應該能夠解決到你所遇到的問題,但是,實在找不到答案的話,你可以問經驗比你豐富的老程序員,實在解決不了,那就換種方法吧!
網路,谷歌,debug,斷點調試,業務上的bug就需要問下同事或者產品。如果能知道大致范圍,哪一部分錯了,就換一種方法唄,一般都不會只有一種方法。
1.reload
2.restart
3.rewrite and then goto 2 or 4
4.reboot
5.rm -rf /
6.原諒我編不下去了[捂臉][捂臉][捂臉][捂臉][捂臉][捂臉][捂臉]
找bug跟醫生看病的思路是一樣的,要對症下葯。得先把問題的根源找到,找到根源以後問題就容易處理了。搜索引擎找不到的問題,說明這個問題不是一個常見的問題,具有獨特性,那麼從bug出現的路徑上一步一步去排查。必要時可以用排除法,盡可能的縮小排查范圍。另外,當軟體的業務邏輯比較繁多復雜的時候,一個結構清晰的架構能為你節省不少找bug的時間。還有,充分的單元測試能夠幫你減少出bug的機會。以上均為個人看法,歡迎討論!
一般程序員能碰到的bug無外乎其他上遊程序員寫庫時手抖留下些不匹配或者容易溢出的問題,搜一下差不多能解決問題。如果是自己寫的,那無非就是時序錯誤類型錯誤之類的,用break point一行行的調就好了。
再復雜點的bug就是程序員拿高薪的根本了,只可意會,不可言傳~
僅僅靠搜索引擎、其他網站那必然無法解決大量問題,因為很多問題是跟業務邏輯相關的,是沒有直接答案的。比如 游戲 開發有個界面一直無法顯示,這個問題就不是網路可以解決的。問題需要調試分析,這和破案非常像,但在開發過程中更有利的是問題有機會可以重現。破案是逆向工程,需要反推。解決代碼問題不僅僅可以反推,也可以通過閱讀代碼正向分析。下面說說如何debug一個業務邏輯問題。回到剛剛的例子,有個界面一直出不來,我們如何快速去定位:
1.思考這個問題發生的可能性。比如 游戲 內大量界面都是正常的,那麼可以對比正常界面代碼和異常界面代碼的區別,這是對比法。
2.假設創建正常界面和這個異常界面的邏輯代碼是一樣的,那麼問題就落到了這兩個界面內部,繼續在內部重復上面的對比法進行判斷,直到鎖定最終位置。
上面說的方法基本上可以杜絕卡在一個簡單問題上,這是擺脫新手的一個過程。選擇使用對比法或者其他方法的前提都是基於觀察和對項目的認識,所以,搜集「案發現場」是最關鍵的。
其他的問題,不屬於邏輯的,像其他網友說的那樣,有些通過到github、stackoverflow等地方解決的。這些問題也不是直接就去查找的,它通常也有個分析過程。比如你使用了一個庫,但是目前它不支持你的模塊。對於新手,就是直接網路或者google了。實際上這樣的問題也是有「案發現場」的。對於作者提供的api介面的統一性和便捷程度去推斷作者在相關支持模塊的位置以及命名以及拓展,再嘗試在文件夾中搜索。如果都找不到,再去Google上獲取更多的信息。重復推斷、分析,決定如何拓展或者繞過。
綜合上面的幾種問題,可以看到的是都離不開對現場的觀察和推理分析。這種能力也被稱為經驗。但是一般情況下你看不到它們這個分析過程,你能做的就是在實際環境中反復逼迫自己去思考,去訓練。這個推理的培養,不僅僅是對事情,也是對人。
我在入行 游戲 開發的前期,也是類似的情況。卡在不同種類的問題上,有些在簡單邏輯,有些在別人的代碼支持上。後面解決的問題多了,就會發現裡面共通的思維方式。常用的一些方法如下:
1.對比法,比較正常與異常代碼區別
2.二分查找法。分段注釋找問題,也會用在很多方面。比如最近版本突然出了一個奇怪bug,可以通過svn還原來定位。這個還原不是一個一個版本還原,而是用二分法去還原。
3.增加信息。在懷疑的位置或者過程添加日誌或者打斷點輔助自己更好的推理。
4.相似推理。比如一個引擎在api、性能使用程度上都非常友好,那麼它在別的地方也有可能相對表現比較好。這時候如果有個功能我們的實現需要很復雜才能完成,那麼就有可能是我們用錯了。相似推理不一定都能正確,但會提供一些幫助。
以上。
Ⅳ 程序員是如何找項目練手的
首先,你能想到平時找項目來進行練手,說明你是一個在技術上面是一個非常上進的同學。 想要找到項目進行練手,第一個想到的地方應該是 Github。Github 上擁有全球最多的開源項目,你可以從其中找到自己感興趣的開源項目,然後參與到開源項目的開發中去。 能夠參與開源社區,這也是很多互聯網公司非常看重的一點。
其次現在也有很多舉辦計算機類比賽的平台,比如阿里雲的天池大數據、Kaggle、Datacasle等。 你如果有時間,可以參與上面舉辦的比賽,進行項目練手。
想要在 Github 上面找到自己想要參與的開源軟體,首先你要確定好自己對什麼技術方向感興趣。 比如對於我來說,我對實時計算非常感興趣,所以我找了很多開源的實時計算引擎,最後選擇了 Flink 開源項目,現在也在努力的參與到 Flink 的開發中去。想要使用開源項目來進行練手,你一定要確定好自己的技術方向,找到感興趣的開源項目,接著就是嘗試參與到其中。
確定好自己感興趣的開源項目後,第一步就是去訂閱官方社區的郵件組,在社區的郵件組裡面,你可以看到很多同學對於開源項目的問題以及解答,你未來有任何問題時,也可以在開源項目郵件組中進行提問。 其次,你可以去開源項目的官方網站,將裡面的官方文檔閱讀和理解一遍,這對於你未來 API 的使用和概念的理解,會有很大的幫助。
最後,你可以去開源項目的 JIRA(問題主頁),查看自己能解決哪些 JIRA,隨著你解決的問題越來越多,我相信你的能力也會提升的越來越快。
其他方面,你也可以去阿里雲的天池大數據等平台上面查找自己想要參與的比賽,上面的比賽主要以演算法類比賽為主,但也有性能優化相關,編程類的比賽項目。 我以前在上面參加過阿里中間件的比賽,但是還是和同學一起來進行參加,一路跟著做下來,自己的能力也提升了很多,而且在校招的時候,面試官也問了很多這方面的問題。如果你能夠跟著比賽做下來,我相信你肯定能夠得到一定的收獲。
我會持續大數據、資料庫方面的內容,如果你有任何問題,也歡迎關注私信我,我會認真解答每一個問題。期待您的關注
剛入門可以在GitHub或者各個技術網站找一些基礎的DEMO,不需要很復雜,有幾個知識點就可以了,熟練了在學其他知識點。最後再找一些完整的DEMO練,理解各個知識點之間的聯系,熟練掌握常用的設計模式。
初級程序員可以拿公司的項目練手,從頭到尾熟悉代碼,然後跟著版本更新,鞏固掌握的技能,有新技術點多在網上查查資料,多理解,活學活用。
高級程序員可以對現有項目進行重構,搭建框架,深入底層原理。
大神程序員一般都很神秘,是我膜拜的對象[呲牙]
給你推薦一些比較實用的小項目吧,另外千鋒也有很多實戰項目視頻教學。
文本操作
網路
類
線程處理
Web應用
文件
資料庫
圖像和多媒體
游戲
不用刻意找項目練手,可以從興趣入手自己做一個項目,然後再不斷的用新技術重構這個項目 。
從興趣入手為什麼說要從興趣入手呢?因為這個是一個需要長期進行下去的項目,如果不是自己感興趣的東西,很難有動力堅持下去。
有哪些方向可以參考呢?比如你喜歡動漫,那麼可以做一個動漫圖片素材收集的網站;你喜歡足球,那麼可以做一個 歷史 數據統計的網站,其實只要是你感興趣的都可以動手去做。
一個項目做成以後並不是一層不變的,因為技術永遠在更迭。當我們學習了一個新技術時,那麼我們就可以用新技術把這個項目重構,順便練練手。
比如說原來項目里有一個用java寫的用來抓取數據的爬蟲,現在你正好在學習Python語言,那麼你就可以嘗試用Python語言將這個爬蟲重構。
總結我一直認為一個好的程序員必定具備良好的產品思維,可以根據自身的興趣點做一個項目並長期維護下去,並不斷的用新技術重構這個項目,在練手的同時還能兼顧興趣,可謂一舉兩得。
想通過項目練手,這說明你有上進心,非常值得鼓勵。互聯網上有不少資源,這些項目是比較成功的實踐案例,還有相應的教程或者豐富的文檔,便於使用者理解,這類項目非常適合程序員練手實踐。這些寶藏級的資源在哪裡最多呢,毫無疑問,在GitHub上最多。
有同學會問,GitHub上面這么多項目,我應該如何找到合適自己的呢?
從自己的興趣出發每個人喜歡做的項目都不一樣。有的人喜歡爬蟲,有的喜歡自己做些小 游戲 。從自己的興趣出發入手,這樣有利於保持學習的動力和熱情,肯花時間學習,自然進步就快。
從容易的項目入手一開始不要選擇太難的項目,要從簡單容易的項目入手,再慢慢過渡到難得項目。就像打 游戲 一樣,先殺小怪積累經驗,最後再跟boss單挑。順序不要搞反了。
想要找項目練熟的話,肯定是找已經有人做出來的,有源程序的,如果你在項目中遇到問題不懂又沒有人指導那這時候源程序就是你最好的指導老師,找項目最好是找自己喜歡的,這樣你做起來就不會覺得累,即使做一天都不會感覺到累,特別是每一次中的小小的成功可以讓自己更興奮和開心。我以前就是這樣過來的。
任何項目都沒有實際項目練手快,各種進度,各種bug,各種要求,想想就頭痛,剛解決了一個進度,下一個又來了,下一個寫完了上一個又出bug了,沒玩沒了,這是練手最快學習最快,網上找的項目只能全是熟悉,要解決問題卻比不上實際項目來的快
程序員的世界雖然是很精彩的,但是寫代碼本身是很枯燥的。
跟工作不一樣,練手的項目一般不會給你任何回報,除了能夠提高你的水平之外不能帶給你其他東西。為了防止我們因枯燥的代碼過程放棄練手,要盡可能地去找熱門的東西,能夠與人交流才能使這個練手的過程豐富起來,來自同行或者愛好者的交流反饋能使我們在枯燥的代碼過程中更有目標,更能堅持下去。一個人枯燥的壘代碼學到的東西比與同行在論壇上或者開源項目上的交流中要少得多。
所以說找項目練手最好是找自己感興趣的,並且最好是有很多用戶或者同行交流的,這樣才能學的更多並且不容易放棄。
可以去bilibili上找找相關的項目練習,主要還是得跟著視頻老師講解多加練習才好,熟能生巧嘛。推薦你可以看看尚矽谷bilibili上的視頻,更新及時內容也是貼合企業開發的需求呢。
「我的做法是,自己創造項目,然後哪裡做不出來就去問,去搜。
童年接觸過很多fc 游戲 ,我就把他們重新做一遍。
」
- - - - - - - - - - - - - - -
Ⅵ Java程序員 剛進公司 項目經理分配給的bug 怎麼樣去著手改
首先,看看主要的開發文檔。
第二,請教經理大概講解些平台整體結構,
第三,請教同事幫你講解一些怎樣快速的尋找或定位到那個類和那個頁面的方法。因為是他們開發的,所以他們熟識。最好讓他給我演示一二回如何尋找頁面和類。
第四。修改時多用一些輸出語句,在JAVA用System.out.println()
在JS里有alert();在JSP頁面用out.println()等。
第五。記得多問,切記,這是成長的途徑,最適合新手了。
Ⅶ Java程序員怎樣調試bug
前端調試技巧:瀏覽器按F12 可以觀察控制台輸出的變數,可以看請求的情況(請求路徑、參數等) ,這些都是常用的,每個瀏覽器不同。一般都是火狐的firebug 和谷歌瀏覽器
console.log(vartem);//控制台列印變數
alert("tem");//彈出框彈出變數
後台調試:eclipse IDE就是在相對應的java代碼處打斷點,看變數值等
Ⅷ 測試中遇到不可重現的Bug怎麼辦 詳細�0�3
! 1. 記得有這么個缺陷,以後再遇到的時候可能就會了解發生的原因。 2. 盡力去查找出錯的原因,比如有什麼特別的操作,或者一些操作環境等。 3. 程序員對程序比測試人員熟悉的多,也許你提交了,即使無法重現,程序員也會了解問題所在。 4. 無法重現的問題再次出現後,可以直接叫程序員來看看問題。 5. 對於測試人員來說,沒有操作錯誤這條.既然遇到,就是問題。即使真的操作錯了,也要推到程序員那裡,既然測試人員犯錯誤,用戶也可能會犯同樣的錯誤。錯誤發生的時候, Tester 最大。 二、程序不是測試人員寫的,出問題也不是測試人員的原因。 至於無法重現,可能的原因很多,因為測試人員看到的只是程序的外部,無法深入程序內部,所以把責任推給測試人員是不對的。 測試人員的任務只是盡力重現問題,而不是必須重現!! 三、下次再遇到的時候,拉他們來看就可以了。 因為問題如果無論如何無法重現,程序員確實也沒有什麼好的解決方法。 而且此類問題即使程序員說修改了,測試員也沒有好的方法去驗證是不是。 四、你可以告訴程序員,測試過程是沒有錯誤的。 測試人員只是檢查程序中可能存在的問題,雖然測試人員使用一定的手段方法努力去覆蓋所有的情況,但這些都是理論的推測。在實際中,可能因為人員、環境、配置等種種原因出現各種各樣的問題,在測試人員這里發現問題是公司內部的事情,程序發到外面可就是公司的形象問題了。 需要讓程序員理解,測試人員是幫助他們的,不是害他們的。 客戶那裡發現問題比測試員發現問題結果要嚴重的多。 五、測試部門是獨立於開發部門的呀,真的打交道,也是經理對經理。 在我們這里,工作上面的事情,和程序員相互只能商議解決,並沒有誰高誰低。 問題無法重現,也要提出,程序員那裡可以回復無法再現。問題放在那裡,等到再次出現的時候,就立刻叫程序員過來查看。 實在沒有再次出現,最後可以寫到報告中,說出現了什麼現象,但無法再現(比較嚴重的問題才如此處理,小問題經理之間商量商量可能就算了)。 至於測試人員必須重現bug,你殺了我好了,我每次測試項目都有無法重現的問題,很多我能找到大概的原因,有些根本無法重現(僅僅出現一次)。 這種事情是無法避免的,並不能說測試人員無法重現問題,就是工作不到位(哼,程序有 bug,是否可以說程序員工作不到位的呀)。 六、測試部門要獨立,最好不受開發的制約。其實真正要重視,就應該有否決的權利。 我們公司就是項目承包,要拿最後的項目尾款,就要測試部簽字通過,這樣就避免了很多的問題。 其實只要自己盡到心就可以了,管別人怎麼說呢。 七、我們使用的狀態有: 程序員處理的狀態(由測試員提交的Action):等待處理的,再次出現的。 測試員處理的狀態(由程序員提交的 Action):已經修改的,暫不修改的,系統限制的,使用錯誤的,無法再現的。測試員可以修改記錄。 經理處理的狀態(由測試員提交Action):管理員處理的。經理還可以刪除記錄。 按照比較標準的說法,其實對於缺陷還應該有「等待確認的」、「已經確認的」和「重復提交的」的狀態,我們為了省事,統一使用了「等待處理的」。 最後結項的時候,缺陷的狀態對我們來說有兩種,「已經關閉的」(由測試員或經理確認)和「暫不修改的」(比如下一個版本處理等)。 呵呵,狀態多,有些煩瑣,特別是程序員很多的時候都不清楚應該回復什麼狀態,但我個人覺得對測試人員來說,這些狀態比較清晰明了,容易處理。 八、一個叫 doer_ljy(可戰)的網友回復了一些內容,我個人認為不很妥當,就回復了一些內容,綠顏色的是doer_ljy(可戰)的內容: 關於「無法重現」我看是有這么個問題存在。 首先如果你在測試之前有嚴格的測試計劃,就很難出現「無法重現」這種現象。「無法重現」的意思是不知道怎麼操作才能再次看見這個BUG。那麼這個BUG 多半是「計劃外」的。 不清楚你是否是測試人員。「計劃外」這個詞,對測試員來說應該不存在。測試用例的粒度一直是個在討論中的問題,測試人員很難有時間和精力寫出包含內容、數據、步驟等等全部操作一切的測試用例(說白了,只要一個長手識字的人,按照測試單做,就能發現所有的問題,呵呵,有軟體藍領的感覺了)。即使真的有,意義也不大,測試很多的時候,是發散性的思維,帶點創造性,想事先考慮完全,很難。所以更多時候,是在測試過程中逐步對用例等進行完善,所以說「計劃外」最好不要提。 說說我現在測試的一個項目,有一個業務,首先查詢出人員,有個「全選」按鈕,「全選」後,再用滑鼠一個一個取消選擇,這個時候進行業務辦理的時候,就會提示「沒有選擇人員」,至今為止一切都正常,但是這個時候再次點選人員進行業務處理,仍然會提示「沒有選擇人員」,這就是一個缺陷了。這個問題我想一般人都不會在測試用例中考慮到吧,因為發生的條件很苛刻:不用「全選」按鈕的時候不會發生;全選後點擊「取消全選」按鈕再辦理業務不會發生;全選全消後,先點擊人員再辦理業務也不會發生。 其次,成熟的測試人員即使無法再現 BUG,也能准確的描述出 BUG 發生之前幾個步驟的操作方法,測試用例情況。這些對開發人員分析BUG 原因很重要。所謂的BUG 發現環境。 呵呵,看來我不是成熟的測試人員。手工測試,比較熟練的時候,和打字可以說差不多,應該進行到哪裡,心中是有數的,但讓我完全從頭到尾的重復,不容易呀。寫測試缺陷報告單的時候,也只是說明操作步驟和發生的現象。其實無法重現的問題,既然說「無法重現」,也就是測試人員已經對這個現象進行了多次的驗證,一般從程序外部來說,測試人員的操作比程序員要熟練的。 最後,我不同意測試人員不假思索把發現的「問題」直接推給編碼人員的做法。畢竟是大家合作,目標是一致的。測試人員總是處在 BUG 發生的第一現場,應該幫助分析出現問題的原因。確認是不是自己的此時Miss. 測試人員提交任何一個問題,都會經過反復的驗證,如果容易重現,早就提出來了。絕對不是在推脫責任,還是那句話,對程序的結構,做的人當然比不做的人要清楚。另外,除非程序員詢問,否則我不會給程序員提出修改分析和建議!!測試人員的任務是發現問題,解決問題是程序員的事情。這么做可能會影響程序員思考問題的思路;而且測試人員做的多了,程序員不但不感激,可能反而會反感(好像程序員對測試人員有好印象的不多)。 再說兩個我這兩天遇到的問題。第一個就是我們的程序有一個鎖定數據的功能。鎖定後,在其它的業務,此數據將不能再使用。我當時發現這個功能無效,而且經過了幾次的驗證都不行,我當然就提出了。但是程序員那裡說此功能好使,我再驗證的時候,就沒有問題了,這個問題當時可以重現(但是我不可能遇到問題就拉程序員來看吧),後來卻沒有了,只能放在那裡,最後關閉掉。第二個就是在一個界面中,錄入有順序要求,必須先選擇一個ListBox (必填)再進行Edit 的錄入,但一次操作我沒有選擇 ListBox 就錄入的Edit,也正常保存了。後來無論我怎麼操作此問題都沒有出現(不夠成熟呀),我就放棄了,也沒有提交記錄(為了避免麻煩)。 測試人員的時間是有限的,進度給的都很少,一般連用例都沒有時間寫,還要去花很多時間驗證「無法重現」的問題?反正 10 分鍾如果試驗不出來,我就會放棄。嚴重的就提交,不影響的就當不知道。 下面是其它一些人的觀點: doublefalse(散諸懷抱):如果不能重現的 bug 確實比較麻煩,但最好在測試過程中注意干凈環境、正確的操作、相同的數據源,只要真的有問題,一定能否復現的。呵呵,多試試!!!我們以前一直有客戶反映入庫的數據經常有無關數據,但在家裡測試沒有問題,後來才發現是漢字編碼錯位,這樣同樣的字,錯位後就變成另外的東西了。 liuxiaoyuzhou(蟀哥):遇到過同樣的問題!主要是記住BUG 出現的環境!測試的時候這是關鍵! 在我們這里不能重現的BUG,是測試人員的工作不到位!我們這里程序員比測試人員說話有力度!郁悶呀! ericzhangali(另一個空間):首先一定要提交bug;其次不要企圖RD 一定去解這個bug;某些時候還得關閉這個bug。如果RD 認為是測試錯誤,(不明白什麼叫測試錯誤,是不是說他從測時要告訴你千萬不要怎麼怎麼做,否則後果自負啊,)那也沒什麼辦法,如果溝通解決不了,愛咋認為就咋認為吧。 darkcat_c(錯了重來):沒有 bug 是不可以重現的,bug 本事是建立在標準的規程上所出現的異常,如果你按test case 步驟做的話不太可能出現此類bug。作為測試人員一定要具備良好的記憶能力,一旦出現一些不知如何產生的bug,至少你要知道剛才你大致進行了那些操作。良好的分析能力,盡管你只是測試,但你應該全面的了解程序的架構,和一些重要的內部細節,不然你這個測試就是不合格的。定位bug 是開發的事情,而重現一個bug 是測試的本職工作,不要把所有的事情推給開發,不然你的確比開發要低一等。(編者按:這種話,不願意去辯駁,標准開發人員的看法,也許應該讓他們也來做做測試) liyan_1014(雁子):我覺得應該是這么處理: 1、一定提交bug,必須由負責bug 的tester 詳細描述測試操作步驟,bug 發生的症狀,並將 bug 發生的具體環境也描述清楚;這樣對於再次重現也有一定的參考性。 2、測試和開發之間是需要良好溝通的,如果得到的回復是操作錯誤,那麼請開發人員解釋,為什麼會允許存在操作錯誤,一般來說,對於錯誤控制,開發那邊應該能很好的把握。
Ⅸ 我培訓機構剛畢業出來的程序員,在公司里做軟體工程師,項目代碼做不出來,被開除了。出bug了就不知道
剛做項目都是這樣,建議進一些正規公司,進入後有人帶著一起做項目,不懂就問,實際做上2個項目就知道如何做了。不會一開始就讓你單獨接項目。
1、繼續開發行業,找正規公司,不要太在乎工資。
2、做二次開發,一些軟體公司有自己的產品,他們有合作商,做二次開發相對來說簡單一點。
3、做實施,有開發相關經驗一般會優先錄取(學歷、經驗也很重要)。
4、做測試,額,測試行業不是很了解,大型公司的測試都是大神級別的。。。