高頻考題

1.軟件測試的目的與原則是什麼?

目的

A. 通過測試工作可以發現並修復軟件當中存在的缺陷,
B. 可以降低同產品開發遇到的風險,
C. 記錄軟件運行過程中的一些數據,從而爲決策者提供技術支持。
原則:
A. 缺陷集羣性,2/8定律,核心功能佔20%,非核心佔80%,我們會集中測試20%的核心功能,發現缺陷的機率會高於80%,因此,遇到的缺陷都會集中20%功能模塊裏。
B. 窮盡測試是不可能的,有些功能是無法將所有測試情況邏輯出來的,任何的測試都有結束的時間。
C. 測試需要儘早介入:爲了更好地發現和解決軟件中的缺陷。
D. 殺蟲劑悖倫:同樣的一個測試用例不能重複執行多次,不然軟件會對它產生免疫
E. 測試顯示軟件存在缺陷
F. 測試活動依賴於測試內容,某些測試需要依賴於特殊的環境
G. 沒有錯誤是好是謬論,任何軟件都不可能是完美的

2. 測試人員在測試中的任務是什麼?

A. 儘早的找出系統當中的Bug
B. 避免軟件開發過程中缺陷的出現
C. 確保缺件的質量
D. 關注用戶的需求,並保證系統符合用戶需求

3. 缺陷報告內容包括什麼?

A. Bug的優先級,
B. Bug的嚴重程度,
C. 開發的接口人員,與Bug產生對應的軟件版本
D. Bug可能屬於的模塊。如果不能確認,可以由開發人員來判讀
E. Bug標題,需要清晰的描述現象
F. Bug描述,需要儘量給出新的Bug步驟
G. Bug附件中能給出相關的日誌與截圖

4. 請您描述一下測試的V模型?

用戶需求-需求分析-概要設計-詳細設計-編碼-單元測試-集成測試-系統測試-驗收測試


5. 性能測試關注的指標是什麼?

吞吐率,用戶的響應時間,每秒點擊數,資源利用率,業務成功率,Tps

6. Bug不能復現怎麼辦?

A. 首先考慮環境問題,看是否能夠還原原來的環境
B. 遇到問題就要提,不能放過任何一個Bug,在提交的Bug描述中加上一句話,那就是復現概率,嘗試20次,出現一次或嘗試10次,交給開發,開發會根據Bug的復現概率,調整改Bug的優先級。
C. 儘量回想發生問題時的復現步驟,不要漏掉任何一個細節,按照步驟的組合嘗試復現
D. 與開發人員配合,讓開發人員對相應的代碼檢查,看是否通過代碼層面檢查出問題

7.什麼是Http協議,請求方法是什麼?,以及Http協議與Https協議的區別?

Http協議:又叫超文本傳輸協議,是定義了一個客戶端到服務器請求與應答的標準。
請求方法:get、post、head、delete、put、peach
HTTPS協議:以安全爲目標的HTTP通道,簡稱Http的安全版。
HTTPS與HTTP的區別:
A. http協議需要ca申請證書,一般免費證書較少,需要一定費用。
B. http的鏈接簡單,是無狀態的,而https協議是由SSL+http協議構建的可進行加密傳輸,身份認證的網絡協議要比HTTP協議安全。
C. http協議是超文本協議,又叫明碼傳輸,而https是具有安全性的SSL加密傳輸協。
D. http協議與HTTps協議使用的鏈接方式不同,一個用的端口是80(http),一個是443(https)。

8.get請求與post請求的區別?

  1. Get是不安全的,因爲在傳輸過程,數據被放在請求的URL中;Post的所有操作對用戶來說都是不可見的。
  2. Get傳送的數據量較小,這主要是因爲受URL長度限制;Post傳送的數據量較大,一般被默認爲不受限制。
  3. Get限制Form表單的數據集的值必須爲ASCII字符;而Post支持整個ISO10646字符集。
  4. Get執行效率卻比Post方法好。Get是form提交的默認方法。

9.重載與重寫的區別?

重載是發生同一個類中,方法名相同,參數列表(列表類型,參數個數,或者二者接不同)卻不同,與返回值無關。

重寫是發生在父類與子類之間,子類的重寫方法必須與父類的重寫方法聲明完全相同,有相同的返回值類型,比父類的重寫方法更好訪問。

10.APP測試與Web測試的區別?

