1、黑盒(或功能)測試用例設(shè)計方法有哪些术陶?
1)等價類
2)邊界值
3)流程分析
4)因果圖
5)判定表
6)場景分析
7)錯誤推測
2凑懂、App測試和web測試有什么區(qū)別?
1)從系統(tǒng)架構(gòu)來看的話:web端一般都是b/s架構(gòu)梧宫,基于瀏覽器的; app是c/s架構(gòu)接谨,是基于客戶端的
2)兼容性方面:web是基于瀏覽器的摆碉,所以更傾向于不同瀏覽器(Chrome、firefox)的兼容脓豪;App測試則必須依賴于手機(jī)巷帝,更關(guān)注系統(tǒng)版本、分辨率扫夜、屏幕尺寸等兼容性問題
3)除了功能測試楞泼,App端還需要額外關(guān)注一些專項的測試,比如弱網(wǎng)笤闯、中斷測試堕阔、安裝/卸載測試、流量/電量的測試望侈,移動端性能測試等
3印蔬、發(fā)現(xiàn)一個bug,怎么定位是App端還是服務(wù)端的問題脱衙?
1)抓包分析侥猬,對接口進(jìn)行抓包分析,如果是請求里的參數(shù)出行錯誤捐韩,一般都是客戶端的bug退唠;如果請求正常而響應(yīng)是錯誤的,那就是服務(wù)端的bug
2)日志分析荤胁,還可以通過查看客戶端/服務(wù)端的日志瞧预,分析有沒有異常的日志信息,從而確定具體原因
4仅政、當(dāng)開發(fā)人員說不是bug時垢油,你如何應(yīng)對?
開發(fā)人員說不是bug,有2種情況:
一是需求沒有確定圆丹,所以這個時候可以找來產(chǎn)品經(jīng)理進(jìn)行確認(rèn)滩愁,需不需要改動,商量確定好后再看要不要改
二是這種情況不可能發(fā)生辫封,所以不需要修改硝枉,這個時候可以先可能的說出是bug的依據(jù)是什么?如果被用戶發(fā)現(xiàn)或出了問題倦微,會有什么不良結(jié)果
如果還是不行妻味,那可以把這個問題提出來,跟開發(fā)經(jīng)理和測試經(jīng)理進(jìn)行確認(rèn)欣福。如果最終不是bug被確定不該责球,那么就要在測試報告里面記錄一下,以便后面查閱
5、黑盒測試和白盒測試的區(qū)別
1)黑盒測試就是把系統(tǒng)當(dāng)成一個黑盒子一樣棕诵,不需要了解系統(tǒng)內(nèi)部的細(xì)節(jié)裁良,只關(guān)注輸入和輸出,通過手動輸入不同的數(shù)據(jù)校套,來驗證輸出是否符合預(yù)期
2)白盒測試需要了解系統(tǒng)內(nèi)部實現(xiàn)細(xì)節(jié)价脾,通常是針對函數(shù)進(jìn)行測試,需要寫測試代碼來調(diào)用對應(yīng)的函數(shù)笛匙,通過傳入不同的參數(shù)侨把,來測試函數(shù)返回值是否符合預(yù)期
6、如何提高用例的覆蓋率妹孙,減少漏測
1)根據(jù)需求文檔來編寫用例秋柄,確保每條需求都被對應(yīng)的用例覆蓋
2)要充分理解業(yè)務(wù),挖掘隱形需求蠢正,并編寫對應(yīng)的用例
3)除了正常的業(yè)務(wù)場景骇笔,多考慮一些異常的場景和數(shù)據(jù)
4)要從多個維度對軟件進(jìn)行測試,功能嚣崭、性能笨触、安全等各方面來考慮
5)多站在用戶的角度去思考問題,模擬用戶的使用場景
6)組織用例評審
7雹舀、App崩潰/閃退芦劣,一般都是什么原因造成的
根據(jù)之前遇到的幾次崩潰/閃退,都是因為代碼問題说榆,App的代碼內(nèi)部報空指針錯誤
另外還可能是網(wǎng)絡(luò)問題
8虚吟、怎么測試App的兼容性
主要看客戶這邊對兼容性的要求高不高
如果要求不高的話,部門內(nèi)有一些主流的Android和iOS機(jī)型签财,大概七八部手機(jī)吧串慰,平時主要用這些測試
如果要求高的話,一般會購買一些第三方測試服務(wù)唱蒸,像是Wetest邦鲫、Testin之類的,他們的機(jī)型更多油宜,而且最終會提供一個測試報告
9、手機(jī)App更新測試怜姿,說下測試點
10慎冤、如何模擬弱網(wǎng)測試
1)很多抓包工具都可以做到模擬弱網(wǎng)測試,比如fiddler可以在“自定義規(guī)則”中設(shè)置發(fā)送/接受1kb數(shù)據(jù)需求的時間來控制網(wǎng)絡(luò)傳輸速率
2)如果是網(wǎng)站可以采用chrome開發(fā)者工具模擬弱網(wǎng)
3)如果是手機(jī)可以在手機(jī)自身的網(wǎng)絡(luò)設(shè)置為2G/3G/4G 飛行模式
11沧卢、針對App的安裝功能蚁堤,寫出測試點
12、你在測試過程中使用數(shù)據(jù)庫的場景是什么但狭?
1)在做功能測試時披诗,除了檢查頁面/App功能正常外撬即,還需要查詢存入數(shù)據(jù)庫里的數(shù)據(jù)是否符合預(yù)期
2)有時候會修改數(shù)據(jù)庫中測試數(shù)據(jù),來驗證一些測試用例呈队,比如已加入計劃修改數(shù)據(jù)庫結(jié)束計劃
13剥槐、常用的聚合函數(shù)都有哪些?
1)max() 最大值
2)min() 最小值
3)avg() 平均值
4)sum()求和
5)cont() 統(tǒng)計總數(shù)
14宪摧、列舉幾種表連接的方式粒竖,有什么區(qū)別?
左連接:以左表為基礎(chǔ)几于,展示左表所有數(shù)據(jù)+左右兩個表同時存在的數(shù)據(jù)
右連接:以右表為基礎(chǔ)蕊苗,展示右表所有數(shù)據(jù)+左右兩個表同時存在的數(shù)據(jù)
內(nèi)連接:展示兩個表中同時存在的數(shù)據(jù)
15、SQL語句的執(zhí)行順序
select sex, count(*)
from user where age = 18
group by sex having count(*) > 5
order by count(*) desc limit 2;
執(zhí)行順序
from -> where -> group.by ->having ->select -> order by -> limit
16沿彭、說幾個工作中常用的Linux命令朽砰?
cd:切換目錄
ls: 查看文件列表
cp: 拷貝文件
mv:移動文件
rm: 刪除文件
chmod : 設(shè)置文件權(quán)限
cat:瀏覽文件內(nèi)容
vi: 文件編輯
grep: 過濾文件內(nèi)容
17、你在工作中哪些場景中用到Linux
1)當(dāng)項目不能訪問時喉刘,登錄到Linux服務(wù)器上看看項目是否啟動(ps -ef | grep xxx)
2)當(dāng)測試出行bug時瞧柔,登錄到Linux服務(wù)器上看看日志(tail -100 xxx.log)
18、在Linux 中如何殺死一個進(jìn)程
先用ps命令查看進(jìn)程號饱搏,比如tomcat,查看tomact的PID命令如下所示:
ps -ef|grep tomcat
找到進(jìn)程id后非剃,用kill命令殺死進(jìn)程
kill -9 12345
19、如何查找文件
在根目錄下查找名稱為a.log的文件
find / -name a.log
20推沸、日志過濾grep相關(guān)命令
假設(shè)有個日志文件test.log
查看包含Error的日志:grep "Error" test.log
查看包含Error的日志以及它的后10行:grep -A "Error" test.log
查看昨天的包含login的接口日志:cat test.log | grep "昨天日期" | grep "login"
21备绽、如何給一個文件添加可執(zhí)行權(quán)限
chmod 777 test.log
chmod +x test.log
22、如何判斷一個端口是否被占用
netstat -anp | grep 端口號