教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

軟件測試常見面試題

更新時(shí)間:2019年04月22日09時(shí)49分 來源:軟件測試培訓(xùn) 瀏覽次數(shù):

  面試給公司和應(yīng)聘者提供了進(jìn)行雙向交流的機(jī)會(huì),能使公司和應(yīng)聘者之間相互了解,從而雙方都可更準(zhǔn)確做出聘用與否、受聘與否的決定。而近些年來的軟件測試面試題著實(shí)讓不少面試的同學(xué)犯了難。那么今天傳智播客整理了一些關(guān)于軟件測試常見的面試題以及答案,希望能幫助到大家。

軟件測試

  1、您認(rèn)為做好測試用例設(shè)計(jì)工作的關(guān)鍵是什么?

  白盒測試用例設(shè)計(jì)的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果   黑盒法用例設(shè)計(jì)的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時(shí)間內(nèi)發(fā)現(xiàn)最多的問題

  2、問:一臺(tái)客戶端有三百個(gè)客戶與三百個(gè)客戶端有三百個(gè)客戶對(duì)服務(wù)器施壓,有什么區(qū)別?

  300個(gè)用戶在一個(gè)客戶端上,會(huì)占用客戶機(jī)更多的資源,而影響測試的結(jié)果。線程之間可能發(fā)生干擾,而產(chǎn)生一些異常。

  300個(gè)用戶在一個(gè)客戶端上,需要更大的帶寬。

  IP地址的問題,可能需要使用IP Spoof來繞過服務(wù)器對(duì)于單一IP地址最大連接數(shù)的限制。

  所有用戶在一個(gè)客戶端上,不必考慮分布式管理的問題;而用戶分布在不同的客戶端上,需要考慮使用控制器來整體調(diào)配不同客戶機(jī)上的用戶。同時(shí),還需要給予相應(yīng)的權(quán)限配置和防火墻設(shè)置。

  3、軟件配置管理的作用?軟件配置包括什么?

  軟件配置管理(Software Configuration Management,SCM)是一種標(biāo)識(shí)、組織和控制修改的技術(shù)。軟件配置管理應(yīng)用于整個(gè)軟件工程過程。在軟件建立時(shí)變更是不可避免的,而變更加劇了項(xiàng)目中軟件開發(fā)者之間的混亂。SCM活動(dòng)的目標(biāo)就是為了標(biāo)識(shí)變更、控制變更、確保變更正確實(shí)現(xiàn)并向其他有關(guān)人員報(bào)告變更。從某種角度講,SCM是一種標(biāo)識(shí)、組織和控制修改的技術(shù),目的是使錯(cuò)誤降為最小并最有效地提高生產(chǎn)效率。

  軟件配置包括如下內(nèi)容:配置項(xiàng)識(shí)別、工作空間管理、版本控制、變更控制、狀態(tài)報(bào)告、配置審計(jì)

  4、目前主要的測試用例設(shè)計(jì)方法是什么?

  白盒測試:邏輯覆蓋、循環(huán)覆蓋、基本路徑覆蓋

  黑盒測試:邊界值分析法、等價(jià)類劃分、錯(cuò)誤猜測法、因果圖法、狀態(tài)圖法、測試大綱法、隨機(jī)測試、場景法

  5、什么是測試用例 什么是測試腳本 兩者的關(guān)系是什么?

  為實(shí)施測試而向被測試系統(tǒng)提供的輸入數(shù)據(jù)、操作或各種環(huán)境設(shè)置以及期望結(jié)果的一個(gè)特定的集合。

  測試腳本是為了進(jìn)行自動(dòng)化測試而編寫的腳本。

  測試腳本的編寫必須對(duì)應(yīng)相應(yīng)的測試用例

  6、簡述什么是靜態(tài)測試、動(dòng)態(tài)測試、黑盒測試、白盒測試、α測試 β測試

  靜態(tài)測試是不運(yùn)行程序本身而尋找程序代碼中可能存在的錯(cuò)誤或評(píng)估程序代碼的過程。

  動(dòng)態(tài)測試是實(shí)際運(yùn)行被測程序,輸入相應(yīng)的測試實(shí)例,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異,判定執(zhí)行結(jié)果是否符合要求,從而檢驗(yàn)程序的正確性、可靠性和有效性,并分析系統(tǒng)運(yùn)行效率和健壯性等性能。

  黑盒測試一般用來確認(rèn)軟件功能的正確性和可操作性,目的是檢測軟件的各個(gè)功能是否能得以實(shí)現(xiàn),把被測試的程序當(dāng)作一個(gè)黑盒,不考慮其內(nèi)部結(jié)構(gòu),在知道該程序的輸入和輸出之間的關(guān)系或程序功能的情況下,依靠軟件規(guī)格說明書來確定測試用例和推斷測試結(jié)果的正確性。

  白盒測試根據(jù)軟件內(nèi)部的邏輯結(jié)構(gòu)分析來進(jìn)行測試,是基于代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發(fā)工具中的單步調(diào)試來判斷軟件的質(zhì)量,一般黑盒測試由項(xiàng)目經(jīng)理在程序員開發(fā)中來實(shí)現(xiàn)。

  α測試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的受控測試,Alpha測試不能由程序員或測試員完成。

  β測試是軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測試。開發(fā)者通常不在測試現(xiàn)場,Beta測試不能由程序員或測試員完成。

  7、軟件測試分為幾個(gè)階段 各階段的測試策略和要求是什么?

  和開發(fā)過程相對(duì)應(yīng),軟件測試過程會(huì)依次經(jīng)歷單元測試、集成測試、系統(tǒng)測試、驗(yàn)收測試四個(gè)主要階段:

  單元測試:單元測試是針對(duì)軟件設(shè)計(jì)的最小單位––程序模塊甚至代碼段進(jìn)行正確性檢驗(yàn)的測試工作,通常由開發(fā)人員進(jìn)行。

  集成測試:集成測試是將模塊按照設(shè)計(jì)要求組裝起來進(jìn)行測試,主要目的是發(fā)現(xiàn)與接口有關(guān)的問題。由于在產(chǎn)品提交到測試部門前,產(chǎn)品開發(fā)小組都要進(jìn)行聯(lián)合調(diào)試,因此在大部分企業(yè)中集成測試是由開發(fā)人員來完成的。

  系統(tǒng)測試:系統(tǒng)測試是在集成測試通過后進(jìn)行的,目的是充分運(yùn)行系統(tǒng),驗(yàn)證各子系統(tǒng)是否都能正常工作并完成設(shè)計(jì)的要求。它主要由測試部門進(jìn)行,是測試部門最大最重要的一個(gè)測試,對(duì)產(chǎn)品的質(zhì)量有重大的影響。

  驗(yàn)收測試:驗(yàn)收測試以需求階段的《需求規(guī)格說明書》為驗(yàn)收標(biāo)準(zhǔn),測試時(shí)要求模擬實(shí)際用戶的運(yùn)行環(huán)境。對(duì)于實(shí)際項(xiàng)目可以和客戶共同進(jìn)行,對(duì)于產(chǎn)品來說就是最后一次的系統(tǒng)測試。測試內(nèi)容為對(duì)功能模塊的全面測試,尤其要進(jìn)行文檔測試。

  單元測試測試策略:

  自頂向下的單元測試策略:比孤立單元測試的成本高很多,不是單元測試的一個(gè)好的選擇。

  自底向上的單元測試策略:比較合理的單元測試策略,但測試周期較長。

  孤立單元測試策略:最好的單元測試策略。

  集成測試的測試策略:

  大爆炸集成:適應(yīng)于一個(gè)維護(hù)型項(xiàng)目或被測試系統(tǒng)較小

  自頂向下集成:適應(yīng)于產(chǎn)品控制結(jié)構(gòu)比較清晰和穩(wěn)定;高層接口變化較小;底層接口未定義或經(jīng)??赡鼙恍薷?產(chǎn)口控制組件具有較大的技術(shù)風(fēng)險(xiǎn),需要盡早被驗(yàn)證;希望盡早能看到產(chǎn)品的系統(tǒng)功能行為。

  自底向上集成:適應(yīng)于底層接口比較穩(wěn)定;高層接口變化比較頻繁;底層組件較早被完成。

  基于進(jìn)度的集成

  優(yōu)點(diǎn):具有較高的并行度;能夠有效縮短項(xiàng)目的開發(fā)進(jìn)度。

  缺點(diǎn):樁和驅(qū)動(dòng)工作量較大;有些接口測試不充分;有些測試重復(fù)和浪費(fèi)。

  系統(tǒng)測試的測試策略:

  數(shù)據(jù)和數(shù)據(jù)庫完整性測試;功能測試;用戶界面測試;性能評(píng)測;負(fù)載測試;強(qiáng)度測試;容量測試;安全性和訪問控制測試;故障轉(zhuǎn)移和恢復(fù)測試;配置測試;安裝測試;加密測試;可用性測試;版本驗(yàn)證測試;文檔測試

  8、軟件測試各個(gè)階段通常完成什么工作?各個(gè)階段的結(jié)果文件是什么?包括什么內(nèi)容?

  單元測試階段:各獨(dú)立單元模塊在與系統(tǒng)地其他部分相隔離的情況下進(jìn)行測試,單元測試針對(duì)每一個(gè)程序模塊進(jìn)行正確性校驗(yàn),檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。生成單元測試報(bào)告,提交缺陷報(bào)告。

  集成測試階段:集成測試是在單元測試的基礎(chǔ)上,測試在將所有的軟件單元按照概要設(shè)計(jì)規(guī)格說明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達(dá)到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求的活動(dòng)。該階段生成集成測試報(bào)告,提交缺陷報(bào)告。

  系統(tǒng)測試階段:將通過確認(rèn)測試的軟件,作為整個(gè)給予計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行全面的功能覆蓋。該階段需要提交測試總結(jié)和缺陷報(bào)告。

  9、黑盒測試和白盒測試是軟件測試的兩種基本方法,請(qǐng)分別說明各自的優(yōu)點(diǎn)和缺點(diǎn)!

  黑盒測試的優(yōu)點(diǎn)有:比較簡單,不需要了解程序內(nèi)部的代碼及實(shí)現(xiàn);與軟件的內(nèi)部實(shí)現(xiàn)無關(guān); 從用戶角度出發(fā),能很容易的知道用戶會(huì)用到哪些功能,會(huì)遇到哪些問題;基于軟件開發(fā)文檔,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能;在做軟件自動(dòng)化測試時(shí)較為方便。

  黑盒測試的缺點(diǎn)有:不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30%;自動(dòng)化測試的復(fù)用性較低。

  白盒測試的優(yōu)點(diǎn)有:幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質(zhì)量,發(fā)現(xiàn)代碼中隱 藏的問題。

  白盒測試的缺點(diǎn)有:程序運(yùn)行會(huì)有很多不同的路徑,不可能測試所有的運(yùn)行路徑;測試基于代碼,只能測試開發(fā)人員做的對(duì)不對(duì),而不能知道設(shè)計(jì)的正確與否,可能會(huì)漏掉一些功能需求;系統(tǒng)龐大時(shí),測試開銷會(huì)非常大。

  10、如何測試一個(gè)紙杯?

  功能度:用水杯裝水看漏不漏;水能不能被喝到

  安全性:杯子有沒有毒或細(xì)菌

  可靠性:杯子從不同高度落下的損壞程度

  可移植性:杯子在不同的地方、溫度等環(huán)境下是否都可以正常使用

  兼容性:杯子是否能夠容納果汁、白水、酒精、汽油等

  易用性:杯子是否燙手、是否有防滑措施、是否方便飲用

  用戶文檔:使用手冊(cè)是否對(duì)杯子的用法、限制、使用條件等有詳細(xì)描述

  疲勞測試:將杯子盛上水(案例一)放24小時(shí)檢查泄漏時(shí)間和情況;盛上汽油(案例二)放24小時(shí)檢查泄漏時(shí)間和情況等

  壓力測試:用根針并在針上面不斷加重量,看壓強(qiáng)多大時(shí)會(huì)穿透

  11、你自認(rèn)為測試的優(yōu)勢在哪里?

  該面試也沒有固定不變的答案,但可參考以下幾點(diǎn),并結(jié)合自身特點(diǎn):

  有韌性、有耐心、做事有條理性、喜歡面對(duì)挑戰(zhàn)、有信心做好每一件事情、較強(qiáng)的溝通能力、從以前的經(jīng)理處都得到了很好的評(píng)價(jià)表明我做的很好

  傳智播客軟件測試課程全面覆蓋中高端技能清晰的學(xué)習(xí)路線,可以幫助學(xué)員開啟軟件測試學(xué)習(xí)之旅。

  軟件測試課程:基礎(chǔ)部分包括前置基礎(chǔ)(DOS命令、HTML、CSS等)、Linux和數(shù)據(jù)庫(操作系統(tǒng)、MySQL高級(jí)、Redis數(shù)據(jù)庫等)、功能測試(測試用例設(shè)計(jì)、Web項(xiàng)目、APP項(xiàng)目測試等);中級(jí)部分包括Python編程(Python開發(fā)環(huán)境、面向?qū)ο?、異常處理?、Web自動(dòng)化(Web自動(dòng)化入門/基礎(chǔ)/高級(jí)、Unittest框架等)、移動(dòng)自動(dòng)化(Appium、常用API、Pytest等);高級(jí)部分包括接口自動(dòng)化(JMeter、requests、mock等)、性能測試(測試方案、Vugen、Analysis等)、單元測試和shell編程(測試流程、測試報(bào)告、shell等)。更多的關(guān)于傳智播客軟件測試培訓(xùn)課程歡迎隨時(shí)咨詢網(wǎng)頁右下角咨詢窗口。

0 分享到:
和我們?cè)诰€交談!