相同點:
同樣的測試用例方法相同。
同樣的測試方法:都會依據原型圖或效果圖來檢查UI。
測試應用系統的穩定性。
不同點:
A. app測試平臺:百度雲測,testin雲測不同。
B. App的安裝卸載:全新安裝,升級安裝,第三方工具安裝,第三方工具卸載,直接卸載刪除,消息推送測試,手機授權測試,前後臺切換,網絡環境(wifi/2G/3G/4G/無網絡)。
C. App的中斷測試:來電中斷,短信中斷,藍牙,鬧鐘,拔插數據線,手機鎖定,手機斷電,手機問題(系統死機重啓)。
D. 兼容性測試:Web項目考慮不同瀏覽器的兼容,app需要考慮手機不同的操作系統,不同機型,不同屏幕等。
E. 網路測試:不同網絡與運營商,目前我國有三大運營商如:電信,移動,聯通,不同的網絡制式,如:GSM,CDMA,3G等,在不好或無網絡的情況下的APP行爲。

11. BS/CS架構的區別是什麼?

概念:所謂的架構就是用來指導我們軟件開發的一種思維,目前最常見的就是BS/CS。

B -- browser 瀏覽器
C -- client 客戶端
S -- server 服務端

區別:
A. 標準:相對於cs架構來說Bs架構的兩端都是使用現成的成熟產品,bs會顯示的標準一些。
B. 效率:相對於bs架構來說cs中的客戶端可以分擔一些數據的處理,執行效率會高一些。
C. 安全:bs架構當中得到數據的傳輸都是以Http協議進行傳輸的,而Http協議又是明文輸出。可以被抓包,那麼bs架構相比cs架構顯得就不那麼安全了
D. 升級:bs架構只需要在服務器端將數據進行更新,前臺只需要刷新頁面就可以升級,而cs架構必須要將兩端都進行更新纔可以。
E. 開發成本:相對於bs架構來說cs當中的客戶端需要自己開發,bs不用,所以說cs成本會高一些。

12.舉例說一下你的接口測試是怎麼做的?

  1. 下單這個接口用的是http協議,使用post請求方式,發送給服務器的參數有token,產品ID,購買數量,收貨人地址等等,這些參數都是必傳的參數。
  2. 我們是使用Jmeter來做接口測試的,首先,要新建一個線程組,在線程組下面添加一個http的請求,然後填寫好服務器地址,接口路徑,請求方式,請求參數。
  3. 由於下單的接口依賴於登錄,所以我們會先調用登錄接口,從中獲取token值,在下單接口中使用{參數名}的方式引用,接下來還要對其他參數進行參數化,構造各種正常和異常的數據,我們先在本地創建一個txt文檔,把參數填寫到文檔裏面,在Jmeter中添加一個csv文件設置,填寫好txt文檔的路徑,然後在請求參數中使用Json提取器把token值關聯出來,然後在下單接口中使用{參數名}的方式引用;接下來添加斷言,檢查服務器返回的結果和預期結果是不是一致的。
  4. 最後,添加查看結果樹查看測試結果。

13. Android手機和IOS手機,系統有什麼區別?

A. 運行機制不同:IOS採用的是沙盒運行機制,安卓採用的是虛擬機運行機制
B. 兩者後臺制度不同:IOS中任何第三方程序都不能在後臺運行,安卓中任何程序都能在後臺運行,直到沒有內存纔會關閉
C. IOS中用於UI指令權限最高,安卓中數據處理指令權限最高

14.請說一下測試分類?(幹掉)

功能測試、用戶體驗測試、性能測試、UI測試、兼容性測試、安裝測試、文檔測試、 穩定性測試等

15.接口測試流程?

項目啓動後,測試人員儘早找開發人員拿到接口文檔,獲取接口文檔後進行接口用例的編寫和調試,完成後部署到持續集成的測試環境中,進行接口的日常監控,定期對接口腳本的維護更新,接口異常的處理

16. 你以前工作時的測試流程是什麼?(自己編寫,結合表格)

先要有需求評審(有開發人員---產品經理---測試人員---項目經理)需求確定(出一份確定好的需求文檔)開發設計文檔(開發人員在開始寫代碼前就能夠輸出設計文檔)制定測試計劃---寫出測試用例---發給開發人員與測試經理看一下---接到測試版本---執行測試用例---提交Bug---交給開發人員修改---迴歸測試。

17. 當你參加評審時,你的評審原則是什麼?

