常見的測試面試題總結

1.   α測試測試與β測試的區別java

首先alpha測試和beta都屬於驗收測試,這兩種測試都須要用戶參加,且都不能由程序員和測試員執行。廣義上來說, α測試是「內測」, β測試是「公測」程序員

alpha測試是用戶在開發環境或者是公司內部模擬實際操做環境的測試面試

α測試的特色是
  一、它是在開發環境下進行的(不對外發布)
  二、它不須要測試用例評價軟件使用質量
  三、用戶每每沒有相關經驗,能夠是兼職人員,開發者或測試者坐用戶旁邊
  四、目的主要評價軟件產品的功能、局域化、可用性、可靠性、性能等服務器

Beta測試是真實用戶在實際操做環境下進行的測試。    並且順序不能錯,必須先進行Alpha測試再進行Beta測試;先α測試後β測試網絡

Alpha測試的環境是受開發方控制的,用戶的數量相對比較少,時間比較集中。數據結構

而beta測試的環境是不受開發方控制的,誰也不知道用戶如何折磨軟件,用戶數量相對比較多,時間不集中。架構

對於軟件產品來講,在系統測試後,纔有α測試β測試,並且通用的軟件產品須要較大規模的beta測試,測試周期比較長。若是產品經過了beta測試,那麼就能夠正式發行了。併發

 

若是還不可以理解明白,就類比一款叫作《王者榮耀》的遊戲,有體驗服(內測玩家)、正式服(大衆的廣泛玩家)。工具

 2.  單元測試有哪些內容?自頂向下和自底向上有什麼區別?性能

單元測試的內容包括:接口測試、

          局部數據結構測試、

          邊界條件測試、

          獨立執行路徑測試、

          內部錯誤處理測試

自頂向下的單元測試:先對最頂層的基本單元進行測試,把全部調用的單元作成樁模塊;而後再對第二層的基本單元進行測試,使用上面以前已測試的單元作驅動模塊,以此類推直到測試完全部的基本單元。

          優勢:不須要開發驅動模塊;

          缺點:測試過程愈來愈複雜,開發和維護成本增長;不是單元測試的一個好的選擇 

自底向上的單元測試:先對最底層的基本單元進行測試,模擬 調用該單元  的單元作驅動模塊;而後再對上一層進行測試,用下面以前已測試的單元作樁模塊,以此類推直到測試完全部的單元。

          優勢:不須要開發樁模塊;

          缺點:測試過程愈來愈複雜,測試周期較冗長;

 

 

 3.  增量式集成測試有過了解嗎?與非增量式集成測試有什麼區別?

 增量式集成的策略有不少種,主要有如下三種:①自頂向下集成,②自底向上集成,③三明治集成

       該策略最大的特色就是:支持故障隔離、定位問題

非增量式集成測試策略也叫作大爆炸集成、一次性集成,即在最短的時間內把全部的系統組件一次性集成到被測系統中,並經過最少的用例來驗證整個系統,不考慮各組件之間的相互依賴性或者可能存在的風險

       該策略最大的特色就是:問題定位和修改都比較困難,適用於維護型的項目,而且新增的項目只有少數的模塊被增長或修改;或者適用於測試系統比較小,而且各個組件都通過了充分的單元測試。

 

 4.  白盒測試的邏輯覆蓋類型有哪些?能由弱到強排個序嗎?

         由弱到強依次排序: 語句覆蓋、斷定覆蓋、條件覆蓋、斷定/條件覆蓋、條件組合覆蓋
    拓展1:還有,有時面試官或者筆試題上會問你    路徑測試的環、節點的計算準備設計多少個測試用例?還有一種問法就是問圈複雜度,這是同一個意思,如何回答?
          對於考查基本路徑法須要覆蓋幾條,有如下兩種方法
            一直接畫出一個樹同樣的分支圖,有幾條分支就有幾條路徑
                                           二直接套公式:基本路徑=謂詞節點+1     謂詞節點是指條件語句,好比while、if 、break等
    拓展2:顆粒度與測試的關係,有沒有什麼順序關係?
                           粒度從小到大順序:單元->集成->系統->驗收  (驗收測試粒度最大)

 5.  在性能測試中,壓力測試、負載測試、 穩定性測試能講講它們的區別嗎?

  1.壓力測試:壓力測試(又叫強度測試),它在系統資源特別低的狀況下軟件系統運行狀況,目的是找到系統在哪裏失效以及如何失效的地方。
        目的是測試軟件的瓶頸和極限,一般會出現一個閾值、峯值等數據(重點在閾值、峯值)
       2.負載測試:指數據在超負荷環境中運行,程序是否可以承擔,可以堅持多久,通常會出現一個可堅持的時間(重點在時間)
  3.穩定性測試:是指被測試系統在特定硬件、軟件、網絡環境條件下,給系統加載必定業務壓力,使系統運行一段較長時間,以此檢測系統是否穩定,
         通常穩定性測試時間爲 n*12 小時

 6.  聽過軟件調試技術嗎?有哪些呢,列舉一下?LoadRunner用過嗎,有哪幾部分?

    試探法(強行排錯法),
    回溯法:人工沿着程序的控制流程往跟蹤代碼,直到找出錯誤根源爲止
    對分查找法:縮小錯誤的範圍,
    概括演繹
    緣由排除法
