❶ 軟體測試和軟體調試的區別是什麼
一、性質不同
1、軟體橋敗宏測試:描述一種用來促進鑒定軟體的正確性、完整性、安全性和質量的過程。
2、軟體調試:泛指重現軟體故障、定位故障根源並最終解決軟體問題的過程。
二、目的不同
1、軟體測試:鑒定、審核軟體。
2、軟體調試:軟體調試的基本目標是定位軟體中存在的設計錯誤(bug)。但除此之外,軟體調試技術和工具還有很多其他用途,比如分析軟體的工作原理、分析系統崩潰、輔助解決系統和硬體問題等。
三、特點不同
1、軟體測試:對計算機軟體進行測試前,需遵循軟枯哪件測試原則,即不完全原則的遵守。
2、軟體調試:重現故障;定位根源;探索和實現解決方案;驗證方案。
❷ C語言程序設計中軟體調試主要採取哪些方法
程序可以運行並不表示程序就是正確的
編譯和連接都正確,只能說明編譯器對他進行語法等檢查
沒發現他的錯誤而已,而既然運行結果是錯誤的,那就是說明一點
可能是你的演算法設計的不當,不能正確的解決問題,這樣發念搭伏生的錯誤
是運行期錯誤,在編譯連接的過程不會出錯的,不過幸好,編譯器也為我們
提供了一些解決類似運行期錯誤的一些調試工具,通過debug,進行單步調
試下,觀察變數值,看看是不仔攜是你想要的等等解決此類問題,具體如何單步
調試見下面:
不過你先要設置斷點,然後按下面操作
在VC++6.0中的單步調試:
調試重要的幾個鍵:
F9在當前游標所在的行下斷點,如果當前行已經有斷點,則取消斷點.
F5調試狀態運行程序,程序執行枝漏到有斷點的地方會停下來.
F10單步執行程序.
CTRL+F10運行到游標所在行.
F11和F10的區別是,如果當前執行語句是函數調用,則會進入函數裡面.
SHIFT+F11跳出當前所在函數.
步驟:
1,保存為c或c++文件
2,根據斷點調試找到錯誤處。
3,採用F10或F11單步調試找到精確的錯誤處。其中f10是跳過函數盜用,f11是進入函數體調試。一般是先用f10,確定函數輸入輸出是否正確(與自己想的一樣),如不一樣,則用f11進入函數體一步一步調試。
4,在調試過程中,肯定得監視程序中的變數。在vc6.0的右下角有一個watch窗口,專門用來設置監視變數。具體怎樣設置自己體會吧。在調試過程中,滑鼠輕輕放在變數上也會顯示該變數的值
5,vc6.0專門為調試設置了工具箱以方便調試的進行,打開的方法如下。右鍵——〉在debug(或調試)選擇項的勾勾上。ok
❸ 對軟體採用的調試方法有哪些
1. 直接輸入、更改、跟蹤、運行匯編程序 2. 觀察操作系統的內容; 3. 查看ROM BIOS的內容; 4. 觀察更改RAM內部的設置值; 5. 以扇區或文件的方式讀寫軟盤數據。 在DEBUG中地址用段地址與段內地址來表示,而段地址可以明確地指出來,也可以用一個段指示器(段寄存器)來代表,用段寄存器表示時,其段地址就是此寄存器的內含值: 如:用段地址和段內地址表示FOFF:0100 用段寄存器和段內地址表示CSF:0100←CS指向F000 下面列出了常用命令用法。 -A 地址 從指定地址開始編寫小匯編程序,按兩個回車鍵結束編輯 -U 地址 從指定地址開始反匯編32位元組的機器指令,預設地址則從上一U命令繼續 -D 始址 終址 以16進制/Asc字元對照方式顯示指定內存范圍的數據,每行顯示10H個位元組 -E 地址 值表 用給出的值表(空格分隔)替換指定地址開始的內存單元,例:-E 100 'v' 1F 'hello' -N 文件名 為後續的L/W命令約定所操作的文件名 -L 地址 將N命令所指定文件的內容讀入到指定內存位置。另,邏輯卷扇區直接讀:-L 地址 邏卷號 起始邏扇號 扇數 -W 地址 將BX-CX個位元組的內存數據寫入N命令指定的文件中。另,邏輯卷扇區直接寫:-W 地址 邏卷號 起始邏扇號 扇數 -R 寄存器名 顯示並允許修改指定寄存器的值 -G=始戚銷址 終址 執行指定內存中的機器指令程序 -T=地址慧返 單步執行機器指令,預設地址則從上一T命令繼續。另,繼續跟蹤m條指令:-T m 讀取c:卷的引導扇區,並保存到Boot.1文件中,並簡單分析引導程序的前面幾條指令: -L 1000 2 0 1 -N boot.1 -R bx ;輸入0000 -R cx ;輸入0200 -W 1000 -U 1000 讀取第一個硬碟上的主引導扇區,並保存到MB.1文件中,在屏幕上顯示硬碟分區表數據: -A 100 yyyy:0100 mov dx,0080 yyyy:01xx mov cx,0001 yyyy:01xx mov ax,yyyy yyyy:01xx mov es,ax yyyy:01xx mov bx,1000 yyyy:01xx mov ax,0201 yyyy:01xx int 13 yyyy:01zz nop -G=yyyy:0100 01zz -N mb.1 -R bx ;輸入0000 -R cx ;輸入0200 -W 1000 -D 11be 11ff debugging命令 debugging命令概述 獲得路由器中交換的報文和幀的細節信息 用於調試信息 debugging命令使用注意事項 不使用debug命令監控正常的網路運行 在網路使用的低峰期使用 不要輕易使用類似debugging all之類的命令 使用debugging命令後,應立即以「undo debugging」命令終止debugging命令的執行。 Debugger "Debugger"這個詞按它的英文字面意思來講是這樣一種「裝置」(-er),這種裝置可以「消除」(De-)「系統中的缺陷」(bug)。然而事實上,迄今為止我們經常使用到的"Debugger"只是用來幫助我們進行Debug的工具,"Debugger"本身不能自動完成"Debug"。我們可以回想一下我們是如何進行Debug的,在進行Debug的過程中,我們通過Debugger來完成以下工作: (1)監視「Debug對象」的狀態; (2)控制「Debug對象」的運行; 這些工作可以為「發現Debug對象中存在的問題」以及「對解決問題方案的檢驗」提供有用的信息。 監控工作有時只需要由軟體就可以完成,有時不僅需要軟體支持,還需要硬體的支持。 Debugger除了被用來Debug,還被用來幫助我們理解「Debug的對象」內部結構,因為我們用到的Debugger能夠完成對「Debug對象」的監控工作,在監控的過程中可以獲取「Debug對象」動態特徵的信息,這對我們理解其結構是非常有用的。 關於更詳細的介紹和研究可以參考國人原創的《軟體調試》 ,這 [url= http://www.chenganyxrj.com ]嫦高碧游娥二號直播[/url]
❹ 軟體調試技術包括
軟體調試技術包括:
1、分析和推理;
設計人員和開發人員根據軟體缺陷問題的信息,分析和推理調試軟體。
根據軟體程序架構自頂向下縮小定位范圍,確定可能發生問題的軟體組件。
根據軟體功能,軟體運行時序定位軟體問題。
根據演算法原理,分析和確定缺陷問題發生的根源。
2、歸納類比法;
歸納法是一種從特殊推斷一般的系統化思考方法,歸納法調試的基本思想是:從一些線索(錯誤徵兆)著手,通過分析它們之間的關系來找出錯誤。該方法主要是根據積累的工作經驗和案例處理調試工作。
根據工作經驗和比對程序設計中類似問題的處理方式進行調試工作。
咨詢相關部門和有經驗的相關人員。
查找相關文檔和案例,為處理問題提供思路和方法。在軟體開發過程中,通常對每個缺陷問題進行跟蹤管理,將解決問題的方案和過程詳細記錄。
收集出錯的信息,列出數據,包括輸入,輸出,歸納整理,發現規律,從線索除法,尋找線索之間的聯系。也就意味著:從特殊到一般。
3、跟蹤回朔;
在小程序中常用的一種有效的調試方法,一旦發現了錯誤,人們先分析錯誤的徵兆,確定最先發現「症狀「的位置然後,人工沿程序的控制流程,向回追蹤源程序代碼,直到找到錯誤根源或確定錯誤產生的范圍。
例如,程序中發現錯誤處是某個列印語句,通過輸出值可推斷程序在這一點上變數的值,再從這一點出發,回溯程序的執行過程,反復思考:「如果程序在這一點上的狀態(變數的值)是這樣,那麼程序在上一點的狀態一定是這樣···「直到仿歷找到錯誤所在。
在軟體開發通常採用基線與版本管理。基線為程序代碼開發提供統一的開發基點,基線的建立有助於分清楚各個階段存在的問題,便於對缺陷問題定位。軟體版本在軟體產品的開發過程中生成了一個版本樹。軟體產品實際上是某個軟體版本,新產品的開發通常是在某個軟體版本的基礎上進行開發。
開發過程中發現有問題,可以回退至版本樹上的穩定版本,查找問題根源。
通過基線版本序列可以追蹤產品的各種問題,可以重新建立基於某個版本的配置,可以重現軟體開發過程中的軟體缺陷和各種問題,進行定位並查找問題根源。
4、增量調試;
軟體開發大多採用軟體配置管理和持續集成技術。開發人員每天將評代碼提交到版本庫。持續集成人員完成集成構建工作。
可以通過控制持續集成的粒度(構建時間間隔),控制開發人員提交到版本庫的程序代碼量,從而便於對缺陷問題定位。
通常每天晚上進行持續集成工作,發現問題時,開發人員實際上只需要調試處理當天編寫的代碼。
5、寫出能重現問題談岩的最短代碼;
採用程序切片和插樁技術寫出能重現問題的最短代碼調試軟體模塊。
程序切片程序切片是通過在特定位置消除那些不影響表達式計算的所有語句,把程序減少到最小化形式,並仍能產生給定的行為。
使用切片技術,可以把一個規模較大並且較復雜的軟體模塊轉換成多個切片程序。這些切片程序相對原來的程序,簡單並且易於調試和測試。
程序插樁程序插樁方法是在被測程序中插入某些語句或者程序段來獲取各種信息。通過這些信息進一步了解執行過程中程序的一些動態特性。一個軟體組件的獨立調試和測試需要採用插樁技術,該組件調用或運行需要樁模塊。在軟體模塊的調試過程中程序切片和程序插樁可以結合起來使用。
6、日誌追蹤技術;
日誌是一種記錄機制,軟體模塊持續集成構建過程中,日誌文件記錄了有用信息。若構建失敗,通過查看日誌文件,將信息反饋給相關人員進行軟體調試。
7、調試和測試融合的技術;
測試驅動開發。
測試驅動開發是一種不同於傳統軟體開發流程的開發方法。在編寫某個功能的代碼之前先編寫測試代碼,然後編寫測試通過的功能代碼,這有助於編寫簡潔可用和高質量的代碼。
開發與測試融合。
程序開發人員除了進行程序代碼的編寫,白盒測試,也要完成基本的功能測試設計和執行。這樣有助於程序開發人員更好地開展調試工作。
程序開發人員可以通過交叉測試來解決測試心理學的問題(不能自己測試自己)。採用這種模式測試人員的數量會減少,專業的測試人員去做其他復雜的測試工作。
研發中的很多低級缺陷會盡早在開發過程中被發現,從而減少缺陷後期發現的成本。
8、強行排錯;
這種調試方法目前使用較多,效率較低,它不需要過多的思考,比較省腦筋。例如:
通過內存全部列印來調試,在這大量的數據中尋找出錯的位置。
在程序特定位置設置列印語句,把列印語句插在出錯的源程序的各個關鍵變數改變部位,重要分支部位,備侍搜子程序調用部位,跟蹤程序的執行,監視重要變數的變化
自動調用工具,利用某些程序語言的調試功能或專門的互動式調試工具,分析程序的動態過程,而不必修改程序。
應用以上任一種方法之前,都應當對錯誤的徵兆進行全面徹底的分析,得出對出錯位置及錯誤性質的推測,再使用一種適當的調試方法來檢驗推測的正確性。
9、演繹法調試;
演繹法是一種從一般原理或前提出發,經過排除和精華的過程來推導出結論的思考方法,演繹法排錯是測試人員首先根據已有的測試用例,設想及枚舉出所有可能出錯的原因作為假設,然後再用原始測試數據或新的測試,從中逐個排除不可能正確的假設,最後,再用測試數據驗證餘下的假設確是出錯的原因。
列舉所有可能出錯原因的假設,把所有可能的錯誤原因列成表,通過它們,可以組織,分析現有數據。
利用已有的測試數據,排除不正確的假設。
仔細分析已有的數據,尋找矛盾,力求排除前一步列出所有原因,如果所有原因都被排除了,則需要補充一些數據(測試用例),以建立新的假設。
改進餘下的假設;
利用已知的線索,進一步改進餘下的假設,使之更具體化,以便可以精確地確定出錯位置;
證明餘下的假設。
(4)軟體調試技術有哪些擴展閱讀:
軟體調試技術的內容:
CPU的調試支持,包括異常、斷點、單步執行、分支監視、JTAG、MCE等。
Windows操作系統中的調試設施,包括內核調試引擎、用戶態調試予系統、驗證器、Dr.Watson、WER、ETW、故障轉儲、WHEA等。
VisualC/C++編譯器的調試支持,包括編譯期檢查、運行期檢查,以及調試符號。
WinDBG調試器的發展歷史、模塊結構、工作模型、使用方法、主要調試功能的實現細節,以及遍布全書的應用實例。
內核調試、用戶態調試、JIT調試、遠程調試的原理、實現和用法。異常的概念、分發方法、處理方法(SEH、VEH、CppEH),未處理異常,以及編譯器編譯異常處理代碼的方法。
調試符號的作用、產生過程、存儲格式和使用方法。棧和堆的結構布局、工作原理和有關的軟體問題,包括棧的自動增長和溢出,緩;中區溢出,溢出攻擊,內存泄漏,堆崩潰等。
❺ 軟體測試類型都有哪些
測試類型有:功能測試,性能測試,界面測試。
1、功能測試
在測試工作中占的比例最大,功能測試也叫黑盒測試。是把測試對象看作一個黑盒子。利用黑盒測試法進行動態測試時,需要測試軟體產品的功能,不需測試軟體產品的內部結構和處理過程。
採用黑盒技術設計測試用例的方法有:等價類劃分、邊界值分析、錯誤推測、因果圖和綜合策略。
2、性能測試
是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行。
通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
3、界面測試
界面是軟體與用戶交互的最直接的層,界面的好壞決定用戶對軟體的第一印象。而且設計良好的界面能夠引導用戶自己完成相應的操作,起到向導的作用。
同時界面如同人的面孔,具有吸引用戶的直接優勢。設計合理的界面能給用戶帶來輕松愉悅的感受和成功的感覺,相反由於界面設計的失敗,讓用戶有挫敗感,再實用強大的功能都可能在用戶的畏懼與放棄中付諸東流。
測試原則
1、測試應該盡早進行,最好在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統不能滿足用戶的需求。
2、程序員應該避免檢查自己的程序,軟體測試應該由第三方來負責。
3、設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要製造極端狀態和意外狀態,如網路異常中斷、電源斷電等。
4、應該充分注意測試中的群集現象。
5、對錯誤結果要進行一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。
6、制定嚴格的測試計劃。一定要制定測試計劃,並且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內完成一個高水平的測試。
7、妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。
❻ 軟體測試的方法一共有幾種
1、從是否關心內部結構來看
(1)白盒測試:又稱為結構測試或邏輯驅動測試,是一種按照程序內部邏輯結構和編碼結構,設計測試數據並完成測試的一種測試方法。
(2)黑盒測試:又稱為數據驅動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內部結構和處理過程的情況下,測試者僅依據程序功能的需求規范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟體或程序的角度,從輸入數據與輸出數據的對應關系出發進行的測試。
(3)灰盒測試:是一種綜合測試法,它將「黑盒」測試與「白盒」測試結合在一起,是基於程序運行時的外部表現又結合內部邏輯結構來設計用例,執行程序並採集路徑執行信息和外部用戶介面結果的測試技術。
2、從是否執行代碼看
(1)靜態測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、介面等來檢查程序的正確性。
(2)動態測試:是指通過運行被測程序,檢查運行結果與預期結果的差異,並分析運行效率、正確性和健壯性等性能指標。
3、從開發過程級別看
(1)單元測試:又稱模塊測試,是針對軟體設計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在於檢驗程序各模塊是否存在各種差錯,是否能正確地實現了其功能,滿足其性能和介面要求。
(2)集成測試:又叫組裝測試或聯合,是單元測試的多級擴展,是在單元測試的基礎上進行的一種有序測試。旨在檢驗軟體單元之間的介面關系,以期望通過測試發現各軟體單元介面之間存在的問題,最終把經過測試的單元組成符合設計要求的軟體。
(3)系統測試:是為判斷系統是否符合要求而對集成的軟、硬體系統進行的測試活動、它是將已經集成好的軟體系統,作為基於整個計算機系統的一個元素,與計算機硬體、外設、某些支持軟體、人員、數據等其他系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。
在系統測試中,對於具體的測試類型有:
(1)功能測試:對軟體需求規格說明書中的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(2)性能測試:對軟體需求規格說明書的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(3)介面測試:對軟體需求規格說明中的介面需求逐項進行的測試。
(4)人機交互界面測試:對所有人機交互界面提供的操作和顯示界面進行的測試,以檢驗是否滿足用戶的需求。
(5)強度測試:強制軟體運行在異常乃至發生故障的情況下(設計的極限狀態到超出極限),驗證軟體可以運行到何種程序的測試。
(6)餘量測試:對軟體是否達到規格說明中要求的餘量的測試。
(7)安全性測試:檢驗軟體中已存在的安全性、安全保密性措施是否有效的測試,
(8)可靠性測試:在真實的或模擬的環境中,為做出軟體可靠性估計而對軟體進行的功能(其輸入覆蓋和環境覆蓋一般大於普通的功能測試)
(9)恢復性測試:對有恢復或重置功能的軟體的每一類導致恢復或重置的情況,逐一進行的測試。
(10)邊界測試:對軟體處在邊界或端點情況下運行狀態的測試。
(11)數據處理測試:對完成專門數據處理功能所進行的測試。
(12)安裝性測試:對安裝過程是否符合安裝規程的測試,以發現安裝過程中的錯誤。
(13)容量測試:檢驗軟體的能力最高能達到什麼程度的測試。
(14)互操作性測試:為驗證不同軟體之間的互操作能力而進行的測試。
(15)敏感性測試:為發現在有效輸入類中可能引起某種不穩定性或不正常處理的某些數據的組合而進行的測試。
(16)標准符合性測試:驗證軟體與相關國家標准或規范(如軍用標准、國家標准、行業標准及國際標准)一致性的測試。
(17)兼容性測試:驗證軟體在規定條件下與若干個實體共同使用或實現數據格式轉換時能滿足有關要求能力的測試。
(18)中文本地化測試:驗證軟體在不降低原有能力的條件下,處理中文能力的測試。
4、從執行過程是否需要人工干預來看
(1)手工測試:就是測試人員按照事先為覆蓋被測軟體需求而編寫的測試用例,根據測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執行,包括與被測軟體進行交互(如輸入測試數據、記錄測試結果等),然後觀察測試結果,看被測程序是否存在問題,或在執行過程中是否會有一場發生,屬於比較原始但是必須執行的一個步驟。
(2)自動化測試:實際上是將大量的重復性的測試工作交給計算機去完成,通常是使用自動化測試工具來模擬手動測試步驟,執行用某種程序設計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預,由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)
5、從測試實施組織看
(1)開發測試:開發人員進行的測試
(2)用戶測試:用戶方進行的測試
(3)第三方測試:有別於開發人員或用戶進行的測試,由專業的第三方承擔的測試,目的是為了保證測試工作的客觀性
6、從測試所處的環境看
(1)阿爾法測試:是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的測試
(2)貝塔測試:是用戶公司組織各方面的典型終端用戶在日常工作中實際使用貝塔版本,並要求用戶報告
軟體測試的內容:
1 得到需求、功能設計、內部設計說書和其他必要的文檔
2 得到預算和進度要求
3 確定與項目有關的人員和他們的責任、對報告的要求、所需的標准和過程 ( 例如發行過程、變更過程、等等 )
4 確定應用軟體的高風險范圍,建立優先順序、確定測試所涉及的范圍和限制
5 確定測試的步驟和方法 ── 部件、集成、功能、系統、負載、可用性等各種測試
6 確定對測試環境的要求 ( 硬體、軟體、通信等 )
7 確定所需的測試用具 (testware) ,包括記錄 / 回放工具、覆蓋分析、測試跟蹤、問題 / 錯誤跟蹤、等等
8 確定對測試的輸入數據的要求
9 分配任務和任務負責人,以及所需的勞動力
10 設立大致的時間表、期限、和里程碑
11 確定輸入環境的類別、邊界值分析、錯誤類別
12 准備測試計劃文件和對計劃進行必要的回顧
13 准備白盒測試案例
14 對測試案例進行必要的回顧 / 調查 / 計劃
15 准備測試環境和測試用具,得到必需的用戶手冊 / 參考文件 / 結構指南 / 安裝指南,建立測試跟蹤過程,建立日誌和檔案、建立或得到測試輸入數據
16 得到並安裝軟體版本
17 進行測試
18 評估和報告結果
19 跟蹤問題 / 錯誤,並解決它
20 如果有必要,重新進行測試
21 在整個生命周期里維護和修改測試計劃、測試案例、測試環境、和測試用具
❼ 軟體開發的技術有哪些
一、從行業上劃分,軟體開發有以下:
1、手機
Mac OS(蘋果的),Linux,Palm(最大特色是不能後台),BlackBerry(黑莓)Windows Phone(WP,不錯的系統,)
Android(安卓,07年興起的,很好的系統),還有幾個新系統,三星與intel聯合開發的tizen,Mozilla 公司的FireFox OS ,N900的maemo。
2、電腦
企業管理軟體,如:如MES系統軟體、OA系統軟體、CRM系統軟體、HR系統軟體、ERP系統軟體合同。
二、從設計領域劃分,包括以下領域:
1、 桌面程序:Java、C++、C#、VB、C均可。
2、網站伺服器端開發:JSP(Java語法)、PHP、ASP(C#語法)、Web App框架等
3、網站客戶端:HTML、CSS、Javascript、Flash等等
4、智能手機程序:安卓使用Java,iPhone使用Objective-C
5、底層、工具開發:C、C++
6、多功能腳本程序:Python、Perl、Ruby等等
7.、人工智慧:Prolog、PDDL
8、 工業控制:C、PLC、匯編
9、通用應用層數據交換處理技術:標記語言XML/XPATH/XSLT、JSON、YAML等等
10、資料庫 SQL/PLSQL
(7)軟體調試技術有哪些擴展閱讀
軟體開發工具:
軟體開發工具是用於輔助軟體生命周期過程的基於計算機的工具。通常可以設計並實現工具來支持特定的軟體工程方法,減少手工方式管理的負擔。
與軟體工程方法一樣,他們試圖讓軟體工程更加系統化,工具的種類包括支持單個任務的工具及囊括整個生命周期的工具。
軟體需求工具,包括需求建模工具和需求追蹤工具。
軟體設計工具,用於創建和檢查軟體設計,因為軟體設計方法的多樣性,這類工具的種類很多。
軟體構造工具,包括程序編輯器、編譯器和代碼生成器、解釋器和調試器等。
軟體測試工具,包括測試生成器、測試執行框架、測試評價工具、測試管理工具和性能分析工具。
軟體維護工具,包括理解工具(如可視化工具)和再造工具(如重構工具)。
軟體配置管理工具,包括追蹤工具、版本管理工具和發布工具。
軟體工程管理工具,包括項目計劃與追蹤工具、風險管理工具和度量工具。
軟體工程過程工具,包括建模工具、管理工具和軟體開發環境。
軟體質量工具,包括檢查工具和分析工具。