1.測(cè)試分為哪幾個(gè)階段哩都?
①單元測(cè)試咧织,集成測(cè)試------一般由開(kāi)發(fā)人員完成
②系統(tǒng)測(cè)試和驗(yàn)收測(cè)試------一般由測(cè)試人員完成
2.如何編寫(xiě)測(cè)試計(jì)劃
5w原則:
①What:測(cè)試的內(nèi)容是什么
②Why:測(cè)試的目的是什么盐须?---性能:得到的指標(biāo);功能:啥時(shí)候測(cè)完
③When:項(xiàng)目的開(kāi)始截至日期
④How:明確測(cè)試方案(化,手工座泳,兼容呀邢,性能)
⑤Where:明確資料位置---需求文檔的存放地址洒沦,測(cè)試用例的存放地址,bug系統(tǒng)的地址等等
3.常用的測(cè)試用例設(shè)計(jì)方法有哪些价淌?
①等價(jià)類(lèi)劃分
②邊界值
③錯(cuò)誤推測(cè)法:輸入空格申眼,或者什么都不輸入
④正交表分析法:橫坐標(biāo):瀏覽器的top;縱坐標(biāo):手機(jī)品牌蝉衣,操作系統(tǒng)括尸,分辨率;最終選擇需要的手機(jī)
⑤場(chǎng)景分析法:
⑥因果圖:
4.如何分層自動(dòng)化測(cè)試病毡?
①UI自動(dòng)化回歸
②接口自動(dòng)化
③單元測(cè)試--白盒測(cè)試
5.如何保證腳本的有效性姻氨?
①保證定位有效性,封裝處理異常
②保證流程的有效性剪验,封裝獨(dú)立方法
③保證數(shù)據(jù)有效性肴焊,數(shù)據(jù)備份與恢復(fù)
6.UI自動(dòng)化:針對(duì)不長(zhǎng)變動(dòng)的頁(yè)面
②接口自動(dòng)化:周期短,變動(dòng)頻繁---經(jīng)常提測(cè)需要經(jīng)常測(cè)試的
③框架分層:用例與框架分離
7.常見(jiàn)測(cè)試覆蓋類(lèi)型功戚?---白盒測(cè)試
①語(yǔ)句覆蓋
②判定/條件覆蓋
③ 條件組合覆蓋
④路徑覆蓋
8.B/S娶眷,C/S架構(gòu)什么區(qū)別
CS架構(gòu):客戶(hù)端軟件
BS架構(gòu):網(wǎng)站
9.安全性測(cè)試包含哪些內(nèi)容?
①用戶(hù)訪(fǎng)問(wèn)認(rèn)證
②傳輸數(shù)據(jù)加密
③安全防護(hù)策略:如日志安全啸臀,入侵檢測(cè)届宠,隔離防護(hù)烁落,漏洞掃描
④數(shù)據(jù)的備份與恢復(fù)
⑤防病毒系統(tǒng)
⑥ Sql注入,JS注入
10.測(cè)試報(bào)告包含哪些內(nèi)容呢豌注?
①測(cè)試背景說(shuō)明
②測(cè)試范圍說(shuō)明
③測(cè)試環(huán)境說(shuō)明
④測(cè)試方法說(shuō)明
⑤測(cè)試結(jié)果結(jié)論說(shuō)明
⑥質(zhì)量或風(fēng)險(xiǎn)說(shuō)明
11.Alpha測(cè)試和Beta測(cè)試的區(qū)別伤塌?
Alpha測(cè)試:在開(kāi)發(fā)環(huán)境進(jìn)行測(cè)試
Beta測(cè)試:在真實(shí)環(huán)境測(cè)試,測(cè)試通過(guò)后進(jìn)入發(fā)布階段
12.bug的類(lèi)型有哪些轧铁?
①Bug:由于代碼編寫(xiě)錯(cuò)誤導(dǎo)致的功能問(wèn)題
②Defect即缺陷每聪,實(shí)現(xiàn)與需求不一致
③Fault即故障,由于環(huán)境齿风,系統(tǒng)問(wèn)題引起運(yùn)行失敗
④Error即錯(cuò)誤药薯,語(yǔ)法錯(cuò)誤,邏輯錯(cuò)誤救斑,不易被發(fā)現(xiàn)----不影響用戶(hù)使用童本,但是會(huì)拋出異常
13.面向?qū)ο蟮母拍睿?/b>
簡(jiǎn)稱(chēng)OOP,是一種程序的設(shè)計(jì)思想
對(duì)象是一個(gè)類(lèi)的實(shí)例脸候,類(lèi)是一系列事務(wù)的統(tǒng)稱(chēng)
主要包括:類(lèi)穷娱,繼承,多態(tài)运沦,實(shí)例泵额,屬性,方法
14.進(jìn)程茶袒,線(xiàn)程,協(xié)程
進(jìn)程:有獨(dú)立數(shù)據(jù)空間凉馆,進(jìn)程間不共享數(shù)據(jù)薪寓,由系統(tǒng)調(diào)度
線(xiàn)程:執(zhí)行程序的最小單元,進(jìn)程內(nèi)線(xiàn)程間資源共享澜共,由系統(tǒng)調(diào)度
協(xié)程:程序員調(diào)度向叉,分解一個(gè)線(xiàn)程成為多個(gè)“微線(xiàn)程”
15.如何使用python實(shí)現(xiàn)socket編程?
①Socket又稱(chēng)套接字嗦董,應(yīng)用程序通過(guò)套接字向程序發(fā)送請(qǐng)求
②應(yīng)用程序通過(guò)套接字應(yīng)答網(wǎng)絡(luò)請(qǐng)求
③主機(jī)間或者一臺(tái)計(jì)算機(jī)上的進(jìn)程間可以通訊
16.lambda函數(shù)母谎,元組,列表
lambda匿名函數(shù):
r = lambda x :x * 2
print r(10)
元組:里面的元素不可更改京革,但可更改整個(gè)元素內(nèi)容
列表:元素可更改
17.range函數(shù)的用法
①返回一系列連續(xù)增加的整數(shù)
②工作方式類(lèi)似于分片
③可以生成一個(gè)列表對(duì)象
ps:? ? list? = range (0 , 51)? ? 輸出0~50的數(shù)
print(list)
18.字符串的拆分方法奇唤?
① string 對(duì)象的split 方法,不允許有多個(gè)分隔符匹摇,
②函數(shù) re.split()咬扇,允許為分隔符指定多個(gè)正則模式
19.單引號(hào),雙引號(hào)廊勃,三引號(hào)的區(qū)別
單雙沒(méi)區(qū)別懈贺,三引號(hào)可以換行
20.* args? 、? *kwargs? 有什么用?
* args :可變參數(shù)列表
*kwargs:鍵值對(duì)參數(shù)列表
21.python 中的PASS語(yǔ)句的作用
占位符梭灿,實(shí)現(xiàn)一個(gè)空函數(shù)
PS:? ? def student():
? ? ? ? ? ? ? ? pass
? ? ? ? ? ? student()? ? ? 一個(gè)空函數(shù)画侣,不輸入pass就會(huì)報(bào)錯(cuò)
22.re模塊中match和search方法的不同?
import re
a1 = "sgksajglkasjg"
a2 = "kjgklsdjlgkjals"
a3 = "dglkjaslkgjasklg"
print(re.match(a1 , a2))? ? -----只從字符串的開(kāi)始位置開(kāi)始匹配
print(re.match(a1 , a2) .group())
print(re.search(a2 , a1))? ? -----查詢(xún)整個(gè)字符串
print(re.search(a2 , a1).group)
23.WSGI堡妒、FastCGI的關(guān)系配乱?
CGI:公共網(wǎng)關(guān)接口
HTTP服務(wù)器于機(jī)器與的程序進(jìn)行交互的一種工具
程序必須運(yùn)行在網(wǎng)絡(luò)服務(wù)器上,和語(yǔ)言無(wú)關(guān)
WSGI:python web server gateway interface
python 服務(wù)器與web服務(wù)器之間的一種接口
FastCGI涕蚤,像一個(gè)常駐型的CGI宪卿,可以一直執(zhí)行著
24.python是如何操作文件的?
①打開(kāi)文件
②寫(xiě)入或讀取數(shù)據(jù)
③關(guān)閉文件
25.兼容性測(cè)試需要考慮哪些因素万栅?
APP兼容性測(cè)試
①系統(tǒng)版本(Andorid Ios)不同版本
②分辨率:(小屏佑钾,大屏,全屏)
③android手機(jī)品牌(華為烦粒,小米休溶,OPPO,VIVO)
Web兼容性測(cè)試
1.不同平臺(tái)的不同瀏覽器(safari? ,chrome)
2.分辨率(大屏扰她,小屏兽掰,全屏),是不是折行
3.是否允許轉(zhuǎn)發(fā)徒役,比如轉(zhuǎn)發(fā)到第三方軟件孽尽,qq,微信,微博等忧勿,轉(zhuǎn)發(fā)后打開(kāi)是否可以正常展示
PC頁(yè)面兼容性測(cè)試
1.操作系統(tǒng):windows,mac,os 平板電腦
2.瀏覽器(IE系列杉女,火狐,chrome)等等
3.分辨率(筆記本鸳吸,臺(tái)式機(jī)熏挎,窗口縮放等)
26.ADB相關(guān)問(wèn)題
1)Android的四大組件是什么?
①Activity:用戶(hù)和程序的交互窗口
②Service:在程序后臺(tái)晌砾,完成用戶(hù)操作
③ContentProvider:提供數(shù)據(jù)的統(tǒng)一訪(fǎng)問(wèn)格式
④BroadcastReceiver:應(yīng)用程序之間傳輸信息的機(jī)制
1)Activity的生命周期是什么坎拐?
Actived:激活
Paused:暫停狀態(tài)---彈出對(duì)話(huà)框,看是否進(jìn)一步操作
stop:停止?fàn)顟B(tài)
killed:被殺掉的狀態(tài)
---------------------------
2)如何重啟adb服務(wù)养匈?
adb start-server
adb kill-server
2)app的安裝與卸載
adb - s 設(shè)備名稱(chēng) install 文件路徑-----安裝
adb - s 設(shè)備名稱(chēng) install - r文件路徑---覆蓋安裝
adb -s 設(shè)備名稱(chēng) uninstall 包名---卸載
adb devices? ----獲取當(dāng)前連接設(shè)備的名稱(chēng)
adb logcat | findstr(grep? ----linux) START? ---獲取安裝apk的包名
3)adb push D:\test.apk / data /local /tmp/test.apk? ? 把包導(dǎo)入手機(jī)系統(tǒng)
4)adb pull / data /local /tmp/test.txt D\:? ? ? 把手機(jī)系統(tǒng)文件導(dǎo)入PC
adb shell? 進(jìn)入手機(jī)目錄
cd /data /local /tmp /
ls? 查看該目錄下所有文件
5)如何靜默安裝app?
adb shell pm install -f /data /local/tmp /test.apk
6)如何使用adb啟停一個(gè)app?
7)如何使用adb命令啟動(dòng)或者停止app
①adb shell am start -w-s package/activity
②adb shell am force-stop package
8)通過(guò)某個(gè)關(guān)鍵字查找已安裝的包
①adb shell pm list package -f keyword
②abd shell pm list package -3 keyword? ---第三方自帶的包
③adb shell pm list package -i keyword? ----查找已安裝的包
④adb shell pm list package? ---查詢(xún)?cè)O(shè)備安裝的所有包名
9)如何截屏哼勇,錄屏
①adb shell screencap /data /local /tmp /scree.png
②adb shell screenrecord /data /local /tmp /demo.mp4
10)如何抓取locat日志
①adb locat
②adb shell locat
11)如何獲取當(dāng)前CPU,內(nèi)存狀態(tài)
①adb shell dumpsys? ? meminfo package
②adb shell dumpsys cpuinfo | findstt package
27.monkey相關(guān)
1)如何讓monkey執(zhí)行指定事件
①觸摸事件:pct- touch
②動(dòng)作事件:pct-motion
③軌跡球事件:pct-trackball
④基本導(dǎo)航事件:pct-nav
⑤主要導(dǎo)航事件:pct-majornav
⑥系統(tǒng)導(dǎo)航事件:pct-syskeys
⑦應(yīng)用啟動(dòng)事件:pct-appswitch
⑧其他類(lèi)型事件:pct-anyevent
2)monkey測(cè)試命令總結(jié)
and shell monkey -v -v -v -s 6789? --throttle 300(設(shè)置執(zhí)行的頻率為多少毫秒) --ignore-crashes --ignore-timeouts --pct-touch 100 -p 包名 100(隨機(jī)數(shù))
獲取日志? 重定向 > monkey.log
cat monkey.log
Linux基本命令
mv? 移動(dòng)或重命名
rm -r 遞歸刪除
rm-f 強(qiáng)制刪除
wc 統(tǒng)計(jì)文本中行數(shù)呕乎,字?jǐn)?shù)猴蹂,字符數(shù)
28.fiddler工具
1)如何使用fiddler抓取手機(jī)上的數(shù)據(jù)包?
?pc端設(shè)置楣嘁,設(shè)置端口號(hào)
?手機(jī)端設(shè)置磅轻,設(shè)置Wi-Fi珍逸,設(shè)置代理
2)數(shù)據(jù)包中都包含哪些內(nèi)容?
?狀態(tài)碼聋溜、協(xié)議類(lèi)型
?request(header:user-agent,cookies,referer)
?response(header,data)
3)如何設(shè)置Autoresponder?
?抓取請(qǐng)求
?制作數(shù)據(jù)
?設(shè)置規(guī)則
4)如何使用fiddler發(fā)送get/post請(qǐng)求谆膳?
?構(gòu)造url(get&post)
?構(gòu)造參數(shù)(get&post)
5)如何使用fiddler構(gòu)造慢網(wǎng)絡(luò)?
?rules-performances-simulate modem speeds
?修改代碼撮躁,配置需要的配速
6)如何使用fiddler抓取https包漱病?
?fiddler https相關(guān)設(shè)置
?在瀏覽器中安裝證書(shū)
29.postman工具
1)如何使用postman發(fā)送get/post請(qǐng)求?
2)如何為postMan用例填寫(xiě)檢查點(diǎn)把曼?
3)如何使用postman批量運(yùn)行測(cè)試用例杨帽?? ·
30.基于python常見(jiàn)算法有哪些?
1)排序
①?gòu)男〉酱笈判颍簊orted(list)
list = [0,3,6,2,5,1,9]
print(sorted(list))t
②從大到小排序:sorted(list,reverse = ture)
list = [0,3,6,2,5,1,9]
print(sorted(list,reverse = ture))
③改變列表原有順序并按排序后樣式展示
list = [0,3,6,2,5,1,9]
list.sort()
print(list)
2)冒泡
①比較相鄰得元素嗤军,如果第一個(gè)比第二個(gè)大就交換
②一輪遍歷注盈,每?jī)上噜徳兀貜?fù)1叙赚,最大放在隊(duì)尾
③不包括已經(jīng)排隊(duì)尾的老客,重復(fù)2
3)快排
①?gòu)牧斜碇刑舫鲆粋€(gè)元素,作為基準(zhǔn)值key
②所有小于key的元素放在左邊震叮,所有大于key的元素放在右邊
③分別遞歸左側(cè)列表胧砰,右側(cè)列表
4)堆排序
5)二分查找
6)素?cái)?shù)
31.Linux相關(guān)
1)基礎(chǔ)命令
①cd切換目錄
②ls -l? 列出文件詳細(xì)信息? ? ls - a 列出當(dāng)前目錄下所有文件
③touch 創(chuàng)建文件? mkdir 創(chuàng)建目錄
④echo 創(chuàng)建帶有內(nèi)容的文件
⑤cat? 查看文件內(nèi)容
echo "hello world" > mookhello
cat mookhello? ---展示“hello world”
⑥cp? 拷貝
⑦mv? 移動(dòng)或重命名
⑧rm -r 遞歸刪除? ;rm -f? 強(qiáng)制刪除
⑨wc 統(tǒng)計(jì)文本中行數(shù)苇瓣,字?jǐn)?shù)尉间,字符數(shù)
⑩grep 在文本文件中查找某個(gè)字符串
tree 顯示目錄結(jié)構(gòu)
ln 創(chuàng)建軟鏈
more? 、 less 分頁(yè)顯示文本內(nèi)容
head 击罪、 tail 顯示文件頭尾內(nèi)容
2)網(wǎng)絡(luò)命令
①curl 利用 UIL 規(guī)則在命令行下工作的文件傳輸工具
curl http://www.baidu.com
②netstat 顯示網(wǎng)絡(luò)狀態(tài)信息
telnet 127.0.0.1
③telnet 用于遠(yuǎn)程登錄主機(jī)
netstat? 所有的網(wǎng)絡(luò)鏈接狀態(tài)
3)系統(tǒng)命令思
① ping 測(cè)試網(wǎng)絡(luò)連通
ping www.baidu.com
② man 查看幫助
man ping? -----ping的常用命令
③ kill 殺死進(jìn)程
kill pid(38970)
④當(dāng)前正在運(yùn)行的進(jìn)程
top?
⑤ps顯示瞬間進(jìn)程狀態(tài)
⑥ df 查看磁盤(pán)大小? df -h 帶有單位顯示磁盤(pán)信息
2.計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)的問(wèn)題
1)OSI 七層模型的具體內(nèi)容
物理層:建立哲嘲,維護(hù),斷開(kāi)物理連接
數(shù)據(jù)鏈路層:邏輯連接外邓,硬件地址尋址撤蚊,差錯(cuò)校驗(yàn)
網(wǎng)絡(luò)層:邏輯地址尋址古掏,不用網(wǎng)絡(luò)之間的路徑選擇损话,IP
傳輸層:傳輸數(shù)據(jù)的協(xié)議,TCP(確定地址已經(jīng)連接)槽唾,UDP(只確定目的地進(jìn)行傳輸丧枪,可能出現(xiàn)丟包,無(wú)法傳輸)
會(huì)話(huà)層:建立庞萍,管理拧烦,終止會(huì)話(huà),本地與遠(yuǎn)程主機(jī)的會(huì)話(huà)
表示層:數(shù)據(jù)的標(biāo)示钝计,安全恋博,壓縮齐佳,JPEG,ASCII等
應(yīng)用層:與最終用戶(hù)的連接债沮,HTTP 炼吴,HTTPS ,SMTP
2)http 協(xié)議中g(shù)et 和 post的區(qū)別
①功能差異
get 是客戶(hù)端去服務(wù)端取東西
post 客戶(hù)端提交東西至服務(wù)端
②數(shù)據(jù)傳輸
get:在Url 里帶參數(shù)傳輸給服務(wù)端疫衩,服務(wù)端根據(jù)傳輸?shù)膬?nèi)容返回值
post:把數(shù)據(jù)放在body里傳輸給服務(wù)端
③安全性
get不安全硅蹦,參數(shù)存在url里
post安全,傳輸參數(shù)在url不可見(jiàn)
3)tcp 和 udp 的區(qū)別
4)tcp 連接三次握手具體過(guò)程
5)socket 建立連接的過(guò)程
①服務(wù)器建立監(jiān)聽(tīng)闷煤,socket,bind,listen
②客戶(hù)端發(fā)送請(qǐng)求童芹,connect,send
③連接確認(rèn),accept,response