LoadRunner經過以模擬上千萬用戶實施併發負載及實時性能監測的方式來確認和查找問題, 可適用於各類體系架構的自動負載測試,能預測系統行爲並評估系統性能
    包括三部分: 腳本編輯工具 、測試執行工具 、結果分析工具
      首先能夠新建場景,編寫不一樣的測試腳本,我在上一家公司是用java語言編寫過測試腳本;
      編寫完成以後,就能夠執行測試了;
      測試結束以後,就能夠生成各類圖表,進行結果分析。

 7.  若是說咱們公司開發了一款手機APP應用,那麼,屬於界面元素測試內容有哪些?對手機軟件的壓力測試有哪些?

    窗口測試、菜單測試、文字測試、圖標測試、鼠標測試

               存儲壓力、響應能力壓力、網絡流量壓力、邊界壓力

  拓展:再提一個問題,併發壓力算不算壓力測試呢?

    否,由於併發壓力是針對服務器的,由於每次併發是一個客戶端,併發壓力只發生在多用戶操做的狀況下,由於手機自己是對應一個用戶操做,並不存在併發壓力的可能

8.  確認測試、冒煙測試、迴歸測試的區別?

  1. 確認測試:也叫有效性測試,有的也叫合格性測試,主要指針對軟件系統 /軟件子系統的測試。通常來講,有種比較約定俗成的順序:UT--IT--VT--ST。
        但實際上並不是絕對如此, 嚴格的說,確認測試在某種狀況下就屬於集成測試,但在某種狀況下就屬於系統測試。如何理解?
        好比:①當你的被測系統由軟件子系統、硬件子系統等一些子系統組成的時候,這個時候針對這個被測系統中的軟件子系統的測試就屬於集成測試中的「系統內集成(子系統間集成)」,
           因爲確認測試自己就是測純軟件子系統的,因此在這個時候確認測試自己就屬於集成測試階段中的子系統集成測試了
           ②而當你的被測系統自己就是一個純軟件系統時,這個時候針對這個系統的測試就變成了系統測試了,因此在這個時候確認測試又變成了系統測試階段的活動了
         主要看你所測的是獨立的純軟件系統(系統測試)仍是軟件系統中的子系統(集成測試),能夠這樣去理解
 
       2. 冒煙測試只是一個測試活動,並非一個測試階段。也就是說,冒煙測試貫穿於測試的任何一個階段,單元測試裏會有冒煙測試、集成測試裏會有冒煙測試、系統測試裏也會有冒煙測試。
        冒煙測試和其餘全部的測試活動的目的不同,它不是爲了證實程序存在BUG, 而是爲了證實程序的基本功能、核心功能沒有問題
        冒煙測試通常是由程序員來執行;冒煙測試帶有必定的隨機性,它不須要去設計正式的測試用例,這個活動在開發部門內開展;
 
  3. 迴歸測試:是指修改了舊代碼後,從新進行測試以確認修改沒有引入新的錯誤或致使其餘代碼產生錯誤。 嚴格來講,迴歸測試不是一個測試階段,只是一種測試技術
        一種用於這種各個測試過程(UT、IT、ST、UAT)的測試技術。在理想的測試環境中、程序每改變一次,測試人員都要從新執行迴歸測試。
        所以,經過選擇正確的迴歸測試策略來改進迴歸測試的效率和有效性是很是有意義的。
相關文章
相關標籤/搜索