1:描述用瀏覽器訪問www.baidu.com的過程
1) 瀏覽器獲取輸入的域名www.baidu.com
(2) 瀏覽器向DNS請求解析www.baidu.com的IP地址
(3) 域名系統(tǒng)DNS解析出百度服務(wù)器的IP地址 (詳細介紹DNS)-通過網(wǎng)關(guān)出去
(4) 瀏覽器與該服務(wù)器建立TCP連接(默認端口號80)
(5) 瀏覽器發(fā)出HTTP請求俊啼,請求百度首頁
(6) 服務(wù)器通過HTTP響應(yīng)把首頁文件發(fā)送給瀏覽器
(7) TCP連接釋放
(8) 瀏覽器將首頁文件進行解析你弦,并將Web頁顯示給用戶朵夏。
2:什么是sql注入僵芹,什么是跨站腳本凌彬,什么是跨站請求偽造
sql注入攻擊是注入攻擊最常見的形式澄阳,當服務(wù)器請求參數(shù)構(gòu)造sql語句時姨伟,惡意的sql被嵌入到sql中交給數(shù)據(jù)庫執(zhí)行 攻擊者想要獲得表結(jié)構(gòu)有多種方式:
a:如果使用開源系統(tǒng)搭建網(wǎng)站匾二,數(shù)據(jù)庫結(jié)構(gòu)也是分開的
b:如果將服務(wù)器的錯誤信息直接顯示在頁面上窑多,攻擊者可以通過錯誤信息了解數(shù)據(jù)庫結(jié)構(gòu)
c:防范sql注入可以采用消毒的方式仍稀,通過正則表達式對請求參數(shù)進行驗證
跨站腳本攻擊是向網(wǎng)站中注入惡意腳本 在用戶瀏覽網(wǎng)頁時在用戶瀏覽器中執(zhí)行惡意腳本的攻擊方式跨站腳本攻擊分為兩種:反射型攻擊,持久型攻擊
跨站請求偽造是攻擊者通過跨站請求以合法的用戶身份進行非法操作 防范的方式有3種:在表單種添加令牌? 驗證碼? 檢查請求頭中的referer
3. 給你一個網(wǎng)站怎樣開展測試
a:查找需求說明書 網(wǎng)站設(shè)計等相關(guān)文檔? 分析測試需求
b:制定測試計劃
c:設(shè)計測試用例
? ? ? ? c1:功能測試:鏈接測試是否正常跳轉(zhuǎn)埂息,是否有空頁與無效頁琳轿,提交功能測試,是否支持多語言
? ? ? ? c2:界面測試:是否風格同一耿芹,布局是否合理
? ? ? ? c3:性能測試:壓力測試崭篡,負載測試,強度測試
? ? ? ? c4:數(shù)據(jù)庫測試:數(shù)據(jù)庫存儲操作吧秕,數(shù)據(jù)內(nèi)容驗證等
? ? ? ? c5:安全測試:登錄功能 安全性問題檢查比如sql注入
? ? ? ? c6:兼容性測試:確定支持平臺琉闪,瀏覽器,操作系統(tǒng)砸彬,軟件平臺和數(shù)據(jù)庫的兼容性
d:開展測試颠毙,記錄缺陷
e:定期評審
4:電商支付模塊的測試如何開展
支付流程就涉及到了第三方接口
下單接口,支付接口砂碉,退款接口蛀蜜,單筆訂單查詢接口
保證接口能正常調(diào)用
生成一筆訂單,支付成功后增蹭,同步或異步重復調(diào)用滴某,只有一次有效
異步通知屏蔽,同步有效,進行支付霎奢,同步能夠正常到賬
同步設(shè)置無效户誓,異步有效,進行支付幕侠,異步能夠正常到賬
如果是用戶購買實物商品帝美,用戶發(fā)起退貨,要保證退貨流程正常晤硕,資金能正常返還悼潭,要考慮并發(fā)情況的驗證以驗證安全性
如果是用戶購買虛擬商品,例如話費舞箍,只有在發(fā)貨失敗的時候才能發(fā)起退貨女责,注意驗證
5:如何開展兼容性測試
web:開展人員測試,測試主流瀏覽器和常用操作系統(tǒng)測試主流程和主界面是否有問題创译,如有問題抵知,記錄下bug情況以及瀏覽器型號,版本以及操作系統(tǒng)软族,定位bug產(chǎn)生原因刷喜,提交bug,告知開發(fā)人員
借助第三方測試工具
app:和web端類似立砸,開展人工測試掖疮,借助測試設(shè)備測試主流程以及主頁面,收集所有不同型號的測試設(shè)備對主流程颗祝,主界面的測試結(jié)果浊闪,查看是否有問題,如果存在問題螺戳,提交bug搁宾,告知開發(fā)人員
借助第三方測試工具
6:常用http協(xié)議調(diào)試代理工具有什么?詳細說明抓取https協(xié)議的設(shè)置過程
fiddler是一個http協(xié)議調(diào)試代理工具
打開fiddler倔幼,進入tools-options-https盖腿,配置允許抓取https連接和解析https流量然后選擇要解釋的來源,設(shè)置是否忽略服務(wù)證書錯誤
(記住就好)簡述?Android?四大組件及生命周期损同?
Android?的四大組件包括:Activity翩腐、Service、BroadcasReceiver膏燃、ContentProvider
7.APP?測試的內(nèi)容主要包括哪些茂卦,如何開展?
功能測試:
1.業(yè)務(wù)邏輯正確性測試:依據(jù):產(chǎn)品文檔->測試用例編寫
兼容性測試:(任意選擇記一兩個)
1.系統(tǒng)版本:Android:官方版本,定制版本;IOS:官方提供版本
2.分辨率:720?*?1280 或1080*?1920
3.網(wǎng)絡(luò)情況:2g 3g?4g?5g?Wi-Fi
異常測試:
1.熱啟動應(yīng)用:應(yīng)用在后臺長時間待機;應(yīng)用在后臺待機過程中组哩,手機重啟
2.網(wǎng)絡(luò)切換和中斷恢復:網(wǎng)絡(luò)切換;中斷恢復等龙;
3.電話信息中斷恢復处渣;
升級,安裝而咆,卸載測試
1.升級測試:臨近版本升級(1.0->1.1);跨版本(1.0->....->2.2)
2.安裝測試:首次安裝;覆蓋安裝(同版本,不同版本覆蓋);卸載后安裝
3.卸載測試:首次卸載;卸載安裝后在卸載
健壯性測試
1.手機資源消耗:cpu幕袱,內(nèi)存
2.流量消耗:圖片暴备,數(shù)據(jù),視頻
3.電量測試
4.崩潰恢復
Android?的兼容性測試都考慮哪些內(nèi)容们豌?(加粗字體)
品牌機型兼容:根據(jù)市場占有率涯捻、發(fā)布時間等指標對主流、最新機型進行重點兼容
ROM?兼容:需兼容原生的?ROM(2.1望迎、2.2障癌、2.3、4.0辩尊、4.1涛浙、4.2);第三方?ROM(小米摄欲、百度易轿亮、點心、魅
族胸墙、阿里云……)
屏幕兼容:需兼容?HVGA我注、VGA、WVGA迟隅、FWVGA但骨、720p、1080p?屏幕分辨率智袭,并考慮不同?PPI?的情況
軟件兼容:安全類軟件(百度手機管家奔缠、360?優(yōu)化大師、360?安全衛(wèi)士吼野、QQ?手機管家添坊、安卓優(yōu)化大師、網(wǎng)秦箫锤、
LBE)贬蛙,輸入法軟件(系統(tǒng)自帶、Sogou谚攒、百度)
版本兼容:服務(wù)器端需要兼容產(chǎn)品早期版本所需的?API?接口
網(wǎng)絡(luò)兼容:WiFi阳准、3?大運營商的?2G,3G,4G?網(wǎng)絡(luò),需區(qū)分?WAP?和?NET?接入
8.針對?App?的安裝功能馏臭,寫出測試點野蝇?
安裝
1.正常安裝測試讼稚,檢查是否安裝成功。
2.APP?版本覆蓋測試绕沈。
3.回退版本測試锐想。
4.安裝時內(nèi)存不足,彈出提示乍狐。
5.根據(jù)安裝手冊操作赠摇,是否正確安裝。
6.安裝過程中的意外情況(強行斷電浅蚪、斷網(wǎng)藕帜、來電話了、查看信息)等等惜傲,檢查會發(fā)生的情況洽故。
7. 安裝了一.在不同型號、系統(tǒng)盗誊、屏幕大小时甚、分辨率上的手機進行安裝。
8.安裝完成后哈踱,能否正常啟動應(yīng)用程序撞秋。
9.是否支持第三方安裝。
10.在安裝中點擊取消嚣鄙。
卸載
1.用自己的卸載程序進行卸載吻贿,檢查是否卸載干凈。
2.用第三方工具哑子,檢查是否卸載干凈舅列。
3.在卸載過程中,突然重啟設(shè)備卧蜓,再次訪問程序帐要,是否還能運行。
4.在沒用使用程序時弥奸,刪除目錄文件榨惠,看程序是否能運行。
5.在使用過程中盛霎,直接刪除目錄文件赠橙,程序是否還能運行。
6.不同系統(tǒng)愤炸、硬件環(huán)境期揪、網(wǎng)絡(luò)環(huán)境下進行卸載。
7.卸載成功后规个,是否對其他程序有影響凤薛。
8.卸載后再次安裝姓建,是否正常使用。
更新
1.當客戶端有新版本時缤苫,提示更新速兔。
2.不卸載更新,檢查是否可以更新活玲。
3.不卸載更新涣狗,檢查資源同名文件如圖片等是否更新成最新版本。
4.非?wifi?網(wǎng)絡(luò)下翼虫,提示是否更新屑柔,取消就加入待下載屡萤,wifi?下自動更新珍剑。
9.常用的?ADB?命令?
adb?--help /?adb?:看見幫助信息
adb?start-server:啟動?adb?服務(wù)
adb?kill-server:關(guān)閉?adb?服務(wù)
adb?devices:查看手機設(shè)備號
adb?shell?getprop ro.build.version.release:獲取系統(tǒng)版本
adb?push?電腦?手機
adb?pull?手機?電腦
adb?logcat?| grep(unix)?包名
adb?logcat?| findstr(win)?包名
adb?shell?:進入?shell?命令行死陆,可以操作?Linux?命令
adb?shell dumpsys window?windows | grep?mFocusedApp:獲取包名?啟動名(win:adb?shell?dumpsys window
windows | findstr?mFocusedApp)
adb?install?路徑/apk?文件:安裝?apk?到手機上
adb?uninstall?包名:卸載?app?從手機上
adb?shell?am?start?-W?包名/啟動名:app?啟動時間
?
10. 在查看?logcat?命令日志時候怎么內(nèi)容保存到本地文件招拙?
輸出重定向:logcat?>>?log_file_name
11.App?崩潰(閃退),可能是什么原因?qū)е碌模?/p>
1.緩存垃圾過多
2.運行的程序過多,導致內(nèi)存不足
3.應(yīng)用版本兼容問題:如果應(yīng)用版本太低措译,會導致不兼容别凤,造成閃退 。
4.在一些特定情況下的閃退,比如播放視頻,在?Android5.0?升級到?Android6.0?的時候,有些系統(tǒng)?API?老版本有,新版本沒有,到時回去對象的時候失敗,報空,系統(tǒng)就會出現(xiàn)閃退問題.
12.如何測試監(jiān)測?app?的內(nèi)存使用领虹、CPU?消耗规哪、流量使用情況?(加粗字體)
adb?shell?top
top命令提供了實時的對系統(tǒng)處理器的狀態(tài)監(jiān)視.它將顯示系統(tǒng)中CPU最“敏感”的任務(wù)列表.該命令可以按CPU使用.內(nèi)存使用和執(zhí)行時間對任務(wù)進行排序.
Android?應(yīng)用性能測試通常包括:啟動時間塌衰、內(nèi)存诉稍、CPU、耗電量最疆、流量杯巨、流暢度等
根據(jù)手機的使用應(yīng)用頻度和強度不同,可將應(yīng)用使用強度分為如下幾種狀態(tài):
空閑狀態(tài):指啟動應(yīng)用后努酸,不做任何操作或切換到后臺運行的情況稱為空閑狀態(tài)服爷,該情況為應(yīng)用對內(nèi)存的消耗是最小的。
中強度狀態(tài):該情況用戶使用應(yīng)用的強度和時間長短不確定获诈,相對來說使用時長偏長仍源。
高強度狀態(tài):該種情況為應(yīng)用內(nèi)高頻率的使用,用戶很少達到舔涎,跑?monkey?時可認為高強度狀態(tài)镜会,該種情況常用來測試應(yīng)用內(nèi)存泄漏的情況測試時,可根據(jù)用戶的操作習慣模擬應(yīng)用使用頻率和強度等級终抽。
監(jiān)測APP內(nèi)存使用?adb?命令戳表,手機連接電腦開啟?USB?調(diào)試模式桶至,進入?adbshell。
1)查看?CPU?占用率
使用命令?top?-m?10?-s?cpu(-t?顯示進程名稱匾旭,-s?按指定行排序镣屹,-n?在退出前刷新幾次,-d?刷新間隔价涝,-m?顯示最大數(shù)量)
參數(shù)含義
PID:progressidentification女蜈,應(yīng)用程序?ID
S:?進程的狀態(tài),其中?S?表示休眠色瘩,R?表示正在運行伪窖,Z?表示僵死狀態(tài),N?表示該進程優(yōu)先值是負數(shù)居兆。
#THR:程序當前所用的線程數(shù)
VSS:VirtualSet?Size?虛擬耗用內(nèi)存(包含共享庫占用的內(nèi)存)
RSS:?ResidentSet?Size?實際使用物理內(nèi)存(包含共享庫占用的內(nèi)存)
UID:UserIdentification覆山,用戶身份?ID
Name:應(yīng)用程序名稱
在測試過程中,QA?需要關(guān)注對應(yīng)包的?cpu?占用率泥栖,反復進行某個操作簇宽,cpu?占用過高且一直無法釋放,此時
可能存在風險吧享。如果你想篩選出你自己的應(yīng)用的話可以用下面命令?top -d 3|?grep?packageName
2)查看內(nèi)存使用情況
dumpsys meminfo <package_name>或?dumpsys meminfo?<package_id>
參數(shù)含義:
Naitve Heap?Size:?從?mallinfo usmblks?獲得魏割,代表最大總共分配空間
Native Heap?Alloc:?從?mallinfo uorblks?獲得,總共分配空間
Native Heap?Free:?從?mallinfo fordblks?獲得钢颂,代表總共剩余空間
Native Heap?Size?約等于?Native Heap?Alloc +?Native Heap Free
mallinfo?是一個?C?庫钞它,?mallinfo?函數(shù)提供了各種各樣的通過?C?的?malloc()函數(shù)分配的內(nèi)存的統(tǒng)計信息。
Dalvik Heap?Size:從?Runtime totalMemory()獲得殊鞭,Dalvik Heap?總共的內(nèi)存大小遭垛。
Dalvik Heap?Alloc:?Runtime totalMemory()-freeMemory()?,Dalvik Heap?分配的內(nèi)存大小钱豁。
Dalvik Heap?Free:從?Runtime freeMemory()獲得耻卡,Dalvik Heap?剩余的內(nèi)存大小。
Dalvik Heap?Size?約等于?Dalvik HeapAlloc +?Dalvik?Heap?Free
重點關(guān)注如下幾個字段:
Native/Dalvik?的?Heap?信息中的?alloc?:具體在上面的第一行和第二行牲尺,它分別給出的是?JNI?層和?Java
層的內(nèi)存分配情況卵酪,如果發(fā)現(xiàn)這個值一直增長,則代表程序可能出現(xiàn)了內(nèi)存泄漏谤碳。
Total?的?PSS?信息:這個值就是你的應(yīng)用真正占據(jù)的內(nèi)存大小溃卡,通過這個信息,你可以輕松判別手機中哪些
程序占內(nèi)存比較大了蜒简。
流量使用情況
首先獲取待測應(yīng)用的userId
adb shell dumpsys package 【包名】? |? ? findstr userId