一、基礎理論
1、開場介紹
介紹要領:個人基本信息、工作經歷、之前所做過的工作及個人專長或者技能優勢。揚長避短,一定要口語化,語速適中。溝通好的就多說幾句,溝通不好的話就盡量少說兩句。舉例如下:
面試官你好,我叫XXX,來貴公司面試軟件測試崗位,我之前從事軟件測試工作大概有X年了,一直在XXX公司做,工作中所涉及的技術主要包括:功能測試相關的兼容、易用等,此外還涉及接口及自動化方面的測試,但還是及功能測試為主,所涉及的項目比如WEB/APP/小程序這些都做過,大致的情況請面試官看下我的簡歷,希望我的情況能夠滿足貴公司的要求,謝謝!
2、公司的測試流程?
1、閱讀相關文檔(如產品PRD、UI設計、產品流程圖等)。
2、參加需求評審會議。
3、編寫測試計劃。(根據最終確定的需求文檔)
4、編寫測試用例(等價類劃分法、邊界值分析法等)。
5、用例評審,給出冒煙用例(主要參與人員:開發、測試、產品、測試leader)
6、開發冒煙測試,并發提測郵件
7、執行測試用例,記錄bug
8、驗證bug與回歸測試。
9、寫測試報告,給產品發驗收郵件,并配合驗收
10、版本上線
11、線上日志分析,跟蹤
3、你用過哪些用例設計方法?
白盒測試:邏輯覆蓋、循環覆蓋、基本路徑覆蓋
黑盒測試:邊界值分析法、等價類劃分、錯誤猜測法、因果圖法、狀態圖法、測試大綱法、隨機測試場景法
4、如何測試一個 紙杯?
1、功能度:用水杯裝水看漏不漏;水能不能被喝到
2、安全性:杯子有沒有毒或細菌
3、可靠性:杯子從不同高度落下的損壞程度
4、可移植性:杯子在不同的地方、溫度等環境下是否都可以正常使用
5、兼容性:杯子是否能夠容納果汁、白水、酒精、汽油等
6、易用性:杯子是否燙手、是否有防滑措施、是否方便飲用
7、用戶文檔:使用手冊是否對杯子的用法、限制、使用條件等有詳細描述
8、疲勞測試:將杯子盛上水(案例一)放 24 小時檢查泄漏時間和情況;盛上汽油(案例二)
放 24 小時檢查泄漏時間和情況等
9、壓力測試:用根針并在針上面不斷加重量,看壓強多大時會穿透
5、設計一個登錄頁面的用例(提供某個場景設計用例,重點!)
● 功能測試:正確輸入、為空輸入、字符類型校驗、長度校驗、密碼是否加密顯示、大寫提示、跳轉頁面是否成功、登出后用另一個賬號登錄
● UI:界面布局合理、風格統一、界面文字簡潔好理解、沒有錯別字
●?性能測試:打開登錄頁面需要幾秒、點擊登錄跳轉首頁需要幾秒、多次點擊、多人點擊
● 安全性:用戶名和密碼是否加密發送給服務器、錯誤登錄的次數限制(防止暴力破解)、一臺機器登錄多個用戶、一個用戶多方登錄、檢查元素能否看到密碼
● 兼容性測試:不同瀏覽器、不同的平臺(Windows Mac)、移動設備能否工作
● 易用性:輸入框可否tab鍵切換、回車能否登錄等
6、什么是代碼覆蓋率?
是軟件測試中的一種度量,描述程序中源代碼被測試的比例和程度,所得比例稱為代碼覆蓋率。在做單元測試時,代碼覆蓋率常常被拿來作為衡量測試好壞的指標,甚至,用代碼覆蓋率來考核測試任務完成情況,比如,代碼覆蓋率必須達到80%或 90%。
代碼覆蓋率 = 代碼的覆蓋程度,一種度量方式。
代碼覆蓋率的意義
- 分析未覆蓋部分的代碼,從而反推在前期測試設計是否充分,沒有覆蓋到的代碼是否是測試設計的盲點,為什么沒有考慮到?需求/設計不夠清晰,測試設計的理解有誤,工程方法應用后的造成的策略性放棄等等,之后進行補充測試用例設計。
- 檢測出程序中的廢代碼,可以逆向反推在代碼設計中思維混亂點,提醒設計/開發人員理清代碼邏輯關系,提升代碼質量。
- 代碼覆蓋率高不能說明代碼質量高,但是反過來看,代碼覆蓋率低,代碼質量不會高到哪里去,可以作為測試自我審視的重要工具之一。
覆蓋率數據只能代表你測試過哪些代碼,不能代表你是否測試好這些代碼。不要過于相信覆蓋率數據。不要只拿語句覆蓋率(行覆蓋率)來考核你的測試人員。測試人員不能盲目追求代碼覆蓋率,而應該想辦法設計更多更好的案例,哪怕多設計出來的案例對覆蓋率一點影響也沒有。
7、了解中間件嗎?有哪些?
1、服務注冊、發現:
常見的有zookeeper,主要功能是讓網關知道有哪些服務,還有服務的位置(注冊中心),服務是否正常運行等(健康檢查),與網關一起合作,將用戶發送的請求導向正確的處理模塊。
2、消息隊列:
消息隊列簡介很透徹的文章 https://www.zhihu.com/question/54152397
常見的有reids等,主要功能是當請求量過大時,可以將請求放入到隊伍中排隊,再一一去處理,需要注意的是redis會將隊列儲存在內存里,需要準備足夠的內存資源。
你為啥用MQ消息隊列?
1、用于“異步、削峰、解耦”三大場景
消息隊列有啥問題么?
1、比如消息重復消費、消息丟失、消息的順序消費等等
3、NG
4、dubbo
5、MQ
8、以后的發展規劃?
1.積累行業的業務知識
2.豐富測試技能如代碼編寫能力
3.提升開發小工具插件的能力
4.管理協調能力,獨立帶版本團隊
8、測試開發、與測試的區別?
1、一個側重業務,一個側重自動化或工具
2、測試開發的核心職能依然是測試
3、測試開發:利用開發能力解決測試工作中的問題,小到生成數據、并發模擬等工具的開發,大到整個自動化測試平臺的設計與實現,旨在提高效率,降低成本
9、什么是測試左移、右移?
測試左移:本質上是借助工具和測試手段更早地發現問題和預防問題。
1)需求:對需求、架構和設計模型的測試
2)開發:著重增加對單元、組件和服務層的測試
3)持續測試:自動化測試
落地:測試任務跟蹤,不僅僅只是跟蹤測試本身的工作,還需要介入到需求、技術方案、編碼的全過程。只有前序每一步都跟蹤到位,才能盡量避免測試過程中的不可控因素,從而保證產品質量
測試右移:
對測試同學來說,版本上線后需要持續關注線上監控和預警,及時發現問題并跟進解決,將影響范圍降到最低。
1)灰度發布:新版本線上測試;
2)服務監控:合理的性能監測、數據監控和預警機制;
3)用戶反饋:線上問題處理、跟蹤機制
10、adb常用命令有哪些?
adb devices, 獲取設備列表及設備狀態
adb connect 127.0.0.1:7555 連接設備
db get-state , 獲取設備的狀態
adb shell ps | grep adbd ,可以找到該后臺進程
adb install 用于安裝
adb uninstall 用于卸載
adb shell pm list package 獲取設備應用信息
adb logcat 在cmd窗口查看手機的Log日志
11、舉例說明項目推進的能力(針對個人評價的舉例說明)
● (例)推動開發解決菜單權限需退出登錄才可應用的問題。描述:XX項目上線后,由于權限更新導致用戶無法使用舊界面+用戶不懂得自己退出登錄以應用新菜單權限,線上多個用戶反饋平臺相關功能無法使用。處理:遠程操作+線上指導出現問題的用戶退出登錄,凌晨腳本批量強制用戶退出登錄。推進:在下一次版本中,推動開發處理菜單權限更新問題,以防每次更新菜單都出現用戶使用不了功能的問題。結果:處理為用戶登錄期間仍可使用舊界面,直到用戶退出重新登錄后,才應用新菜單權限
● 推動冒煙:冒煙不通,測試召開會議羅列項目不通的模塊、存在的問題,一一對應到每個人去跟進,得到解決的時間,后續項目群說明并艾特每個人跟進。測試準時驗收
● 推動文檔質量:在日常工作中遇到需求文檔、設計文檔、接口文檔不規范或不詳細的在絕大多數,這個時候就要通過溝通或以bug的形式,促使各個崗位將各自的文檔完善
● 結合自己的個人經驗,從問題描述+處理過程+推進表現+結果,一一說明
12、印象深刻的一個bug?
○ 隱藏得比較深的bug、影響比較大的bug、處理過程比較曲折的bug。根據自己的經驗描述:如何發現的、如何處理、影響、結果、反思。
○ 舉例說明:如升級版本兼容性問題、接口安全性問題、數據庫安全性問題、服務器資源占用溢出問題、代碼邏輯問題等
13、你們公司是不是敏捷開發?介紹一下敏捷開發?
○ 是,敏捷快速迭代、多版本同時迭代
○ 敏捷開發屬于增量式開發,對于需求范圍不明確、需求變更較多的項目而言可以很大程度上響應和擁抱變化、主張簡單、擁抱變化、可持續性、遞增的變化、高質量的工作、快速反饋、軟件是你的主要目標
14、復盤會議的主要內容有哪些?
○ 這點需要結合自己平時參與的項目會議舉例說明。如線上bug分析、優化改進策略、bug優先級等等
15、app的兼容性怎么測,app的接口測試怎么測?
● 系統兼容(ios、安卓)、機型兼容(iPhone、華為、小米、三星、vivo、OPPO)、分辨率兼容、軟件本身向前向后兼容
● 接口測試:獲取接口文檔,使用fiddler抓包工具獲取接口的請求方式、url、請求參數、返回參數,然后使用postman、jmeter進行測試
16、web端測試和app端測試有何不同(常見)
● 系統結構方面
○ web項目,b/s架構,基于瀏覽器的;web測試只要更新了服務器端,客戶端就會同步會更新
○ app項目,c/s結構的,必須要有客戶端;app 修改了服務端,則客戶端用戶所有核心版本都需要進行回歸測試一遍
● 兼容方面
○ web項目:a. 瀏覽器(火狐、谷歌、IE等)b. 操作系統(Windows7、Windows10、Linux等)
○ app項目:a. 設備系統: iOS(ipad、iphone)、Android(三星、華為、聯想等) 、Windows(Win7、Win8)、OSX(Mac)b. 手機設備可根據 手機型號、分辨率不同
● 性能方面
○ web項目 需監測 響應時間、CPU、Memory
○ app項目 除了監測 響應時間、CPU、Memory外,還需監測流量、電量等
● 相對于 Wed 項目,APP有專項測試
○ 干擾測試:中斷,來電,短信,關機,重啟等
○ 弱網絡測試(模擬2g、3g、4g,wifi網絡狀態以及丟包情況);網絡切換測試(網絡斷開后重連、3g切換到4g/wifi 等)
○ 安裝、更新、卸載
■ 安裝:需考慮安裝時的中斷、弱網、安裝后刪除安裝文件等情況
■ 卸載:需考慮 卸載后是否刪除app相關的文件
■ 更新:分強制更新、非強制更新、增量包更新、斷點續傳、弱網狀態下更新
● 界面操作:關于手機端測試,需注意手勢,橫豎屏切換,多點觸控,前后臺切換
● 安全測試:安裝包是否可反編譯代碼、安裝包是否簽名、權限設置,例如訪問通訊錄等
● 邊界測試:可用存儲空間少、沒有SD卡/雙SD卡、飛行模式、系統時間有誤、第三方依賴(QQ、微信登錄)等
● 權限測試:設置某個App是否可以獲取該權限,例如是否可訪問通訊錄、相冊、照相機等
二、測試工具篇
1、介紹一下測試中常用的工具(基礎,掌握!)
○ 需求問題跟進、測試計劃、風險評估登記、測試報告、復盤會議:wiki
○ 測試用例:Xmind編寫,testlink管理
○ 測試執行:elk、Xshell等
○ bug管理:Jira、bugfree、禪道等
○ 接口相關:charles、fiddler、postman、jmeter等
○ 自動化相關:selenium、appium、pytest、locust、jmeter等
2、用什么工具對用例進行管理
○ testlink管理用例的一般步驟:新建計劃、新建版本、上傳xml文件、添加測試用例到測試計劃中、分配測試用例給開發、查看用例執行報告
○ xmind:xxxxxx
○ excel:xxxxxxx
3、怎么使用elk定位日志
○ 查看產品推送是否成功。產品從A平臺推送到B平臺,根據A平臺的鏈接id,搜索對應的日志。搜索不到,則為A平臺推送失敗。搜索到了,查看推送的狀態,進一步判斷問題所在。
○ 使用官方文檔,可以進一步了解elk日志查看
4、Xshell如何登錄,如何切換目錄
○ 使用ssh密鑰登錄:生成密鑰公鑰和私鑰-上傳公鑰到服務器-配置Xshell使用密鑰認證方式登錄到服務器(參考:https://www.cnblogs.com/Black-rainbow/articles/9418713.html)34
○ 使用賬號密碼登錄:配置中輸入被連接服務器的賬號、密碼、ip及端口連接
○
5、埋點測試怎么測試,使用什么工具,數據要不要入庫
○ 使用charles、fiddler抓包,查看對應的來源記錄、事件等必要參數是否正確,查看數據庫記錄是否正確
6、介紹fiddler和postman的區別
○ fiddler主要是抓包,postman主要進行接口請求
7、怎么使用postman進行多個接口請求?
○ 將多個接口請求歸納到一個集合里,在集合的右上角點擊展開箭頭,點擊run
8、日常工作中jmeter是怎么用的?
○ 接口測試:通過對指定接口進行請求訪問,驗證數據出入的準確性與安全性
○?性能測試:編寫對應的測試集,通過腳本控制線程數,實現逐步加壓等
○ 結合自己項目經驗,沒有經驗千萬不能盲目舉例亂說,避免坑自己
9、例舉熟悉的自動化測試工具,并說明其實現原理
○ selenium 過程如下:
ⅰ. 運行用python寫好的selenium腳本,它會像web service中發送一個http請求
ⅱ. 瀏覽器驅動中的web service 會根據這個請求生成對應的js腳本,因為不同的瀏覽器,相同的操作生成的js腳本會有所不同,因此不同的瀏覽器要有不同的驅動
ⅲ. js腳本驅動瀏覽器,產生各種操作,并返回給web service
ⅳ. web service將結果通過http響應的形式返回給客戶端
○ appium的加載過程
ⅰ. 調用Android adb完成基本的系統操作
ⅱ. 向Android上部署bootstrap.jar
ⅲ. bootstrap.jar Forward Android的4723端口到PC機器上
ⅳ. PC上監聽端口接收請求,使用webdriver協議
ⅴ. 分析命令并通過forward 端口發給bootstrap.jar
ⅵ. bootstrap.jar接收請求并把命令發給uiautomator
ⅶ. uiautomator執行命令
三、測試管理題目
1. 如果項目周期很短,測試人力匱乏,你是怎么協調的?
答: 依據代碼review的結果和影響范圍,對測試內容進行適當的裁剪。
借助自動化工具的支持,提高測試案例的執行效率。
調整組內任務的優先級,進行人力協調,優先投入最緊要的項目。
必要的情況下加班
2. 你團隊的測試如何進行分工?
答:業務壓力大的時候,業務為主,技術為輔
業務少的時候,技術為主,業務也不丟
老人帶新人,新人幫老人,選出業務領頭人和技術領頭人,形成團隊梯隊
3. 對于團隊成員,你是如何打kpi的?
答: 成員自評和一對一溝通,了解成員的想法對于老黃牛類型的,吃苦賣力但是沒有突破的,給中等績效
對于老白兔類型的,混吃等死,計劃淘汰
對于獨狼類型的,搶食,不聽指揮的,果斷淘汰
對于頭狼類型的,吃苦賣力,有驚喜,給優秀績效
4、做了哪些來提升版本質量?
1.測試左移,右移
2.需求分析階段,找出業務復雜點重點設計測試用例
3.提測要有輸出,整理修改哪些功能,自測,代碼檢查
4.回歸測試,自動化測試來輔助
5.bug回溯與分析總結
6.需求分享與總結
7.代碼覆蓋率檢查用例是否有遺漏場景
5、如何做好軟件測試管理人員?
1.具有較好的人格魅力和親和力
2.最好具備較強的測試技術水平
3.樂意處理下屬在項目中碰到的困難
4.勇于承擔責任,把功勞推給測試團隊
5.對下屬多一些寬容和生活關心
6.力爭多給下屬爭取福利
7.多給下屬鍛煉機會,培養下屬能力
8.多給下屬精神鼓勵,獎懲公私分明
9.知人善用,用人之長,合理分工
10.較強的行業和業務知識背景
四、接口測試題目
1、如何使用抓包工具fiddler、Charles對APP抓包?
Fiddler可以抓取支持http代理的任意程序的數據包
如果要抓取https會話,要先安裝證書。默認端口是8888
1.設置fiddler https
2.電腦Fiddler和手機設備需要在同一個局域網,查看電腦IP,cmd命令行執行ipconfig查看
3.設置代理IP,手機上打開無線局域網的設置
4.通過瀏覽器/Safari下載安裝證書
5.安裝了證書不是默認啟用的,而是需要手動開啟。設置-通用-關于本機-證書信任設置
iOS與Android的區別是:iOS需要安裝證書,Android不需要
2、給你一個接口怎么測試?
五、自動化測試題目
1、自動化測試的目的?
a.用來回歸
b.用來監控系統穩定性
c.提高工作效率
2、三種等待時間的區別和應用場景?
1、強制等待sleep(10)
2、隱式等待
driver.implicitly_wait(10)
1)在每個頁面加載的時候自動等待
2)一般在打開瀏覽器后進行聲明
3)在設置等待時間內頁面都沒有加載完,就超時拋出異常
3、顯示等待
wait = WebDriverWait(driver,10,0.5)
1)針對于某個特定的元素設置的等待時間,在設置時間內,默認每隔一段時間檢測一次當前頁面某個元素是否存在
2)如果在規定的時間內找到了元素,則直接執行,即找到元素就執行相關操作
3)如果超過設置時間檢測不到則拋出異常。
4)默認檢測頻率為0.5s,默認拋出異常為:NoSuchElementException
3、之前項目做過自動化測試嗎?如何進行推進的?
來源:https://testerhome.com/articles/25754
前端 UI 方面我是用 selenium 這個開源框架加上 Python 基礎架構來實現自動化
實現原理:用一些單元測試框架 pytest去組織我們的測試用例
數據驅動:比如說我們用 execl 表去做一個數據驅動,然后我們用到一些關鍵字驅動
對你公司項目產生了什么樣的價值?
成為我們公司的一個固定資產。
不管是開發、產品、運營,都會用到咱們的這個自動化腳本。可以幫我們線上監控,幫我們自動化回歸,幫我們造數據,幫我們跑數據,提高了迭代效率,釋放了很多人力。
4、jmeter什么是采樣器(samplers)和線程組(thread group)?
線程組:對于任何測試計劃,線程組元件都是 JMeter 的開始部分。這是 JMeter 的重要原件,你可以再其中設置多個用戶和時間來加載線程組中給出的所有用戶。
采樣器:采樣器生成一個或多個采樣結果,這些采樣結果具有許多屬性,例如經過時間、數據大小等。采樣器允許 JMeter 通過采樣器將特定類型的請求發送到服務器,線程組決定需要發出的請求類型,一些有用的采樣器包括 HTTP 請求,FTP 請求、JDBC 請求等
5、自動化測試流程?
1.編寫自動化測試計劃
2.設計自動化測試用例
3.編寫自動化測試框架和腳本
4.調試并維護腳本
5.無人值守測試
6.后期腳本維護(添加用例、開發更新版本)
6、你覺得自動化測試的價值在哪里?你們公司為什么要做自動化測試?
引用自動化測試之后,能代替大量繁瑣的回歸測試工作,把業務測試人員解放出來,既而讓業務測試人員把精力集中在復雜的業務功能模塊上,自動化測試一般是對穩定下來的功能進行自動化,保證不會因為產品的更新導致之前穩定下來的功能出現BUG
7、什么是PO模式?
PO是Page Object 模式的簡稱,它是一種設計思想,意思是,把一個頁面,當做一個對象,頁面的元素和元素之間操作方法就是頁面對象的屬性和行為,PO模式一般使用三層架構,分別為:基礎封裝層BasePage,PO頁面對象層,TestCase測試用例層。
8、自動化代碼中,用到了哪些設計模式
○ 單例模式
○ 工廠模式
○ PO模式
○ 數據驅動模式
9、什么是斷言
○ 檢查一個條件,如果它為真,就不做任何事,用例通過。如果它為假,則會拋出AssertError并且包含錯誤信息。
10、UI自動化中,如何做集群
○ selenium grid,分布式執行用例
○ appium 使用stf管理多設備
○ docker+k8s管理集群
11、怎么對含有驗證碼的功能進行自動化測試
○ 萬能驗證碼
○ 測試環境屏蔽驗證
○ 其他操作不推薦
12、如何優化和提高selenium腳本的執行速度
○ 盡量使用by_css_selector()方法:by_css_selector()方法的執行速度比by_id()方法的更快,因為源碼中by_id()方法會被自動轉成by_css_selector()方法處理
○ 使用等待時,盡量使用顯示等待,少用sleep(),盡量不用隱式等待
○ 盡量減少不必要的操作:可以直接訪問頁面的,不要通過點擊操作訪問
○ 并發執行測試用例:同時執行多條測試用例,降低用例間的耦合
○ 有些頁面加載時間長,可以中斷加載
13、接口測試能發現哪些問題
○ 可以發現很多在頁面上操作發現不了的 bug
○ 檢查系統的異常處理能力
○ 檢查系統的安全性、穩定性
○ 前端隨便變,接口測好了,后端不用變
○ 可以測試并發情況,一個賬號,同時(大于 2 個請求)對最后一個商品下單,或不同賬號,對最后一個商品下單
○ 可以修改請求參數,突破前端頁面輸入限制(如金額)
14、selenium 中隱藏元素如何定位?
○ 如果單純的定位的話,隱藏元素和普通不隱藏元素定位沒啥區別,用正常定位方法就行了,這個很多面試官也搞不清楚
○ 元素的屬性隱藏和顯示,主要是 type="hidden"和 style="display: none;"屬性來控制的,接下來在元素屬性里面讓它隱藏,隱藏元素可以正常定位到,只是不能操作(定位元素和操作元素是兩碼事,很多初學者傻傻分不清楚),操作元素是 click,clear,send_keys 這些方法
○ JS 操作隱藏元素
15、如何判斷一個頁面上元素是否存在?
○ 方法一:用 try…except…
○ 方法二:用 elements 定義一組元素方法,判斷元素是否存在,存在返回 True,不存返回 False
○ 方法三:結合 WebDriverWait 和 expected_conditions 判斷(推薦)
16、如何提高腳本的穩定性
○ 不要右鍵復制 xpath(十萬八千里那種路徑,肯定不穩定),自己寫相對路徑,多用 id 為節點查找
○ 定位沒問題,第二個影響因素那就是等待了,sleep 等待盡量少用(影響執行時間)
○ 定位元素方法重新封裝,結合 WebDriverWait 和 expected_conditions 判斷元素方法,自己封裝一套定位元素方法
17、如何定位動態元素
○ 動態元素有 2 種情況,一個是屬性動態,比如 id 是動態的,定位時候,那就不要用 id 定位就是了
○ 還有一種情況動態的,那就是這個元素一會在頁面上方,一會在下方,飄忽不定的動態元素,定位方法也是一樣,按 f12,根據元素屬性定位(元素的 tag、name的步伐屬性是不會變的,動的只是 class 屬性和 styles 屬性)
18、如何通過子元素定位父元素
○ 使用element.parent方法
19、平常遇到過哪些問題? ?如何解決的
○ 可以把平常遇到的元素定位的一些坑說下,然后說下為什么沒定位到,比如動態id、有 iframe、沒加等待等因素
20、一個元素明明定位到了,點擊無效(也沒報錯),如果解決?
○ 使用 js 點擊,selenium 有時候點擊元素是會失效
21、**測試的數據你放在哪? **
○ 對于賬號密碼,這種管全局的參數,可以用命令行參數,單獨抽出來,寫的配置文件里(如 ini)
○ 對于一些一次性消耗的數據,比如注冊,每次注冊不一樣的數,可以用隨機函數生成
○ 對于一個接口有多組測試的參數,可以參數化,數據放 yaml,text,json,excel都可以
○ 對于可以反復使用的數據,比如訂單的各種狀態需要造數據的情況,可以放到數據庫,每次數據初始化,用完后再清理
○ 對于郵箱配置的一些參數,可以用 ini 配置文件
○ 對于全部是獨立的接口項目,可以用數據驅動方式,用 excel/csv 管理測試的接口數據
○ 對于少量的靜態數據,比如一個接口的測試數據,也就 2-3 組,可以寫到 py腳本的開頭,十年八年都不會變更的
22、什么是數據驅動,如何參數化?
○ 參數化的思想是代碼用例寫好了后,不需要改代碼,只需維護測試數據就可以了,并且根據不同的測試數據生成多個用例
23、其他接口都需要登錄接口的信息,怎么去讓這個登錄的接口只在其他接口調用一次
○ 使用單例模式
○ 使用自定義緩存機制
○ 使用測試框架中的setup機制
○ pytest中fixture機制
24、接口產生的垃圾數據如何清理
○ 造數據和數據清理,需用 python 連數據庫了,做增刪改查的操作測試用例前置操作,setUp 做數據準備后置操作,tearDown 做數據清理
25、怎么用接口案例去覆蓋業務邏輯?
○ 考慮不同的業務場景,一個接口走過的流程是什么樣的,流程的邏輯是什么樣的,什么樣的參數會有什么樣的結果,多場景覆蓋
六、性能測試題目
1、做性能測試,你需要關注哪些指標?
1.從用戶角度出發響應時間
2.站在管理員的角度考慮需要關注的性能點
(1)、 響應時間
(2)、 服務器資源使況是否合理
(3)、 應用服務器和數據庫資源使用是否合理
(4)、 系統能否實現擴展
(5)、 系統最多支持多少用戶訪問、系統最大業務處理量是多少
(6)、 系統性能可能存在的瓶頸在哪里
(7)、 更換那些設備可以提高性能
(8)、 系統能否支持7×24小時的業務訪問
3.站在開發(設計)人員角度去考慮
(1)、 架構設計是否合理
(2)、?數據庫設計是否合理
(3)、 代碼是否存在性能方面的問題
(4)、 系統中是否有不合理的內存使用方式
(5)、 系統中是否存在不合理的線程同步方式
(6)、 系統中是否存在不合理的資源競爭
4.站在測試工程師角度考慮
(1)連接超時
(2)崩潰
(3)系統交互
(4)弱網下的運行情況
(5) CPU使用問題
2、java語言的服務性能測試的時候,用什么命令打印線程棧信息?
jstack
3、性能測試指標包括哪些
○ 最大并發用戶數,HPS(點擊率)、事務響應時間、每秒事務數、每秒點擊量、吞吐量、CPU使用率、物理內存使用、網絡流量使用等。
○ 前端需主要關注的點是:
■ 響應時間:用戶從客戶端發出請求,并得到響應,以及展示出來的整個過程的時間。
■ 加載速度:通俗的理解為頁面內容顯示的快慢。
■ 流量:所消耗的網絡流量。
○ 后端需主要關注的是:
■ 響應時間:接口從請求到響應、返回的時間。
■ 并發用戶數:同一時間點請求服務器的用戶數,支持的最大并發數。
■ 內存占用:也就是內存開銷。
■ 吞吐量(TPS):Transaction Per Second, 每秒事務數。在沒有遇到性能瓶頸時:TPS=并發用戶數*事務數/響應時間。
■ 錯誤率:失敗的事務數/事務總數。
■ 資源使用率:CPU占用率、內存使用率、磁盤I/O、網絡I/O。
■ 從性能測試分析度量的度角來看,主要可以從如下幾個大的維度來收集考察性能指標:
■ 系統性能指標、資源性能指標、穩定性指標
4、如果一個需求沒有明確的性能指標,要如何開始進行性能測試?
○ 先輸出業務數據,如pv、pu、時間段等,計算出大概的值,然后不斷加壓測到峰值
5、介紹JMeter聚合報告包括哪些內容
○ 請求名、線程數、響應時間(50 95 99 最小 最大)錯誤率、吞吐量
6、如果有一個頁面特別卡頓,設想一下可能的原因
○ 后臺:接口返回數據慢,查詢性能等各種問題
○ 前端:使用chrome工具調試,判斷js執行久或是其他問題
○ 網絡問題
7、說一說項目中的實際測試內容
○ 根據自己項目中的經驗實話實說,有沒有經驗很容易露餡
8、介紹一下JMeter進行性能測試的過程
○ www.baidu.com98
9、介紹一下JMeter和LoadRunner的區別
○ www.baidu.com98
七、安全測試題目
八、測試框架搭建
九、python面試題
1、python 裝飾器,作用,用法
python的裝飾器本質上是一個Python函數,它可以讓其他函數在不需要做任何代碼變動的前提下增加額外功能,裝飾器的返回值也是一個函數對象。簡單的說裝飾器就是一個用來返回函數的函數。
它經常用于有切面需求的場景,比如:插入日志、性能測試、事務處理、緩存、權限校驗等場景。裝飾器是解決這類問題的絕佳設計,有了裝飾器,我們就可以抽離出大量與函數功能本身無關的雷同代碼并繼續重用。
概括的講,裝飾器的作用就是為已經存在的對象添加額外的功能。
什么是裝飾器語法糖?
python提供了@符號作為裝飾器的語法糖,使我們更方便的應用裝飾函數。但使用語法糖要求裝飾函數必須return一個函數對象
2、python 的垃圾回收機制?
Python 中的垃圾回收機制中有三部分內容:“引用計數”、“標記 - 清除”、“分代回收”
來源:https://testerhome.com/topics/29769
3、python中類方法,類實例方法,靜態方法的區別
○ 實例方法:由對象調用;至少一個self參數;執行普通方法時,自動將調用該方法的對象賦值給self;
○ 類方法:由類調用; 至少一個cls參數;執行類方法時,自動將調用該方法的類復制給cls;
○ 靜態方法:由類調用;無默認參數;
4、dict和tuple及list的區別(這里列的是主要區別,面試足夠)
○ tuple是不可變對象,list和dict都是可變對象,這里的不可變指的是指向地址不可變
○ list是有序的,dict是無序的,不可存放有序集合
○ dict查找速度快,不管有多少個元素時間都一樣,list查找速度慢,需要有序查找
○ dict的key為不可變對象,且不可重復,list則可以重復,存放任意對象
5、json和dict的區別
○ json是一種數據格式,純字符串。dict是一種完整的數據結構
○ dict是一個完整的數據結構,是對Hash Table這一數據結構的一種實現,是一套從存儲到提取都封裝好了的方案。它使用內置的哈希函數來規劃key對應value的存儲位置,從而獲得O(1)的數據讀取速度。
○ json的key只能是字符串,python的dict可以是任何可hash對象(不可變對象)
○ json的key可以是有序、可重復的;dict的key不可重復,且無序。
○ json任意key存在默認值undefined,dict默認沒有默認值
○ json訪問方式可以是[],也可以是.,遍歷方式分in、of;dict的value僅可以下標訪問
○ dict可以嵌套tuple,json里只有數組
6、python會不會出現內存泄漏,為什么
○ 當對象之間互相引用的時候再刪除的時候,可能會造成無法釋放對象的情況,出現泄漏
○ 上面為個人了解,如有其它請補充
7、python的同步和異步
○ 直接得到最終結果的結果,就是同步調用。
○ 不直接得到的最終的結果,就是異步調用。
○ 同步與異步區別在于:調用者是否得到了想要的最終結果。
8、常見手撕代碼
十、數據庫面試題
1、mysql 刪除語句有哪些?
1)drop 語句,用來刪除數據庫和表:例子【drop database db;drop table tb】、
2)delete 語句,用來刪除表中的字段:例子【delete from tb where id=1】
3)用 truncate 來刪除表中的所有字段:例子【truncate table tb】
2、數據庫事務、主鍵與外鍵的區別?
數據庫的事務:
事務即用戶定義的一個數據庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位,
它具有四個特性,ACID,原子性,一致性,隔離性,持續性
主鍵和外鍵的區別:
1、主鍵是能確定一條記錄的唯一標識,不能重復,能唯一確定該條數據;
2、外鍵用于與另一張表的關聯,是能確定另一張表記錄的字段,用于保持數據的一致性
3、工作中常使用的SQL語法有哪些?
○ create table、create view、 select from where、insert into、update set values、delete、alter、order by、having
4、數據庫存儲過程
○ 一組數據庫操作命令,當作是自己寫的一個方法,一系列步驟自己去封裝(個人理解)
5、SQL常見查詢語句編寫
(此處僅舉例常見的查詢語句,如有更多坑,希望補充)
○ 查詢所有學生的數學成績,顯示學生姓名 name, 分數, 由高到低。SELECT a.name, b.score FROM student a, grade b WHERE a.id = b.id AND kemu = ‘數學’ ORDER BY score DESC;
○ 統計每個學生的總成績(由于學生可能有重復名字),顯示字段:學生 id,姓名,總成績。SELECT a.id, a.name, c.sum_score from student a, (SELECT b.id, sum(b.score) as sum_score FROM grade b GROUP BY id) c WHERE a.id = c.id ORDER BY sum_score DESC;
○ 列出各門課程成績最好的學生, 要求顯示字段: 學號,姓名,科目,成績SELECT c.id , a.name, c.kemu, c.score FROM grade c, student a,(SELECT b.kemu, MAX(b.score) as max_score FROM grade b GROUP BY kemu) t WHERE c.kemu = t.kemu AND c.score = t.max_score AND a.id = c.id
6、慢查詢是什么意思?
○ 開啟慢查詢日志,可以讓MySQL記錄下查詢超過指定時間的語句,通過定位分析性能的瓶頸,才能更好的優化數據庫系統的性能。
7、導致數據庫性能差的可能原因有哪些?
○ 硬件環境問題,如磁盤IO
○ 查詢語句問題,如join、子查詢、沒建索引
○ 索引失效,建了索引,查詢的時候沒用上
○ 查詢關聯了太多的join
○ 服務器關聯緩存,線程數等
○ 表中存在冗余字段,在生成笛卡爾積時耗費多余的時間
8、redis緩存應用場景
○ 需要將數據緩存在內存中,提升查詢效率
○ 本人沒經驗,希望補充
9、怎么定位redis緩存失效問題(緩存壞了)
○ 不知道,看不懂
十一、shell和liunx面試題
1、介紹Linux管道?
舉例:ls -a | grep mysql
說明:就是把前一個命令的結果當成后一個命令的輸入。結合本例就是先顯示所有的文件,然后再用grep命令在ls的結果中查找包含mysql的文件
2、工作中常用的Linux命令有哪些?
○ awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du
3、什么命令可以幫助Linux執行Windows上傳的腳本
○ 改變編碼格式
○ vim test.sh
○ :set ff?// 顯示dos的話
○ :set ff=unix:wq
4、簡述linux三劍客
○ grep命令:根據用戶指定的模式pattern對目標文本進行過濾,顯示被模式匹配到的行,grep [options] pattern [file],常用參數:
■ -v 顯示不被pattern匹配到的行
■ -i 忽略字符的大小寫
■ -n 顯示匹配的行號
■ -c 統計匹配的行數
■ -o 僅顯示匹配到的字符串
■ -E 使用ERE,相當于egrep(可以識別更多的正則表達式規則)
○ sed:流編輯器,用來處理一行數據。將一行數據存儲在模式空間中->用sed命令處理->送入屏幕->清空空間,常用參數:
■ -h 顯示幫助
■ -n 僅顯示script處理后的結果
■ -e 指定的腳本來處理輸入的文本文件
■ -f 以指定的腳本文件來處理
■ 常用動作
● a: 新增 sed -e ‘4 a newline’
● c: 取代 sed -e ‘2,5c No 2-5 number’
● d: 刪除 sed -e ‘2,5d’
● i: 插入 sed -ed ‘2i newline’
● p: 打印 sed -n ‘/root/p’
● s: 取代 sed -e ‘s/old/new/g’
● g: 代表全局
○ awk:把文件逐行的讀入,以空格為默認分隔符將每行切片。 把行作為輸入,并賦值給$0->將行切段,從$1開始->對行匹配正則/執行動作->打印內容,awk ‘pattern + action’ [filenames],常用語法:
■ filename awk瀏覽的文件名
■ begin 處理文本前要執行的操作
■ end 處理文本之后要執行的操作
■ fs 設置輸入域分隔符,等價于命令行-F選項
■ nf 瀏覽記錄的域的個數(列數)
■ nr 已讀的記錄數(行數)
■ 常用參數
● ofs 輸出域分隔符
● ors 輸出記錄分隔符
● rs 控制記錄分隔符,換行標志
● $0 整條記錄
● $1 第一條分隔后的記錄
5、如何通命令定位Linux服務器下的日志?
○ 如果要監控日志,那么使用tail -f | grep xxx命令,過濾需要的字段
○ 如果在完整日志中查看內容,使用cat xxx.log | grep xxxx | awk '{print $1}'等命令過濾自己需要的內容
6、簡述項目中的環境搭建和維護
○ 結合自身經驗先從系統安裝開始,如常用的centos和Ubuntu說起,系統安裝主要是磁盤分區和磁盤陣列問題
○ 基礎環境依賴,如MySQL、Redis、jenkins、docker、項目中用到的其他依賴環境等
○ 維護方便主要從遇到的錯誤說起,如無法遠程連接、服務器加固等
十二、計算機網絡面試題
1、七層模型有哪些,分別有哪些協議?
1)應用層包含的主要協議:
FTP(文件傳送協議)、
Telnet(遠程登錄協議)、
DNS(域名解析協議)、
SMTP(郵件傳送協議),
POP3協議(郵局協議),
HTTP協議(Hyper Text Transfer Protocol)
2)表示層
3)會話層
4)傳輸層
包含的主要協議:
TCP協議(Transmission Control Protocol,傳輸控制協議)、
UDP協議(User Datagram Protocol,用戶數據報協議);
重要設備:網關
5)網絡層
包含的主要協議
IP協議(Internet Protocol,因特網互聯協議);
ICMP協議(Internet Control Message Protocol,因特網控制報文協議);
ARP協議(Address Resolution Protocol,地址解析協議);
RARP協議(Reverse Address Resolution Protocol,逆地址解析協議)
6)數據鏈路層
數據鏈路層為網絡層提供可靠的數據傳輸
主要的協議:以太網協議
基本數據單位為:幀
兩個重要設備名稱:網橋和交換機
7)物理層
中繼器(Repeater,也叫放大器)和集線器
2、HTTP網絡請求返回碼分別表示?
● 1xx(臨時響應)
● 2xx (成功)
● 3xx (重定向)
● 4xx(請求錯誤)
● 5xx(服務器錯誤)
來源:https://blog.csdn.net/G_spring/article/details/85071737
3、輸入url到網頁顯示出來的全過程
a. 輸入網址
b. DNS解析
c. 建立tcp連接
d. 客戶端發送HTTP請求
e. 服務器處理請求
f. 服務器響應請求
g. 瀏覽器展示HTML
h. 瀏覽器發送請求獲取其他在HTML中的資源。
4、http和https的區別
○ https里面是要有證書的,http并沒有證書,證書的作用是證明你是這個網站的擁有者,誰去證明,最頂級的CA去幫你證明,這些頂級的CA都是瀏覽器、操作系統本身就自動幫你集成,而且自動添加到設置信任里面去
○ https要兼顧安全+性能的方面,由于對稱式加密雖然速度很快,但是安全性特別的低,因為雙方要規定對稱式加密的秘鑰,別人都無法知道,但你怎么能確保別人不知道你的秘鑰呢,因此需要有非對稱式加密去保證安全,但非對稱式加密速度又很慢,如果客戶端和服務器端都用非對稱式加密,網絡得卡死了。所以當雙方建立好了非對稱加密后,再約定一個隨機數,等大家都非對稱解密了之后呢,就拿到只有對方知道的唯一隨機數(秘鑰),就可以用秘鑰來進行對稱式加密和解密了
5、HTTP的報文結構
○ HTTP請求報文:一個HTTP請求報文由請求行、請求頭部、空行和請求數據4個部分組成
○ HTTP響應報文:HTTP響應也由三個部分組成,分別是:狀態行、消息報頭、響應正文
6、htt常見的響應狀態碼
○ 200 請求已成功,請求所希望的響應頭或數據體將隨此響應返回。
○ 201 請求已經被實現,而且有一個新的資源已經依據請求的需要而建立,且其 URI 已經隨 Location 頭信息返回
○ 202 服務器已接受請求,但尚未處理
○ 301 (永久移動) 請求的網頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
○ 302 (臨時移動) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。
○ 303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。
○ 304 (未修改) 自從上次請求后,請求的網頁未修改過。 服務器返回此響應時,不會返回網頁內容。 ? 305 (使用代理) 請求者只能使用代理訪問請求的網頁。 如果服務器返回此響應,還表示請求者應使用代理。
○ 307 (臨時重定向) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求。
○ 401 當前請求需要用戶驗證。如果當前請求已經包含了 Authorization 證書,那么 401 響應代表著服務器驗證已經拒絕了那些證書
○ 403 服務器已經理解請求,但是拒絕執行它。與 401 響應不同的是,身份驗證并不能提供任何幫助,而且這個請求也不應該被重復提交
○ 404 請求失敗,請求所希望得到的資源未被在服務器上發現
○ 500 服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在服務器的程序碼出錯時出現。
○ 501 服務器不支持當前請求所需要的某個功能。當服務器無法識別請求的方法,并且無法支持其對任何資源的請求。
○ 502 作為網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。
○ 503 由于臨時的服務器維護或者過載,服務器當前無法處理請求。這個狀況是臨時的,并且將在一段時間以后恢復。
7、cookie和session機制的區別
○ cookies 數據保存在客戶端,session 數據保存在服務器端;
○ cookies 可以減輕服務器壓力,但是不安全,容易進行 cookies 欺騙;
○ session 較安全,但占用服務器資源
8、TCP和UDP的區別
○ TCP:面向連接,可靠的,速度慢,效率低
○ UDP:無連接、不可靠、速度快、效率高
9、TCP為什么是三次握手和四次揮手
○ 三次握手能保證數據可靠傳輸又能提高傳輸效率。若握手是兩次:如果只是兩次握手, 至多只有連接發起方的起始序列號能被確認, 另一方選擇的序列號則得不到確認。
○ 要保證雙方都關閉了連接。因為TCP是全雙工的,就是要等到兩邊都發送fin包確認雙方都沒有數據傳輸后才關閉
10、TCP為什么最后揮手后會有time_wait
○ 為了保證可靠的斷開TCP的雙向連接,確保足夠的時間讓對方收到ACK包。若客戶端回復的ACK丟失,server會在超時時間到來時,重傳最后一個fin包,處于TIME_WAIT狀態的client可以繼續回復Fin包,發送ACK。
○ 保證讓遲來的TCP報文段有足夠的時間被識別和丟棄,避免新舊連接混淆。有些路由器會緩存沒有收到的數據包,如果新的連接開啟,這些數據包可能就會和新的連接中的數據包混在一起。連接結束了,網絡中的延遲報文也應該被丟棄掉,以免影響立刻建立的新連接。
11、簡要說明http請求中的post和get有哪些區別的地方
○ 請求頭多了content-length和content-type字段
○ post可以附加body,可以支持form、json、xml、binary等各種數據格式
○ 行業通用規范
○ 無狀態變化的建議使用get
○ 數據的寫入與狀態的修改建議使用post
○ 基于http協議:都是請求返回數據,get將請求體放在頭上,只發一次請求,post將請求體放在內部,需要發送兩次請求
○ GET 在瀏覽器回退時是無害的,而 POST 會再次提交請求。
○ GET 請求會被瀏覽器主動 cache,而 POST 不會,除非手動設置。
○ GET 請求只能進行 url 編碼,而 POST 支持多種編碼方式。
○ GET 請求在 URL 中傳送的參數是有長度限制的,而 POST 么有。
○ 對參數的數據類型,GET 只接受 ASCII 字符,而 POST 沒有限制。
○ GET 比 POST 更不安全,因為參數直接暴露在 URL 上,所以不能用來傳遞敏感信息。
12、如果一個請求,返回的狀態碼是200,但是沒有內容,可能發生了什么?
○ 請求頭缺失或錯誤
○ 參數length不符
十三、10大靈魂拷問
1、自己的優點和缺點
○ 避開崗位的核心技能
○ 把缺點放在場景中描述
○ 對缺點進行合理化解釋
○ 優點隨便說,主要方向還是在崗位上
2、是否能接受加班,建議分情況作答
○ 第一種情況:假設公司有重要的項目要趕。示范回答:貴公司現在正處于發展上升期,也在官網上有看到公司的重要項目成果,我覺得有時候因為趕項目進度、工作需要等忙起來是非常正常的,面對這種情況,我是非常愿意配合公司和團隊的工作,讓工作能夠更順利地完成,此外,我也相信自己一定能在公司安排的工作中獲得到鍛煉,獲得更快地成長。
○ 第二種情況:假設自己作為新人,對業務不熟悉。示范回答:我作為公司剛進去的新人,可能剛開始進入公司接觸業務時不太熟練,會出現需要加班的情況,但我更愿意提高工作效率,并積極向公司的前輩請教學習,在一定的時間內完成工作而不是拖到下班之后。當然, 如果有緊急的事情,忙起來需要加班也是可以接受的。
3、薪酬的要求
○ 薪資并不是我求職的唯一標準,我上家公司基本在A~B 之間(建議合理提高,避免部分HR壓價)
○ 我來貴司求職的主要動機是興趣,這份工作是我喜歡做的,也相信自己可以勝任,更相信公司會給出一個合理的薪酬。
○ 相比薪酬,我更在意的是收入,所以,我很愿意了解貴司的薪酬架構,可以簡單介紹下嗎?
○ 我希望薪資可以達到**,據我了解,貴司這個崗位薪資范圍是A~B ,而結合崗位職責及任職要求,我對自己也進行了相應評估,也愿意接受貴司的下一步考核。
4、未來5年的職業規劃
○ 自我認知。對自己是否了解,了解是不是靠譜。
○ 動機和價值觀。你是否能接受我們并不一定能給你公平的職業發展機會這個現實?
○ 組織承諾。你到底能在我們這踏實的干幾年?
5、我們為什么要聘用你
○ 描述應聘崗位的勝任條件,強調自己的工作能力和工作經驗跟崗位的匹配度,崗位要求的工作技能是否自己掌握了,掌握的程度是怎樣的,最好在面試中說出來。因此,在面試前最好是要針對應聘崗位,把自己勝任的條件一一列出來,做到知己知彼。可以談論一下自己之前的工作情況,用成績、用數據來說明自己的成就。
○ 描述自己能為公司做出什么貢獻,公司是一個講究利益的地方,聘用你肯定要你為公司做出貢獻。那么你在回答這個問題時,就需要說出你的加入可以為公司帶來什么,這非常重要。因此,一定要明確你的工作目標和職業規劃,表明你的立場和專業程度,讓HR信任你。
○ 描述出自身的優勢。公司為何要聘用你,而不聘用別人,肯定是你有比別人優秀的地方。那么在回答這個問題時,就一定要說出自己與眾不同的地方,最好是要舉一個例子,來支持你的觀點。
○ 建立個人和公司的聯系,HR想要得到一個怎樣的答案呢?無非就是想通過這個問題,來進一步了解你各方面的信息,以及看看你為這次面試做了多少功課。那么在面試前,你最好是要盡可能獲取有關公司可行業的資料信息。在回答的時候,結合自己所做的功課,建立個人和公司的聯系,說明自己在哪一方面能夠匹配公司的要求。HR看到你對應聘崗位這么了解,肯定會對你有好感。
○ 說出你對這份工作的興趣以及熱情
6、對我們公司有多少了解
○ 實時回答就好,知道多少就說多少,一般去面試對這個公司的了解都是從網上查到的,不會太深入
7、為什么愿意到我們公司
○ 有所準備,了解公司
○ 個人目標要與公司目標一致
○ 強調你能如何為公司提高價值
8、與領導意見不一致時,該如何處理
○ 不要假設我已經完全的掌握了對這件事的認知。向領導詢問確認自己有可能缺失的信息。要尋找對領導沒有告知的信息,和領導不能透露的信息。
○ 不要假設領導已經完全的掌握了我對這件事的認知。檢查一下,是否已經將事情的前因后果,自己對事情的理解,明確清晰的傳達給了領導,以及,他是否真的已經明確了解。
○ 在進行有效的認知溝通后,重新思考整件事情。如果意見還是有不一致,那么:
■ 按領導要求執行。不理解,也執行,在執行中理解。
■ 執行過程中,收集反饋,不斷調整,提升認知。
■ 執行完成后,及時復盤,回顧決策和行動過程,沉淀知識。
9、缺乏工作經驗,如何勝任這份工作
○ 承認工作經驗的重要性。這樣能帶給面試官的印象是:該位候選人認知能力較強,具有理性思維與客觀公正的處事態度及判斷能力,尤其是對于自己也能客觀公正地看待,勇于承認自己的缺失。
○ 突顯個人優勢。用自己的其他優勢特長來補足經驗上的不足,比如說記憶力好、動手能力強、語言能力強、學習能力強等。
○ 強調自己會不斷提高工作能力。切忌用假大空的話,要用具體的與工作相關的事例或是數據來說明自己的學習力。
10、工作中與同事發生爭執,如何處理
○ 在溝通之前,做好充分的準備
○ 學會認知傾聽,讓別人把話說完
○ 借用一些工具,來解決交流障礙
十四、反問面試官
1、職責
○ 團隊中初級和高級人眼如何平衡
○ 針對員工有哪些培訓和提升計劃
2、技術
○ 公司內部的技術棧
○ 產品的架構
○ 版本控制及迭代速度
○ 服務器管理權限,本機家算計管理權限
3、團隊
○ 團隊內和團隊之間如何溝通
○ 遇到了分歧如何解決
○ 團隊正在經歷的尚未解決的挑戰是什么
○ 績效考核是如何算的
4、公司
○ 晉升機會
○ 是否有自己的學習資源
○ 假期,加班工資等
○ 過去半年最糟糕的一天是怎么樣的
○ 是什么讓你來到并留在這里
○ 是否能夠平衡工作與生活
總結:
感謝每一個認真閱讀我文章的人!!!
作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗一次學習時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學習資源,希望能給你前進的路上帶來幫助。
軟件測試面試文檔
我們學習必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
?
? ? ? ? ? 視頻文檔獲取方式:
這份文檔和視頻資料,對于想從事【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!以上均可以分享,點下方小卡片即可自行領取。