nowcoder刷題筆記 易錯概念

2021-10-19 00:06:55 字數 2143 閱讀 6460

1.在軟體開發中,我們經常要使用測試用例對程式進行檢查,一次成功的測試是指執行測試用例後,發現了程式錯誤。

2.圈複雜度:圈複雜度所反映的是「判定條件」的數量。圈複雜度用來衡量乙個模組判定結構的複雜程度,數量上表現為線性無關的路徑條數,即合理的預防錯誤所需測試的最少路徑條數。圈複雜度大說明程式**可能質量低且難於測試和維護,根據經驗,程式的可能錯誤和高的圈複雜度有著很大關係。

舉例:如果一段原始碼中不包含控制流語句(條件或決策點),那麼這段**的圈複雜度為1,因為這段**中只會有一條路徑;如果一段**中僅包含乙個if語句,且if語句僅有乙個條件,那麼這段**的圈複雜度為2;包含兩個巢狀的if語句,或是乙個if語句有兩個條件的**塊的圈複雜度為3。

計算公式1:v(g)=e-n+2p。其中,e表示控制流圖中邊的數量,n表示控制流圖中節點的數量,p圖的連線元件數目(圖的元件數是相連節點的最大集合)。因為控制流圖都是連通的,所以p為1.

計算公式2:v(g)=區域數=判定節點數+1。因為圈複雜度所反映的是「判定條件」的數量,所以圈複雜度實際上就是等於判定節點的數量再加上1,也即控制流圖的區域數

對於多分支的case結構或if-elseif-else結構,統計判定節點的個數時需要特別注意一點,要求必須統計全部實際的判定節點數,也即每個elseif語句,以及每個case語句,都應該算為乙個判定節點。

計算公式3:v(g)=r。其中r代表平面被控制流圖劃分成的區域數。

三者的比較:針對程式的控制流圖計算圈複雜度v(g)時,最好還是採用第乙個公式,也即v(g)=e-n+2;而針對模組的控制流圖時,可以直接統計判定節點數,這樣更為簡單;針對復雜的控制流圖是,使用區域計算公式v(g)=r更為簡單。

3.黑盒測試技術使用最廣的用例設計技術是等值分析測試。

4.單元測試:指對軟體中的最小可測試單元進行檢查和驗證。比如c語言中單元指乙個函式。經常和單元測試聯絡起來的另外

一些開發活動包括**走讀,靜態分析(對軟體源**進行研讀,查詢錯誤或收集一些度量資料,不需要對**進行編譯和執行),動態分析(觀察軟體執行時的動作,提供執行跟蹤,時間分析,以及測試覆蓋度方面)。

5.資料流分析:資料流分析是一項編譯時使用的技術,它能從程式**中收集程式的語義資訊,並通過代數的方法在編譯時確定變數的定義和使用。通過資料流分析,可以不必實際執行程式就能夠發現程式執行時的行為,這樣可以幫助大家理解程式。資料流分析被用於解決編譯優化、程式驗證、除錯、測試、並行、向量化和片行程式設計環境等問題。

6.邏輯覆蓋:以程式內部的邏輯結構為基礎的設計測試用例的技術,它屬於白盒測試。根據覆蓋目標的不同和覆蓋源程式語句的詳盡程度,邏輯覆蓋又可分為:

語句覆蓋(設計測試用例使得每乙個可執行語句至少執行一次)

判定覆蓋(設計測試用例使得每個判定取真分支和取假分支至少執行一次)

條件覆蓋(只考慮判斷語句中的表示式不考慮各個分支條件即不滿足判定覆蓋)

條件/判定覆蓋

條件組合覆蓋(條件組合覆蓋使得每個判定中條件的各種可能組合都至少出現一次(以數軸形式劃分區域,提取交集,建立最少的測試用例)。滿足條件組合覆蓋一定滿足判定覆蓋、條件覆蓋、判定條件覆蓋

修正判定條件覆蓋

路徑覆蓋

7.軟體測試計畫評審會需要哪些人員參加?

專案經理、sqa 負責人、配置負責人、測試組

8,軟體測試主要工作內容是驗證和確認。確認測試主要是檢查已實現的軟體是否滿足需求規格說明書中確定了的各種需求。

9.系統測試是基於軟體需求說明書的黑盒測試,是對已經整合好的軟體系統進行徹底的測試,以驗證軟體系統的正確性和效能等滿足其規約所指定的要求,檢查軟體的行為和輸出是否正確。

整合測試的主要目的是檢查軟體單位之間的介面是否正確,主要是針對程式內部結構進行測試,特別是對程式之間的介面進行測試。

js易錯筆記

目錄 1.underfiend null 2.number parseint parsefloat 3.運算子 4js作用域 實際上,undefined值是派生自null值的,ecmascript標準規定對二者進行相等性測試要返回true,parseint parsefloat 專門用於把字串轉換成...

筆記 易錯點集合

1.cena裡不能用bits stdc h.當然正式考試也不行.2.不要弄反 ifdef 和 ifndef 3.取模優化原本是這麼寫的 if x mod x mod 實際上要這麼寫 while x mod x mod 然後我也不知道有沒有起到優化的作用 4.考慮方案選擇數相關dp問題時 比如組合數 ...

演算法筆記 易錯記錄

printf 05d id nd 輸出的整型寬度至少為n位,右對齊,5d即寬度至少為5位,位數大於5則輸出實際位數 0nd 用得比較多,表示輸出的整型寬度至少為n位,不足n位用0填充 printf 05d 1 輸出 00001 printf 5d 1 輸出 1 為空格 例 pat a1121 已知情...