【軟件工程】軟件測試

?

軟件測試的對象


軟件=程序+文檔
測試對象:各個階段產生的源程序和文檔。


軟件測試的目的


基于不同的立場,對軟件測試的目的存在著兩種完全對立的觀點。
(1)一種觀點是通過測試暴露出軟件中所包含的故障和缺陷(從用戶的角度);
(2)另一種是希望測試成為表明軟件產品中不存在錯誤的過程,驗證該軟件中已正確地實現了用戶的要求,因此,它們傾向于選取導致程序失敗概率最小的測試實例和數據。
顯然,第二種觀點對完善和提高軟件質量和可靠性毫無價值,因此測試的目的應該是通過軟件測試盡可能多地發現并改正軟件種存在的錯誤。


軟件測試的定義


Glenford J. Myers把這一觀點歸納為:
⑴測試是程序執行的過程,其目的在于發現錯誤。
⑵一個好的測試實例在于發現至今未發現的錯誤。
⑶一個成功的測試是發現了至今未發現的錯誤的測試。
因此,軟件測試(Software Testing)是從引起和發現錯誤的目的出發執行某一程序的過程。


錯誤的類型


(1)功能錯誤:處理功能說明不完整或不確切,致使編程時對功能有誤解而產生的錯誤。
(2)系統錯誤:與外部接口錯誤、子程序調用錯誤、參數使用錯誤等。
(3)過程錯誤:算術運算錯誤和邏輯運算錯誤
(4)數據錯誤:數據結構、實體、屬性錯誤。
(5)編程錯誤:語法錯誤、程序邏輯錯誤、編程書寫錯誤等。

軟件測試過程模型


(1)測試設計
(2)測試執行
(3)測試結果比較


軟件測試技術


測試法分為黑盒法和白盒法。


1.黑盒(Black-box Testing)法

黑盒法又稱為功能測試法,它是根據程序功能的分析,推演出由函數
定義域中有代表性的元素組成測試集,這些數據應包括對程序是有效的和無效的輸入,極端的、正常的和特殊的數據元素。因此,黑盒測試法是從外界來檢查模塊或程序的功能,也即根據模塊的輸入和輸出,得出所得結果得差異。這種測試無須知道模塊的內部邏輯,而是給定一輸入,檢查是否會得到所期望的輸出。功能測試法又具體分為等價類法,邊值分析法,因果圖法和錯誤猜測法等。


2.白盒法

白盒法也稱之為結構測試或邏輯覆蓋法。它是根據對軟件內部邏輯結構的分析,選取測試數據集(即測試用例:Testing Case),而測試數據集對程序邏輯的覆蓋程度決定了測試完全性的程度。常用的幾個覆蓋標準有:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋。


【例題?填空題】黑盒法又稱為_______法,黑盒測試法是從外界來檢查模塊或程序的功能,也即
根據模塊的輸入和輸出,得出所得結果得差異。
【答案】功能測試


路徑測試技術(白盒測試)★依據的是程序的邏輯結構。


(1)控制流程圖
基本元素:過程塊、節點、判定。
鏈、路徑的概念。
注意:控制流程圖和程序流程圖的差別。
(2)測試策略
a)路徑覆蓋:執行所有可能穿過程序控制流程的路徑。最強的測試度量。
b)語句覆蓋:至少執行程序中所有語句一次。最低的測試度量。
c)分支覆蓋:至少將程序中的每個分支執行一次。
d)條件覆蓋與條件組合覆蓋
語句覆蓋≤分支覆蓋≤條件組合覆蓋≤路徑覆蓋
(3)路徑選取與用例設計
最小的強制性測試需求是語句覆蓋率。

【例題】根據下列程序流程圖,設計不超過2組的測試用例,使之滿足語句覆蓋,要求給出每組測試數據的執行路徑、輸入值、輸出值及兩個判定(3)和(5)的判定結果。


【解析】此類題目屬于綜合應用題(每題10分),考核知識點為路徑測試技術。
在本題中,要求設計測試用例,滿足語句覆蓋,即所有語句都必須執行一遍。
A、B、C的值決定了程序執行的順序
A、B、C的值執行順序結果

?


路徑選取的一般原則


(1)選擇最簡單的、具有一定功能含義的入口/出口路徑
(2)在已選取的基礎上,選擇無循環的路徑,選取短路徑、簡單路徑
(3)選取沒有明顯功能含義的路徑,要研究該路徑為什么存在


基于事務流的測試技術


事務流測試的步驟


a)獲得事務流程圖
b)瀏覽、復審
c)用例設計
d)測試執行


等價類法
是根據程序的I/O特性,將程序的輸入劃分為有限個等價區段,使得從每個區段內抽取的代表性數據進
行的測試等價于該區段內任何數據的測試。對于每個輸入條件存在著程序有效輸入的有效等價類和對程序錯
誤輸入的無效等價類。例如,某實數X的取值范圍假設為a<X<b,則所有[a+1,b-1]之間的實數構成了有效
等價類,而任何[-∞,a]或[b,+∞]之間的實數構成了兩個無效等價類。


