1. 詳細的軟體工程開發流程是什麼從架構設計、詳細設計、編碼到測試,越詳細越好,謝謝啦~~·
需求分析、設計、編碼、測試、維護
需求分析
軟體需求分析就是回答做什麼的問題。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然後把它用軟體工程開發語言(形式功能規約,即需求規格說明書)表達出來的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文檔並最終得到用戶的認可。需求分析的主要方法有結構化分析方法、數據流程圖和數據字典等方法。本階段的工作是根據需求說明書的要求,設計建立相應的軟體系統的體系結構,並將整個系統分解成若干個子系統或模塊,定義子系統或模塊間的介面關系,對各子系統進行具體設計定義,編寫軟體概要設計和詳細設計說明書,資料庫或數據結構設計說明書,組裝測試計劃。
設計
軟體設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模塊是指能實現某個功能的數據和程序說明、可執行程序的程序單元。可以是一個函數、過程、子程序、一段帶有程序說明的獨立的程序和數據,也可以是可組合、可分解和可更換的功能單元。模塊,然後進行模塊設計。概要設計就是結構設計,其主要目標就是給出軟體的模塊結構,用軟體結構圖表示。詳細設計的首要任務就是設計模塊的程序流程、演算法和數據結構,次要任務就是設計資料庫,常用方法還是結構化程序設計方法。
編碼
軟體編碼是指把軟體設計轉換成計算機可以接受的程序,即寫成以某一程序設計語言表示的"源程序清單"。充分了解軟體開發語言、工具的特性和編程風格,有助於開發工具的選擇以及保證軟體產品的開發質量。 當前軟體開發中除在專用場合,已經很少使用二十世紀80年代的高級語言了,取而代之的是面向對象的開發語言。而且面向對象的開發語言和開發環境大都合為一體,大大提高了開發的速度。
測試
軟體測試的目的是以較小的代價發現盡可能多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例(測試數據和預期的輸出結果組成了測試用例)。如何才能設計出一套出色的測試用例,關鍵在於理解測試方法。不同的測試方法有不同的測試用例設計方法。兩種常用的測試方法是白盒法測試對象是源程序,依據的是程序內部的的邏輯結構來發現軟體的編程錯誤、結構錯誤和數據錯誤。結構錯誤包括邏輯、數據流、初始化等錯誤。用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果。白盒法和黑盒法依據的是軟體的功能或軟體行為描述,發現軟體的介面、功能和結構錯誤。其中介面錯誤包括內部/外部介面、資源管理、集成化以及系統錯誤。黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入介面。黑盒法。
維護
維護是旨在已完成對軟體的研製(分析、設計、編碼和測試)工作並交付使用以後,對軟體產品所進行的一些軟體工程的活動。即根據軟體運行的情況,對軟體進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。編寫軟體問題報告、軟體修改報告。
2. 什麼叫做軟體工程 軟體測試方向
軟體工程專業介紹
一、 專業培養目標
培養掌握軟體工程領域基礎理論知識和先進的開發技術,具備軟體開發和管理能力,能從事軟體系統分析、設計、開發和項目管理,適應社會主義市場經濟和信息產業發展需要的復合型、實用型高級軟體設計、開發及管理人才。
二、專業培養要求
本專業學生主要學習軟體工程方面的基本理論和基本知識,接受從事軟體系統分析、設計、開發和項目管理的基本訓練,具有軟體開發和管理的基本能力。
畢業生應獲得以下知識、能力與素質 :
1.掌握軟體工程領域堅實的基礎理論和寬廣的專業知識;
2.具備工程實踐能力;
3.具備軟體分析、設計、開發、維護能力;
4.具有較強的創新精神。;
5.具備獨立工作能力和團隊合作精神;
6.了解計算機軟體知識產權有關的法規;
7.了解計算機科學與技術的發展動態。
三、學制及授予學位
本科4年,工學學士
四、主幹學科
計算機軟體與理論
五、主要課程
計算機組成原理、軟體工程、軟體體系結構、離散數學、JAVA語言程序設計、演算法分析與設計、軟體測試、計算機網路、數據結構、資料庫系統、操作系統、編譯原理。
軟體測試方向
測試工程師一般分為以下幾個等級:測試工程師、高級測試工程師和資深測試工程師。測試工程師一般承擔以下工作:利用測試工具按照測試方案和流程對產品進行功能和性能測試,檢查產品是否有缺陷,性能是否穩定;高級測試工程師一般的職責是:不但能夠編寫測試工具,而且能夠設計和維護測試系統,編寫測試方案,編寫測試文檔、編寫安裝和使用手冊;資深測試工程師的職責要求更高:不但能夠具有初級測試工程師和高級測試工程師的能力,而且能夠對測試方案可能出現的問題能夠進行分析和評估。
一、操作系統
1.Windows 操作系統的安裝、維護;Windows操作系統的安全管理、用戶管理;使用ghost對Windows進行備份和恢復;
2.AIX系統介紹/系統安裝;系統管理工具的使用;軟體安裝與維護;系統的啟動與關閉;存儲管理;安全管理;任務與進程管理;系統備份與恢復磁帶機的使用;
3.Linux系統介紹/系統安裝;系統管理工具的使用/軟體安裝與維護;系統的啟動與關閉;存儲管理/安全管理/任務與進程管理;系統備份與恢復;
二、程序設計
1.Java編程基礎 ,Java Web, J2EE編程;
2.C/C++;
三、資料庫知識
1.SQL語言及應用開發技術:DML、DDL、DQL、子查詢、多表查詢、游標、存儲過程、用戶定義函數、觸發器、資料庫設計;
2.SQL Server資料庫安裝配置:SQL Server的安裝、管理;SQL Server資料庫備份和恢復;
3.Oracle資料庫安裝配置:Oracle基礎知識;indows/Linux上Oracle資料庫的安裝;Windows/Linux上Oracle資料庫的卸載;用戶管理;網路連接;資料庫備份與恢復;Oracle中的函數和存儲過程;
四、軟體工程:Rational Unified Process(RUP);
五、軟體測試理論基礎
單元測試、集成測試、外部功能測試、回歸測試、系統測試、安裝測試及驗收測試;版本控制方法、源碼管理工具VSS/CVS的使用;BUG Tracing、測試計劃、測試用例等;測試文檔的書寫;
六、測試工具
系統學習軟體測試的各類工具,包括自動測試工具Quick Test Professional、壓力測試工具LoadRunner、測試管理工具Test Director等;
七、IT職業技能素養:職業規劃、溝通技巧、團隊合作、專業技術規范、面試技巧等職業技能培訓;
八、項目實戰。
3. 軟體測試架構師是干什麼的
主要是選平台和測試機構,測試設計的。很牛哈。
4. 軟體工程與軟體測試之間的關系
軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及到程序設計語言,資料庫,軟體開發工具,系統平台,標准,設計模式等方面。
軟體測試是軟體工程中的一個部分。通過軟體測試可以生產具有正確性、可用性以及開銷合宜的產品。
5. 軟體架構師和軟體工程師的區別
現在實際上應該是沒有叫「軟體工程師」的職位,一般都是叫「程序員」、「測試工程師」、「架構師」、「資料庫工程師」之類的。因為軟體工程師這個叫法太泛。除非是後邊有分工界定跟著,否則就意味著是高手大拿,與軟體有關的各個工作領域全行。
如果是互相之間溝通,你不想與對方深聊,當對方問你是什麼工作時,可以用「我是軟體工程師」一句擋過去。但這話是說給外行的,行內的人會對這句話不清楚。因為這句話並沒說明你的實際工作內容。這句話只能說明你做的是與軟體有關的工程師工作。但具體就沒說了。
6. 軟體測試的方法一共有幾種
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 在整個生命周期里維護和修改測試計劃、測試案例、測試環境、和測試用具
7. 軟體工程怎麼測試
是想做測試工程師?還是想學習測試工具,現階段都是用測試工具做的!