首先要從正確性,一致性,可行性,必要性,可跟蹤性,分配優先級,可測性,可修改性考慮:
正確性:每一條需求都必須準確的陳述其要開發的功能。
一致性:必須與其他軟件需求或高層需求不相矛盾。
可行性:其每一項需求都必須是已係統和環境的權能和限制範圍可以來實施的。
必要性:每項需求都是用來授權你編寫文檔的“根源”,要使每項需求都能回潮至某項客戶的輸入。
可測性:每項需求都能通過設計測試用例或其他的驗證方法來進行測試。
可修改性:每項需求只應在SRS中出現一次,這樣更改會容易保持一致性。
可跟蹤性:在每項軟件需求與它的根源與設計元素,源代碼,測試用例之間建立起鏈接,而這種可跟蹤性要求每項需求都必須以一種結構化的,粒度好(fine-grained)的方式編寫
分配優先級:應當對所有的需求分配優先級,如把所有需求都看作同樣重要,那麼項目管理者在開發或節省預算或調度中喪失控制自由度

18.軟件測試的需求標準是什麼?

A. 文檔版本信息:包含文檔版本,作者,完成日期,修訂版需要加上修訂記錄(版本號,修訂者,日期,內容)。

B. 目錄結構要清晰,不同級別的標題要區分字號。

C. 產品架構:一般只有功能以及信息架構,

D. 功能:一級-二級,三級功能要劃出。以及產品特性(功能列表,原型界面,詳細設計)。

19.請寫一下W模型圖

[圖片上傳失敗...(image-94a5ac-1621223063363)]

20. 軟件質量的特性是什麼?

A. 功能性:軟件需求要滿足用戶顯示或者穩式的功能。

B. 易用性:軟件易於學習和上手使用

C. 可靠性:軟件必須實現需求當中指明的具體功能。

D. 效率性:類似於軟件的功能。

E. 可維護性:需求軟件具有將某個功能修復之後繼續使用的功能。

21.測試計劃工作的目的是什麼?以及測試計劃文檔的內容包括什麼?

目的:

明確測試任務與測試方法,保持測試實施過程的順暢溝通

內容:九大項

22. 搭建過什麼環境,搭建工作環境是如何搭建的?

測試環境操作系統用Linux,通常測試環境包括JDK環境,Tomcat環境和MySQL環境。

JDK:1.安裝jdk如果有自帶,先卸載再裝,2.把包複製/usr/local,3.解壓,4.配置環境變量,5.檢查java是否安裝成功java -version

Tomcat:1.安裝tomcat,2.把下載的tomcat包複製/usr/local,3.解壓,4.在tomcat/bin目錄執行startup.sh文件5.啓動服務6.在瀏覽器中連接:IP:8080,7.如果連接不上,但tomcat又是顯示啓動OK,檢查firewall,路徑爲 /etc/sysconfig/iptables,將8080端口開啓,8.重啓服務

Mysql數據庫:mysql安裝比較簡單,一種是使用壓縮包安裝,另一種使用yum在線安裝,在這裏簡單地介紹一下yum在線安裝

用yum在線安裝

1.rpm -qa|grep mysql --檢查linux是否有存在的mysql

2.如果有mysql,卸載 rpm -e --nodeps mysql

3.安裝 yum install mysql-server mysql mysql-dev -y

4.安裝成功後,啓動服務 service mysqld start service 服務名 restart/start

5.直接輸入mysql 進入到數據庫。

23.怎樣保證覆蓋用戶需求

項目開始前,我們會先熟悉需求,畫好流程圖,保證整個流程都覆蓋全面來講解一下自己對測試點的理解,用例編寫完之後,再進行用例的評審,看看測試點有沒有用遺漏,測試場景是否覆蓋完全。

24.開發環境與測試環境有什麼區別?

開發環境:是在編碼階段,一般我們的代碼基本上都是在開發環境中,不會再生產與測試環境,如操作系統,web服務器,語言環境,php,數據庫等等。

測試環境:項目完成後,找Bug,以及修改Bug。

25. 如果給你購物商城網頁(京東,淘寶等)你會怎樣進行測試?測試哪些主要功能?

A. 首先要先進行需求分析,xmind梳理測試點,編寫案例,案例評審,尋求他人意見,再完善案例,交給其他人檢查。

B. 測試點:如UI,美觀度,易操作型,易理解型方面進行測試。

C. 在考慮功能點,如登陸註冊,添加購物車,下單,付款,發貨,確認收貨,評價。

