導航:首頁 > 工程技術 > 系統與軟體工程驗證與確認

系統與軟體工程驗證與確認

發布時間:2021-08-17 11:17:38

軟體工程與軟體測試之間的關系

軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及到程序設計語言,資料庫,軟體開發工具,系統平台,標准,設計模式等方面。

軟體測試是軟體工程中的一個部分。通過軟體測試可以生產具有正確性、可用性以及開銷合宜的產品。

⑵ 什麼是軟體過程它與軟體工程方法學有何關系

軟體過程是為了獲得高質量軟體所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。軟體過程是軟體工程方法學的3個重要組成部分之一。軟體工程方法學包含三個要素:方法、工具和過程。

軟體流程可以概括為三類:基本流程類別,支持流程類別和組織流程類別。 基本過程類別包括獲取過程,供應過程,開發過程,操作過程,維護過程和管理過程。

支持流程類別包括文檔流程,配置管理流程,質量保證流程,驗證流程,確認流程,聯合審核流程,審核流程和問題解決流程。 組織過程類別包括基礎結構過程,改進過程和培訓過程。

(2)系統與軟體工程驗證與確認擴展閱讀:

軟體過程的七大元素:

1、活動:開發、維護、管理等;

2、任務:活動的細分,確定、安排任務等;

3、工件:軟體過程的工作產品,分輸入與輸出工件;

4、角色:定義了軟體過程中的個人或小組的行為與職責;

5、資源:最佳實踐、工具、技術、機器、場地等;

6、目標:每個過程有明確的目標;

7、度量指標:目標的具體度量與分析,如進度、成本、質量、返工率。

⑶ 嵌入式系統與軟體工程哪個好

嵌入式系統
本身就只是一個
操縱系統
,運用於linux,
軟體工程師
也是對於開發的某一軟體安裝在這系統上,至於你問嵌入式系統與軟甲工程哪個好,其實它們是同一個行業,紅一個職位同一個專業,所以沒有好壞之分。

⑷ 軟體開發過與測試過程的並行關系

引言
1963年,在美國發生了這樣一件事:編程人員把一個FORTRAN程序的循環語句DO 5 I=1,3誤寫為DO 5 I=1.3。一點之差導致飛往火星的火箭爆炸,造成1000多萬美元的損失。這種情況的發生,迫使人們考慮在軟體投入使用之前必須進行徹底的測試。今天,在軟體比較發達的國家,軟體測試已經成為一個獨立的產業,軟體公司紛紛建立獨立的測試隊伍研究測試技術並開展測試工作。中國的軟體測試起步較晚,但隨著我國軟體產業的蓬勃發展以及人們對軟體質量的重視,軟體測試正在成為一個新興的產業。近兩年來,國內新成立專業性測試機構10餘家,一批批專業的軟體測試人員正涌現出來。每年國內都有大量的測試技術交流會議舉辦,有大量的測試研究論文在專業刊物上發表。在測試技術發展的同時,測試過程的管理顯得猶為重要。一個成功的測試項目,離不開對測試過程科學的組織和監控,過程管理已成為測試成功的重要保證。
1 測試過程概述
1.1 軟體測試過程概述
軟體測試過程是一種抽象的模型,用於定義軟體測試的流程和方法。眾所周知,開發過程的質量決定了軟體的質量,同樣的,測試過程的質量將直接影響測試結果的准確性和有效性。軟體測試過程和軟體開發過程一樣,都遵循軟體工程原理,遵循管理學原理。
隨著測試過程管理的發展,軟體測試專家通過實踐總結出了很多很好的測試過程模型。這些模型將測試活動進行了抽象,並與開發活動有機的進行了結合,是測試過程管理的重要參考依據。
1.2 軟體測試過程模型介紹
V模型
V模型最早是由Paul Rook在20世紀80年代後期提出的,旨在改進軟體開發的效率和效果。V模型反映出了測試活動與分析設計活動的關系。在圖1-1中,從左到右描述了基本的開發過程和測試行為,非常明確的標注了測試過程中存在的不同類型的測試,並且清楚的描述了這些測試階段和開發過程期間各階段的對應關系。

