軟體測試面試題測試基礎知識

2021-03-04 04:35:08 字數 4615 閱讀 6676

軟體測試面試題

軟體測試是軟體工程過程的乙個重要階段,是在軟體公升級發布之前對軟體開發各階段產品的最終檢查,是為了保證軟體開發產品的正確性、完全性和一致性而檢測軟體錯誤、修正軟體錯誤的過程。

軟體測試是:

1) 程式測試是為了發現錯誤而執行程式的過程

2) 測試是為了證明程式有錯,而不是證明程式無錯誤;

3) 乙個好的測試用例是在於它能發現至今未發現的錯誤;

4) 乙個成功的測試是發現了至今未發現的錯誤的測試。

軟體開發的目的:

是開發出實現使用者需求的高質量、高效能的軟體產品,而軟體測試是以檢查軟體功能和其他非功能特性為核心,是軟體質量保證的關鍵,也是成功實現軟體開發目標的重要保障。

是功能測試、資料驅動測試或基於規格說明的測試。在不考慮程式內部結構和內部特性的情況下,測試者依據該程式功能上的輸入輸出關係,或是程式的外部特性來設計和選擇測試用例,推斷程式編碼的正確性。

黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程式看作乙個不能開啟的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入資料而產生正確的輸出資訊。黑盒測試著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試。

1.等價類劃分

(1)劃分等價類。

①如果某個輸入條件規定了取值範圍或值的個數。則可確定乙個合理的等價類(輸入值或數在此範圍內)和兩個不合理等價類(輸入值或個數小於這個範圍的最小值或大於這個範圍的最大值)。

②如果規定了輸入資料的一組值,而且程式對不同的輸入值做不同的處理,則每個允許輸入值是乙個合理等價類,此處還有乙個不合理等價類(任何乙個不允許的輸入值)。

③如果規定了輸入資料必須遵循的規則,可確定乙個合理等價類(符合規則)和若干個不合理等價類(從各種不同角度違反規則)。

④如果已劃分的等價類中各元素在程式中的處理方式不同,則應將此等價類進一步劃分為更小的等價類。

(2)確定測試用例。

①為每乙個等價類編號。

②設計乙個測試用例,使其盡可能多地覆蓋尚未被覆蓋過的合理等價類。重複這步,直到所有合理等價類被測試用例覆蓋。

③設計乙個測試用例,使其只覆蓋乙個不合理等價類。

2.邊界值分析

使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來。但它不是從乙個等價類中任選乙個例子作為代表,而是將測試邊界情況作為重點目標,選取正好等於、剛剛大於或剛剛小於邊界值的測試資料。

(1)如果輸入條件規定了值的範圍,可以選擇正好等於邊界值的資料作為合理的測試用例,同時還要選擇剛好越過邊界值的資料作為不合理的測試用例。如輸入值的範圍是[1,100],可取0,1,100,101等值作為測試資料。

(2)如果輸入條件指出了輸入資料的個數,則按最大個數、最小個數、比最小個數少1、比最大個數多1等情況分別設計測試用例。如,乙個輸入檔案可包括1--255個記錄,則分別設計有1個記錄、255個記錄,以及0個記錄的輸入檔案的測試用例。

(3)對每個輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。如,乙個學生成績管理系統規定,只能查詢95--98級大學生的各科成績,可以設計測試用例,使得查詢範圍內的某一屆或四屆學生的學生成績,還需設計查詢94級、99級學生成績的測試用例(不合理輸出等價類)。

由於輸出值的邊界不與輸入值的邊界相對應,所以要檢查輸出值的邊界不一定可能,要產生超出輸出值之外的結果也不一定能做到,但必要時還需試一試。

(4)如果程式的規格說明給出的輸入或輸出域是個有序集合(如順序檔案、線形表、鍊錶等),則應選取集合的第乙個元素和最後乙個元素作為測試用例。

3.錯誤推測法

在測試程式時,人們可能根據經驗或直覺推測程式中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。

4.因果圖法

等價類劃分和邊界值方法分析方法都只是孤立地考慮各個輸入資料的測試功能,而沒有考慮多個輸入資料的組合引起的錯誤。

5.判斷表驅動法

6.正交試驗設計法

7.功能圖法

是結構測試、邏輯驅動測試或基於程式的測試。測試者熟悉程式的內部結構,依據程式模組的內部結構來設計測試用例,檢測程式**的正確性

白盒測試是結構測試,所以被測物件基本上是源程式,以程式的內部邏輯為基礎設計測試用例。

白盒測試方法:總體上分為靜態方法和動態方法兩大類。

靜態測試方法:

不要求在計算機上實際執行所測程式,主要以一些人工的模擬技術對軟體進行分析和測試,關鍵功能是檢查軟體的表示和描述是否一致,沒有衝突或者沒有歧義。

動態測試方法:

是通過輸入一組預先按照一定的測試準則構造的例項資料來動態執行程式,而達到發現程式錯誤的過程。

動態測試方法分為以下幾種:

1、邏輯覆蓋

程式內部的邏輯覆蓋程度,當程式中有迴圈時,覆蓋每條路徑是不可能的,要設計使覆蓋程度較高的或覆蓋最有代表性的路徑的測試用例。

(1)語句覆蓋。

為了個提高發現錯誤的可能性,在測試時應該執行到程式中的每乙個語句。語句覆蓋是指設計足夠的測試用例,使被測試程式中每個語句至少執行一次。

(2)判定覆蓋。

判定覆蓋指設計足夠的測試用例,使得被測程式中每個判定表示式至少獲得一次「真」值和「假」值,從而使程式的每乙個分支至少都通過一次,因此判定覆蓋也稱分支覆蓋。

