軟件測試和調試的區(qū)別
瀏覽量:9589
1.目的不同。
軟件測試的目的是發(fā)現錯誤,至于找出錯誤的原因和錯誤發(fā)生的地方不是測試的任務,而是調試的任務。軟件開發(fā)調試的目的是為了證明程序的正確,因此它必須不斷地排除錯誤。它們的出發(fā)點不一樣。前者是挑錯,是一種挑剔過程。
2.任務不同。
既然測試同于質量保證活動,因此它貫穿于整個開發(fā)過程。從需求分析開始,就要制訂測試計劃,軟件設計時要設計系統測試、集成測試用例,編碼階段要設計單元測試用例并進行單元測試,測試階段要進行集成測試、系統測試等,直到產品交付。只要有修改就有測試,產品交付后同樣。它是比較有規(guī)律的活動,有系統的方法、原則作指導。而調試是編碼活動的一部分,因此有編碼就有調試。它的任務主要就是排錯。調試的方法經常與使用的開發(fā)工具有關,例如:解釋型的軟件開發(fā)工具可以交互式調試,編譯型開發(fā)工具就很難較好地查錯。當然它有一些啟發(fā)式的方法,它是一種比較依賴開發(fā)人員經驗的話動。
3.指導原則和方法不同。
軟件測試是一種有規(guī)律的活動,有一系列軟件測試的原則。其中主要是制訂測試計劃,然后嚴格執(zhí)行。其次是一種挑剔性行為、因此它不但要測試較件應該做的,還需要測試軟件不應該做的事情。調試所遵循的規(guī)律主要是一些啟發(fā)式規(guī)則,是一個推理過程。例如使用歸納法、演繹法、回溯法等。
4.操作者。
因為心理狀態(tài)是測試程序的障礙,所以執(zhí)行測試的人一般不是開發(fā)人員,以測試更客觀、更有效,而調試人員一般都是開發(fā)人員。
5.操作環(huán)境、配置、工具不同。
調試在開發(fā)的編碼環(huán)境下進行。如果編碼使用解釋型語言,則可以進行人機交互式調試,設置斷點、單步調試等;如果編碼使用編譯型語言,也可以設置斷點、顯示調試變量值等。而測試是在測試環(huán)境下進行,直接運行開發(fā)完成的程序,可能不再需要一些開發(fā)時的驅動程序、動態(tài)鏈接庫等。使用不同的了具,環(huán)境配置也不同。例如嵌入式的軟件,開發(fā)時可以單獨在自己的環(huán)境下仿真調試,而油試時必須嵌入到主程序中和主程序一起運行。甚至調試和測試可以在不同的硬件和操作系統下進行。
本文由軟件開發(fā)提供:http://www.bigbenlau.com