2024最新金三銀四軟件測試面試題

一直以來大大小小參與過不少面試,遇到過不少坑,但是沒來的及好好總結匯總下。現在把之前遇到的問題匯總下,希望以后自己能加深印象。

1、appium 怎么定位toast彈框

appium1.6以后回答需要升級u2進行定位。

2、什么是事務,知道事務提交、回滾

事務是并發控制單位,用戶定義的一個操作序列。這些操作要么都做,要么都不做,是不可分割的的工作單位。通過事務,sql server能將邏輯相關的一組操作綁定在一起,以便服務器保持數據的完整性,主要用于一些對操作過程的完整性比較高的程序。(事務的特性:原子性、一致性、隔離性、持久性)。

事務提交是提交事務的所有操作:具體來說就是將所有對數據庫的更新寫回到磁盤上的物理數據庫中,事務正常結束。

事務回滾是數據庫返回到事務開始的狀態;事務在運行過程中發生某種故障,事務不能繼續執行,系統將事務中對數據庫的所有已完成的更新操作全部撤銷,使數據回滾到事務開始時的狀態。

3、怎么進行數據庫優化

?

大致是有8種方法:

a、選取最試用字段屬性

b、使用連接(join)代替子查詢

c、使用聯合(union)來代替手動創建的臨時表

d、使用事務?

e、鎖定表

f、使用外鍵

g、使用索引

h、優化查詢語句

4、什么是分布式系統架構

分布式架構系統簡單的說是運行在多個處理器上的軟件架構設計。分布式系統是建立在網絡之上的軟件系統、正是因為軟件的特性,所以具有高度的內聚性和透明性。

5、linux中使用top什么命令可以查看系統詳細內存

top 按 c 查看顯示完整命令

6、python中列表和字典的區別,列表和元祖的區別

元祖(tuple):元祖常用小括號表示,即:(),元素加逗號,是元祖的標識。

列表(list):列表常用方括號表示,即:[],創建一個列表,只要把用逗號分隔的不同的數據項使用方括號括起來即可。

字典(dict):字典是由花括號{}來包含其數據的,花括號內包含鍵(key)和其對應的值(value),一對鍵和值成為一個項,鍵和值用冒號:隔開,項和項之間用逗號,隔開,空字典就是不包含任何項的字典,也可理解為空字典就是花括號內不包含任何內容,直接使用花括號{}表示

列表和字典的區別:字典的查找和插入的速度極快,不會隨著key值的增加而增加,需要占用大量的內存,內存浪費多

列表和元祖的區別:元祖比列表操作速度快,對數據不可更改、可用于字符串格式化中、可作為字典的key

7、數據庫中有使用過if等函數嗎?

if既可以作為表達式用,也可在存儲過程中作為流程控制語句使用

8、什么是臟數據?

臟數據是在臨時更新(臟讀)中產生,比如事務A更新了某個數據項x,但是由于某種原因,事務A出現了問題,于是要把A回滾。但是回滾之前,另一個事務讀取了數據X的值(A更新后),A回滾了事務,數據項恢復了原值。事務B讀取的就是數據項X的就是一個“臨時”值,這就是臟數據。

9、什么是冪等性?

就是用戶對同一操作發起一次請求或者多次請求的結果是一致的。不會因為多次點擊二次產生副作用。簡單的例子,就是支付,用戶購買商品使用支付,支付扣款成功,但是返回結果的時候網絡異常,此事錢已經扣了,用戶再次點擊,此時會產生二次扣款,結果返回成功,用戶查詢余額返現多扣錢了。流水記錄變成了兩條、這就是冪等性。

10、我現在有個程序,發現在Windows上運行得很慢,怎么判別是程序存在問題還是軟硬件系統存在問題?

1、檢查系統是否有中毒的特征;
2、檢查軟件/硬件的配置是否符合軟件的推薦標準;
3、確認當前的系統是否是獨立,即沒有對外提供什么消耗CPU資源的服務;
4、如果是C/S或者B/S結構的軟件,需要檢查是不是因為與服務器的連接有問題,或者訪問有問題造成的;
5、在系統沒有任何負載的情況下,查看性能監視器,確認應用程序對CPU/內存的訪問情況

