【系統架構設計師】九、軟件工程(軟件測試)

目錄

八、軟件測試

8.1 測試分類

8.2 靜態方法

8.2.1 靜態測試

8.2.2?動態測試

8.2.3?自動化測試

8.3 測試階段

8.3.1?單元測試

8.3.2?集成測試

8.3.3 確認測試

8.3.4?系統測試

8.3.5 性能測試

8.3.6?驗收測試

8.3.7 其他測試

8.4 測試用例設計? ? ? ?

8.4.1 黑盒測試用例?

8.4.2 白盒測試用例

8.5?測試模型

8.5.1?W模型

8.5.2??H模型

?8.5.3?敏捷測試模型

8.6?調試(debug)

相關推薦

歷年真題練習


八、軟件測試

????????軟件測試是確保軟件的質量,確認軟件以正確的方式做了用戶所期望的事情。軟件測試通常在規定的時間和成本內完成,以盡量多地發現漏洞,但不能保證發現所有的漏洞
????????測試原則:
? ? ? ? ? ? ? ? ●應盡早并不斷的進行測試;
????????????????●測試工作應該避免由原開發軟件的人或小組承擔;
????????????????●在設計測試方案時,不僅要確定輸入數據,而且要根據系統功能確定預期的輸出結果;
????????????????●既包含有效、合理的測試用例,也包含不合理、失效的用例;
????????????????●檢驗程序是否做了該做的事,且是否做了不該做的事;
????????????????●嚴格按照測試計劃進行;
????????????????●妥善保存測試計劃和測試用例;
????????????????●測試用例可以重復使用或追加測試。

8.1 測試分類

????????(1)根據程序執行狀態可分為靜態測試(Static Testing,ST)和動態測試(Dynamic Testing,DT)
????????(2)根據是否關注具體實現和內部結構可分為黑盒測試、白盒測試和灰盒測試
????????(3)根據程序執行的方式來分類可分為人工測試(Manual Testing,MT)自動化測試
(Automatic Testing,AT)

????????(4)從階段上劃分,軟件測試可以分為單元測試、集成測試、系統測試、性能測試(通過自動化測試工具模擬,包括負載和壓力測試)、驗收測試、其他測試(補充內容)

8.2 靜態方法

8.2.1 靜態測試

????????靜態測試指被測試程序不在機器上運行,而采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測,包括對文檔的靜態測試和對代碼的靜態測試。對文檔的靜態測試主要以檢查單的形式進行,而對代碼的靜態測試,包括桌前檢查、代碼審查、代碼走查的方式。使用這種方法能夠有效地發現30%-70%的邏輯設計和編碼錯誤。

8.2.2?動態測試

????????動態測試指在計算機上實際運行程序進行軟件測試,一般采用白盒測試、黑盒測試和灰盒測試方法。
????????黑盒測試功能性測試不了解軟件代碼結構,根據功能設計用例,測試軟件功能。
????????白盒測試結構性測試明確代碼流程,根據代碼邏輯設計用例,進行用例覆蓋。
????????灰盒測試:灰盒測試介于黑盒與白盒測試之間。灰盒測試除了重視輸出相對于輸入的
正確性,也看重其內部的程序邏輯。

8.2.3?自動化測試

? ? ? ? 自動化測試就是軟件測試的自動化,即在預先設定的條件下自動運行被
測程序,并分析運行結果
。總的來說,這種測試方法就是將以人驅動的測試行為轉化為機器執
行的一種過程。

8.3 測試階段

????????從階段上劃分,軟件測試可以分為單元測試、集成測試、確認測試、性能測試(通過自動化測試工具模擬,包括負載和壓力測試)、系統測試、驗收測試、其他測試(補充內容)

8.3.1?單元測試

????????單元測試也稱為模塊測試,測試的對象是可獨立編譯或匯編的程序模塊、軟件構件或OO(面向對象)軟件中的類(統稱為模塊),測試依據是軟件詳細設計說明書

8.3.2?集成測試

????????集成測試目的是檢查模塊之間,以及模塊和已集成的軟件之間的接口關系,并驗證已集成的軟件是否符合設計要求。測試依據是軟件概要設計文檔

8.3.3 確認測試

????????確認測試主要用于驗證軟件的功能、性能和其他特性是否與用戶需求一致。根據用戶的參與程度,通常包括以下類型:
????????????????內部確認測試:主要由軟件開發組織內部按照SRS(Software Requirements Specification,軟件需求規格說明書)進行測試
????????????????Alpha測試:用戶在開發環境下進行測試。
????????????????Beta測試:用戶在實際使用環境下進行測試,通過改測試后,產品才能交付用戶。