(3)條件覆蓋。

條件覆蓋是指設計足夠的測試用例,使得判定表示式中每個條件的各種可能的值至少出現一次。

(4)判定/條件測試。

該覆蓋標準指設計足夠的測試用例,使得判定表示式的每個條件的所有可能取值至少出現一次,並使每個判定表示式所有可能的結果也至少出現一次。

(5)條件組合覆蓋。

條件組合覆蓋是比較強的覆蓋標準,它是指設計足夠的測試用例,使得每個判定表示式中條件的各種可能的值的組合都至少出現一次。

(6)路徑覆蓋。

路徑覆蓋是指設計足夠的測試用例,覆蓋被測程式中所有可能的路徑。

在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設計測試用例,然後再補充部分用例,以達到路徑覆蓋測試標準。

2.迴圈覆蓋

3.基本路徑測試

其中運用最為廣泛的是基本路徑測試法。

基本路徑測試法是在程式控制流圖的基礎上,通過分析控制構造的環路複雜性,匯出基本可執行路徑集合,從而設計測試用例的方法。

是介於白盒測試與黑盒測試之間的,可以這樣理解,灰盒測試關注輸出對於輸入的正確性,

同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,

有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,

因此需要採取這樣的一種灰盒的方法。

是對軟體基本單元的測試

單元測試(模組測試)是:開發者編寫的一小段**,用於檢驗被測**的乙個很小的、很明確的功能是否正確。通常而言,乙個單元測試是用於判斷某個特定條件(或者場景)下某個特定函式的行為。

單元測試是由程式設計師自己來完成,最終受益的也是程式設計師自己。可以這麼說,程式設計師有責任編寫功能**,同時也就有責任為自己的**編寫單元測試。執行單元測試,就是為了證明這段**的行為和我們期望的一致。

單元測試的主要目的:是針對編碼過程中可能存在的各種錯誤,例如使用者輸入驗證過程中的邊界值的錯誤。

對由個模組組裝而成的系統進行測試,檢查各模組間的介面和通訊

整合測試(也叫組裝測試,聯合測試)是單元測試的邏輯擴充套件。它的最簡單的形式是:兩個已經測試過的單元組合成乙個元件,並且測試它們之間的介面。

從這一層意義上講,元件是指多個單元的整合聚合。在現實方案中,許多單元組合成元件,而這些元件又聚合成程式的更大部分。方法是測試片段的組合,並最終擴充套件程序,將您的模組與其他組的模組一起測試。

最後,將構成程序的所有模組一起測試。

整合測試主要目的:是針對詳細設計中可能存在的問題,尤其是檢查各單元與其它程式部分之間的介面上可能存在的錯誤。

系統測試是將經過測試的子系統裝配成乙個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中指定功能的有效方法。

(常見的聯調測試)

系統測試的目的是對最終軟體系統進行全面的測試,確保最終軟體系統滿足產品需求並且遵循系統設計。

系統測試主要針對[b]概要設計[/b],檢查了系統作為乙個整體是否有效地得到執行,例如在產品設定中是否達到了預期的高效能

驗證軟體的功能和效能及其它特性是否與使用者的要求一致。

驗收測試是部署軟體之前的最後乙個測試操作。驗收測試的目的是確保軟體準備就緒,並且可以讓終端使用者將其用於執行軟體的既定功能和任務。驗收測試是向未來的使用者表明系統能夠像預定要求那樣工作。

經整合測試後,已經按照設計把所有的模組組裝成乙個完整的軟體系統,介面錯誤也已經基本排除了,接著就應該進一步驗證軟體的有效性,這就是驗收測試的任務,即軟體的功能和效能如同使用者所合理期待的那樣。

驗收測試通常由業務專家或使用者進行,以確認產品能真正符合使用者業務上的需要(需求)。

驗收測試分為非正式驗收測試和正式驗收測試兩大類。其中非正式驗收測試包括alpha測試和beta測試。

在msf中,測試分為2大類:(其中msf 是什麼?)

1. 覆蓋測試:找出程式中的缺陷,即是否該找的地方都找了。

2.使用測試:找出程式中的失敗,即為什麼使用不成功。

測試主要由下面6個相互關聯、相互作用的過程組成:

確定各測試階段的目標和策略。這個過程將輸出測試計畫,明確要完成的測試活動,評估完成活動所需要的時間和資源,設計測試組織和崗位職權,進行活動安排和資源分配,安排跟蹤和控制測試過程的活動。

軟體測試面試題

1 軟體測試的目的是盡可能多的找出軟體的缺陷。y 2 beta 測試是驗收測試的一種。y acceptance testing 驗收測試是部署軟體之前的最後乙個測試操作。驗收測試的目的是確保軟體準備就緒,並且可以讓終端使用者將其用於執行軟體的既定功能和任務。3 驗收測試是由終端使用者來實施的。n 是...

軟體測試面試題

1.您認為做好測試用例設計工作的關鍵是什麼?白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程式邏輯結果 黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模組輸出和輸入介面。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題 2.測試計畫工作的目的是什麼?測試計畫工作的內容都包括什麼?其...

軟體測試面試題

11.需求測試注意事項有哪些?乙個良好的需求應當具有一下特點 完整性 每一項需求都必須將所要實現的功能描述清楚,以使開發人員獲得設計和實現這些功能所需的所有必要資訊。正確性 每一項需求都必須準確地陳述其要開發的功能。一致性 一致性是指與其它軟體需求或高層 系統,業務 需求不相矛盾。可行性 每一項需求...