E. 性能方面:如打開網頁,確認訂單,付款的響應時間等。

F. 兼容性:如支持各種主流瀏覽器,如(EI,360,火狐,谷歌等)。

26.紅包的測試用例?

A. 功能****:

a) 在紅包錢數,和紅包個數的輸入框中只能輸入數字

b) 紅包裏最多和最少可以輸入的錢數 200 0.01

i) 是否可以輸入它們的混合搭配

j) 輸入紅包錢數是不是隻能輸入數字

B. 兼容****:

a) 蘋果,安卓是否都可以發送紅包

b) 電腦端可以搶微信紅包

c) 界面

C. 安全:

a) 對方微信號異地登錄,是否會有提醒 2人

27.寫好測試用例的關鍵 /寫好用例要關注的維度?

1.覆蓋用戶的需求

2.從用戶使用場景出發,考慮用戶的各種正常和異常的使用場景;

3.用例的顆粒大小要均勻。通常,一個測試用例對應一個場景;

4.用例各個要素要齊全,步驟應該足夠詳細,容易被其它測試工程師讀懂,並能順利執行

5.做好用例評審,及時更新測試用例。

28.Jmeter的是如何進行測試的?

1.打開JMeter,

2.創建線程組

3.設置線程數和循環次數。我這裏設置線程數爲500,循環一次

4.配置元件

5.配置我們需要進行測試的程序協議、地址和端口

6.構造HTTP請求

7.添加HTTP請求頭

8.添加斷言

9.添加察看結果樹

10.添加Summary Report

11.執行測試計劃,執行測試計劃不能用GUI,需要用命令行來執行

12.Web報告

29.Jmeter的連接數據庫

A. 添加需要的驅動

B. 添加jar包

C. 配置JDBC Connection Configuration

D. 添加JDBC Request

30.Jemeter爲什麼要參數化?

1,多用戶登錄的時候,如果不進行參數化就沒演示了。

2,需要使用CSV將參數放到文件,來演示多用戶登陸。

在進行錄製的時候,有可能存在第二個請求的參數是從第一個請求中獲取出來的,需要在第一個請求下,去將參數提取出來,再到第二個請求中進行參數化

31.Jemeter如何進行壓力測試?

我們在公司大部分是進行的數據庫壓測以及接口壓測。

32.請您介紹一下Jemeter是如何使用的?

先創建一個線程組,指定併發的線程數量,在指定測試的接口,創建相應的監聽器,通過監聽器來進行監聽測試是否通過以及接口存在什麼問題。

33. 進行接口測試,你是如何進行去測試的?

1,首先要看有沒有接口文檔,如果有文檔的時候按接口文檔去做,沒有的話就去抓包。

2,我們一般使用postmian以及jemter.

3,沒有接口文檔的情況下,要先創建一個線程組,指定併發的線程數量,在指定測試的接口,創建相應的監聽器,通過監聽器來進行監聽測試是否通過以及接口存在什麼問題。

34.性能測試怎麼做的?

搭建性能測試環境,準備好性能測試數據。

使用Jmeter開發優化腳本,包括:參數化,斷言,關聯等。

設計性能測試場景,我們這個項目做了單用戶單功能循環200次的基準測試,然後使用1500個用戶,執行30分鐘的負載測試,看系統有沒有性能瓶頸;

我們搭建了分佈式壓力測試環境進行測試,每臺壓力機併發500個用戶,並監控linux服務器的CPU,內存,IO。

分析性能測試結果,如果有性能瓶頸,收集相關的日誌提單給開發修改。

開發修改好後,迴歸性能測試,然後輸出性能測試報告。

35.如果你要進行性能測試,你是如何展開操作的?

A. 確定關鍵業務,關鍵路徑

B. 確定輸入參數以及輸出參數,指定負載測試方案

C. 準備測試環境,完成腳本錄製,或者測試腳本開發,

D. 執行測試,觀察或輸出參數,如(數據吞吐量,響應時間,資源佔有率等)

E. 對測試結果進行分析

36.自動化測試有了解嗎?自動化測試的工具有哪些?(瞭解)

常用的自動測試框架工具:Selenium,Appium,unittest。等

37.Selenium元素定位方法有哪些?

web端: 各種方式來定位頁面元素,如通過id,通過link Text,通過css,通過xpath來定位元素,一般,如果有id,我們就使用id,然後使用css或者xpath來定位,dom(document object model) 元素,當然定位的時候,需要在瀏覽器裏邊安裝firebug firepath來抓取頁面元素對應的xpath信息。其他的定位方式有name classname css_selector,tag-name,linux-txet