8.3.4?系統測試

????????系統測試測試對象是完整的、集成的計算機系統;測試的目的是在真實系統工作環境下,驗證完成的軟件配置項能否和系統正確連接,并滿足系統/設計文檔和軟件開發合同規定的要求。測試依據是用戶需求或開發合同。

????????主要內容包括功能測試、健壯性測試、性能測試、用戶界面測試、安全性測試安裝與反安裝測試等,其中,最重要的工作是進行功能測試與性能測試
????????????????功能測試主要采用黑盒測試方法;
????????????????
性能測試主要指標有響應時間、吞吐量、并發用戶數和資源利用率等。

8.3.5 性能測試

????????性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項
性能指標進行測試
負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,
確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化
情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大
服務級別的測試。

8.3.6?驗收測試

????????驗收測試主要是針對SRS,在交付前以用戶為主進行的測試。其測試對象為完整的、集成的計算機系統。驗收測試的目的是,在真實的用戶工作環境下,檢驗軟件系統是否滿足開發技術合同或SRS。驗收測試的結論是用戶確定是否接收該軟件的主要依據。除應滿足一般測試的準入條件外,在進行驗收測試之前,應確認被測軟件系統已通過系統測試

8.3.7 其他測試

????????配置項測試測試對象是軟件配置項,測試目的是檢驗軟件配置項與SRS的一致性。測試的依據是SRS。在此之間,應確認被測軟件配置項已通過單元測試和集成測試。

????????回歸測試測試目的是測試軟件變更之后,變更部分的正確性和對變更需求的符合性,以及軟件原有的、正確的功能、性能和其他規定的要求的不損害性。

????????AB測試是為Web 或 App 界面或流程制作兩個 (A/B)或多個 (A/B/n) 版本,在同一時間維度,分別讓組成成分相同(相似)的訪客群組(目標人群)隨機的訪問這些版本,收集各群組的用戶體驗數據和業務數據,最后分析、評估出最好版本,正式采用

????????Web測試是軟件測試的一部分,是針對Web 應用的一類測試。由于 Web 應用與用戶直接相關,又通常需要承受長時間的大量操作,因此Web 項目的功能和性能都必須經過可靠的驗證。通過測試可以盡可能地多發現瀏覽器端和服務器端程序中的錯誤并及時加以修正,以保證應用的質量。由于Web 具有分布、異構、并發和平臺無關的特性,因而它的測試要比普通程序復雜得多,包含的測試種類也非常多。

????????鏈接測試。鏈接是Web 應用系統的一個主要特征,它是在頁面之間切換和指導用戶去一些未知地址頁面的主要手段。鏈接測試可分為3個方面。

????????????????首先,測試所有鏈接是否按指示的那樣確實鏈接到了該鏈接的頁面;
????????????????其次,測試所鏈接的頁面是否存在;
????????????????最后,保證 Web 應用系統上沒有孤立的頁面。

????????表單測試當用戶通過表單提交信息的時候,都希望表單能正常工作。如果使用表單來進行在線注冊,要確保提交按鈕能正常工作,當注冊完成后應返回注冊成功的消息。如果使用表單收集配送信息,應確保程序能夠正確處理這些數據,最后能讓用戶收到信息。要測試這些程序,需要驗證服務器是否能正確保存這些數據,而且后臺運行的程序能否正確解釋和使用這些信息。當用戶使用表單進行用戶注冊、登錄、信息提交等操作時,必須測試提交操作的完整性,從而校驗提交給服務器的信息的正確性。如果使用默認值,還要檢驗默認值的正確性。如果表單只能接受指定的某些值,則也要進行測試。

8.4 測試用例設計? ? ? ?

8.4.1 黑盒測試用例?

????????將程序看做一個黑盒子,只知道輸入輸出,不知道內部代碼由此設計出測試用例,分為下面幾類:
????????等價類劃分:把所有的數據按照某種特性進行歸類,而后在每類的數據里選取一個即可。等價類測試用例的設計原則
????????????????設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;
????????????????設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。

????????邊界值劃分:將每類的邊界值作為測試用例,邊界值一般為范圍的兩端值以及在此范圍之外的與此范圍間隔最小的兩個值,如年齡范圍為18-100,邊界值為18、100、17、101四個。

????????錯誤推測:沒有固定的方法,憑經驗而言,來推測有可能產生問題的地方作為測試用例進行測試。

????????因果圖:由一個結果來反推原因的方法,具體結果具體分析,沒有固定方法。

