測試基礎(chǔ)-面試問題

一.H5與原生測試過程中的區(qū)別

1.各自優(yōu)勢

h5頁面:

優(yōu)點:支持跨平臺,安卓、ios不需要單獨開發(fā),只需要開發(fā)一套即可;用戶無需下載,打開一個網(wǎng)址即可訪問了;開發(fā)簡單,開發(fā)成本低,入門門檻低;

缺點:?每次打開頁面,都得重新加載,獲取數(shù)據(jù);過于依賴網(wǎng)絡(luò),速度無法保證

原生APP:

優(yōu)點:直接依托于操作系統(tǒng),交互性最強(qiáng),性能最好;

缺點 :開發(fā)成本高,無法跨平臺,不同平臺Android和iOS上都要各自獨立開發(fā);開發(fā)人員入門門檻較高;app發(fā)布審核流程麻煩,維護(hù)成本高

2.測試主要關(guān)注點

(1)業(yè)務(wù)邏輯相關(guān)

a.業(yè)務(wù)功能

b.登陸

c.翻頁

d.刷新與返回

e.數(shù)據(jù)的請求與返回

(2)H5適配相關(guān)

安卓、ios、瀏覽器

(3)體驗相關(guān)

頁面滑動、加載、自適應(yīng)是否流暢,弱網(wǎng)提示

二.瀑布式開發(fā)和敏捷開發(fā)Scrum區(qū)別

敏捷開發(fā),首先把客戶最關(guān)注的軟件原型先做出來,交付或者上線,在實際場景中去修改彌補(bǔ)需求中的不足,快速修改,再次發(fā)布版本。再次上線或者交付。通過一些敏捷實踐方式,細(xì)化story,可以提供更小的迭代。如此循環(huán),直到用戶(客戶)滿意。適用于需求不明確的項目、創(chuàng)新性的項目或者需要搶占市場的項目。

瀑布式開發(fā),要求明確的需求,大家按照需求一步步做好規(guī)劃,在項目運(yùn)作過程中嚴(yán)格產(chǎn)出各種文檔,按著流程一步步走下去。這種模式一般適用于需求比較明確、to B端項目

但總的來說,在現(xiàn)在管理項目過程中,并沒有嚴(yán)格的按照完全的敏捷或者完全的瀑布模式,都是各自摻雜了其他的方式。在實際項目過程中,過于強(qiáng)調(diào)模式并沒有意義,重要的是能不能預(yù)防問題的發(fā)生,在問題發(fā)生之后能不能用最小的成本解決,模式更多起一個參考作用

三.測試用例設(shè)計方法

一、等價類法

概述:

根據(jù)程序?qū)?shù)據(jù)的要求,把程序的輸入域劃分成若干個部分

區(qū)分出哪些數(shù)據(jù)是有效的,哪些數(shù)據(jù)是無效的,(有效等價類與無效等價類)

從每個部分中選取少數(shù)代表性數(shù)據(jù)作為測試用例

步驟:

劃分等價類

細(xì)化等價類 (對等價類進(jìn)行編號)

建立等價類表

編寫測試用例

要點:

?被選為測試用例的數(shù)據(jù)在測試中的作用等價于這一類中的其他值

?如果等價類中的一個測試能夠捕獲一個缺陷,那么選擇該等價類中的其他測試也能捕獲該缺陷

?如果等價類中的一個測試不能捕獲缺陷,那么選擇該類中的其他測試也不會捕獲到缺陷

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

二、邊界值法

概述:

找到測試數(shù)據(jù)的邊界點,也就是有效等價類和無效等價類的邊界點

對邊界點數(shù)據(jù)專門進(jìn)行測試

步驟:

找到測試數(shù)據(jù)的邊界點, 分析出上點、離點、內(nèi)點

根據(jù)上點、離點、內(nèi)點寫出測試用例

要點:

?如果輸入條件規(guī)定了值的范圍,則應(yīng)取邊界點數(shù)據(jù),以及邊界點兩邊的數(shù)據(jù)進(jìn)行測試

如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)及其兩邊的點、最小個數(shù)及其兩邊的點作為測試數(shù)據(jù)

根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則

根據(jù)規(guī)格說明的每個輸出條件,應(yīng)用前面的原則

如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

三、因果圖法

概述:

在一個模塊或一個界面中,有多個控件,這些控件存在約束關(guān)系或組合關(guān)系,且輸出依賴于輸入條件,則可以使用因果圖法

步驟:

找出所有的輸入條件

找出所有的輸出條件

明確所有輸入條件之間的制約關(guān)系以及組合關(guān)系

明確所有輸出條件之間的制約關(guān)系以及組合關(guān)系

找出怎么樣的輸入條件組合會產(chǎn)生那種輸出結(jié)果

