新鲜出炉的软件测试面试题
1、B/S架構(gòu)和C/S架構(gòu)區(qū)別?
1、架構(gòu)不同:B/S架構(gòu)是瀏覽器/服務(wù)器架構(gòu),C/S架構(gòu)是客戶端/服務(wù)器架構(gòu)。
2、客戶端不同:B/S架構(gòu)的客戶端是瀏覽器,C/S架構(gòu)的客戶端是客戶端程序。
3、功能不同:B/S架構(gòu)主要用于網(wǎng)絡(luò)服務(wù),C/S架構(gòu)主要用于應(yīng)用程序服務(wù)。
4、維護(hù)不同:B/S架構(gòu)的維護(hù)主要在服務(wù)器端,C/S架構(gòu)的維護(hù)主要在客戶端和服務(wù)器端。
5、安全性不同:B/S架構(gòu)的安全性較低,C/S架構(gòu)的安全性較高。
2、Cookie和Session的區(qū)別?
Cookie和Session都是用來(lái)保存用戶信息的技術(shù),但是它們之間有一些明顯的區(qū)別:
1、Cookie數(shù)據(jù)存放在客戶的瀏覽器上,而Session數(shù)據(jù)放在服務(wù)器上。
2、Cookie不是很安全,別人可以分析存放在本地的Cookie并進(jìn)行Cookie欺騙,而Session比較安全,服務(wù)器端會(huì)對(duì)Session加密處理。
3、Cookie可以設(shè)置過期時(shí)間,當(dāng)訪問器關(guān)閉后Cookie就會(huì)失效,而Session會(huì)在一定時(shí)間內(nèi)保存,當(dāng)訪問器關(guān)閉后,Session不會(huì)失效,只有當(dāng)Session過期時(shí)間到了,Session才會(huì)失效。
4、Cookie可以保存客戶端的信息,而Session只能保存服務(wù)器端的信息。
3、測(cè)試的目的是什么?
測(cè)試的目的是為了確保軟件系統(tǒng)能夠按照預(yù)期的方式正常運(yùn)行,并且能夠滿足用戶的需求。
4、對(duì)一支圓珠筆進(jìn)行測(cè)試,要從哪些方面進(jìn)行測(cè)試?
1、寫字質(zhì)量:檢查筆尖的細(xì)膩度、筆芯的流暢度、筆芯的顏色、筆芯的持久度等。
2、外觀質(zhì)量:檢查筆身的外觀、筆芯的外觀、筆帽的外觀等。
3、工藝質(zhì)量:檢查筆芯的安裝情況、筆芯的拆卸情況、筆芯的更換情況等。
4、功能性能:檢查筆尖的精細(xì)度、筆芯的流暢度、筆芯的持久度、筆芯的耐用度等。
5、安全性能:檢查筆芯的安全性、筆芯的耐磨性、筆芯的耐腐蝕性等。
5、三角形測(cè)試用例設(shè)計(jì)?
1、測(cè)試用例1:輸入三條邊長(zhǎng),驗(yàn)證是否能構(gòu)成三角形
2、測(cè)試用例2:輸入三條邊長(zhǎng),驗(yàn)證是否能構(gòu)成等邊三角形
3、測(cè)試用例3:輸入三條邊長(zhǎng),驗(yàn)證是否能構(gòu)成等腰三角形
4、測(cè)試用例4:輸入三條邊長(zhǎng),驗(yàn)證是否能構(gòu)成直角三角形
5、測(cè)試用例5:輸入三條邊長(zhǎng),驗(yàn)證是否能構(gòu)成鈍角三角形
6、在項(xiàng)目中發(fā)現(xiàn)哪些經(jīng)典bug?什么原因?qū)е碌?#xff1f;
1、空指針異常:當(dāng)程序試圖訪問一個(gè)不存在的指針時(shí),就會(huì)發(fā)生空指針異常。這種異常通常是由于程序員忘記初始化指針或者試圖訪問一個(gè)不存在的內(nèi)存地址而導(dǎo)致的。
2、越界訪問:當(dāng)程序試圖訪問一個(gè)超出數(shù)組范圍的元素時(shí),就會(huì)發(fā)生越界訪問。這種異常通常是由于程序員忘記檢查數(shù)組的邊界條件而導(dǎo)致的。
3、內(nèi)存泄漏:當(dāng)程序在申請(qǐng)內(nèi)存后,忘記釋放內(nèi)存時(shí),就會(huì)發(fā)生內(nèi)存泄漏。這種異常通常是由于程序員忘記釋放內(nèi)存或者忘記檢查內(nèi)存是否被釋放而導(dǎo)致的。
7、如何盡快找到軟件中的bug?
1、首先,要對(duì)軟件的功能和架構(gòu)有一個(gè)清晰的理解,以便更好地定位問題。
2、嘗試使用軟件的不同功能,查看是否有任何異常情況發(fā)生。
3、嘗試使用不同的輸入數(shù)據(jù),以查看軟件是否能夠正確處理。
4、嘗試使用軟件的自動(dòng)測(cè)試功能,以查看是否有任何異常情況發(fā)生。
5、嘗試使用軟件的調(diào)試功能,以查看軟件的執(zhí)行過程,以及可能出現(xiàn)的錯(cuò)誤。
6、嘗試使用軟件的日志功能,以查看可能出現(xiàn)的錯(cuò)誤信息。
7、嘗試使用第三方工具,如內(nèi)存調(diào)試器,以查看可能出現(xiàn)的內(nèi)存泄漏。
8、嘗試使用第三方工具,如性能分析器,以查看可能出現(xiàn)的性能問題。
9、嘗試使用第三方工具,如安全掃描器,以查看可能出現(xiàn)的安全漏洞。
10、嘗試使用第三方工具,如靜態(tài)代碼分析器,以查看可能出現(xiàn)的代碼錯(cuò)誤。
8、搜索功能怎么測(cè)試?
1、功能方面的測(cè)試:
搜索單個(gè)字,詞語(yǔ),句子,檢索到的內(nèi)容是否準(zhǔn)確,鏈接是否準(zhǔn)確
長(zhǎng)度:例如輸入框支持100字符,那需要測(cè)試100字符、101字符,最大長(zhǎng)度的顯示是否正常
哪些是支持的字符類型:數(shù)字、字母、漢字、字符!@!#、特殊字符(需求而定)
字符串前后中帶空格,前后的空格是否過濾,中間的空格是否保留(需求而定)
全角半角的字母、數(shù)字(需求而定)
2、性能方面的測(cè)試
點(diǎn)擊搜索按鈕后,搜索結(jié)果多長(zhǎng)時(shí)間能夠顯示
進(jìn)入搜索頁(yè)面需要多久
3、安全性方面的測(cè)試
能否防止SQL注入攻擊,否防止XSS攻擊
4、用戶體驗(yàn)測(cè)試
頁(yè)面布局是否合理,輸入框和按鈕是否對(duì)齊
輸入框的大小和按鈕的長(zhǎng)度,高度是否合理
快捷鍵:能不能全選,部分選擇,復(fù)制剪切粘貼是否可用,粘貼超過最大長(zhǎng)度的字符串怎么顯示
5、兼容性測(cè)試
BS架構(gòu):不同瀏覽器測(cè)試,比如:火狐,谷歌,360這些
APP:在主流的不同類型,不同分辨率,不同操作系統(tǒng)的手機(jī)上測(cè)試,蘋果,華為,vivo,oppo等
9、如果需要你來(lái)測(cè)試淘寶的購(gòu)物車,你會(huì)如何設(shè)計(jì)測(cè)試用例,需要從哪些方面來(lái)考慮?
1、打開淘寶頁(yè)面后,頁(yè)面的布局是否是完整的
2、頁(yè)面的功能按鈕是否可以正常顯示
3、在商品頁(yè)面是否會(huì)顯示加入購(gòu)物車
4、選中的商品是否能加入購(gòu)物車
5、加入購(gòu)物車后是否可以顯示商品的所有信息
6、添加到購(gòu)物車的商品是否可以進(jìn)行刪除
7、如果在網(wǎng)絡(luò)不佳或無(wú)網(wǎng)絡(luò)時(shí)是否可以成功的加入購(gòu)物車
8、添加購(gòu)物車后,點(diǎn)擊加號(hào)的時(shí)候數(shù)量是否會(huì)增長(zhǎng)
9、添加購(gòu)物車后,點(diǎn)擊減號(hào)的時(shí)候數(shù)量是否會(huì)減少
10、如果點(diǎn)擊減號(hào)減到一定程度時(shí),是否會(huì)提示不能再減少了
11、如果淘寶用戶未登錄時(shí),如果添加到購(gòu)物車時(shí)是否會(huì)提示請(qǐng)先登錄
12、如果沒有選擇任何商品,點(diǎn)擊結(jié)算,是否會(huì)提示用戶“請(qǐng)?zhí)砑右Y(jié)算的商品”
13、勾選商品后已選商品的總價(jià)是否會(huì)顯示
14、勾選商品顯示總價(jià)后,總價(jià)計(jì)算是否正確
15、勾選商品,點(diǎn)擊結(jié)算按鈕后,是否會(huì)進(jìn)入確認(rèn)訂單信息的頁(yè)面
16、進(jìn)入確認(rèn)訂單信息頁(yè)面的總價(jià)是否正確
17、總價(jià)是否會(huì)出現(xiàn)精度不準(zhǔn)的情況,比如:正確總價(jià)是18.99,結(jié)果顯示的確實(shí)18.999999999999
18、是否有回到頂部功能
19、是否可以編輯商品屬性
20、能否移入到收藏中
21、店鋪名稱是否顯示
22、能否選擇全部商品
23、能否取消選擇全部商品
24、是否可以在購(gòu)物車中修改商品的規(guī)格
25、添加購(gòu)物的數(shù)量超過庫(kù)存數(shù)量是否進(jìn)行限制
26、是否可以進(jìn)行清空購(gòu)物車
27、結(jié)算金額是否會(huì)隨著商品數(shù)量的增加減少進(jìn)行變化
28、如果刷新的次數(shù)過多,是否會(huì)出現(xiàn)閃退的現(xiàn)象
29、當(dāng)手機(jī)來(lái)電話時(shí)淘寶頁(yè)面是會(huì)還會(huì)運(yùn)行
30、當(dāng)手機(jī)內(nèi)存不夠時(shí),淘寶運(yùn)行起來(lái)是否會(huì)出現(xiàn)卡頓的現(xiàn)象
10、數(shù)據(jù)庫(kù)有幾種表結(jié)構(gòu)的連接方式?
內(nèi)連接(inner join)
外連接(outer join)
左外連接(left outer join)
右外連接(right outer join)
全外連接(full outer join)
區(qū)別:
1、其中外連接的“OUTER”關(guān)鍵字可以省略不寫。
2、內(nèi)連接用于返回滿足連接條件的記錄;而外連接則是內(nèi)連接的擴(kuò)展,它不僅會(huì)滿足連接條件的記錄,而且還會(huì)返回不滿足連接條件的記錄。
3、內(nèi)連接查詢返回滿足條件的所有記錄,默認(rèn)情況下沒有指定任何連接則為內(nèi)連接。
4、左外連接查詢不僅返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的連接操作符左邊表的其他行
5、右外連接查詢不僅返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的連接操作符右邊表的其他行。
6、全連接查詢不僅返回滿足條件的所有記錄,而且還會(huì)返回不滿足連接條件的其他行。
11、UI自動(dòng)化中常用的定位元素的方法?
1、id定位 find_element_by_id("") #通過id來(lái)定位元素 在HTML中,id是唯一的,通過id但部分元素可能沒有id或id為隨機(jī)值。2、name定位 find_element_by_name("") #通過name來(lái)定位元素3、class定位 find_element_by_class_name("") #通過class來(lái)定位元素4、tag定位 find_element_by_tag_name("") #通過tag來(lái)定位元素5、link定位 find_element_by_link_text("") #通過link來(lái)定位元素6、partial link定位 find_element_by_partial_link_text("") #通過元素標(biāo)簽對(duì)之間的部分文字進(jìn)行元素定位7、XPath定位(UI自動(dòng)化應(yīng)用最普遍的) 下面列出了最有用的路徑表達(dá)式: nodeName 選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn) / 從根節(jié)點(diǎn)選取 // 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置 . 選取當(dāng)前節(jié)點(diǎn) … 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) @ 選取屬性下面XPath的幾種元素定位方法 (1)絕對(duì)路徑定位 find_element_by_xpath("/html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[2]/input")(2)利用元素定位(與前六種方法類似) #利用元素屬性進(jìn)行定位 find_element_by_xpath("//input[@id='**']") find_element_by_xpath("//input[@name='**']") find_element_by_xpath("//input[@class='**']") find_element_by_xpath("//input[@type='**']") #利用元素層級(jí)屬性進(jìn)行定位,相對(duì)路徑 #根據(jù)class屬性唯一值,一層一層定位到元素 find_element_by_xpath("//div[@class='**'])/table/tbody/tr/td/div") #利用邏輯運(yùn)算符進(jìn)行定位 find_element_by_xpath("//input[@id='**' and @name='**']") find_element_by_xpath("//input[@id='**' or @name='**']") #利用contains包含方法進(jìn)行定位,查找classname屬性下,classname中包含name的元素 find_element_by_xpath("//classname[contains(@classname,'name')]") #利用starts-with,使用開始位置元素進(jìn)行定位 find_element_by_xpath("//input[starts-with(@name,'vaule')]") #利用ends-with,使用結(jié)束位置元素進(jìn)行定位 find_element_by_xpath("//input[ends-with(@name,'vaule')]") #利用text()進(jìn)行元素定位 find_element_by_xpath("//input[text(),'百度']") #其它方法 #string-length()、substring、substring-before()、substring-after()8、CSS_selector定位 CSS選擇器可以更靈活的選擇空間的任意屬性,且CSS定位速度比XPath定位快。 find_element_by_css_selector(".**") #通過class定位,CSS中class選擇器以"."來(lái)定義 find_element_by_css_selector("#**") #通過id定位,CSS中id選擇器以"#"來(lái)定義 find_element_by_css_selector("div") #通過標(biāo)簽名定位 find_element_by_css_selector("[name='**']") #通過name進(jìn)行定位 find_element_by_css_selector("td > div") #通過父標(biāo)簽,查找子元素中標(biāo)簽名為div的所有元素12、關(guān)閉瀏覽器close()與quit()的區(qū)別?
close() 關(guān)閉當(dāng)前操作的窗口(并非關(guān)閉超鏈接新打開的窗口)
quit() 退出相關(guān)驅(qū)動(dòng)程序,關(guān)閉所有窗口
一般在自動(dòng)化腳本執(zhí)行完后,需要清空環(huán)境,釋放占用的內(nèi)存。采用driver.quit()來(lái)直接關(guān)閉瀏覽器。
13、自動(dòng)化測(cè)試中元素定位不到有哪幾種原因?
1、檢查元素是不是寫對(duì)了(看似簡(jiǎn)單,但是我相信還是會(huì)有人自己打錯(cuò)了)
2、ID是自動(dòng)生成的,隨機(jī)的,如果是自動(dòng)生成的id,那么朋友,你只能是放棄使用id來(lái)定位了
3、選用的方法對(duì)應(yīng)的屬性并不唯一,整個(gè)頁(yè)面有好幾個(gè)
4、查看是否存在多個(gè)iframe標(biāo)簽,需要切換iframe再定位
5、使用了帶有空格的屬性,定位的時(shí)候請(qǐng)避開選用帶空格的屬性
6、看看是不是使用了絕對(duì)路徑,因?yàn)樵谇岸碎_發(fā)的時(shí)候可能會(huì)增刪改標(biāo)簽,這就導(dǎo)致你用的絕對(duì)路徑出錯(cuò)了,所以使用相對(duì)路徑會(huì)比較好
7、檢查有沒有加上等待時(shí)間,很多時(shí)候是因?yàn)槲醇虞d出來(lái)元素導(dǎo)致元素找不到
8、檢查自己設(shè)的等待時(shí)間是不是太短了,別以為加了等待時(shí)間就萬(wàn)事ok了,說不定你設(shè)的3秒內(nèi)加載元素,結(jié)果人家第4秒才加載出來(lái),那就哦豁了,所以可以適當(dāng)?shù)募由系却龝r(shí)間,至于是隱性等待還是顯性等待或者是固定等待,視情況選擇吧
9、檢查你選擇的元素是不是可見的,有的元素會(huì)被隱藏
14、常用自動(dòng)化測(cè)試工具有哪些?
1、Selenium:Selenium是一種用于Web應(yīng)用程序測(cè)試的開源自動(dòng)化測(cè)試工具。它可以模擬用戶在Web瀏覽器中的操作,以驗(yàn)證Web應(yīng)用程序的功能和性能。
2、Appium:Appium是一種開源的自動(dòng)化測(cè)試框架,可用于測(cè)試原生、混合和移動(dòng)Web應(yīng)用程序。它可以在多種移動(dòng)設(shè)備和操作系統(tǒng)上運(yùn)行,包括iOS、Android和Firefox OS。
3、Watir:Watir是一種開源的自動(dòng)化測(cè)試框架,可用于測(cè)試Web應(yīng)用程序。它使用Ruby編寫,可以模擬用戶在Web瀏覽器中的操作,以驗(yàn)證Web應(yīng)用程序的功能和性能。
4、TestComplete:TestComplete是一種商業(yè)自動(dòng)化測(cè)試工具,可用于測(cè)試Windows、Web、移動(dòng)和桌面應(yīng)用程序。它可以自動(dòng)錄制和回放用戶操作,以驗(yàn)證應(yīng)用程序的功能和性能。
5、QTP:QTP(QuickTest Professional)是一種商業(yè)自動(dòng)化測(cè)試工具,可用于測(cè)試Windows、Web、移動(dòng)和桌面應(yīng)用程序。它可以自動(dòng)錄制和回放用戶操作,以驗(yàn)證應(yīng)用程序的功能和性能。
15、弱網(wǎng)測(cè)試是怎么做的?
弱網(wǎng)測(cè)試是指在網(wǎng)絡(luò)環(huán)境較差的情況下,測(cè)試軟件或硬件的性能和穩(wěn)定性。它的主要目的是檢測(cè)軟件或硬件在網(wǎng)絡(luò)環(huán)境較差的情況下是否能夠正常運(yùn)行,以及在網(wǎng)絡(luò)環(huán)境較差的情況下,軟件或硬件的性能是否能夠滿足用戶的要求。
弱網(wǎng)測(cè)試的具體步驟如下:
1、分析用戶的網(wǎng)絡(luò)環(huán)境:首先,需要分析用戶的網(wǎng)絡(luò)環(huán)境,包括網(wǎng)絡(luò)的帶寬、網(wǎng)絡(luò)的延遲、網(wǎng)絡(luò)的丟包率等,以便確定測(cè)試的網(wǎng)絡(luò)環(huán)境。
2、設(shè)置測(cè)試環(huán)境:根據(jù)用戶的網(wǎng)絡(luò)環(huán)境,設(shè)置測(cè)試環(huán)境,包括設(shè)置網(wǎng)絡(luò)的帶寬、網(wǎng)絡(luò)的延遲、網(wǎng)絡(luò)的丟包率等,以便模擬用戶的網(wǎng)絡(luò)環(huán)境。
3、進(jìn)行測(cè)試:在設(shè)置好的測(cè)試環(huán)境中,進(jìn)行測(cè)試,檢測(cè)軟件或硬件在網(wǎng)絡(luò)環(huán)境較差的情況下是否能夠正常運(yùn)行,以及在網(wǎng)絡(luò)環(huán)境較差的情況下,軟件或硬件的性能是否能夠滿足用戶的要求。
4、分析測(cè)試結(jié)果:最后,分析測(cè)試結(jié)果,確定軟件或硬件在網(wǎng)絡(luò)環(huán)境較差的情況下是否能夠正常運(yùn)行,以及在網(wǎng)絡(luò)環(huán)境較差的情況下,軟件或硬件的性能是否能夠滿足用戶的要求。
16、關(guān)鍵字驅(qū)動(dòng)和數(shù)據(jù)驅(qū)動(dòng)有哪些區(qū)別?
1、關(guān)鍵字驅(qū)動(dòng)是指測(cè)試用例的執(zhí)行過程是由一系列的關(guān)鍵字來(lái)控制的,而數(shù)據(jù)驅(qū)動(dòng)是指測(cè)試用例的執(zhí)行過程是由外部的數(shù)據(jù)文件來(lái)控制的。
2、關(guān)鍵字驅(qū)動(dòng)的測(cè)試用例的編寫比較簡(jiǎn)單,而數(shù)據(jù)驅(qū)動(dòng)的測(cè)試用例的編寫比較復(fù)雜。
3、關(guān)鍵字驅(qū)動(dòng)的測(cè)試用例可以更容易地實(shí)現(xiàn)參數(shù)化,而數(shù)據(jù)驅(qū)動(dòng)的測(cè)試用例可以更容易地實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)。
4、關(guān)鍵字驅(qū)動(dòng)的測(cè)試用例可以更容易地實(shí)現(xiàn)自動(dòng)化,而數(shù)據(jù)驅(qū)動(dòng)的測(cè)試用例可以更容易地實(shí)現(xiàn)可維護(hù)性。
17、什么是裝飾器,其作用是什么?
裝飾器是一種特殊的函數(shù),它可以在不更改原函數(shù)的基礎(chǔ)上,為其添加額外的功能。它的作用是在不改變?cè)瘮?shù)的基礎(chǔ)上,為其添加額外的功能,從而使代碼更加簡(jiǎn)潔、優(yōu)雅。
18、怎樣獲取字典中的所有鍵的列表?
可以使用dict.keys()方法獲取字典中的所有鍵的列表: dict = {'Name':?'Zara',?'Age':?7,?'Class':?'First'} keys = dict.keys() print(keys) # 輸出結(jié)果:dict_keys(['Name', 'Age', 'Class'])19、如何查看Linux服務(wù)器的負(fù)載?
可以使用top命令查看Linux服務(wù)器的負(fù)載,top命令可以實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用情況,包括CPU使用率、內(nèi)存使用量等。
也可以使用uptime命令查看Linux服務(wù)器的負(fù)載,uptime命令可以顯示系統(tǒng)的運(yùn)行時(shí)間、當(dāng)前登錄用戶數(shù)、系統(tǒng)負(fù)載等信息。
20、利用Python寫出九九乘法口訣?
for?i?in?range(1, 10):for?j?in?range(1, i+1):print('{}x{}={}\t'.format(i, j, i*j), end='')print()# 輸出結(jié)果: 1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 4x1=4 4x2=8 4x3=12 4x4=16 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81最后: 下方這份完整的軟件測(cè)試視頻學(xué)習(xí)教程已經(jīng)整理上傳完成,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取【保證100%免費(fèi)】
這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬(wàn)個(gè)測(cè)試工程師們走過最艱難的路程,希望也能幫助到你!
總結(jié)
以上是生活随笔為你收集整理的新鲜出炉的软件测试面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一、ZYNQ简介
- 下一篇: Python手势识别