????????判定表驅動法:通過表格形式展示輸入條件、輸出動作以及它們之間的對應關系,從而設計測試用例的方法。

????????正交試驗設計法:研究多因素多水平的一種設計方法,由試驗因素的全部水平組合中挑選出部分有代表性的點進行試驗,找出最優的水平組合。

8.4.2 白盒測試用例

????????知道程序的代碼邏輯,按照程序的代碼語句,來設計覆蓋代碼分支的測試用例,覆蓋級別從低至高分為下面幾種:

????????????????(1)語句覆蓋SC:邏輯代碼中的所有語句都要被執行一遍,覆蓋層級最低,因為執行了所有的語句,不代表執行了所有的條件判斷。
????????????????(2)判定覆蓋DC:邏輯代碼中的所有判斷語句的條件的真假分支都要覆蓋一次。
????????????????(3)條件覆蓋CC:針對每一個判斷條件內的每一個獨立條件都要執行一遍真和假。
????????????????(4)條件判定組合覆蓋CDC:同時滿足判定覆蓋和條件覆蓋。
????????????????(5)路徑覆蓋:邏輯代碼中的所有可行路徑都覆蓋了,覆蓋層級最高。

8.5?測試模型

8.5.1?W模型

????????W模型是對V模型的一個重要改進,充分體現了盡早開展測試的原則,并將V模型中以發現缺陷為目標上升為保證軟件質量為目標

? ? ? ? 如圖所示,W模型實際上是兩個V的疊加,一個V 描述開發過程,另外一個V描述測試過程。但測試的起,始時機不再是編碼結束之后,而是從需求分析時開始,且與開發的每一個階段活動同步進行。

8.5.2??H模型

????????H模型改進了W和V模型高度依賴于開發的瀑布模型的缺陷

????????H 模型把測試活動從軟件開發過程中獨立出來, 在軟件過程的任何一個時間點上,只要測試條件滿足即開展測試。測試的流程與其他流程是并行的。H模型比W模型更好的地方是能夠兼顧測試的效率和靈活性,適合于各種規模及類型的軟件項目。

?8.5.3?敏捷測試模型

? ? ? ? 敏捷測試源于敏捷開發。敏捷測試是敏捷開發的組成部分,需要與開發流程良好融合。

????????敏捷測試在整個敏捷開發過程中,需要與項目的其他人員甚至用戶保持緊密協作,時刻關注需求變化并實施測試,以體現測試的時效性和適應性,這對測試人員有比較高的能力要求。

8.6?調試(debug)

????????測試是發現錯誤,調試是找出錯誤的代碼和原因。

????????調試需要確定錯誤的準確位置;確定問題的原因并設法改正;改正后要進行回歸測試

????????調試的方法有:蠻力法、回溯法(從出錯的地方開始,向回找)、原因排除法(找出所有可能的原因,逐一進行排除,具體包括演繹法、歸納法、二分法)。

相關推薦

【系統架構設計師】九、軟件工程(軟件工程定義|軟件過程模型|能力成熟度模型)-CSDN博客文章瀏覽閱讀831次,點贊19次,收藏19次。歷年真題考情:本章節每年單項選擇考13分左右,下午案例、論文也會有涉及,在系統架構設計師中本章節絕對是重點中的重點。主要學習軟件工程、需求工程、系統分析與設計、凈室軟件工程、基于構件的軟件工程、軟件項目管理等內容。很少涉及超綱題。https://shuaici.blog.csdn.net/article/details/140095679【系統架構設計師】九、軟件工程(需求工程|系統分析與設計|DFD|DD|高內聚低耦合)-CSDN博客文章瀏覽閱讀516次,點贊14次,收藏12次。系統設計方法:結構化設計方法,面向對象設計方法。系統設計的主要內容:概要設計、詳細設計。概要設計基本任務:又稱為系統總體結構設計,是將系統的功能需求分配給軟件模塊,確定每個模塊的功能和調用關系,形成軟件的模塊結構圖,即系統結構圖。詳細設計的基本任務:模塊內詳細算法設計、模塊內數據結構設計、數據庫的物理設計、其他設計(代碼、輸入/輸出格式、用戶界面)、編寫詳細設計說明書、評審。https://shuaici.blog.csdn.net/article/details/140259207【系統架構設計師】九、軟件工程(面向對象方法|逆向工程)-CSDN博客文章瀏覽閱讀603次,點贊8次,收藏6次。面向對象的分析模型主要由頂層架構圖、用例與用例圖、領域概念模型構成設計模型則包含以包圖表示的軟件體系結構圖、以交互圖表示的用例實現圖、完整精確的類圖、針對復雜對象的狀態圖和用以描述流程化處理過程的活動圖等。軟件的逆向工程是分析程序,力圖在比源代碼更高抽象層次上建立程序的表示過程,逆向工程是設計的恢復過程。與逆向工程相關的概念有重構、設計恢復、再工程和正向工程。https://shuaici.blog.csdn.net/article/details/140287834