根據(jù)因果圖寫出判定表

根據(jù)判定表寫出測試用例

要點:

恒等、或(V)、與(∧)、非(~)、互斥(E)、包含(I)、唯一(O)、要求(R)、屏蔽(M)

因果圖法主要考慮控件之間條件的組合關(guān)系

每個控件的條件不宜過多,最好為2個

控件較多,或每個控件的條件過多,不宜用因果圖法

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

四、判定表法

概述:

判斷表主要側(cè)重輸入條件之間的邏輯關(guān)系(畫因果圖只是一個輔助工具,通過分析最終得到判定表,再通過判定表編寫測試用例)

步驟:

找出所有的輸入條件

找出所有的輸出條件

明確所有輸入條件之間的制約關(guān)系以及組合關(guān)系

明確所有輸出條件之間的制約關(guān)系以及組合關(guān)系

找出怎么樣的輸入條件組合會產(chǎn)生那種輸出結(jié)果

根據(jù)因果圖寫出判定表

根據(jù)判定表寫出測試用例

要點:

?判定表的組成:

適合使用判定表設(shè)計測試用例的條件:

規(guī)格說明以判定表的形式給出,或很容易轉(zhuǎn)換成判定表

條件的排列順序不影響執(zhí)行哪些操作

?規(guī)則的排列順序不影響執(zhí)行哪些操作

當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則

如果某一規(guī)則要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

五、正交法

概述:

能夠使用最小的測試過程集合獲得最大的測試覆蓋率

步驟:

根據(jù)所測程序中控件的個數(shù)以及每個控件的取值個數(shù),選取一個合適的正交排列表

?把控件以及取值列出來,并對取值進(jìn)行編號

把控件以及取值映射到正交排列表中

根據(jù)映射好的正交排列表編寫測試用例

要點:

一、 n階拉丁方:

  用n個不同的拉丁字母排成一個n階方陣, 每個字母在任一行、任一列中只出現(xiàn)一次

二、 正交拉丁方:

  設(shè)有兩個n階的拉丁方,如果將它們疊合在一起,恰好出n2個不同的有序數(shù)對

三、 正交表是一種特制的表,記為:

m是每個控件包含的取值個數(shù)

K表示控件的個數(shù)

n是表的行數(shù), n=k*(m-1)+1

n=k1*(m1-1)+k2*(m2-1)+…kx*(mx-1)+1

?L為正交表的代號

Ln(m1^k1 m2^k2...mx^kx)

正交排列法的局限性:

基本都要求每個控件中取值的個數(shù)要相等,這在實際軟件中很少遇到

正交表的性質(zhì):

每一列中,不同的數(shù)字出現(xiàn)的次數(shù)相等

任意兩列中數(shù)字的排列方式齊全而且均衡

即:

正交表的兩大優(yōu)越性,“均勻分散性,整齊可比性”

通俗的說,每個因素的每個水平與另一個因素各水平各碰一次,這就是正交性

種類:

各列水平數(shù)均相同的正交表

混合水平正交表

例:L8(4*24)——一個控件有4個屬性,4個控件有2個屬性

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

六.場景法

概述:

場景法就是模擬用戶操作軟件時的場景,主要用于測試系統(tǒng)的業(yè)務(wù)流程

在冒煙測試時也主要采用場景法進(jìn)行測試

步驟:

根據(jù)說明,描述出程序的基本流及各項備選流

根據(jù)基本流和各項備選流生成不同的場景

對每一個場景生成相應(yīng)的測試用例

要點:

一、 基本流:

按照正確的業(yè)務(wù)流程來實現(xiàn)的一條操作路徑(模擬正確的操作流程)

二、 備選流 :

導(dǎo)致程序出現(xiàn)錯誤的操作流程(模擬錯誤的操作流程)

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

七.大綱法

概述:

在一個程序或程序的某個模塊中,涉及到多個窗口,每個窗口中能夠完成多個動作

這些窗口又相互聯(lián)系, 為了弄清窗口和窗口之間的關(guān)系,或者說動 作和動作之間的關(guān)系,可以使用測試大綱方法

步驟:

找出所有的窗口以及每個窗口的輸入動作

找到各個窗口之間的聯(lián)系,并據(jù)此編寫測試用例

要點: (綜合策略)

為了測試程序的業(yè)務(wù)邏輯、業(yè)務(wù)流程、主要功能的正確性,錯誤處理能力,使用場景法設(shè)計測試用例

需要輸入數(shù)據(jù)的地方,進(jìn)行等價類劃分,包括輸入條件和輸出條件的等價劃分

使用邊界值分析方法補(bǔ)充用例

可以用錯誤推測法追加一些測試用例