38.安全性測試包括哪些方面?

用戶驗證,用戶權限管理,系統數據的保護

39.爲什麼要進行抓包?

A. 有些時候公司沒有標準的接口文檔,測試人員只能抓包來獲取接口測試。

B. 抓包可以迅速找到請求,通過抓包可以查看整個請求的過程,以及響應時間,還可以分辨前臺與後臺Bug.

C. 通過抓包,可以查看是否有敏感信息,如(用戶密碼,個人賬戶信息等數據)

40.一般抓包用什麼工具,怎麼進行抓包?

工具上使用:Fiddler.charles這兩個工具

Fiddler:

A. 設置Http代理,設置端口號,在手機上設置與fiddler在同一網段上,設置代理ip,設置代理端口,手機上的請求就能獲取到了。

B. 抓取請求查看,可以過濾,找到自己域名下的請求,通過分析請求地址,請求參數,響應結果來查找問題。

Https包怎麼抓?

A. http與Https協議區別在於Https多了一個ssL協議,更加安全,默認端口是443,而http默認端口是80.

B. 抓取Https時,需要獲取申請證書,在fiddler與charles兩個工具中,可以模擬下載966證書,下載後,在手機上訪問代理服務器的ip與端口,下載證書,就可以抓取到HTTPS的請求了。

41.測試用例評審的流程是什麼?

目的:主要是爲了開展測試用例評審工作提供指引,規範測試用例管理工作。

流程:

測試用例是否按照公司定義的模板進行編寫的;

測試用例的本身的描述是否清晰,是否存在二義性;

操作步驟應與描述是否相一致;

測試用例是否覆蓋了所有的需求;

測試用例是否具有可執行性

測試用例應有正確的名稱和編號,

測試用例應標註有執行的優先級;

42.怎樣分析性能測試結果?

1.查看聚合報告和服務器的資源使用圖,檢查響應時間,事務成功率,CPU,內存和IO使用率是否達到要求,如果出錯率達到了總請求數的3%,我們會檢查是什麼原因導致的,修改好後,重新測試;2.如果出現了性能瓶頸,比如響應時間,或者CPU使用率不達標,我們會從服務器上導出日誌,分析是哪個地方導致響應時間過長,如果分析不出來,就叫上開發一起討論,確定問題後,就提單給開發修復,修復好了就進行迴歸測試。

43.請說幾個常見的狀態碼?

200:請求發送成功。

302:代表重定向。

400:客戶端發送的請求語法錯誤。

401:請問的頁面沒有授權。

403:沒有權限訪問這個頁面。

404:沒有這個頁面。

500:服務器內部異常。

44.請描述下接口測試與UI測試是如何協同測試的?

A. 有一部分是重疊的,Ui測試是通過前端寫的界面,是來調用接口的,而接口測試是直接調用接口。

B. 排除前端的處理邏輯與調用的正確性,在理論上接口測試是可以覆蓋所有的Ui測試,但實際中,如接口層覆蓋所有的業務流,在Ui上只測試前端的邏輯,而最終的結果會忽視很多原有的功能點,導致了Ui測試的不充分,那麼會存在人多分工且時間充分的時候可以嘗試接口去做業務流的全覆蓋,否則不要輕易的去嘗試。

45.你們項目最佳的併發用戶數是多少?

我們當時做到1500個併發用戶的時候,查詢功能的響應時間超過了性能指標2秒多,原因是有幾個表的索引建得不合理導致的,我們當時做到1500併發用戶後,就沒再繼續增加用戶量了。

46.如何判斷網絡是否存在瓶頸?

在性能測試結束之後,我們會根據性能測試的結果,查看在整個性能測試過程中,網絡的吞吐量是多少,如果網絡的吞吐量佔到了服務器的70%以上,我們就認爲網絡存在瓶頸,通常會增加帶寬或者壓縮傳輸數據。

47.如何判斷響應時間不達標

響應時間不達標的話,我們會根據性能測試結果先檢查看下是否是服務器帶寬存在問題,如果帶寬存在瓶頸,則會考慮增加帶寬或者壓縮傳輸數據,如果帶寬沒有問題的話,我們會從服務器上導出日誌,開發一起討論分析是哪個地方導致響應時間過長,確定問題後,就提單給開發修復,修復好了就進行迴歸測試。