圖1-1軟體測試V模型
V模型指出,單元和集成測試應檢測程序的執行是否滿足軟體設計的要求;系統測試應檢測系統功能、性能的質量特性是否達到系統要求的指標;驗收測試確定軟體的實現是否滿足用戶需要或合同的要求。
但V模型存在一定的局限性,它僅僅把測試作為在編碼之後的一個階段,是針對程序進行的尋找錯誤的活動,而忽視了測試活動對需求分析、系統設計等活動的驗證和確認的功能。
W模型
W模型由Evolutif公司公司提出,相對於V模型,W模型增加了軟體各開發階段中應同步進行的驗證和確認活動。如圖1-2所示,W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的並行關系。
W模型強調:測試伴隨著整個軟體開發周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利於盡早地全面的發現問題。例如,需求分析完成後,測試人員就應該參與到對需求的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利於及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。
但W模型也存在局限性。在W模型中,需求、設計、編碼等活動被視為串列的,同時,測試和開發活動也保持著一種線性的前後關系,上一階段完全結束,才可正式開始下一個階段工作。這樣就無法支持迭代的開發模型。對於當前軟體開發復雜多變的情況,W模型並不能解除測試管理面臨著困惑。

圖1-2軟體測試W模型
H模型
V模型和W模型均存在一些不妥之處。如前所述,它們都把軟體的開發視為需求、設計、編碼等一系列串列的活動,而事實上,這些活動在大部分時間內是可以交叉進行的,所以,相應的測試之間也不存在嚴格的次序關系。同時,各層次的測試(單元測試、集成測試、系統測試等)也存在反復觸發、迭代的關系。
為了解決以上問題,有專家提出了H模型。它將測試活動完全獨立出來,形成了一個完全獨立的流程,將測試准備活動和測試執行活動清晰地體現出來,如圖1-3所示。

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

