- 相關(guān)推薦
應(yīng)屆生軟件測試面試題
問題一:為什么要在一個團(tuán)隊中開展軟件測試工作?
任何軟件在開發(fā)過程中都會留下缺陷,帶有缺陷的軟件產(chǎn)品如果提交出去,可能會給公司帶來不可估量的損失,我們必須在客戶之前發(fā)現(xiàn)盡可能多的問題,從而保障客戶滿意。而發(fā)現(xiàn)問題的這個過程稱之為測試。
問題二:簡述你在以前的工作中做過哪些事情,比較熟悉什么?
此問題每個人都不一樣。我自己的答案如下。
我主要的工作是系統(tǒng)測試和自動化測試,也曾少量涉及性能測試。在系統(tǒng)測試中,主要是對BOSS系統(tǒng)的業(yè)務(wù)邏輯功能,以及軟交換系統(tǒng)的Class 5特性進(jìn)行測試。性能測試中,主要是進(jìn)行的壓力測試,在各個不同數(shù)量請求的情況下,獲取系統(tǒng)響應(yīng)時間以及系統(tǒng)資源消耗情況。自動化測試主要是通過自己寫腳本以及一些第三方工具的結(jié)合來測試軟交換的特性測試。
問題三:你所了解的的軟件測試類型都有哪些,簡單介紹一下
1.基本功能驗證
主要是對發(fā)布的版本進(jìn)行一些最主要功能的測試。英文常見叫法是Smoking Test, Basic Verification Test或者Sanity Check。
2.功能測試
主要是依據(jù)需求或者需求分析文檔,對所發(fā)布的版本進(jìn)行測試,看看是否滿足需求,是否出現(xiàn)了不必要的功能。
3.單元測試
是開發(fā)人員進(jìn)行的測試之一,一般是開發(fā)人員對很小的模塊,比如函數(shù)進(jìn)行測試,一般來說,開發(fā)人員還需要開發(fā)相應(yīng)的測試樁來進(jìn)行此類測試。
4.集成測試
在大型的開發(fā)過程中,軟件是模塊化進(jìn)行開發(fā)的,將不同的模塊揉合在一起的話,需要進(jìn)行的測試就是集成測試。
5.系統(tǒng)測試
當(dāng)軟件提交給測試組后,是對整個系統(tǒng)的所有功能進(jìn)行測試,一般來說,功能測試是系統(tǒng)測試的一個部分。
6.壓力測試
主要是在很大性能的情況下,這個性能已經(jīng)接近了系統(tǒng)的極限,看看系統(tǒng)運轉(zhuǎn)的情況。
7.負(fù)載測試
主要是用各種不同的性能去檢測系統(tǒng),采集各個數(shù)據(jù)在這些性能情況下的數(shù)據(jù)。
8.黑盒測試
指系統(tǒng)對你來說是完全不透明的,只給你留下了輸入和最終輸出,這個是功能測試的方法之一。
9.灰盒測試
指在了解部分系統(tǒng)內(nèi)部工作機(jī)制的情況下,對于系統(tǒng)進(jìn)行的覆蓋性測試。
10.白盒測試
主要是在單元測試和集成測試的情況下,開發(fā)人員已知代碼,對這一段的代碼進(jìn)行全路徑的覆蓋測試。
11.界面測試
主要是看用戶界面的友好性和易用性,是否有文字或者排版錯誤,是否有輸入限制等等。
12.回歸測試
一般是系統(tǒng)發(fā)現(xiàn)bug,開發(fā)人員修改后,和BUG直接相關(guān)以及可能相關(guān)的功能進(jìn)行的測試。
13.安裝和卸載的測試
14.恢復(fù)測試
主要是一個系統(tǒng)在發(fā)生了災(zāi)難的情況下,從錯誤中是否容易恢復(fù)。
15.兼容性測試
一個系統(tǒng)在不同的語言,操作系統(tǒng)下的系統(tǒng)測試。
16.安全測試
系統(tǒng)在遇到攻擊或者類似情況下的表現(xiàn)。
17.Alpha測試
系統(tǒng)在給最終用戶前,測試人員在實驗室中模擬最終用戶的測試。
18.Beta測試。
由部分最終用戶通過使用來進(jìn)行的測試
19.比較測試
和其他具有相同或者類似功能的系統(tǒng)進(jìn)行對比的測試。
20.驗收測試
一般是最終用戶在接受產(chǎn)品前,依據(jù)自己所提出的要求進(jìn)行的測試,很多情況下,驗收測試可能委托第三方機(jī)構(gòu)完成。
問題四:測試計劃工作的目的是什么?測試計劃文檔的內(nèi)容應(yīng)該包括什么?其中哪些是最重要的?
軟件測試計劃是指導(dǎo)測試過程的綱領(lǐng)性文件。
包含了產(chǎn)品概述、測試策略、測試方法、測試區(qū)域、測試配置、測試周期、測試資源、測試交流、風(fēng)險分析等內(nèi)容。借助軟件測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明確測試任務(wù)和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進(jìn)度,應(yīng)對測試過程中的各種變更。
測試計劃和測試詳細(xì)規(guī)格、測試用例之間是戰(zhàn)略和戰(zhàn)術(shù)的關(guān)系,測試計劃主要從宏觀上規(guī)劃測試活動的范圍、方法和資源配置,而測試詳細(xì)規(guī)格、測試用例是完成測試任務(wù)的具體戰(zhàn)術(shù)。所以其中最重要的是測試測試策略和測試方法(最好是能先評審)。
問題五:你認(rèn)為做好測試計劃工作的關(guān)鍵是什么?
1.明確測試的目標(biāo),增強(qiáng)測試計劃的實用性
編寫軟件測試計劃得重要目的就是使測試過程能夠發(fā)現(xiàn)更多的軟件缺陷,因此軟件測試計劃的價值取決于它對幫助管理測試項目,并且找出軟件潛在的缺陷。因此,軟件測試計劃中的測試范圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具并且具有較高的實用性,便于使用,生成的測試結(jié)果直觀、準(zhǔn)確
2.堅持“5W”規(guī)則,明確內(nèi)容與過程
“5W”規(guī)則指的是“What(做什么)”、“Why(為什么做)”、“When(何時做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”規(guī)則創(chuàng)建軟件測試計劃,可以幫助測試團(tuán)隊理解測試的目的(Why),明確測試的范圍和內(nèi)容(What),確定測試的開始和結(jié)束日期(When),指出測試的方法和工具(How),給出測試文檔和軟件的存放位置(Where)。
3.采用評審和更新機(jī)制,保證測試計劃滿足實際需求
測試計劃寫作完成后,如果沒有經(jīng)過評審,直接發(fā)送給測試團(tuán)隊,測試計劃內(nèi)容的可能不準(zhǔn)確或遺漏測試內(nèi)容,或者軟件需求變更引起測試范圍的增減,而測試計劃的內(nèi)容沒有及時更新,誤導(dǎo)測試執(zhí)行人員。
4.分別創(chuàng)建測試計劃與測試詳細(xì)規(guī)格、測試用例
應(yīng)把詳細(xì)的測試技術(shù)指標(biāo)包含到獨立創(chuàng)建的測試詳細(xì)規(guī)格文檔,把用于指導(dǎo)測試小組執(zhí)行測試過程的測試用例放到獨立創(chuàng)建的測試用例文檔或測試用例管理數(shù)據(jù)庫中。測試計劃和測試詳細(xì)規(guī)格、測試用例之間是戰(zhàn)略和戰(zhàn)術(shù)的關(guān)系,測試計劃主要從宏觀上規(guī)劃測試活動的范圍、方法和資源配置,而測試詳細(xì)規(guī)格、測試用例是完成測試任務(wù)的具體戰(zhàn)術(shù)。
問題六:常見的測試用例設(shè)計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設(shè)計工作中的應(yīng)用。
1. 等價類劃分
劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的.并合理地假定:測試某等價類的代表值就等于對這一類其他值的測試.因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù).取得較好的測試結(jié)果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.
2. 邊界值分析法
邊界值分析方法是對等價類劃分方法的補(bǔ)充。測試工作經(jīng)驗告訴我,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤.
使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況.通常輸入和輸出等價類的邊界,就是應(yīng)著重測試的邊界情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù).
3. 錯誤推測法
基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設(shè)計測試用例的方法.
錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等, 這些就是經(jīng)驗的總結(jié). 還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況. 輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯誤的情況. 可選擇這些情況下的例子作為測試用例.
4. 因果圖方法
前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等. 考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當(dāng)多. 因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況.
5. 正交表分析法
有時候,可能因為大量的參數(shù)的組合而引起測試用例數(shù)量上的激增,同時,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數(shù)量的測試,就可以通過正交表來進(jìn)行縮減一些用例,從而達(dá)到盡量少的用例覆蓋盡量大的范圍的可能性。
6. 場景分析方法
指根據(jù)用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執(zhí)行的深度和可行性更好。
問題七:您認(rèn)為做好測試用例設(shè)計工作的關(guān)鍵是什么?
白盒測試用例設(shè)計的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果
黑盒法用例設(shè)計的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內(nèi)發(fā)現(xiàn)最多的問題
問題八:詳細(xì)的描述一個測試活動完整的過程。
1.項目經(jīng)理通過和客戶的交流,完成需求文檔,由開發(fā)人員和測試人員共同完成需求文檔的評審,評審的內(nèi)容包括:需求描述不清楚的地方和可能有明顯沖突或者無法實現(xiàn)的功能的地方。項目經(jīng)理通過綜合開發(fā)人員,測試人員以及客戶的意見,完成項目計劃。然后SQA進(jìn)入項目,開始進(jìn)行統(tǒng)計和跟蹤
2.開發(fā)人員根據(jù)需求文檔完成需求分析文檔,測試人員進(jìn)行評審,評審的主要內(nèi)容包括是否有遺漏或者雙方理解不同的地方。測試人員完成測試計劃文檔,測試計劃包括的內(nèi)容上面有描述。
3. 測試人員根據(jù)修改好的需求分析文檔開始寫測試用例,同時開發(fā)人員完成概要設(shè)計文檔,詳細(xì)設(shè)計文檔。此兩份文檔成為測試人員撰寫測試用例的補(bǔ)充材料。
4.測試用例完成后,測試和開發(fā)需要進(jìn)行評審。
5.測試人員搭建環(huán)境
6.開發(fā)人員提交第一個版本,可能存在未完成功能,需要說明。測試人員進(jìn)行測試,發(fā)現(xiàn)BUG后提交給BugZilla。
7.開發(fā)提交第二個版本,包括Bug Fix以及增加了部分功能,測試人員進(jìn)行測試。
8.重復(fù)上面的工作,一般是3-4個版本后BUG數(shù)量減少,達(dá)到出貨的要求。
9.如果有客戶反饋的問題,需要測試人員協(xié)助重現(xiàn)以及回歸測試。