48.如何判斷CPU使用率不達標

CPU使用率不達標,我們會從服務器上導出日誌,分析是哪個地方導致CPU使用率不達標,如果分析不出來,就叫上開發一起討論,確定問題後,就提單給開發修復,修復好了就進行迴歸測試。

49.App常見崩潰的原因?

A. 設備碎片化:由於設備極具多樣性,App在不同的設備上可能有不同表現形式。

B. 寬度限制:寬帶不佳的的網絡對APP所需的快速響應時間不夠。

C. 網絡的變化:不同網絡間的切換可能會影響App的穩定性。

D. 內存管理:可能內存過低,或非是授權的內存位置的使用可能會導致App失敗。

50.你在項目中最經典的BUG是什麼?

A. 兼容性問題,在ie瀏覽器,提交訂單按鈕可以點擊,到了谷歌,火狐就不能了。

B. 查詢訂單頁面,根據條件篩選的結果不是想要的結果,還有某些字段的值沒有顯示出來,或者顯示錯誤。(因爲開發從庫表取值有誤)

C. 付款成功後,訂單狀態一直不翻轉爲交易成功。(因爲代碼沒有正確獲取庫表中付款成功記錄的狀態碼)

51.你在你工作中遇到最棘手的問題是什麼?

自動化測試,編寫腳本,我工作以來遇到最大的問題就是這個

52.弱網情況下你是如何測試的?

A. 2G的網速150kbps,摺合下載速度15-20K/S.B=8b.g

B. 3G的網速 1-6Mbps,摺合下載速度120K/S-600K/S.

C. 4G的網速10-100Mbps,摺合下載速度1.5M/s-10M/s.

a) 使用真實的SIM卡,運營上網絡來進行測試。

53.跟開發人員因爲BUG產生分歧你是如何解決的?

A. 問題確認與評估

B. 明確開發不修改該缺陷的確切原因

C. 具體問題具體分析--注:dev代表開發 tester表示測試人員

D. 發揮TM與PM的溝通職責 注TM表示測試經理 PM表示產品經理強調溝通。

54.如何提交高質量的軟件缺陷記錄(報告)?

A. 通用ui要統一、準確。

B. 儘量使用業界慣用的表達術語和表達方法

C. 每條缺陷報告只包括一個缺陷

D. 不可重現的缺陷也要報告

E. 明確指明缺陷類型

F. 明確指明缺陷嚴重等級和優先等級

G. 描述 (Description) ,簡潔、準確,完整,揭示缺陷實質,記錄缺陷或缺陷出現的位置

短行之間使用自動數字序號,使用相同的字體、字號、行間距

短行之間使用自動數字序號,使用相同的字體、字號、行間距,可以保證各條記錄格式一致,做到規範專業。

55. 手機端測試的關注點有哪些?

ui測試,功能,性能測試,安裝卸載測試,軟件升級測試,登陸測試,安全性測試,消息推送,前後臺切換,兼容性測試,網絡環境測試,monkey測試。

56.Web測試的方法有哪些?

[圖片上傳失敗...(image-4cf12a-1621223063364)]

57.軟件測試的分類有哪些?

[圖片上傳失敗...(image-4656c9-1621223063364)]

58. 測試用例的方法有哪些以及包含的內容?

方法:****等價類劃分法,邊界值,場景法,因果圖,正交表。

內容:等價類劃分法:****邊界值:場景法: 因果圖:正交表:****數據庫與命令:

59.App的性能測試怎麼做的?

App的性能分爲服務器端的性能和手機端的性能。 服務器端的性能,我們用Jmeter工具進行測試的,我們是用monkey做手機端App的穩定性測試的,如果出了問題,那我就要去看看monkey日誌中有沒有crash或者anr的關鍵字,如果有還需定位到是什麼原因導致的anr或者crash的問題。並且將相關日誌和logcat日誌與進程號提交給開發定位,如果是anr的問題,還需要從安卓中獲取/data/anr/traces.txt文件提交給開發定位。

60.看你寫有用MONKEY做APP測試,怎麼做的?如果有問題的話怎麼定位?

我們是使用monkey來做穩定性測試的,那我就要去看看monkey日誌中有沒有crash或者anr的關鍵字,如果有還需定位到是什麼原因導致的anr或者crash的問題。並且將相關日誌和logcat日誌與進程號提交給開發定位,如果是anr的問題,還需要從安卓中獲取/data/anr/traces.txt文件提交給開發定位。

