什么是軟件工程師


1.1   什么是軟件工程師

1.1.1        軟件工程師是從事軟件職業的人員的一種職業能力的認證,通過它說明具備了工程師的資格。軟件工程師是從事軟件開發相關工作的人員的統稱。它是一個廣義的概念,包括軟件設計人員、軟件架構人員、軟件工程管理人員、程序員等一系列崗位,工作內容都與軟件開發生產相關。

 

 

 

     主要有以下職責:

1、指導程序員的工作。

2、參與軟件工程系統的設計、開發、測試等過程。

3 、協助工程管理人保證項目的質量。

4 、負責工程中主要功能的代碼實現。

5 、解決工程中的關鍵問題和技術難題。

6 、協調各個程序員的工作,並能與其它軟件工程師協作工作。

7、還要編寫各種各樣的軟件說明書,如:需求說明書,概要說明書等

8、考試科目工程師是中級職稱,考試的題目包括了計算機體系結構、軟件工程、數據庫、數據結構、編譯原理等計算機學科的基礎課程。

1.2   軟件之生命周期

1.2.1         立定—需求分析—設計,編碼,測試—發布—運行維護—淘汰

如圖以下:

 

 

 

 

1.3   需求分析

1.3.1         測試需求分析

獲取測試對象也就是我們最初的工作:測試需求的分析

測試需求的分析為四個部分:

1、明確需求的范圍

2、明確每一個功能的業務處理過程

3、不同的功能點作業務的組合

4、挖掘顯式需求背后的隱式需求

分別闡述:

1、 明確需求的范圍(目標:需求中包括了多少功能點)

1. RTM中的SRS列表(粒度)

2. QC中的需求描述 (不同層次)

3. UML的用例視圖 (Actor Usecase)

 

1.4   編碼&測試

1.4.1         編碼

編碼風格:

編碼風格就是書寫源程序的習慣、程序代碼的邏輯結構與習慣的編程技術。

程序設計風格的要求:

一、使用好程序內部的文檔

1、標識符應該具有鮮明的意義,能夠提示程序對象代表的實體。

2、程序代碼的視覺組織。

3、程序內部的注釋。

二、數據說明原則

1、數據說明的次序應該規范化,使數據屬性容易查找,有利於測試、排錯和維護。

2、當多個變量名用一個語句說明時,應當對這些變量按字母的順序排列。

3、如果設計了一個復雜的數據結構,應當使用注釋,說明這個數據結構的固有特點。

1.4.2          測試

軟件測試的目標:

測試階段的根本目標是盡可能多的發現並排除軟件中潛藏的錯誤,最終把一個高質量的軟件系統交付給用戶使用。但如果就測試本身而言,軟件測試的目標是以最少的時間和人力發現軟件中潛在的各種錯誤和缺陷。

軟件測試的原則:

1、避免程序員檢查自己的程序。

2、軟件測試應盡早的、不斷的進行。

3、軟件測試不等於程序測試。

4、充分認識錯誤的集群現象。

5、測試用例應包括測試輸入數據和與之對應的輸出結果。

6、測試用例的輸入數據應包括合理的輸入和不合理的輸入。

7、嚴格執行測試計划,避免測試的隨意性。

軟件測試的方法:

人工測試和基於計算機的測試(黑盒測試和白盒測試)。

1、黑盒測試

把程序看成一個 黑盒子,完全不考慮其內部結構和處理過程,只檢查程序的功能是否符合它的需求規格說明。黑盒測試是在軟件的接口處進行的,一方面看其是否能對合法的數據得出正確的結果,另一方面看它是否你窩囊廢對非法的數據進行正確的處理。黑盒測試是一種宏觀功能上的測試,該方法適合測試部門的測試人員或用戶。

2、白盒測試

把程序看成一個打開的盒子,測試人員對程序所有邏輯路徑進行測試,在不同檢查點輸出結果,與預期的結果比較,確定程序是否有錯。白盒測試是一種程序級的微觀上的測試,不適合於大單元、大系統的測試,只適合於很小單元的測試,以及從事軟件底層工作、生產構件的測試人員進行的測試。

 

軟件測試與開發的各階段的關系:

 

 

 

 

測試步驟

 

 

 

 

 

測試用例的設計:

 

 

 

 

1.4.3          增量模型

 

 

 

1.4.4        迭代模型

 

 

 

1.4.5        V模型

V模型大體可以划分為以下幾個不同的階段步驟:需求分析、概要設計、詳細設計、軟件編碼、單元測試、集成測試、系統測試、驗收測試。

 

 

 

1.4.6        W模型

測試伴隨着整個軟件開發周期,而且測試的對象不僅僅是程序,需求、設計等開發輸出的文檔同樣要測試(這里針對設計文檔,一般可以划分為需求設計文檔、概要設計文檔、詳細設計文檔和代碼文檔),也就是說,測試與開發是同步進行的。

從這個角度來說,一個完整合格的測試人員對軟件各方面把握程度應該比開發人員更高,一個測試人員要能勝任軟件研究任何一個崗位。

W模型有利於盡早地全面的發現問題。例如,需求分析完成后,測試人員就應該參與到對需求文檔的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利於及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。

 

 

 

 

1.4.7        H模型

這個示意圖僅僅演示了在整個生產周期中某個層次上的一次測試“微循環”。圖中標注的其他流程可以是任意的開發流程。例如,設計流程或編碼流程。也就是說,只要測試條件成熟了,測試准備活動完成了,測試執行活動就可以(或者說需要)進行了。

H模型揭示了一個原理:軟件測試是一個獨立的流程,以獨立完整“微循環”流程,參與產品生命周期的各個階段,與其他流程並發地進行。H模型指出軟件測試要盡早准備,盡早執行,只要某個測試達到准備就緒點,測試執行活動就可以開展,並且不同的測試活動可按照某個次序先后進行,但也可以是反復進行的。

 

 

 

1.4.8        X模型

X模型的左邊描述的是針對單獨程序片段所進行的相互分離的編碼和測試,此后將進行頻繁的交接,通過集成最終成為可執行的程序,然后再對這些可執行程序進行測試。己通過集成測試的成品可以進行封裝並提交給用戶,也可以作為更大規模和范圍內集成的一部分。多根並行的曲線表示變更可以在各個部分發生。由圖中可見,X模型還定位了探索性測試,這是不進行事先計划的特殊類型的測試,這一方式往往能幫助有經驗的測試人員在測試計划之外發現更多的軟件錯誤。但這樣可能對測試造成人力、物力和財力的浪費,對測試員的熟練程度要求比較高。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM