A. 遇到無法重現的缺陷,被開發打回來了,怎麼處理
測試中遇到不可重現的Bug處理辦法:
一、一定要提交。
1. 記得有這么個缺陷,以後再遇到的時候可能就會了解發生的原因。
2. 盡力去查找出錯的原因,比如有什麼特別的操作,或者一些操作環境等。
3. 程序員對程序比測試人員熟悉的多,也許你提交了,即使無法重新,程序員也會了解問題所在。
4. 無法重現的問題再次出現後,可以直接叫程序員來看看問題。
5. 對於測試人員來說,沒有操作錯誤這條.既然遇到,就是問題。即使真的操作錯了,也要推到程序員那裡,既然測試人員犯錯誤,用戶也可能會犯同樣的錯誤。錯誤發生的時候,Tester最大。
二、程序不是測試人員寫的,出問題也不是測試人員的原因。
至於無法重現,可能的原因很多,因為測試人員看到的只是程序的外部,無法深入程序內部,所以把責任推給測試人員是不對的。測試人員的任務只是盡力重現問題,而不是必須重現。
三、下次再遇到的時候,拉他們來看就可以了。
因為問題如果無論如何無法重現,程序員確實也沒有什麼好的解決方法。而且此類問題即使程序員說修改了,測試員也沒有好的方法去驗證是不是。
四、你可以告訴程序員,測試過程是沒有錯誤的。
測試人員只是檢查程序中可能存在的問題,雖然測試人員使用一定的手段方法努力去覆蓋所有的情況,但這些都是理論的推測。在實際中,可能因為人員、環境、配置等種種原因出現各種各樣的問題,在測試人員這里發現問題是公司內部的事情,程序發到外面可就是公司的形象問題了。
五、問題無法重現,也要提出,程序員那裡可以回復無法再現。問題放在那裡,等到再次出現的時候,就立刻叫程序員過來查看。實在沒有再次出現,最後可以寫到報告中,說出現了什麼現象,但無法再現(比較嚴重的問題才如此處理,小問題經理之間商量商量可能就算了)。
Bug英文單詞,本意是臭蟲、缺陷、損壞、犯貧、竊聽器、小蟲等意思。現在人們將在電腦系統或程序中,隱藏著的一些未被發現的缺陷或問題統稱為bug(漏洞)。 由於現在社會的發展,bug另有一種引申意義,用來形容某事物厲害的超乎想像,BUG可以使電腦系統崩潰、容易被施詐者攻擊,現有修復漏洞的工具。
B. 程序員修復一個Bug到底需要多長時間
James Shore在《The Art of Agile 》一書中,明確指出要想修復問題得先知道問題的所在。而我們之所以無法准確估計時間是因為我們不知道需要多久才能發現症結的所在,只有清楚這一點,我們才能合理估計修復bug所需要花費的時間。不過,這個時候恐怕黃花菜都涼了。
Steve McConnell曾說過:
「發現問題—理解問題—這就是程序員90%的工作。」
很多bug都只需改動某一行代碼即可。但是需要投入大量時間的是,後面還得指出怎麼樣才是正確的——就像我們在釣魚的時候,得知道往哪裡下誘餌,什麼時候魚兒容易上鉤等等。
話說bug有四種類型:
C. 淘寶預售「買崩」,程序員20分鍾完成修復,現在程序員技術水平有多厲害
程序員的技術水平的確是特別高的,而且他們也特別厲害,因為他們能夠成為更加優秀的員工。程序員在我們的社會中發揮了巨大的作用,他們不僅能夠維護網路秩序的穩定,而且也能夠讓我們在互聯網自由翱翔,能夠解決很多突發問題。
程序員不僅需要提高自己的專業能力,而且也需要不斷進步。因為他們面臨的問題會越來越多,而且這些問題可能會越來越難,他們需要不斷鍛煉自己的能力。淘寶預售“買崩”,程序員20分鍾完成修復,現在程序員技術水平有多厲害?他們的確特別厲害,之所以這么說的原因有三個:
一、他們能夠不斷提高技術水平。
他們之所以能夠變得越來越厲害,就是因為他們在工作的過程中不僅能夠注重個人能力的提升,而且也能夠學習更新的技術。他們能夠運用更加先進的科學技術解決更多的問題,並且也能夠不斷提高自己的技術水平,因此他們才能夠成為更加厲害的程序員。
以上就是我的相關看法。
D. 互聯網前輩總是說「bug是改不完的」,新入職的程序員該怎樣應對bug
互聯網前輩總是說“bug是改不完的”,新入職的程序員應對bug:
E. 優秀的程序員是如何處理技術 Bug 的
從初入職場菜鳥到職場大咖,很多程序員在努力充實自己,有時候我們需要對自己進行一次能力定位,了解自己的優勢和沒有掌握的技術。芯學苑列出幾點作為初入職場的新手評估自己,明了前進學習的方向。
1、技術能力(解決問題的能力)
這是非常重要的事;過硬的技術能讓你得到面試機會,並在工作中游刃有餘。當公司招聘一個Java開發人員時,是會優先考慮能力因素的。在實際的項目開發中,一個程序員的技術能力等於其解決問題的能力。
如果拿一個尺度來衡量這個能力的話,一個程序員的能力可以用能完成任務的數量和難度來衡量。一個程序員能基本無誤的完成項目中的一個功能算是合格,但在此之前,他對項目的生產力為負,為他布置的任務,中間環節的溝通,修補bug的時間其實要多於自己直接完成該功能的時間的。能較好完成一個完整模塊的程序員才算是較好的程序員,也是項目中的主要開發者。能獨立完成整個項目才是優秀的程序員。
2、專業基礎(知識的積累)
一個程序員的知識積累很大程度上決定了其解決問題的能力。知道如何編寫代碼是基本的技能,但是知道Java編程語言的原理,知道代碼背後的演算法將使你從人群中脫穎而出。
3、主流編程工具
今天,事實是,你不能成為一個樣樣都懂的人(雜而不精)。你必須選擇你要掌握的工具。有時這是由工作的環境決定的,但是按照下面說的去做也是一個很好的選擇:
構建工具:Maven或Gradle。
SCM:Git(不是GitHub。大不相同)。
構建自動化:Jenkins。
IDE:Netbeans或Eclipse——不僅用於編寫代碼,而且還從IDE中重構和調試代碼。我遇到了很多沒有如何從他們最喜歡的IDE調試的開發人員。
Bug跟蹤:Bugzilla或Jira。
4、JSF的知識
應用程序伺服器
所有Java開發人員應該知道如何在Apache Tomcat中部署。
當Glassfish開發停止時,下一個最好的事情是J Boss Wild Fly。
5、溝通的能力
溝通是我們做好一切事情的關鍵。我們必須與我們周圍的環境保持互動,無論是在我們的私人還是職業生活中。一個良好的程序員知道如何在各種團體面表達自己。也許對你來說顯而易見的東西在他人的角度來看並非如此。
從大的尺度(比如一個人的工作生涯)來看,一個程序員知識積累的多少只決定於其自學能力和他對編程本身的興趣。
在一個分工明確的項目中,程序員需要理解產品,和領導溝通理解自己的任務,和同事們溝通以正確的方式進行合作。無論哪一個方面溝通出了問題都不是小事情,同時,程序員還需要正確的傳達設計的實現難度,以及讓別人正確的理解自己設計模塊的介面。在不寫文檔時,正確的口頭溝通非常重要,需要寫文檔時,良好的編輯能力也算做是溝通能力的一部分。
6、自學能力
這是一個非常重要的技能,在你自己的空閑時間學習新的技能。不要等待公司為你提供培訓。你需要自己去學習新技術,提升自己在相關領域的水平。從Java後端開發到架構模式,總是有一些新事物值得學習。經常閱讀博客和論壇,嘗試加入本地聚會小組。你學到的東西可以幫助你的事業。知識刷新頻率極快讓人無法追趕的這個時代,難免會有超出自己知識范圍的時候,此時你的自學能力決定了你能多快的完成任務。
7、良好的團隊合作精神
無論是部分編程還是大型項目,所有開發人員都是作為團隊的一部分在協同工作。你需要致力於團隊的目的,或幫助新的團隊成員克服障礙。不要存在這種「我只要做好我的本職工作,下班就直接回家」的態度。成為團隊的一部分,幫助周圍的同事,對自己的能力也是不小的提升。
就像拿破崙說的不想當元帥的士兵不是好士兵,追求參與一個大型軟體系統的開發,是每個程序員的夢想。在此之前,應該學習更多的專業知識,達到優秀程序師的標准。最後希望各位程序員閱讀本文後能夠得到一些裨益,在這條路上走得更好。