H模型揭示了一個原理:軟體測試是一個獨立的流程,貫穿產品整個生命周期,與其他流程並發地進行。H模型指出軟體測試要盡早准備,盡早執行。不同的測試活動可以是按照某個次序先後進行的,但也可能是反復的,只要某個測試達到准備就緒點,測試執行活動就可以開展。
其他模型
除上述幾種常見模型外,業界還流傳著其他幾種模型,例如X模型、前置測試模型等。X模型提出針對單獨的程序片段進行相互分離的編碼和測試,此後通過頻繁的交接,通過集成最終合成為可執行的程序。前置測試模型體現了開發與測試的結合,要求對每一個交付內容進行測試。這些模型都針對其他模型的缺點提出了一些修正意見,但本身也可能存在一些不周到的地方。所以在測試過程管理中,正確選取過程模型是一個關鍵問題。
1.3 軟體測試過程模型選取策略
前面介紹的測試過程模型中,V模型強調了在整個項目開發中需要經歷的不同的測試級別,但忽視了測試的對象不應該僅僅是程序。而W模型在這一點上進行了補充,明確指出應該對需求、設計進行測試。但是V模型和W模型都沒有將一個完整的測試過程抽象出來,成為一個獨立的流程,這並不適合當前軟體開發中廣泛應用的迭代模型。H模型則明確指出測試的獨立性,也就是說只要測試條件成熟了,就可以開展測試。
在實際測試工作中我們應該盡可能地去應用各模型中對項目有實用價值的方面,不能強行的為使用模型而使用模型。在測試實踐中,我們採用的方法是:以W模型作為框架,及早的、全面的開展測試。同時靈活運用H模型獨立測試的思想,在達到恰當的就緒點時就應該開展獨立的測試工作,同時將測試工作進行迭代,最終保證完成測試目標。
2 測試過程管理理念
生命周期模型為我們提供了軟體測試的流程和方法,為測試過程管理提供了依據。但實際的測試工作是復雜而煩瑣的,可能不會有哪種模型完全適用於某項測試工作。所以,我們應該從不同的模型中抽象出符合實際現狀的測試過程管理理念,依據這些理念來策劃測試過程,以不變應萬變。當然測試管理牽涉的范圍非常的廣泛,包括過程定義、人力資源管理、風險管理等等,本節僅介紹幾條從過程模型中提煉出來的,對實際測試有指導意義的管理理念。
2.1 盡早測試
「盡早測試」是從W模型中抽象出來的理念。我們說測試並不是在代碼編寫完成之後才開展的工作,測試與開發是兩個相互依存的並行的過程,測試活動在開發活動的前期已經開展。
「盡早測試」包含兩方面的含義:第一,測試人員早期參與軟體項目,及時開展測試的准備工作,包括編寫測試計劃、制定測試方案以及准備測試用例;第二,盡早的開展測試執行工作,一旦代碼模塊完成就應該及時開展單元測試,一旦代碼模塊被集成成為相對獨立的子系統,便可以開展集成測試,一旦有BUILD提交,便可以開展系統測試工作。
由於及早的開展了測試准備工作,測試人員能夠於早期了解測試的難度、預測測試的風險,從而有效提高了測試效率,規避測試風險。由於及早的開展測試執行工作,測試人員盡早的發現軟體缺陷,大大降低了BUG修復成本。但是需要注意,「盡早測試」並非盲目的提前測試活動,測試活動開展的前提是達到必須的測試就緒點。
2.2 全面測試
軟體是程序、數據和文檔的集合,那麼對軟體進行測試,就不僅僅是對程序的測試,還應包括軟體「副產品」的「全面測試」,這是W模型中一個重要的思想。需求文檔、設計文檔作為軟體的階段性產品,直接影響到軟體的質量。階段產品質量是軟體質量的量的積累,不能把握這些階段產品的質量將導致最終軟體質量的不可控。
「全面測試」包含兩層含義:第一,對軟體的所有產品進行全面的測試,包括需求、設計文檔,代碼,用戶文檔等等。第二,軟體開發及測試人員(有時包括用戶)全面的參與到測試工作中,例如對需求的驗證和確認活動,就需要開發、測試及用戶的全面參與,畢竟測試活動並不僅僅是保證軟體運行正確,同時還要保證軟體滿足了用戶的需求。
「全面測試」有助於全方位把握軟體質量,盡最大可能的排除造成軟體質量問題的因素,從而保證軟體滿足質量需求。
2.3 全過程測試
在W模型中充分體現的另一個理念就是「全過程測試」。雙V字過程圖形象的表明了軟體開發與軟體測試的緊密結合,這就說明軟體開發和測試過程會彼此影響,這就要求測試人員對開發和測試的全過程進行充分的關注。
「全過程測試」包含兩層含義:第一,測試人員要充分關注開發過程,對開發過程的各種變化及時做出響應。例如開發進度的調整可能會引起測試進度及測試策略的調整,需求的變更會影響到測試的執行等等。第二,測試人員要對測試的全過程進行全程的跟蹤,例如建立完善的度量與分析機制,通過對自身過程的度量,及時了解過程信息,調整測試策略。
「全過程測試」有助於及時應對項目變化,降低測試風險。同時對測試過程的度量與分析也有助於把握測試過程,調整測試策略,便於測試過程的改進。
2.4 獨立的、迭代的測試
我們知道,軟體開發瀑布模型只是一種理想狀況。為適應不同的需要,人們在軟體開發過程中摸索出了如螺旋、迭代等諸多模型,這些中需求、設計、編碼工作可能重疊並反復進行的,這時的測試工作將也是迭代和反復的。如果不能將測試從開發中抽象出來進行管理,勢必使測試管理陷入困境。
軟體測試與軟體開發是緊密結合的,但並不代表測試是依附於開發的一個過程,測試活動是獨立的。這正是H模型所主導的思想。「獨立的、迭代的測試」著重強調了測試的就緒點,也就是說,只要測試條件成熟,測試准備活動完成,測試的執行活動就可以開展。
所以,我們在遵循盡早測試、全面測試、全過程測試理念的同時,應當將測試過程從開發過程中適當的抽象出來,作為一個獨立的過程進行管理。時刻把握獨立的、迭代測試的理念,減小因開發模型的繁雜給測試管理工作帶來的不便。對於軟體過程中不同階段的產品和不同的測試類型,只要測試准備工作就緒,就可以及時開展測試工作,把握產品質量。
3 測試過程管理實踐
本節以一個實際項目系統測試過程(不對單元測試和集成測試過程進行分析)的幾個關鍵過程管理行為為例,來闡述上節中提出的測試理念。在一個構件化ERP項目中,由於前期需求不明確,開發周期相對較長,為了對項目進行更好的跟蹤和管理,項目採用增量和迭代模型進行開發。整個項目開發共分三個階段完成:第一階段實現進銷存的簡單的功能和工作流;第二階段:實現固定資產管理、財務管理,並完善第一階段的進銷存功能;第三階段:增加辦公自動化的管理(OA)。該項目每一階段工作是對上一階段成果的一次迭代完善,同時將新功能進行了一次疊加。
3.1 策劃測試過程
依據傳統的方法,將系統測試作為軟體開發的一個階段,系統測試執行工作將在三個階段完成後開展,很明顯,這樣做不利於BUG的及時暴露。有些缺陷可能會埋藏至後期發現,這時的修復成本將大大提高。我們依據「獨立和迭代」的測試理念,在本系統中,對測試過程進行獨立的策劃,找出測試准備就緒點,在就緒點及時開展測試。該系統的三個階段具有相對的獨立性,在每一階段完成所提交的階段產品具有相對的獨立性,可以作為系統測試准備的就緒點。故而,在該系統開發過程中,系統測試組計劃開展三階段的系統測試,每個階段系統測試具有不同的側重點,目的在於更好的配合開發工作盡早發現軟體BUG,降低軟體成本。軟體開發與系統測試過程的關系如圖3-1所示。
實踐證明,這種做法起到了預期的效果,與開發過程緊密結合而又相對獨立的測試過程,有效的於早期發現了許多系統缺陷,降低了開發成本,同時也使基於復雜開發模型的測試管理工作更加清晰明了。