11、安卓四大組件

activity 通過Intent進行通信
service service用于在后臺完成用戶指定的操作
Content provider 指定數據集提供給其他應用程序
Broadcast Receiver 對外部事件進行過濾

12、什么是多線程,

線程是程序中一個單一的順序控制流程.在單個程序中同時運行多個線程完成不同的工作,稱為多線程.

13、linux中vim模式有

1、命令模式,2、編輯模式、3、末行模式

14、計算機網絡模型

七層模型(應用層、表示層、會話層、傳輸層、網絡層、數據鏈層、物理層)五層模型(應用層、傳輸層、網絡層、數據鏈層、物理層)

15、什么是子網掩碼

它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分。

16、如果測試時間不夠,你會怎么辦?

測試目前主要是產品測試和項目測試。做自己公司的產品測試,如果碰到不能按原計劃完成,本著為質量負責,一般都可以申請延期。
如果是做項目,迫于合同和客戶驗收的壓力,碰到不能按原計劃完成的情況,就是項目風險了。而處理的方式基本都是“先測客戶比較關心的,比較常用的功能”,保證通過客戶驗收,拿到項目款。分析客戶驗收所關心的功能點(比如客戶最近幾天提過什么需求,肯定要測試,因為時間短,他肯定記得),分析系統最脆弱的地方,走通所有業務流程等。而客戶驗收時候,不關心和不可能想到得地方可以不測試(比如系統中很多同步功能)

17、性能指標有哪些?

注冊用戶數、在線用戶數、并發用戶數、請求響應時間、事務響應時間、每秒點擊數、吞吐率、業務成功率、tps(每秒事務處理數)、資源利用率,cpu、內存、帶寬等

18、什么是接口?

傳遞數據的通道就叫接口

19、測試的基本6大法則

功能性、可靠性、效率性、可移植性、可維護性、易用性

20、接口測試測哪些東西

a、通過性驗證

b、參數組合

c、接口安全

d、異常驗證

e、根據業務邏輯來設計測試用例

21、用fiddler抓包時怎么制造異常情況;

通過請求前打斷點,可以修改請求參數

22、 什么是mq,mq的特點是什么?

把要傳輸的數據放在隊列中保存消息的容器.

mq的特點是:異步、解耦、廣播、流控與銷峰

23、怎么保證軟件測試質量

測試人員需要做的工作

測試策略的設計: 質量是多維度的,功能測試、性能測試、兼容性測試等多種測試類型的結合

用例質量: 采用合適的用例方法、如何進行需求分析、用例評審

執行質量: 保證執行深度(界面、關聯模塊、數據庫、日志)與廣度(系統測試類型)

缺陷質量:bug評審,引入合適的bug流程

過程質量:合理的軟件測試流程,測試過程監控

24、android和ios系統測試的不同點

1、Android長按home鍵呼出應用列表和切換應用,然后右滑則終止應用;
2、多分辨率測試,Android端20多種,ios較少;
3、手機操作系統,Android較多,ios較少且不能降級,只能單向升級;新的ios系統中的資源庫不能完全兼容低版本中的ios系統中的應用,低版本ios系統中的應用調用了新的資源庫,會直接導致閃退(Crash);
4、操作習慣:Android,Back鍵是否被重寫,測試點擊Back鍵后的反饋是否正確;應用數據從內存移動到SD卡后能否正常運行等;
5、push測試:Android:點擊home鍵,程序后臺運行時,此時接收到push,點擊后喚醒應用,此時是否可以正確跳轉;ios,點擊home鍵關閉程序和屏幕鎖屏的情況(紅點的顯示);
6、安裝卸載測試:Android的下載和安裝的平臺和工具和渠道比較多,ios主要有appstore,iTunes和testflight下載;
7、升級測試:可以被升級的必要條件:新舊版本具有相同的簽名;新舊版本具有相同的包名;有一個標示符區分新舊版本(如版本號),對于Android若有內置的應用需檢查升級之后內置文件是否匹配(如內置的輸入法)

