前言
因為篇幅有限,截圖不代表所有資料,圖中的資料我都放在公眾號【程序員阿信】里面了,回復66就可以領取了。
性能測試方面
簡述性能測試流程? 1.分析性能需求。 2.制定性能測試計劃。 3.編寫測試用例 4.搭建測試環(huán)境,準備好測試數(shù)據(jù) 5.編寫性能測試腳本 6.性能測試腳本調(diào)優(yōu)。 7.設計測試場景。 8.分析測試結(jié)果。 9.回歸性能測試。 10.編寫測試報告。
你們性能測試在什么環(huán)境什么時間執(zhí)行? 我們會搭建一套獨立的性能測試環(huán)境進行測試,時間方面的話, 基準測試:功能測試之后,系統(tǒng)比較穩(wěn)定的時候再做。 負載測試:夜深人靜,系統(tǒng)沒人用的時候
think_time的作用是什么? 模擬真實生產(chǎn)用戶操作,考察對服務器所造成的影響。 在確定性能測試結(jié)果可信后,如果發(fā)現(xiàn)以下問題,按下面提供的思路來定位問題
有驗證碼的功能,怎么做性能測試? 1、將驗證碼暫時屏蔽,完成性能測試后,再恢復 2、使用萬能的驗證碼
性能測試指標有哪些? 響應時間 吞吐量 cpu 內(nèi)存 io disk
功能測試方面
你對軟件測試這個行業(yè)的看法,為什么要選擇軟件測試? 軟件測試是一個很有前途的職業(yè),我在該行業(yè)有了比較多的經(jīng)驗,我覺得我很適合這個職位,也想堅定地走下去。
如果測試過程中發(fā)現(xiàn)bug但是開發(fā)人員認為不是bug,你應當怎么處理 首先,將問題提交到缺陷管理平臺里面進行備案登記。然后,要獲取判斷的依據(jù)和標準:
根據(jù)需求說明書、產(chǎn)品說明、設計文檔等,確認實際結(jié)果是否與計劃有不一致的地方,提供缺陷是否確認的直接依據(jù);
如果沒有文檔依據(jù),可以根據(jù)類似軟件的一般特性來說明是否存在不一致的地方,來確認是否是缺陷;
根據(jù)用戶的一般使用習慣,來確認是否是缺陷;
與設計人員、開發(fā)人員和產(chǎn)品經(jīng)理等相關人員探討,確認是否是缺陷。
合理的論述,向測試經(jīng)理說明自己的判斷的理由,注意客觀、嚴謹,不參雜個人情緒。等待產(chǎn)品經(jīng)理做出最終決定,如果仍然存在爭議,跟測試經(jīng)理確認,在發(fā)上線報告時把這個bug的風險遺留,預警,讓全項目方的人都知悉這個情況。
設計測試用例的方法有哪些? 等價類、邊界值、判定表、因果圖。
軟件測試的策略是什么? 軟件測試策略:在一定的軟件測試標準、測試規(guī)范的指導下,依據(jù)測試項目的特定環(huán)境約束而規(guī)定的軟件測試的原則、方式、方法的集合。
測試人員在軟件開發(fā)過程中的任務是什么?
(1)盡可能早的找出系統(tǒng)中的Bug;
(2)避免軟件開發(fā)過程中缺陷的出現(xiàn);
(3)衡量軟件的品質(zhì),保證系統(tǒng)的質(zhì)量;
(4)關注用戶的需求,并保證系統(tǒng)符合用戶需求。總的目標是:確保軟件的質(zhì)量。
接口自動化測試方面
get和post的區(qū)別? Get請求,瀏覽器會把http header和data一起發(fā)送,服務器返回200響應碼 Psot請求,瀏覽器先發(fā)送header,服務器響應100(continue),然后再發(fā)送data,服務器返回200響應碼 Post的安全性比get高
接口自動化中的關聯(lián)怎么處理? 把上一個請求返回的結(jié)果傳入到下一個請求的參數(shù)中,將請求的結(jié)果反射到一個類屬性(使用setattr()函數(shù)),下一個請求去調(diào)用這個類屬性
自動化測試怎么校驗結(jié)果? 斷言 ,預期結(jié)果與實際結(jié)果對比
數(shù)據(jù)庫校驗,根據(jù)測試場景來查詢數(shù)據(jù)庫里的數(shù)據(jù)和請求之前的數(shù)據(jù)進行比對
說一說你對于參數(shù)化和數(shù)據(jù)驅(qū)動的理解? 這個問題牽扯到自動化測試中很重要的兩個概念:參數(shù)化和數(shù)據(jù)驅(qū)動。其實在我看來他們兩個是一回事–測試腳本與數(shù)據(jù)的分離。舉個例子:你的登錄腳本原本固定寫了一組測試數(shù)據(jù):用戶名、密碼。每次改數(shù)據(jù)還要改腳本,我要把數(shù)據(jù)和腳本分離出來,那就把用戶名、密碼提取到外面,最好放在一個外部文件中,這個就叫參數(shù)化。
對于性能測試來說,我想保證每個虛擬用戶都使用不同的用戶名和密碼登錄,這樣更加貼近真實的業(yè)務場景。對于自動化測試來說,我想測試多種數(shù)據(jù)組合–比如各種類型的用戶名、密碼。不管是哪種場景,都要有多組數(shù)據(jù),但登錄操作流程固定不變。這個就叫數(shù)據(jù)驅(qū)動。
對于一般開發(fā)語言的單元測試框架都有數(shù)據(jù)驅(qū)動的功能,比如Python的ddt模塊,TestNG的DataProvider注解。
接口產(chǎn)生的垃圾數(shù)據(jù)如何清理 跟上面一樣,造數(shù)據(jù)和數(shù)據(jù)清理,需用python連數(shù)據(jù)庫了,做增刪改查的操作 測試用例前置操作,setUp做數(shù)據(jù)準備 后置操作,tearDown做數(shù)據(jù)清理
WebUI自動化測試方面
selenium中如何判斷元素是否存在? 沒有提供原生的方法判斷元素是否存在,一般我們可以通過定位元素+異常捕獲的方式判斷
selenium中hidden或者是display = none的元素是否可以定位到? 不可以,想點擊的話,可以用js去掉dispalay=none的屬性
如何提高selenium腳本的執(zhí)行速度? 1.優(yōu)化測試用例。 2.減少不必要的操作步驟。 3.中斷頁面加載。 4.使用Selenium grid。
什么是持續(xù)集成? 頻繁的將代碼集成到主干,持續(xù)性的進行項目的構(gòu)架,以便能能夠快速發(fā)現(xiàn)錯誤,防止分支大幅度偏離主干
什么是分層測試? 1.數(shù)據(jù)層 2.接口層’ 3.UI層
App測試方面
請說明IOS手機和Android手機,系統(tǒng)有什么區(qū)別? 兩者運行機制不同:IOS采用的是沙盒運行機制,安卓采用的是虛擬機運行機制。
兩者后臺制度不同:IOS中任何第三方程序都不能在后臺運行;安卓中任何程序都能在后臺運行,直到?jīng)]有內(nèi)存才會關閉。
你覺得app的性能測試,即專項測試,需要重點關注那些方面? 內(nèi)存、cpu占用、耗電量、流量等
請簡要介紹一下安卓系統(tǒng)四層架構(gòu)? 從上到下,依次是應用程序?qū)印贸绦蚩蚣軐?、系統(tǒng)運行庫層、Linux核心層
試過程中遇到app出現(xiàn)crash或者ANR,你會怎么處理? 可以先把日志過濾出來: adb logcat | findstr xxxxx(過濾日志信息) ,然后再搜索其中的關鍵字,比如:exception、crash,看看是那些方法或者異常導致了問題的發(fā)送,初步定位問題原因后,可以交給開發(fā)人員去具體查找深層原因并修復。
請簡單介紹一下實用過的安卓UI自動化測試工具? appium:是一個移動端的自動化框架,可用于測試原生應用,移動網(wǎng)頁應用和混合型應用,且是跨平臺的。
robotium:是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長按、滑動等)、查找和斷言機制的API,能夠?qū)Ω鞣N控件進行操作。
|