3.2 把握需求
在本系統開發過程中,需求的獲取和完善貫穿每個階段。對需求的把握很大程度上決定了軟體測試是否能夠成功。系統測試不僅僅確認軟體是否正確實現功能,同時還要確認軟體是否滿足用戶的需要。依據「盡早測試」和「全面測試」原則,在需求的獲取階段,測試人員參與到了對需求的討論之中。測試人員與開發人員及用戶一起討論需求的完善性與正確性,同時從可測試性角度為需求文檔提出建議。這些建議對開發人員來說,是從一個全新的思維角度提出的約束。同時,測試組結合前期對項目的把握,很容易制定出了完善的測試計劃和方案,將各階段產品的測試方法及進度、人員安排進行了策劃,使整個項目的進展有條不紊。
實踐證明,測試人員早期參與需求的獲取和分析中,有助於加深測試人員對需求的把握和理解,同時也大大促進需求文檔的質量。在需求人員把握需求的同時,於早期制定項目計劃和方案,及早准備測試活動,大大提高了測試效率。
3.3 變更控制
變更控制體現的是「全過程測試」理念。在軟體開發過程中,變更往往是不可避免的,變更也是造成軟體風險的重要因素。在本系統測試中,僅第一階段就發生了7次需求變更,調整了兩次進度計劃。依據「全過程測試」理念,測試組密切關注開發過程,跟隨進度計劃的變更調整測試策略,依據需求的變更及時補充和完善測試用例。由於充分的測試准備工作,在測試執行過程中,沒有廢棄一個測試用例,測試的進度並沒有因為變更而受到過多影響。
3.4 度量與分析
對測試過程的度量與分析同樣體現的「全過程測試」理念。對測試過程的度量有利於及時把握項目情況,對過程數據進行分析,很容易發現優勢劣勢,找出需要改進的地方,及時調整測試策略。
在ERP項目中,我們在測試過程中對不同階段的BUG數量進行了度量,並分析測試執行是否充分。如圖3-2所示,通過分析我們得出:相同時間間隔內發現的BUG數量呈收斂狀態,測試是充分的。在BUG數量收斂的狀態下結束細測是恰當的。

圖3-2軟體開發與系統測試關系圖
測試中,我們對不同功能點的測試數據覆蓋率和發現問題數進行度量,以便分析測試用例的充分度與BUG發現率之間的關系。如表3-1所示,對類似模塊進行對比發現:某一功能點上所覆蓋的測試數據組越多,BUG的用例發現率越高。如果再結合工作量、用例執行時間等因素進行統計分析,便可以找到適合實際情況的測試用例書寫粒度,從而幫助測試人員判斷測試成本和收益間的最佳平衡點。
表3-1 測試數據覆蓋率與BUG發現率對應表
模塊名稱 功能點數 測試數據數 測試數據覆蓋率 BUG的用例發現率()
模塊AA 6個 75組 12.5組/每功能點 40% (6/15)
模塊BB 30個 96組 3.3組/每功能點 17% (7/42)
模塊CC 15個 87組 5.1組/每功能點 18% (5/28)
模塊DD 16個 46組 2.8組/每功能點 23% (5/22)
… … … … ...
註:通過統計可以得出測試數據與BUG發現率之間的關系,便於及時調整測試用例編寫策略。
所有這些度量都是對測試全過程進行跟蹤的結果,是及時調整測試策略的依據。對測試過程的度量與分析能有效的提高了測試效率,降低了測試風險。同時,度量與分析也是軟體測試過程可持續改進的基本。
4 測試過程可持續改進
測試技術發展到今天,已經存在諸多可供參考的測試過程管理思想和理念。但信息技術發展一日千里,新技術不斷涌現,這就註定測試過程也需要不斷的改進。我們提倡基於度量與分析的可持續過程改進方法(本文不做詳細論述)。在這種方法中,對現狀的度量被制度化,並作為過程改進的基礎。組織可以自定義需要度量的過程數據,將收集來的數據加以分析,以找出需要改進的因素。在不斷的改進中,同步的調整需要度量的過程數據,使度量與分析始終為了過程改進服務,而過程改進也包含對度量和分析的改進。
掌握了基於度量和分析的可持續過程改進方法,測試過程管理將能夠不斷完善,測試活動將能夠始終處於優化狀態。