25、使用中間件,中間件的作用!

具體地說,中間件屏蔽了底層操作系統的復雜性,使程序開發人員面對一個簡單而統一的開發環境,減少程序設計的復雜性,將注意力集中在自己的業務上,不必再為程序在不同系統軟件上的移植而重復工作,從而大大減少了技術上的負擔。

?26、什么是orm(對象關系映射)

解決面向對象與關系數據庫存在的互不匹配的現象技術,簡單說,orm是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

27、使用什么命令實現查看app手機內存

adb shell dumpsys meminfo 包名(com.mbox.cn)

?28、什么是ANR(applicaton not responding)

29、APP日志分析查找關鍵字?crash ANR Exception ERROR force closed

30、多線程:線程是程序中一個單一的順序控制流程.在單個程序中同時運行多個線程完成不同的工作,稱為多線程.

31、unittest工作原理

使用testcase 進行單元測試,通過testsuit 裝載用例 使用testrunner執行用例,testresult查看用例執行結果。

32、給你的一個測試項目,你怎么開展測試工作

在拿到項目后,在熟悉需求、原型圖后不必急著去設計用例,而是先需思考下測試思路,從哪方面下手,有哪些地方需要覆蓋到,支持哪些平臺,有哪些不同的常用場景,是否需要考慮到穩定性、性能等等,針對項目進行大概的測試規劃,再根據大概的規劃去逐個細化,最后形成用例,簡單來說就是:
1.明確測試任務
2.分析測試范圍
3.制定測試計劃和測試用例。

?33、什么是cdn?

cdn的全稱是 Content Delivery Network 即內容分發網絡,通俗的理解就網站加速,CPU均衡負載,可以解決跨運營商,跨地區,服務器負載能力過低,帶寬過少等帶來的網站打開速度慢等問題。

??34、怎么在VI模式下刪除指定數據?

1.使用ctrl+v或者v命令切換到塊模式

2.然后選中需要刪除的塊

3.使用x命令進行刪除

35、linux文件替換指定內容

表示操作的是文件,``括起來的grep命令,表示將grep命令的的結果作為操作文件。

/yyyy/xxxx/表示查找yyyy并替換為xxxx,后面跟g表示一行中有多個yyyy的時候,都替換,而不是僅替換第一個