歷年真題練習

????????1.在白盒測試中,測試強度最高的是()

????????????????A.語句覆蓋
????????????????B.分支覆蓋
????????????????C.判定覆蓋
????????????????D.路徑覆蓋

????????2.在黑盒測試方法中,()方法最適合描述在多個邏輯條件取值組合所構成的負載情況下,分別
要執行哪些不同的動作

????????????????A.等價類
????????????????B.邊界值
????????????????C.判定表
????????????????D.因果圖

????????3.( )通常為一個迭代過程,其中的活動包括需求發現、需求分類和組織、需求協商、需求文檔化。

????????????????A.需求確認
????????????????B.需求管理
????????????????C.需求抽取
????????????????D.需求規格說明
?

人工分割線-答案

? ? ? ? 1. D
? ? ? ? ? ? ? ? 解析:測試強度從低到高:語判條路,最強的為路徑覆蓋。

? ? ? ? 2. C

? ? ? ? 3. C

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43624.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

編程視頻用什么軟件好看:探索最佳編程教學工具

編程視頻用什么軟件好看:探索最佳編程教學工具 在數字化時代,編程技能已成為一項不可或缺的核心競爭力。然而,對于初學者來說,如何有效地學習編程卻是一個令人困惑的問題。觀看編程視頻成為了一種流行的學習方式,但如…

Spring-Data-ES-template工具類使用

SpringDataElasticsearch 提供了一個工具類 ElasticsearchTemplate,我們使用該類對象也可以對 ES 進行操作 1.操作索引 首先注入操作ES所需要的工具類(ElasticsearchTemplate)。 Autowiredprivate ElasticsearchTemplate template; 將createIndex改為false Docu…

springboot在線教育平臺-計算機畢業設計源碼68562

摘要 在數字化時代,隨著信息技術的飛速發展,在線教育已成為教育領域的重要趨勢。為了滿足廣大學習者對于靈活、高效學習方式的需求,基于Spring Boot的在線教育平臺應運而生。Spring Boot以其快速開發、簡便部署以及良好的可擴展性&#xff0c…

N6 word2vec文本分類

🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客🍖 原作者:K同學啊# 前言 前言 上周學習了訓練word2vec模型,這周進行相關實戰 1. 導入所需庫和設備配置 import torch import torch.nn as nn import torchvision …

【啟明智顯分享】樂鑫HMI方案4.3寸觸摸串口屏:水質檢測儀應用解決方案

水是萬物的源泉,了解水的酸堿度對于保障我們的健康、生產和生活環境至關重要。水質檢測儀應運而生,它讓我們能夠洞察水的酸堿奧秘。 水是萬物的源泉,了解水的酸堿度對于保障我們的健康、生產和生活環境至關重要。水質檢測儀應運而生&#xff…

springboot藥房庫存管理系統-計算機畢業設計源碼50588

目 錄 摘要 1 緒論 1.1 研究背景與意義 1.2開發現狀 1.3論文結構與章節安排 2 藥房庫存管理系統系統分析 2.1 可行性分析 2.1.1 技術可行性分析 2.1.2 經濟可行性分析 2.1.3 法律可行性分析 2.2 系統功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系統用例分…

MES ERP PM 質量管理 人機料法環測 質量控制六要素

七要素 在質量管理理論中,特別是在制造業中,分析生產過程中影響產品質量的七個關鍵因素 人機料法環測七要素是指在質量管理理論中,特別是在制造業中,分析生產過程中影響產品質量的七個關鍵因素。這七個要素包括: …

谷歌報告顯示:2023 年 50% 的0day漏洞利用背后都是間諜軟件供應商

人不走空 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 導 讀 谷歌威脅分析小組 (TAG) 和谷歌子公司 Mandiant 表示,他們觀察到 2023 年攻擊中利用的0day漏洞…

print(f‘ \‘)python中加了\之后有很大空行,如何去掉

在 Python 中,反斜杠 \ 通常用于表示字符串的續行符,允許你將長字符串拆分成多行。然而,如果你在 print 函數中使用反斜杠并在其后面加上空格或換行符,可能會導致意外的空行或空格。 在 print 函數中避免這些空行或空格&#xff…

