1. 求軟體測試面試問題
測試技術面試題
1、什麼是兼容性測試?兼容性測試側重哪些方面?
參考答案:
兼容測試主要是檢查軟體在不同的硬體平台、軟體平台上是否可以正常的運行,即是通常說的軟體的可移植性。
兼容的類型,如果細分的話,有平台的兼容,網路兼容,資料庫兼容,以及數據格式的兼容。
兼容測試的重點是,對兼容環境的分析。通常,是在運行軟體的環境不是很確定的情況下,才需要做兼容。根據軟體運行的需要,或者根據需求文檔,一般都能夠得出用戶會在什麼環境下使用該軟體,把這些環境整理成表單,就得出做兼容測試的兼容環境了。
兼容和配置測試的區別在於,做配置測試通常不是Clean OS下做測試,而兼容測試多是在Clean OS的環境下做的。
2、我現在有個程序,發現在Windows上運行得很慢,怎麼判別是程序存在問題還是軟硬體系統存在問題?
參考答案:
1、檢查系統是否有中毒的特徵;
2、檢查軟體/硬體的配置是否符合軟體的推薦標准;
3、確認當前的系統是否是獨立,即沒有對外提供什麼消耗CPU資源的服務;
4、如果是C/S或者B/S結構的軟體,需要檢查是不是因為與伺服器的連接有問題,或者訪問有問題造成的;
5、在系統沒有任何負載的情況下,查看性能監視器,確認應用程序對CPU/內存的訪問情況。
3、測試的策略有哪些?
參考答案:
黑盒/白盒,靜態/動態,手工/自動,冒煙測試,回歸測試,公測(Beta測試的策略)
4、正交表測試用例設計方法的特點是什麼?
參考答案:
用最少的實驗覆蓋最多的操作,測試用例設計很少,效率高,但是很復雜;
對於基本的驗證功能,以及二次集成引起的缺陷,一般都能找出來;但是更深的缺陷,更復雜的缺陷,還是無能為力的;
具體的環境下,正交表一般都很難做的。大多數,只在系統測試的時候使用此方法。
5、描述使用bugzilla缺陷管理工具對軟體缺陷(BUG)跟蹤的管理的流程?
參考答案:
就是Bugzilla的狀態轉換圖。
6、你覺得bugzilla在使用的過程中,有什麼問題?
參考答案:
界面不穩定;
根據需要配置它的不同的部分,過程很煩瑣。
流程式控制制上,安全性不好界定,很容易對他人的Bug進行誤操作;
沒有綜合的評分指標,不好確認修復的優先順序別。
7、描述測試用例設計的完整過程?
參考答案:
需求分析 + 需求變更的維護工作;
根據需求 得出測試需求;
設計測試方案,評審測試方案;
方案評審通過後,設計測試用例,再對測試用例進行評審;
8、單元測試的策略有哪些?
參考答案:
邏輯覆蓋、循環覆蓋、同行評審、桌前檢查、代碼走查、代碼評審、景泰數據流分析
9、LoadRunner分哪三部分?
參考答案:
用戶動作設計;
場景設計;
測試數據分析;
10、LoadRunner進行測試的流程?
參考答案:
1、 測試測試
2、 創建虛擬用戶腳本
3、 創建運行場景
4、 運行測試腳本
5、 監視場景
6、 分析測試的結果
以上,最好是結合一個案例,根據以上流程來介紹。
什麼是並發?在lordrunner中,如何進行並發的測試?集合點失敗了會怎麼樣?
參考答案:
在同一時間點,支持多個不同的操作。
LoadRunner中提供IP偽裝,集合點,配合虛擬用戶的設計,以及在多台電腦上設置,可以比較好的模擬真實的並發。
集合點,即是多個用戶在某個時刻,某個特定的環境下同時進行虛擬用戶的操作的。集合點失敗,則集合點的才操作就會取消,測試就不能進行。
12、使用QTP做功能測試,錄制腳本的時候,要驗證多個用戶的登錄情況/查詢情況,如何操作?
參考答案:
分析用戶登錄的基本情況,得出一組數據,通過性測試/失敗性測試的都有(根據TC來設計這些數據),然後錄制登錄的腳本,將關鍵的數據參數化,修改腳本,對代碼進行加強,調試腳本。
13、QTP中的Action有什麼作用?有幾種?
參考答案:
Action的作用
用Action可以對步驟集進行分組
步驟重組,然後被整體調用
擁有自己的sheet
組合有相同需求的步驟,整體操作
具有獨立的對象倉庫
Action的種類
可復用Action
不可復用Action
外部Action
14、TestDirector有些什麼功能,如何對軟體測試過程進行管理?
參考答案:
需求管理
定義測試范圍
定義需求樹
描述需求樹的功能點
測試計劃
定義測試目標和測試策略。
分解應用程序,建立測試計劃樹。
確定每個功能點的測試方法。
將每個功能點連接到需求上,使測試計劃覆蓋全部的測試需求。
描述手工測試的測試步驟
指明需要進行自動測試的功能點
測試執行
定義測試集合。
為每個測試人員制定測試任務和測試日程安排。
運行自動測試。
缺陷跟蹤
記錄缺陷
查看新增缺陷,並確定哪些是需要修正的
相關技術人員修改缺陷
回歸測試
分析缺陷統計圖表,分析應用程序的開發質量
2. 軟體測試面試題
第一題:我認為需要在測試前需要先寫好測試計劃,其中最重要的是本次測試使用的測試方法、使用的測試工具、測試環境。人員方面需要進行人員及進度的安排,每個測試階段後的輸出工件,還要有風險評估。在測試前將這些准備工作做到位,這樣在測試的時候就會比較有條理。
第二題:控制測試質量,我認為最好是做好測試用例的設計,這樣可以對測試的覆蓋率進行控制。
補充:如果時間充裕的話可以在設計用例後對其進行評審,這樣可以提高測試質量。不過這個在實際的工作當中一般實現不了。。。。
下面列出的是網上的一個軟測筆試題,好多單位在筆試的時候都會下來作為筆試題,我至少遇到兩次了,其他的筆試題還有,但不一一列出了。
一、判斷題(每題1分,12 分,正確的√,錯誤的╳)
1.軟體測試的目的是盡可能多的找出軟體的缺陷。()
2.Beta 測試是驗收測試的一種。()
3.驗收測試是由最終用戶來實施的。()
4.項目立項前測試人員不需要提交任何工件。()
5.單元測試能發現約80%的軟體缺陷。()
6.代碼評審是檢查源代碼是否達到模塊設計的要求。()
7.自底向上集成需要測試員編寫驅動程序。()
8.負載測試是驗證要檢驗的系統的能力最高能達到什麼程度。()
9.測試人員要堅持原則,缺陷未修復完堅決不予通過。()
10.代碼評審員一般由測試員擔任。() 1
11.我們可以人為的使得軟體不存在配置問題。()
12.集成測試計劃在需求分析階段末提交。()
二、不定項選擇題(每題2 分,10分)
1.軟體驗收測試的合格通過准則是:()
A. 軟體需求分析說明書中定義的所有功能已全部實現,性能指標全部達到要求。
B. 所有測試項沒有殘餘一級、二級和三級錯誤。
C. 立項審批表、需求分析文檔、設計文檔和編碼實現一致。
D. 驗收測試工件齊全。
2.軟體測試計劃評審會需要哪些人員參加?()
A.項目經理
B.SQA 負責人
C.配置負責人
D.測試組
3.下列關於alpha 測試的描述中正確的是:()
A.alpha 測試需要用戶代表參加
B.alpha 測試不需要用戶代表參加
C.alpha 測試是系統測試的一種
D.alpha 測試是驗收測試的一種
4.測試設計員的職責有:()
A.制定測試計劃
B.設計測試用例
C.設計測試過程、腳本
D.評估測試活動
5.軟體實施活動的進入准則是:()
A.需求工件已經被基線化
B.詳細設計工件已經被基線化
C.構架工件已經被基線化
D.項目階段成果已經被基線化
三、填空題(每空1分,24 分)
1.軟體驗收測試包括(正式驗收測試)、(非正式驗收測試和Alpha測試)、(Beta測試)三種類型。
2.系統測試的策略有功能測試、(性能測試)、(負載測試)、(壓力測試)、易用性測試、(容量測試)、(強度測試)、 (兼容性測試又稱)、(本地化測試)、(BVT測試)、(裸機測試)、(安全性測試)、()、(容錯性測試)、(恢復測試)、()等15 種方法。
3.設計系統測試計劃需要參考的項目文檔有(需求規格說明書)、()和迭代計劃。
4.對面向過程的系統採用的集成策略有()、()兩種。
5.通過畫因果圖來寫測試用例的步驟為、、、及把因果圖轉 換為狀態圖共五個步驟。
四、簡答題(共37分)
1. 階段評審與同行評審的區別。(4 分)
2 . 什麼是軟體測試。(3 分)
答:通過人工或自動化手段對系統進行測試,目的是為了驗證系統是否滿足預定功能或者是為了弄清楚實際結果與預期結果之間的差別。
3 . 簡述集成測試的過程。(5 分)
答:將通過單元測試的單元模塊按照設計要求組合起來再進行測試。重點檢查程序介面處是否有問題。
過程:首先進行集成測試的測試計劃測試設計測試開發測試用例執行測試評估,並且進行全程的缺陷跟蹤。
4 . 怎樣做好文檔測試?(4 分)
答:文檔測試要注意一下幾點:文檔的讀者群、文檔的術語、文檔的正確性、文檔的完整性、文檔的一致性、文檔的易用性、樣例與示例、文檔的語言
5. 白盒測試有那幾種方法?(6 分)
答:白盒測試方法分為:靜態測試和動態測試
靜態測試方法:①編碼標准與准則 ②走查 ③審查 ④評審
動態測試方法:①語句覆蓋 ②判定覆蓋 ③條件覆蓋 ④判定-條件覆蓋 ⑤條件組合覆蓋 ⑥路徑覆蓋
⑦條件組合+路徑覆蓋
6. 系統測試計劃是否需要同行評審,為什麼?(4 分)
答:系統測試計劃需要進行同行評審,因為如果對一個系統長時間進行測試可能會出現測試疲勞甚至出現
對系統的免疫現象,因此可以進行同行評審,減少對相同系統的疲勞測試。
7. Alpha 測試與beta 測試的區別。(4 分)
8 . 比較負載測試、容量測試和強度測試的區別。(6 分)
9 . 測試結束的標準是什麼?(3 分)
3. 軟體測試面試題:WEB+網路|介面測試|性能測試|自動化測試
1. http代碼表,常考題目
404:找不到資源
500:伺服器內部錯誤,無法完成請求。
501:伺服器不支持請求的功能,無法完成請求。
502:充當網關或代理的伺服器,從遠端伺服器接收到了一個無效的請求。
301:永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI,今後任何新的請求都應使用新的URI代替。
302:臨時移動。與301類似。但資源只是臨時被移動,客戶端應繼續使用原有URI。
200:成功。
2. TCP/IP四層網路模型
鏈路層、網路層、傳輸層、應用層。
3. TCP/UDP區別?
TCP: 可靠傳輸協議,需要三次握手連接,有確認重傳機制,特點是可靠、准確、有擁塞控制,缺點就是比較慢,傳輸量比較小,適用於升級、下載;一句話:TCP是可靠的傳輸。
UDP: 不可靠傳輸協議,面向非連接的協議,優點是傳輸量大、速度快,缺點是已丟失、沒有擁塞控制,適用於直播、視頻等。一句話:UDP是不可靠的傳輸。
4. html css js運行的先後順序是什麼?
界面載入的時候先載入html在載入css最後載入js
5. session和cookie的區別是什麼
1. session存放在伺服器端用來校驗客戶端的身份
2. cookie存放在客戶端,每次從客戶端往伺服器發請求時,將cookie帶到伺服器端,用來校驗客戶端的身份
1. 怎麼用JMeter測試介面?
如果使用JMeter進行介面測試:
1) 測試前了解需求,根據介面規格說明書梳理業務;
2) 接下來設計用例,分析介面的入參和出參,分清楚有哪些有效輸入和無效輸入,設計用例(原則:用最少的用例覆蓋所有有效輸入,針對每一個無效的輸入設計一個測試用例,如果有錯誤碼沒有覆蓋到,還要對每個未覆蓋的錯誤碼分別設計一個用例);
3) 准備測試數據,比如:測試所需的賬號、密碼、key 等信息;
4) 打開JMeter,創建一個線程組,根據介面類型,填寫好對應的介面地址和請求方式等;
5) 參數化配置,添加配置元件CSV Data Set Config,定義變數,並准備CSV格式的數據,變數的引用用${變數名}的格式;
6) 添加斷言來判斷測試結果的正確性,用得最多的是響應斷言;
7) 添加監聽器,比如查看結果樹,對測試結果進行監聽;
8) 運行測試用例;
9) 查看監聽器結果,來判斷用例的執行是成功還是失敗,針對失敗的用例,分析其失敗原因;
10) 針對測試中發現的問題,給開發提單,直到問題最終解決。
11) 最後輸出測試報告。
2. 怎麼用Postman測試介面?
如果使用Postman測試介面:
其中1,2,3點相同,工具使用方面則比JMeter跟簡單,工具的主要的步驟是添加對應的請求、填寫主機URL及入參、添加測試套、運行測試套、分析結果出報告。
3. 在JMeter上如何把上一個請求的結果作為下一個請求的參數?
使用正則表達式提取器提取上一個請求的響應中的信息,保存一個引用名稱比如abc,在下一個請求的參數中,用${abc}的格式來引用提取的結果。
常用的正則表達式格式:(.+?),其中.表示匹配任意字元串,+表示只匹配一次,?表示匹配到就停下來。
一般是我們功能測試完成最後兩三天時間測試性能。
1、先是分析需求計算出並發數,TPS,響應時間和 CPU,內存,硬碟和網路IO這些指標。
2、制定測試方案,主要包括環境,計劃和具體測試那些場景(如可靠性,並發,負載,壓力測試等)
3、根據場景用Badboy錄制腳本,導出為JMeter工具支持的腳本。
4、用JMeter工具打開腳本,進行腳本調試,加一些斷言,監聽器,參數化等。
5、接下來執行性能測試,然後主要收集監聽器和收集伺服器CPU,內存,硬碟和網路IO等分析是否滿足需求,如果滿足就輸出性能測試報告。
6、如果指標不能滿足,反饋給開發進行調優。調優後繼續測試,一直到滿足需求後最終輸出測試報告。
1. python怎麼定義一個函數?
你可以定義一個由自己想要功能的函數,以下是簡單的規則:
1) 函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括弧()。
2) 任何傳入參數和自變數必須放在圓括弧中間。圓括弧之間可以用於定義參數。
3) 函數的第一行語句可以選擇性地使用文檔字元串—用於存放函數說明。
4) 函數內容以冒號起始,並且縮進
5) return[表達式]結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回None
2 Python切片
3. Python上用過什麼庫/模塊?
webdriver:定位和操作元素
time:設置等待時間
ActionChains:動作鏈,完成滑鼠的相關操作
Keys:鍵盤的相關操作
WebDriverWait:設置顯式等待
Expect_Conditions:針對單個元素,設置顯式等待的場景
PIL:截圖
Select:下拉選擇框的操作
unittest python:自帶的單元測試框架
HTMLTestRunner:運行腳本,生成報告
ddt:實現數據驅動測試,行為和數據分離
4. 你做過自動化測試嗎?
我在上一份工作中,公司去年下半年也開始規劃做Web 自動化,採用Python作為開發語言,通過Selenium WebDriver定位和操作頁面元素,自動化框架用的是unittest。我主要負責寫測試腳本。
假設一個測試團隊有5個人:1資深(測試經理)+2~3個中級(自動化+手動)+1 個初級(手動)
5. 使用什麼工具進行的自動化測試
使用的工具是Selenium(Web自動化工具)
6. 用的什麼編程語言
用的Python
7. Selenium 用的是哪個版本的的?Python用的是哪個版本的?
用的是selenium 3.11.0和Python2.7.10
8. Selenium的工作原理?
1)對html元素定位
2)模擬對第一步定位到的元素進行點擊、輸入、選擇等操作一句話:定位元素,操作元素。
9. 元素定位方法有哪些?
要點:8種定位方法
1) 根據元素的屬性值定位,比如 id、name、class、標簽名、鏈接文字和部分鏈接文字;
2) 根據CSS選擇器定位;
3) 根據 XPath 定位;
10. 子頁面里的元素怎麼定位?
先切換到框架里,然後再定位,用switch_to_frame函數根據子頁面id或name,切換到子頁面;定位完了如果要再定位主頁面的元素,要用switch_to_default_content 函數先返回主頁面。
11. 怎麼定位alert彈窗?或者這樣問:怎麼處理JS原生窗口?
要點:主要涉及點擊彈窗確認按鈕、強行關閉彈窗、獲取彈窗中的文字等操作。
1) 點擊彈窗的確定按鈕,用如下函數:
driver.switch_to_alert().accept()
2) 強行關閉,點擊右上角的叉叉,用如下函數:
driver.switch_to_alert().dismiss()
3) 獲取彈窗里的文字,用如下函數:
driver.switch_to_alert().text
12. 怎麼運行自動化用例並生成測試報告?
以unittest為例,我通常的做法是把用例載入到測試套中,做成一個腳本,在命令窗口下運行腳本,報告的生成用第三方模塊HTML TestRunner來生成。
13. 怎麼定位/操作圖片中的驗證碼?
用tesseract OCR引擎處理圖片中的驗證碼,步驟:
(1)對整個屏幕截屏,保存成png格式的圖片;
(2)在截取的圖片中定位驗證碼圖片的位置坐標;
(3)根據坐標對驗證碼截圖;
(4)在圖片中提取驗證碼,輸入到輸入框。
4. Python做軟體自動化測試的入門提問
同在軟體測試崗位。由於同樣初學python,所以沒有太多的實踐經驗。
使用python的單元測試框架,可以建立測試類,構造測試集。
測試類中包含了common的測試方法定義,包括測試開始前建立測試環境的setUp方法和測試完成後清理還原環境的tearDown方法,最好按照約定規則(以test開頭)來命名所有的測試方法。
測試集允許你根據測試策略組合不同的測試用例並實施。
下面兩篇文章推薦看看:
http://www.ibm.com/developerworks/cn/linux/l-pyunit/
http://www.cnblogs.com/coderzh/archive/2010/08/23/custom-python-unittestoutput-as-gtest.html
有一個問題我還沒找到答案,就是如何讓單元測試框架的log輸出到文件(默認輸出到控制台)。
5. 應聘軟體測試,一般會有什麼筆試的題目
一般筆試重點測試考生的政策理論水平、分析解決實際問題的能力和文字表達能力等綜合素質。題型主要包括論述題、案例分析題、公文處理、對策性文章等形式。歸納起來就是讀材料,看材料中反映了什麼問題,然後提出解決問題的辦法。考試時間一般是2.5-3小時,3-4道題。案例分析題可能會有兩問,公文寫作每年公文種類不定,有時是通知,有時是調研報告,有時又是會議紀要,有時會是公文改錯題等等,大作文一般是對策性論文,就是寫怎麼辦的文章。分值分布一般是案例分析30-40分(2道題左右),公文寫作(1道題)20-30分,對策性論文(1道題)40分。
具體的範文模板
鏈接:https://pan..com/s/1ElLaFPNS_Ax5WnumUrjv6A