61.APP出現ANR的原因?

線程阻塞的,內存不足,CPU滿負荷(由於現在的手機基本都是8核CPU,所以基本不會出現CPU滿負荷的情況)

62.APP出現CRASH的原因:

空值指針

數組越界

內存不足

CPU滿負荷(由於現在的手機基本都是8核CPU,所以基本不會出現CPU滿負荷的情況)

63.Appium的工作原理是什麼?

我們的電腦(c端)上運行自動化測試腳本,調用的是appium的webdriver的接口,appium服務器(s端)接收到我們client上發送過來的命令後,他會將這些命令轉換爲UIautomator認識的命令,然後由UIautomator來在設備上執行自動化。

64.MySql數據庫查詢語言有哪些?多表聯查會嗎?

數據庫語言最常SQL (結構化查詢語du言)。

多表聯查:

select \* from table1 t1,table2 t2 where t1.id=t2.id

這樣就是聯合查詢啊

left join
right join
inner join

子查詢:老師和學生

//查詢李老師所教的學生
select id from teacher where name=’李老師’
select student_id from teacher_student where teacher_id=id

select * from student where id in(select student_id from teacher_student where teacher_id =(select id from teacher where name='李老師'));

//查詢張三的所有老師
select * from teacher where id in(select teacher_id from teacher_student where student_id=(select id from student where name='張三'));

65.MySql數據庫的增刪改查?

創建表:create table user(id int(11) primary key auto_increment,name varchar(20),age int(4),sex varchar(10),);
增:insert into user(name,age,sex) values(?,?,?);
刪:delete from user where name=?;
改:update user set age=?,sex=? where name=?;
查詢所有:select * from user;
根據名稱查找:select * from user where name=?;

66.SQL內關聯和外關聯的區別?

內關聯是求交集

外觀連是以主表爲標準,去附表找需要的信息

67.sql語句處理與代碼處理哪個好,舉例?

如果用sql語句,數據處理比較快,處理後傳輸的數據量稍大,由123變成了漢字。
在代碼中處理,傳輸的數據量小點,處理速度取決於代碼怎麼處理。
如果數據量不大,兩種方法區別不明顯,建議用sql語句。

68.liunx磁盤滿了,怎麼處理?

#ls –bailR /home >;files.txt
#diff filesold.txt files.txt

69.Linux系統操作的指令說一下:增加,刪除,複製,移動等問題?(25個)

cd:進入目錄

cd app:切換到app目錄

Cd.. :切換到上一層目錄

cd/: 切換到系統根目錄

Ifconfig :查看ip

r-rf: 刪除

cp:複製

mv:移動

cat:查看文件內容

touch:創建文件

70.Linux系統日誌查看指令,壓縮,解壓指令等問題?

tar -xvf 文件名 :解壓
Tar -n logcat 查看系統日誌
tar -zcvf 文件名:壓縮

71.LInux系統TOP命令介紹?

顯示,管理執行中的程序 就是任務管理器

72.說幾個常用的adb指令?

Adb install(apk的文件路徑) 安裝軟件到手機或者模擬器
Adb uninstall(包名) 卸載手機或模擬器上的某款軟件
Adb devices 查看與當前電腦連接的移動設備
Abd ,adb start-server 啓動
Adb,adb kill-server 殺死
Adb logcat 查看日誌
Adb logcat -v time process >

73.軟件負蓋安裝的adb命令?

adb install -r xx.apk覆蓋低版本的

adb install -r -d 覆蓋高版本的

74.性能測試的Adb命令?

adb shell dumpsys cpuinfo 查看手機cpu的使用情況

adb shell getprop|findstr dalvik 手機系統自己運行的內存使用

75.說幾個Monkey指令?

Adb shell monkey -p 包名

Adb-shell--ignore-crashes 忽略崩潰

Adb-shell--ignore-timeouts 忽略延時

Adb-shell--ignore-throttle 延時毫秒值

Adb-shell--pct-touch--pct-motion 觸摸與滑動事件的比例

工作的話一般是根據文檔或百度去查

76.Linux上能不能直接進行性能測試?

不能,腳本需要通過windows調試好後,才能在linux上運行,運行的時候,只能通過non GUL形式進行啓動jmeter,但需要注意的是,csv文件在windows上與LInux上要統一路徑,最好使用相對路徑,放到統一目錄下邊。

77.你都做過什麼測試

功能測試,性能測試,以及接口測試,在公司中大部分是做的功能與性能測試

