代碼測試 大學(xué)計算機(jī)老師說未來不需要程序員,都是機(jī)器自動生成代碼。老師說估計20年,程序員就會被取代,現(xiàn)實嗎?
大學(xué)計算機(jī)老師說未來不需要程序員,都是機(jī)器自動生成代碼。老師說估計20年,程序員就會被取代,現(xiàn)實嗎?嚴(yán)格地說,現(xiàn)在機(jī)器編程已經(jīng)開始取代手工編程。IBM早就推出了這樣的程序,華為也一直在使用它們。只要程
大學(xué)計算機(jī)老師說未來不需要程序員,都是機(jī)器自動生成代碼。老師說估計20年,程序員就會被取代,現(xiàn)實嗎?
嚴(yán)格地說,現(xiàn)在機(jī)器編程已經(jīng)開始取代手工編程。IBM早就推出了這樣的程序,華為也一直在使用它們。只要程序員編寫了流程圖和框架圖,后續(xù)的代碼工作就會由計算機(jī)自動完成。因此,在未來,大多數(shù)草根代碼程序員將被替換,只剩下那些研究新算法的高級程序員。
徒手碼一千行以上的代碼是種怎樣的體驗?zāi)兀?/h2>
作為一個工作多年的老程序員,我必須回答這個問題。
我用C語言編寫的第一個模擬項目使用了6000多行代碼,我仍然記得它。雖然代碼的質(zhì)量可能不是很好,但我當(dāng)時還是有成就感,覺得自己像個程序員。
盡管現(xiàn)在可以使用許多輔助編程工具,這些工具確實可以提高編程效率。雖然我每天都在使用這些工具,但我總是認(rèn)為能用記事本寫程序的人是真正的程序員。
也許這些正在學(xué)習(xí)編程的潛在程序員現(xiàn)在用集成工具完成了他們的第一個HelloWorld實驗,但我使用記事本來配置環(huán)境變量。
我記得當(dāng)我在做Java編程時,我使用EDITPLUS已經(jīng)兩年多了。幾乎所有的代碼都是手工編碼的。
使用EDITPLUS編寫代碼的特點是記住所有細(xì)節(jié)。例如,如果您編寫一個servlet,您需要知道servlet繼承了httpservlet,您需要自己編寫doget方法,您需要知道doget方法中的參數(shù)是什么,您需要自己進(jìn)行異常處理。在編寫servlet和JavaBean之后,您需要自己編寫它們網(wǎng)站.xml配置文件,您需要知道配置文件的元素、每個元素的含義、如何設(shè)置等等。在最初的java項目中,我手工編寫了所有JSP文件。現(xiàn)在我覺得這太瘋狂了。
沒有工具的幫助編程可以真正鍛煉自己的編程能力,但是現(xiàn)在的開發(fā)已經(jīng)走過了那個時代,有了工具,當(dāng)然也很方便,但是工具的使用也要注意代碼的細(xì)節(jié)。
自動化測試,失敗的案例比成功的案例要多的多,那為什么我們還要堅持自動化?
“自動化測試更多失敗案例”是一個值得思考的現(xiàn)象。大多數(shù)原因是缺乏對自動化本身的理解。在認(rèn)識不足的前提下,很難保證自動化的效果。
在一些項目實現(xiàn)自動化之前,沒有對自動化的可行性進(jìn)行有效的預(yù)研究,也沒有有效的框架、工具選擇或與業(yè)務(wù)對象相結(jié)合的設(shè)計。
目前,隨著自動化框架和工具的發(fā)展,自動化不是一個是否可以實現(xiàn)的問題,而是一個是否應(yīng)該實現(xiàn)的問題。如果在進(jìn)行自動化測試之后,仍然沒有后續(xù)計劃,為什么還要這樣做?你不知道做完后該怎么辦。因此,自動化的宏觀意義在于進(jìn)行自動化測試,以便做更多有價值的測試(甚至補(bǔ)充其他手工測試)。這樣,可以驅(qū)動的自動化將一直被使用。
此外,自動化本身就是一把雙刃劍。這是一個我們是否考慮過對于上面提到的什么樣的業(yè)務(wù)對象采用什么樣的框架和工具的問題。自動化本身的痛點包括開發(fā)成本和維護(hù)成本。后者更為重要。難以維護(hù)和擴(kuò)展的自動化很難繼續(xù)下去。
為什么要堅持自動化?事實上,我并沒有堅持要這么做。我必須這么做。這種自動化不是為了自動化嗎?自動化的目的是完成自動化?這些都不可取。
另外,作為測試人員,隨著軟件技術(shù)的發(fā)展和應(yīng)用,傳統(tǒng)的手工測試方法越來越難以滿足測試要求,因此測試開發(fā)能力非常重要,也是測試行業(yè)未來發(fā)展的基本能力。