另外,如果不需要查找子目錄,僅需要在當前目錄替換,用sed命令就行了,命令如下:sed -i s/xxxx/yyyy/g ./*.txt

?36、怎么查看linux下面的端口號

netstat ?-anp ?|grep ? 端口號

37、進程、線程、協程的區別

1、一個程序至少有一個進程,一個進程至少有一個線程

2、線程的劃分尺度小于進程(資源比進程少),使得多線程程序并發性高

3、進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大提高了程序的運行效率

4、線程不能獨立運行,必須依存于進程中

5、一個線程可以多個協程,一個進程也可以單獨擁有多個協程

6、線程進程都是同步機制,協程是異步機制

38、http協議與websocket協議的區別

http協議:每次都需要客戶端定時輪詢向服務器請求,然后服務器再向客戶端發送數據

websocket協議:允許服務端主動向客戶端推送數據,瀏覽器和服務器只需要完成一次握手,兩者之間就可以創建持久性的連接,并進行雙向數據傳輸

保持連接狀態:與http不同的是,websocket需要先創建連接,這就使得其成為一種有狀態的協議,之后通信時可以省略部分狀態信息。而http請求可能需要每個請求都攜帶狀態信息

39、?性能測試通常需要監控的指標包括:
1.服務器Linux(包括CPU、Memory、Load、I/O)。
2.數據庫:1.Mysql 2.Oracle(緩存命中、索引、單條SQL性能、數據庫[/url]線程數、數據池連接數)。
3.中間件:1.Jboss 2. Apache(包括線程數、連接數、日志)。
4.網絡: 吞吐量、吞吐率。
5.應用: jvm內存、日志、Full GC頻率。
6.監控工具(LoadRunner[/url]):用戶執行情況、場景狀態、事務響應時間、TPS等。
7.測試機資源:CPU、Memory、網絡、磁盤空間。
40、監控工具
性能測試通常采用下列工具進行監控:
1.Profiler。一個記錄log的類,阿里巴巴集團自主開發,嵌入到應用代碼中使用。
2.Jstat。監控java[/url]進程GC情況,判斷GC是否正常。
3.JConsole。監控java內存、java CPU使用率、線程執行情況等,需要在JVM參數中進行配置。
4.JMap。監控java程序是否有內存泄漏,需要配合eclipse插件或者MemoryAnalyzer來使用。
5.JProfiler。全面監控每個節點的CPU使用率、內存使用率、響應時間累計值、線程執行情況等,需要在JVM參數中進行配置。
6.Nmon。全面監控linux系統資源使用情況,包括CPU、內存、I/O等,可獨立于應用監控。
7.Valgrind。監控C/C++程序是否存在內存泄漏,基于linux環境。
8.Vmmap和ApplicationVerifier。監控C/C++程序是否存在內存泄漏,基于windows環境。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210037.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210037.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210037.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PADS9.5封裝庫轉換為AD庫

1、打開PADS Layout,File – Library,選中usr,如下圖: 2、封裝– 導入,選中你的 .d后綴文件(也就是PADS的封裝文件),打開。 3、元件 – 新建 – PCB封裝 - 分配 - 確定。 4、,選擇“斜線”…

Laya2.13.3接入第三方庫Socket.io

服務端: 1.新建一個文件夾,使用npm.init -y創建node工程 2.在控制臺使用以下代碼下載Socket.io npm install socket.io 3.創建一個app.js的文件,將以下代碼填入 import { Server } from "socket.io"; import { createServer }…

Linux學習筆記3 xshell(lnmp)

xshell能連接虛擬機的前提是真機能夠ping通虛擬機網址 裝OpenSSL依賴文件 [rootlocalhost nginx-1.12.2]# yum -y install openssl pcre-devel 依賴檢測[rootlocalhost nginx-1.12.2]# ./configure [rootlocalhost nginx-1.12.2]# yum -y install zlib [rootlocalhost n…

【騰訊云 HAI域探秘】StableDiffusionWebUI 讓我找到了宮崎駿動漫里的夏天

目錄 前言一、HAI二、應用場景三、構建 Stable Diffusion 模型1、新建HAI應用2、StableDiffusionWebUI(1)功能介紹(2)頁面轉中文(3)AI繪圖① 正向提示詞語② 反向提示詞③ “” 、“ AND”、“|” 用法④ 權…

自定義函數參數傳遞問題

最近,被一個函數調用參數傳遞的問題困惑了一陣。自己寫的解釋程序,一直用的好好的。在暗自得意的過程中,突然出現了bug,被潑了一頭冷水。當然,bug是在無意中被發現的,確定以后則可以編制專用的代碼來揭示它…

重積分的應用@物體對外部質點的引力問題

文章目錄 引力(*)分析兩質點間的引力公式三重積分計算引力薄片情形計算例 引力(*) 這里討論的是:空間一物體對于物體外一點 P 0 ( x 0 , y 0 , z 0 ) P_{0}(x_0,y_0,z_0) P0?(x0?,y0?,z0?)處單位質量的質點的引力 分析 仍然使用元素法, 設占有空間有界閉區域 Ω \Omega …

網絡協議與 IP 編址

網絡協議與 IP 編址 之前大概了解過了網絡的一些基礎概念,見文章: 網絡基礎概念。 之前簡單了解OSI模型分層: TCP/IP模型OSI模型TCP/IP對等模型應用層應用層表示層應用層會話層主機到主機層傳輸層傳輸層因特網層網絡層網絡層網絡接入層數據鏈…

jsonwebtoken生成token和解析

先上npm地址 jsonwebtoken:jsonwebtoken - npm express-jwt:express-jwt - npmps const express require(express); const jwt require(jsonwebtoken); const { expressjwt: expressJWT} require(express-jwt)const app express();// 設置密鑰 co…

愛智EdgerOS之深入解析數據庫模塊的Redis Client

一、Redis 簡介 無論是什么類型的應用,都少不了和數據打交道。尤其是一些復雜的應用場景,都少不了一個高效可靠的數據庫。例如日常開發中最常見的 MySQL 等關系型數據庫,讓數據的存儲、檢索輕松簡單起來,甚至可以輕松地處理百萬量…

51單片機c語言燒錄軟件,51單片機燒寫程序的方法

STC89C51是應用廣泛的51單片機,很多人都是通過該單片機入門學習的,單片機的學習需要勤動手。單片機需要燒寫程序,要用到相關的軟件和硬件。下面介紹一下51單片機燒寫程序的方法。 1 所用到的硬件工具 51單片機燒寫程序需要用到單片機的UART…

C語言數組(下)

我希望各位可以在思考之后去看本期練習,并且在觀看之后獨立編寫一遍,以加深理解,鞏固知識點。 練習一:編寫代碼,演?多個字符從兩端移動,向中間匯聚 我們依舊先上代碼 //編寫代碼,演?多個字…

數據庫Delete的多種用法

數據庫的Delete操作是用來刪除數據庫中的數據記錄的,它是數據庫操作中的一種重要操作,能夠幫助用戶刪除不需要的數據,以便保持數據庫的整潔和高效。在使用Delete操作時,需要注意確保操作的準確性和安全性,以免誤刪重要…

基于 Gin 的 HTTP 中間人代理 Demo

前面實現的代理對于 HTTPS 流量是進行盲轉的,也就是說直接在 TCP 連接上傳輸 TLS 流量,但是我們無法查看或者修改它的內容。當然了,通常來說這也是不必要的。不過對于某些場景下還是有必要的,例如使用 Fiddler 進行抓包或者監控其…

觸想嵌入式工業一體機在智能垃圾分類站的應用

1、行業發展背景 根據住建部給出的目標,到2025年前,全國地級及以上城市要基本建成垃圾分類處理系統。隨著垃圾分類政策在全國強制落地,終端執行層面面臨的最迫切問題是垃圾分類的準確性與社會參與意愿,而這兩點與垃圾分類操作的簡…

CNN發展史脈絡 概述圖整理

CNN發展史脈絡概述圖整理,學習心得,供參考,錯誤請批評指正。 相關論文: LeNet:Handwritten Digit Recognition with a Back-Propagation Network; Gradient-Based Learning Applied to Document Recogniti…

Python 中的數學運算(Python Math)

更多資料獲取 📚 個人網站:ipengtao.com Python中的math模塊是數學運算的重要工具,提供了豐富的數學函數和常數。本文將深入探討math模塊的功能和用法,使您能夠更好地利用Python進行數學運算。 Python的math模塊是一個強大的工具…

C51--OLED

GME12864-12 OLED寫入指令數據: 1、start()開始 2、slave address 存積地址:011110 xx 寫入:b 0111 1000 (0x78)(R / W位置為0時,表示寫入) 3、ACK 4、cotro…

操作系統———磁盤調度算法模擬

實驗目的 磁盤是可供多個進程共享的設備,當有多個進程都要求訪問磁盤是,應采用一種最佳調度算法,以使各進程對磁盤的平均訪問時間最小。目前最成用的磁盤調度算法有先來先服務(FCFS),最短尋道時間優先&…

Spring Boot的配置文件

配置文件的作用 整個項目中所有重要的數據都是在配置文件中配置,如數據庫的連接信息,項目的啟動端口,用于發現和定位問題的普通日志和異常日志等等。配置文件可以分為兩類 系統使用的配置文件(系統配置文件)&#xf…

【Kotlin】

Lambda 就是一小段可以作為參數傳遞的代碼。 因為正常情況下,我們向某個函數傳參時只能傳入變量,而借助Lambda 卻允許傳入一小段代碼。 Lambda 表達式的語法結構: {參數名1: 參數類型, 參數名2: 參數類型 -> 函數體}首先,最外…