對照程序邏輯,檢查已設(shè)計出的測試用例的邏輯覆蓋程度,如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn)或發(fā)現(xiàn)還有遺漏,應(yīng)該再補(bǔ)充足夠的測試用例

如果程序的功能說明中含有輸入條件和輸出條件的組合情況, 則一開始就可選用因果圖法或判定表方法

對于參數(shù)配置類的軟件,要考慮各個參數(shù)之間的組合情況,使用正交排列法

為了更真實模擬用戶的操作流程、順序,可以使用狀態(tài)轉(zhuǎn)換圖方法設(shè)計測試用例

如果程序的模塊有多個窗口,并有相關(guān)聯(lián)的操作,可以使用測試大綱方法設(shè)計測試用例

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

八、狀態(tài)轉(zhuǎn)換圖法

概念:

找出軟件所有的狀態(tài)以及導(dǎo)致這些狀態(tài)發(fā)生變化的所有輸入動作

進(jìn)而用圖形的方法把相關(guān)聯(lián)的輸入動作和狀態(tài)聯(lián)系在一起,真實模擬用戶的操作順序流程

步驟:

找出程序的所有輸入動作,并進(jìn)行編號

找出程序的所有狀態(tài)

找出什么動作會導(dǎo)致什么狀態(tài)發(fā)生,畫出狀態(tài)轉(zhuǎn)換圖

把相關(guān)聯(lián)的動作和狀態(tài)聯(lián)系起來,設(shè)計測試用例

要點:

兩個重要的概念::(核心)

軟件的狀態(tài)

輸入的動作

狀態(tài)轉(zhuǎn)換圖法小結(jié):

每種狀態(tài)至少訪問一次 【無論用什么方法,每一種狀態(tài)都必須測試】

測試看起來最常見最普遍的狀態(tài)轉(zhuǎn)換 【根據(jù)產(chǎn)品說明書,通過與客戶、開發(fā)人員溝通,了解哪些操作更常用、更重要】

?測試狀態(tài)之間最不常用的分支 【這些分支是最容易被產(chǎn)品設(shè)計者和程序員忽視的】

測試所有錯誤狀態(tài)及其返回值 【錯誤沒有得到正確處理、錯誤提示信息不正確等情況是常有的】

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

九、綜合策略

為了測試軟件的業(yè)務(wù)流程,業(yè)務(wù)邏輯,基本功能的正確性,錯誤處理能力,采用場景法編寫用例

需要輸入數(shù)據(jù)的地方,進(jìn)行等價類劃分,包括輸入條件和輸出條件的等價劃分

使用邊界值分析方法補(bǔ)充測試用例

可以用錯誤分析法追加測試用例

對照程序的邏輯,檢查測試用例的邏輯覆蓋程度,如果沒有達(dá)到覆蓋標(biāo)準(zhǔn)或發(fā)現(xiàn)有遺漏,則要補(bǔ)齊用例

如果軟件的功能說明里有輸入條件和輸出條件的組合情況,一開始就考慮用因果圖和判定表方法

對于有參數(shù)配置的軟件,要考慮各個參數(shù)的組合情況,則可以用正交排列表法來設(shè)計測試用例

為了模擬用戶的操作流程,順序,則可以用狀態(tài)轉(zhuǎn)換圖法設(shè)計測試用例

如果一個軟件或一個界面里有多個窗口,每個窗口可以完成多步動作,且每個窗口之間存在聯(lián)系,可以采用大綱法來設(shè)計用例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.軟件測試級別? 單元測試:單元測試是對軟件組成單元進(jìn)行測試。其目的是檢驗軟件基本組成單位的正確性。測試的對象是...
    聽聞白依閱讀 1,636評論 0 9
  • 問:給你一個網(wǎng)站,你如何測試? 首先,查找需求說明、網(wǎng)站設(shè)計等相關(guān)文檔,分析測試需求。 制定測試計劃,確定測試范圍...
    IT技術(shù)宅男閱讀 872評論 0 6
  • 48、測試工具在測試工作中是什么地位? 國內(nèi)的很多測試工程師對測試工具相當(dāng)迷戀,尤其是一些新手,甚至期望測試工具可...
    暮秋moco閱讀 222評論 0 0
  • 一 測試用例(Test Case) 測試用例(Test Case)是指對一項特定的軟件產(chǎn)品進(jìn)行測試任務(wù)的描述,體現(xiàn)...
    IT_Bears閱讀 2,028評論 0 0
  • 漸變的面目拼圖要我怎么拼? 我是疲乏了還是投降了? 不是不允許自己墜落, 我沒有滴水不進(jìn)的保護(hù)膜。 就是害怕變得面...
    悶熱當(dāng)乘涼閱讀 4,502評論 0 13

友情鏈接更多精彩內(nèi)容