垃圾百度網盤到底誰在使用

通過鏈接分享 通過鏈接分享到vx給好友查看好友在微信聊天框內打開百度網盤鏈接直接查看即使點擊查看大圖查看的圖片依舊很模糊,不是原圖點擊右下角去app查看在百度網盤內部查看時,顯示的和下載的才是原圖真的是用戶體驗極差,真的垃圾… 通過…

數據結構與算法的聯系(筆記)

文章目錄 1. 什么是數據結構定義舉例CRUD難道不是都一樣嗎? 總結 2. 什么是算法3. 數據結構與算法的聯系舉例 4. 推薦 1. 什么是數據結構 定義 數據結構(data structure)是計算機中存儲、組織數據的方式。 關鍵詞:① 數據 ② 存儲 ③ 組織 舉例 以手機通…

基于 Nginx + Spring Boot + Vue + JPA 的網站安全防護指南

引言 在現代互聯網時代,確保網站的安全性非常重要。尤其是基于前后端分離架構,更需要特別注意安全防護。接下來,帶你了解幾種常見的安全攻擊及其應對措施。 常見的安全攻擊及應對措施 1. 跨站腳本攻擊 (XSS) 攻擊描述: 跨站腳…

css簡單易懂的加載動畫,看不會算我輸好吧

效果展示 步驟 第一階段 先準備結構&#xff0c;并且放置12個div&#xff0c;每一個div旋轉30*n度&#xff0c; 做一個圓圈 dom <div class"modal"><div class"loading"><div class"item1"></div><div class&quo…

Spark 分布式彈性計算集(RDD)相關概念介紹

目錄 一、概述 二、RDD的核心概念 2.1 Partition 2.2 Partitioner 2.3 RDD的依賴關系 2.4 Stage 2.5 PreferredLocation 2.6 CheckPoint 三、RDD的持久化 3.1 概述 3.2 概念 3.3 RDD持久化級別 3.3.1 MEMORY_ONLY 3.3.2 MEMORY_AND_DISK 3.3.3 MEMORY_ONLY_SER …

基于語義的法律問答系統

第一步&#xff0c;準備數據集 第二步&#xff0c;構建索引數據集&#xff0c;問答對數據集&#xff0c;訓練數據集&#xff0c;召回評估數據集 第三步&#xff0c;構建dataloader,選擇優化器訓練模型&#xff0c;之后召回評估 第四步&#xff0c;模型動轉靜&#xff0c;之后…

Synchronized底層工作原理

Synchronized 是Java中最常用的內置鎖機制&#xff0c;用于確保多線程環境下的同步。其底層原理涉及到JVM&#xff08;Java虛擬機&#xff09;和字節碼指令。以下是 synchronized 的底層工作原理的詳細介紹&#xff1a; 1. 基本概念 對象頭&#xff08;Object Header&#xf…

【UE5.1 角色練習】15-槍械射擊——子彈發射物

目錄 效果 步驟 一、創建并發射子彈 二、優化子彈 效果 步驟 一、創建并發射子彈 1. 在前面的文章中&#xff08;【UE5.1 角色練習】06-角色發射火球-part1&#xff09;我們創建了藍圖“BP_Skill_FireBall” 這里我們復制一份命名為“BP_Ammo_5mm”&#xff0c;用于表示…

科技的成就(六十一)

567、數據虛擬化 用來描述所有數據管理方法的涵蓋性術語&#xff0c;這些方法允許應用程序檢索并管理數據&#xff0c;且不需要數據相關的技術細節&#xff0c;例如它格式化的方式或物理位置所在。數據整合的過程&#xff0c;以此獲得更多的數據信息&#xff0c;這個過程通常會…

SLAM中的塊矩陣與schur補

文章目錄 SLAM中的塊矩陣與schur補Schur補的另一種解釋對角塊矩陣的逆為各個塊的逆的組合 SLAM中的塊矩陣與schur補 Schur補的另一種解釋 Schur從概率角度來解釋是比較常見的一種推導&#xff0c;可以參考博客https://blog.csdn.net/weixin_41469272/article/details/1219944…

若依搭建 帝可得 售貨機 筆記

一、搭建項目 1.后端gitee鏈接&#xff1a; 啟動項目時記得修改mysql和redis的相關信息&#xff1b;創建項目相關數據庫&#xff0c;并導入初始化的SQL腳本 dkd-parent: 帝可得后臺管理系統 (gitee.com) 2.前端gitee鏈接&#xff1a; 啟動項目時記得安裝依賴&#xff1a;np…