⑸ 軟體工程與系統工程的區別

系統工程和軟體工程是完全不同的兩個概念,要先進行系統設計,之後才能去做軟體。軟體工程是指軟體開發上面所需要遵守的一些原則和設計規范。系統工程包括軟體和硬體兩個方面。所謂系統架構是系統工程的一些具體化。

⑹ 信息工程與軟體工程的區別

1、培養目標不同

信息工程專業培養具有信息的獲取、傳遞、處理、利用以及進行控制系統分析和設計等方面的知識,能在信息產業及國民經濟各部門從事信息系統和控制系統的研究、設計、集成、製造和運行工作的德、智、體全面發展的高級工程技術和科研人才。

軟體工程的目標是在給定成本、進度的前提下,開發出具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可移植性、可追蹤性、可互操作性和滿足用戶需求的軟體產品。追求這些目標有助於提高軟體產品的質量和開發效率,減少維護的困難。

2、研究方向不同

信息工程專業是建立在超大規模集成電路技術和現代計算機技術基礎上,研究信息處理理論、技術和工程實現的專門學科。該專業以研究信息系統和控制系統的應用技術為核心。

軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計模式等方面。


3、從業領域不同

信息工程:工業與電氣工程有關的運動控制、工業過程式控制制、電氣工程、電力電子技術、檢測與自動化儀表、電子與計算機技術等領域從事工程設計、系統分析、系統運行、研製開發、經濟管理等方面的工作。

軟體工程:計算機網路信息與通信安全、計算機圖形學與人機交互、多媒體技術應用、人工智慧與識別、嵌入式軟體與應用、自動控制、分布式計算與網格計算、雲計算技術、存儲技術、資料庫技術研究、計算機輔助設計與應用技術、大數據分析與處理等方面的工作。

⑺ 《GB/T25000.51-2016系統與軟體工程系統與軟體質量要求和評價(SQuaRE)》中,定義了術語「異常「是( )。

是B。

⑻ 軟體開發與軟體工程的區別

一、指代不同

1、軟體工程:是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。

2、軟體開發:是根據用戶要求建造出軟體系統或者系統中的軟體部分的過程。

二、內容不同

1、軟體工程:涉及程序設計語言、資料庫、軟體開發工具、系統平台、標准、設計模式等方面。

2、軟體開發:能熟練掌握常用的計算機軟體的使用、維護與技巧;在硬體方面學生應了解計算機硬體的發展,熟練掌握計算機組裝的方法,能熟練運用應用軟體檢測計算機性能、故障的范圍所在,掌握硬體故障的一般處理方法。


三、特點不同

1、軟體工程:在給定成本、進度的前提下,開發出具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可移植性、可追蹤性、可互操作性和滿足用戶需求的軟體產品。追求這些目標有助於提高軟體產品的質量和開發效率,減少維護的困難。

2、軟體開發:適合於熟練地按照工程化的思路進行軟體編制、軟體測試的工作崗位,能擔任各種企事業單位和各級工程建設部門、管理部門的計算機軟體和硬體維護、網路的組建、維護等工作,也可從事計算機研究與應用、軟體開發等方面的工作。

與系統與軟體工程驗證與確認相關的資料

熱點內容
蘇州假山景觀設計工程 瀏覽:862
哈爾濱工程造價招聘 瀏覽:937
建築工程土建勞務分包 瀏覽:632
道路監理工程師 瀏覽:476
安徽工程大學機電學院在本校嗎 瀏覽:370
河北工程大學保研率多少 瀏覽:287
有學質量工程師的書嗎 瀏覽:479
康樂縣建築工程公司 瀏覽:569
助理工程師二級 瀏覽:872
注冊安全工程師初級考試時間 瀏覽:901
食品科學與工程專業課題研究 瀏覽:881
工程造價圖紙建模 瀏覽:888
遼寧恆潤建設工程有限公司 瀏覽:93
實行施工總承包的工程項目 瀏覽:737
道路橋梁工程技術興趣愛好 瀏覽:316
密歇根理工大學電氣工程專業 瀏覽:388
廣西交通工程質量監督站 瀏覽:31
四川大學材料科學與工程學院考研參考書目 瀏覽:858
有線電視工程建設管理條例 瀏覽:270
雲南工程監理公司排名 瀏覽:673