|
選擇藍色藥丸,故事結束,你將在床上醒來。 選擇紅色藥丸,我就帶你看看這個世界的bug。 有大量沒有或者幾乎沒有bug的程序,比如超市的收銀機中使用的程序,比如你購買的計算器中的程序等等。這些程序都有一個共同的特點,就是功能非常明確,用戶的使用方式完全可以預測,同時程序總的來說相對簡單。 但我們使用的更大型的程序,比如操作系統(tǒng)以及大型游戲程序,它們注定了bug重重,而且許多bug甚至只有在大量用戶的使用過程中才有可能暴露出來,還有一些bug只有當你“惡意”的使用軟件的時候才會暴露出來,比如非法獲取系統(tǒng)權限。要求一個復雜的大型軟件,沒有任何bug,那基本上是強人所難,簡單說就是這超出了人類的能力,而我們制造的用來開發(fā)這些大型軟件的軟件本身就不是完美的。但我們當然希望盡可能完美,因此在軟件行業(yè)專門引入了軟件測試工程師。并且,希望盡可能減少bug的數量,完美做不到,但趨近于完美是有可能的。 目前在軟件測試領域中對bug出現(xiàn)的原因有如下總結,而除了軟件開發(fā)行業(yè)之外,這些總結也同樣有益,因為人類出錯的模式具有相似性,所以不僅僅是程序有bug需要不斷的修正,我們的社會何嘗不是如此。 固有的復雜性 比如,為了方便用戶而引入的圖形化和操作互動,同時也是bug之源,但為了便利,我們只能忍受,并盡可能降低bug的數量。除此之外,大型軟件中涉及到的許多工具,本身就不夠完美,但我們還得使用它們,比如網絡通信協(xié)議,同樣不完美,但我們不能等到完美那一天才上網。 交流不夠、誤解或者沒有進行有效交流目的不明,不知道要實現(xiàn)什么功能不需要實現(xiàn)什么功能的情況下,就開始開發(fā)。 程序設計錯誤和所有的人一樣,軟件開發(fā)人員也會出錯。 開發(fā)中途,需求變化需求改變帶來的復雜性可能導致錯誤,還可能影響工程參與者的積極性。 時間壓力軟件開發(fā)工具 如何選擇合適的軟件開發(fā)工具,能在保證完成開發(fā)的情況下,保持簡單,并不是個容易的選擇。程序員之間為了使用哪種開發(fā)工具更合適,可以爆發(fā)世界大戰(zhàn)。 世界上第一個計算機bug,一只真bug。 1945年9月,哈佛大學的 Mark II Aiken Relay Calculator的管理員,找到了影響這臺原始計算機運行故障的原因,一只飛蛾。于是他將該事件寫到管理日志中,并將該飛蛾也貼在上面,同時將bug一詞正式引入了計算機領域之中。 “First actual case of bug being found.” |
|
|