78.如果迴歸測試不通過怎麼辦?

A. 首先考慮環境問題,看是否能夠還原原來的環境

B. 遇到問題就要提,不能放過任何一個Bug,在提交的Bug描述中加上一句話,那就是復現概率,嘗試20次,出現一次或嘗試10次,交給開發,開發會根據Bug的復現概率,調整改Bug的優先級。

C. 儘量回想發生問題時的復現步驟,不要漏掉任何一個細節,按照步驟的組合嘗試復現

D. 與開發人員配合,讓開發人員對相應的代碼檢查,看是否通過代碼層面檢查出問題

79.測試報告包括哪些?

A. 項目的概要描述。

B. 測試過程缺陷的統計, 一定程度反映項目的質量。

C. 整個項目過程有需要改善地方,提出建議。

D. 給出結論,項目是否可以上線

80.postman與jmeter的區別是什麼?

  1. 用例組織不同,jmeter的組織是比較扁平,首先他沒有工作空間的概念,直接就是測試計劃,而postman功能上更簡單,組織方式是輕量級,他主要針對的是單個的http請求。

  2. 支持接口的類型與測試的類型不同:jmeter的功能更強大,可以通過各種類型的接口,不支持的也可以通過網上或者自己編寫的插件進行擴展,而postman更輕量級,定位不同,可用來測試Rest接口。

  3. 配置不同:jmeter可以在線程組裏添加http,tcp,而postman只支持Rest接口。

81.postman做哪些操作?

Postman 是一款功能超級強大的用於發送 HTTP 請求的 Chrome插件 。做web頁面開發和測試的人員應該是無人不曉無人不用!其主要特點 特點: 創建 + 測試:創建和發送任何的HTTP請求****瀏覽器的兼容性測試是怎麼測試的?

82.手機兼容性測試?兼容測試測試哪些內容?

大型的,用戶羣體多的網站都需要做瀏覽器兼容性測試,需要測試主流的瀏覽器(除特定要求的瀏覽器以外)

測試的內容:一般是頁面的排版,頁面格式,字體,顏色,下拉菜單,複選框等測試(UI:CSS,HML,Js在不同瀏覽器下的表現)

再就是對功能進行檢查****PC端打開瀏覽器網頁測試流程?對於賬戶名密碼安全的查看,怎麼查看

83.最近工作功能測試流程?意思是問測過哪些功能?

測試流程:

A. 待測應用在不同的操作系統平臺上正常運行,包括待測試項目能在同一操作系統平臺的不同版本上正常運行;

B. 待測應用能與相關的其他軟件或系統“協調工作”;

測過哪些功能:

A. 兼容性測試就是測試電腦硬件之間是否有不兼容等問題或軟件問題。

B. 兼容性測試側重哪些方面

  1. 向前兼容和向後兼容。向前兼容是指可以使用軟件的未來版本,向後兼容是指可以使用軟件的以前版本。

  2. 不同版本之間的兼容。實現測試平臺和應用軟件多個版本之間能夠正常工作。

84.代碼的版本管理用什麼工具,上傳和合並代碼?SVN介紹用的版本管理工具

(幹掉)

git pull origin master 路徑

85.測試手機兼容性測試是如何測試的?

一般測試手機兼容性的時候會考慮到手機的型號,分辨率以及安卓版本號,一般常用的手機型號如:華爲,錘子,小米,魅族等,一般碎片化會嚴重,從Android6.0到Android10.0的版本是不一樣的,而最近的版本號已經到10了,也就是AndroidQ,它是協助開發者利用5G,摺疊屏,無框屏,設備內置Al等最新技術繼續創新,同時確保用戶安全,隱私及數字健康。向分辨率這塊大部分是1920*1080,一般會買真機去測。。

86.壓力測試與負載測試的區別是什麼?

通常性能測試中的壓力測試是在系統資源特別低的情況下軟件系統運行的情況,其目的是找到系統在哪裏失效以及失效的地方,關注點在於系統在峯值負載或超出最大負荷情況下的處理能力。

負載測試是指數據在超負荷環境下運行,程序是否能夠承受並滿足最終確定性能指標的情況下所能承受的最大負載量。

87. 缺陷引起原因

  1. 軟件結構複雜
  2. 編碼問題
  3. 使用新技術
  4. 需求不明確或者更改需求
  5. 項目週期短,時間緊迫

88. shell寫腳本

能接受加班嗎

地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章