邊值分析法


是一種根據I/O邊界等價類上或緊靠邊界的條件,選擇測試用例的更有效的方法。例如,給定三個點,
判定能否構成三角形,可選取兩邊之和等于第三邊的實例作為邊值分析法的測試用例。


【例題】有一個學生選課系統:程序的輸入條件為:每個學生可以選修1至3門課程,試用黑盒測試法完成
測試。
(1)按等價類劃分法,設計測試用例(要求列出設計過程);
(2)按邊界值分析法,設計測試用例。


【解析】
(1)等價類法:
課程門數<1?
課程門數>3?
課程門數1~3?
(2)邊界值分析法
課程門數=1?
課程門數=3?


因果圖法


是通過從用自然語言書寫的功能說明表中找出因—輸入條件和果—輸出結果,通過因果圖將功能說明轉
換成一張判定表,然后為每種輸出條件的組合設計測試用例。
錯誤推測法是根據測試人員的經驗和直覺推測程序種可能存在的各種錯誤。
?


軟件測試步驟


軟件測試是按照與系統開發相反的方向來進行的。依次為:單元測試(模塊測試)、集成測試、有效性測試和系統測試


1.單元測試


單元測試(Unit Testing)又稱模塊測試(Module Testing),或模塊分調,用于測試單個程序模塊,確定模
塊的邏輯和功能是否正確。
單元測試采用白盒測試技術。
(1)模塊接口
(2)局部數據結構
(3)重要的執行路徑
(4)錯誤執行路徑
驅動模塊和承接模塊。


2.集成測試


集成測試(Integration Testing)用來測試模塊之間接口的正確性,也即模塊之間的數據和控制傳遞。集成測
試是與單元測試平行進行的。
集成測試采用黑盒測試技術。
(1)自頂向下的集成測試:需要設計承接模塊
(2)自底向上的集成測試:需求設計驅動模塊


3.有效性測試


目的:發現軟件實現的功能與需求規格說明書不一致的錯誤。
方法:采用黑盒測試技術


?

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

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

相關文章

ssh-keygen 做好免密登錄后不生效

免密說明 通常情況下&#xff0c;我們ssh到其他服務器需要知道服務器的用戶名和密碼。對于需要經常登錄的服務器每次都輸入密碼比較麻煩&#xff0c;因此我們可以在兩臺服務器上做免密登錄&#xff0c;即在A服務器可以免密登錄B服務器。 在A服務器上登錄B服務器時&#xff0c;…

Tik Tok娛樂+電商MCN怎么做?

在美國外的熱門市場中&#xff0c;TikTok 主要做的區域市場包括中東、拉美、歐洲和東亞&#xff0c;而這里面適合做電商的其實并不多。 歐洲、東亞都屬于成熟市場&#xff0c;且 TikTok 本身在歐洲面臨 DSA 法案更嚴格的審查&#xff0c;與在英國相同&#xff0c;歐洲各市場消…

第G1周:生成對抗網絡(GAN)入門

&#x1f368; 本文為[&#x1f517;365天深度學習訓練營]內部限免文章&#xff08;版權歸 *K同學啊* 所有&#xff09; &#x1f356; 作者&#xff1a;[K同學啊] 一、理論基礎 生成對抗網絡&#xff08;Generative Adversarial Networks, GAN&#xff09;是近年來深度學習領域…

Windows安裝Go開發環境

Windows安裝Go開發環境 一、Go語言下載地址 https://golang.google.cn/dl/ 二、設置工作空間GOPATH目錄(Go語言開發的項目路徑) 首先進入我的C盤&#xff08;你放到其他盤也行&#xff09;&#xff0c;新建一個文件夾&#xff0c;名字叫做mygo&#xff08;這個就是你的工作目…

ArcGIS Maps SDK for JavaScript系列之一:在Vue3中加載ArcGIS地圖

目錄 ArcGIS Maps SDK for JavaScript簡介ArcGIS Maps SDK for JavaScript 4.x 的主要特點和功能AMD modules 和 ES modules兩種方式比較Vue3中使用ArcGIS Maps SDK for JavaScript的步驟創建 Vue 3 項目安裝 ArcGIS Maps SDK for JavaScript創建地圖組件 ArcGIS Maps SDK for …

“深入理解JVM:探索Java虛擬機的內部工作原理“

標題&#xff1a;深入理解JVM&#xff1a;探索Java虛擬機的內部工作原理 摘要&#xff1a;本文將深入探索Java虛擬機&#xff08;JVM&#xff09;的內部工作原理&#xff0c;包括JVM的架構、類加載、內存管理、垃圾回收機制等方面。通過理解JVM的內部工作原理&#xff0c;我們…

華為開源自研AI框架昇思MindSpore應用案例:基于MindSpore框架的UNet-2D案例實現

目錄 一、環境準備1.進入ModelArts官網2.使用CodeLab體驗Notebook實例 二、環境準備與數據讀取三、模型解析Transformer基本原理Attention模塊 Transformer EncoderViT模型的輸入整體構建ViT 四、模型訓練與推理模型訓練模型驗證模型推理 近些年&#xff0c;隨著基于自注意&…

改造舊項目-長安分局人事費用管理系統

一、系統環境搭建 1、搭建前臺環境 vue3vite構建項目復制“銀稅系統”頁面結構&#xff0c;包括&#xff1a;路由、vuex存儲、菜單、登錄&#xff08;復制一個干凈的空架子&#xff09; 2、搭建后臺環境 新三大框架 SSMP聚合工程&#xff1a;common、admin&#xff0c;新的…

JAVA冒泡排序

package com.hzh.javase.day03;public class maopao {public static void main(String[] args) {int[] arr {2, 11,4,7,5,22,15,37,12,1};int zjvalue 0;//中間值boolean boofalse; //冒泡比較相鄰元素將小的提前打的放后 // 外層循環時用來控制輪數 // 內存循…

2023國賽數學建模E題思路分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

Linux服務器上配置HTTP和HTTPS代理

本文將向你分享如何在Linux服務器上配置HTTP和HTTPS代理的方法&#xff0c;解決可能遇到的問題&#xff0c;讓你的爬蟲項目順利運行&#xff0c;暢爬互聯網&#xff01; 配置HTTP代理的步驟 1. 了解HTTP代理的類型&#xff1a;常見的有正向代理和反向代理兩種類型。根據實際需求…

涉及近300個業務場景,重慶銀行數字員工平臺建設解析

隨著數字化轉型戰略規劃的逐步落地&#xff0c;重慶銀行于2022年6月成功建設了數字員工平臺&#xff0c;該平臺已成為行內數字化轉型的標桿應用。數字員工平臺以RPA&#xff08;機器人流程自動化&#xff09;為基礎&#xff0c;AI&#xff08;人工智能&#xff09;技術為抓手&a…

PHP最簡單自定義自己的框架view使用引入smarty(8)--自定義的框架完成

1、實現效果。引入smarty&#xff0c; 實現assign和 display 2、下載smarty&#xff0c;創建緩存目錄cache和擴展extend 點擊下面查看具體下載使用&#xff0c;下載改名后放到extend PHP之Smarty使用以及框架display和assign原理_PHP隔壁老王鄰居的博客-CSDN博客 3、當前控…

leetcode 力扣刷題 旋轉矩陣(循環過程邊界控制)

力扣刷題 旋轉矩陣 二維矩陣按圈遍歷&#xff08;順時針 or 逆時針&#xff09;遍歷59. 旋轉矩陣Ⅱ54. 旋轉矩陣劍指 Offer 29. 順時針打印矩陣 二維矩陣按圈遍歷&#xff08;順時針 or 逆時針&#xff09;遍歷 下面的題目的主要考察點都是&#xff0c;二維數組從左上角開始順…

輸出無重復的3位數和計算無人機飛行坐標

編程題總結 題目一&#xff1a;輸出無重復的3位數 題目描述 從{1,2,3,4,5,6,7,8,9}中隨機挑選不重復的5個數字作為輸入數組‘selectedDigits’&#xff0c;能組成多少個互不相同且無重復數字的3位數?請編寫程》序&#xff0c;從小到大順序&#xff0c;以數組形式輸出這些3位…

C# Linq源碼分析之Take (一)

概要 在.Net 6 中引入的Take的另一個重載方法&#xff0c;一個基于Range的重載方法。因為該方法中涉及了很多新的概念&#xff0c;所以在分析源碼之前&#xff0c;先將這些概念搞清楚。 Take方法基本介紹 public static System.Collections.Generic.IEnumerable Take (this …

【LeetCode: 2811. 判斷是否能拆分數組】

&#x1f680; 算法題 &#x1f680; &#x1f332; 算法刷題專欄 | 面試必備算法 | 面試高頻算法 &#x1f340; &#x1f332; 越難的東西,越要努力堅持&#xff0c;因為它具有很高的價值&#xff0c;算法就是這樣? &#x1f332; 作者簡介&#xff1a;碩風和煒&#xff0c;…

NavMeshPlus 2D尋路插件

插件地址:h8man/NavMeshPlus&#xff1a; Unity NavMesh 2D Pathfinding (github.com) 我對Unity官方是深惡痛覺,一個2D尋路至今都沒想解決,這破引擎早點倒閉算了. 這插件是githun的開源項目,我本身是有寫jps尋路的,但是無法解決多個單位互相阻擋的問題(可以解決但是有性能問…

vue3+ts使用antv/x6 + 自定義節點

使用 2.x 版本 x6.antv 新官網: 安裝 npm install antv/x6 //"antv/x6": "^2.1.6",項目結構 1、初始化畫布 index.vue <template><div id"container"></div> </template><script setup langts> import { onM…

Python爬蟲——scrapy_基本使用

安裝scrapy pip install scrapy創建scrapy項目&#xff0c;需要在終端里創建 注意&#xff1a;項目的名字開頭不能是數字&#xff0c;也不能包含中文 scrapy startproject 項目名稱 示例&#xff1a; scrapy startproject scra_baidu_36創建好后的文件 3. 創建爬蟲文件&…