1.描述用瀏覽器訪問www.baidu.com的過程漱逸?
先解析出baidu.com對應的ip地址
使用arp獲取默認網(wǎng)關的Mac地址
組織數(shù)據(jù)發(fā)送給默認的網(wǎng)關
默認網(wǎng)關把數(shù)據(jù)轉發(fā)給路由器
路由器根據(jù)自己的協(xié)議,選擇一個合適的路徑再轉發(fā)給目的網(wǎng)關
目的網(wǎng)關把數(shù)據(jù)轉發(fā)給dns服務
dns解析對應的ip地址,并原路返回請求域名的client尸折,得到對應IP地址之后蕾各,發(fā)送tcp三次握手協(xié)議進行鏈接
使用http協(xié)議發(fā)送請求給web
web服務器收到數(shù)據(jù)之后北启,查詢結果然后原路返回給瀏覽器
瀏覽器接收到數(shù)據(jù)之后,渲染來顯示這個網(wǎng)頁
瀏覽器關閉tcp連接熬的,四次揮手結束,完成訪問
2.什么是sql注入赊级,什么是跨站腳本押框,什么是跨站請求偽造
sql注入攻擊是最常見的形式,當服務器使用請求參數(shù)構造sql語句時理逊,惡意的sql被嵌入到sql中交給數(shù)據(jù)庫執(zhí)行橡伞,sql攻擊需要對數(shù)據(jù)庫有所了解才能進行,獲得表結構有多種方式
(1)如果使用開源系統(tǒng)搭建網(wǎng)站 那么數(shù)據(jù)庫結構也是公開的
(2)錯誤回顯:如果將服務器的錯誤信息直接顯示在頁面上晋被,攻擊者就可以通過非法的參數(shù)引發(fā)頁面錯誤兑徘,從而通過錯誤信息了解數(shù)據(jù)結構
(3)盲注:防范sql注入攻擊也可以采用消毒的方式,通過正則表達式對參數(shù)進行驗證羡洛,參數(shù)綁定也是很好的手段挂脑,這樣惡意的sql就會被當作是參數(shù)而不是命令被執(zhí)行
(4)XSS:是向網(wǎng)頁中注入惡意腳本,在用戶瀏覽網(wǎng)頁時在用戶瀏覽器中執(zhí)行惡意的腳本攻擊方式,有兩種形式:
反射型攻擊:誘使用戶點擊一個嵌入惡意腳本的連接以達到攻擊的目的
持久型攻擊:將惡意腳本提交到被攻擊網(wǎng)站的數(shù)據(jù)庫當中崭闲,用戶瀏覽網(wǎng)頁時肋联,惡意腳本從數(shù)據(jù)庫中被加載到頁面執(zhí)行
(5)CSRF:是攻擊者通過跨站請求,以合法的身份進行非法操作刁俭,原理是利用瀏覽器的cookie或服務器的session盜取用戶的身份橄仍,防范的主要手段就是識別請求者的身份,三種方式:
在表單中添加token牍戚、驗證碼侮繁、檢查請求頭中的Referer
3.給你一個網(wǎng)站怎么開展測試
a)首先查找需求說明、網(wǎng)站設計相關文檔翘魄,分析測試需求
b)制定測試計劃 確定測試范圍和測試策略鼎天,一般包括幾個部分:功能測試、界面測試暑竟、性能測試斋射、數(shù)據(jù)庫測試、安全性測試但荤、兼容性測試
c)設計測試用例
功能性測試:鏈接測試:是否正確跳轉罗岖,是否存在空頁面和無效頁面,是否有不正確的出錯信息返回等腹躁、提交功能的測試桑包、多媒體元素是否可以正確加載和顯示、多語言是否能夠正確顯示選擇的語言等等
界面測試:頁面風格是否統(tǒng)一美觀纺非、頁面布局是否合理哑了,重點內(nèi)容熱點內(nèi)容是否突出、控件是否正常使用烧颖、文字檢查
性能測試:壓力測試弱左、負載測試、強度測試
數(shù)據(jù)庫測試:考慮連接性炕淮、對數(shù)據(jù)的存取操作拆火、數(shù)據(jù)內(nèi)容的驗證
安全性測試:基本登錄功能檢查,是否存在溢出涂圆,導致系統(tǒng)崩潰或者權限泄漏们镜、相關開發(fā)語言的常見安全性問題檢查
兼容性測試:根據(jù)需求說明內(nèi)容,確定支持的平臺組合润歉、瀏覽器的兼容性模狭、操作系統(tǒng)兼容性、軟件平臺兼容性踩衩、數(shù)據(jù)庫兼容性
d)開展測試并記錄缺陷胞皱,合理安排測試進度邪意,提前獲取所需資源,建立管理體系
e)定期評審反砌,進行評估和總結雾鬼,調(diào)整測試內(nèi)容
4.電商支付模塊的測試如何展開
這就涉及到了第三方借口
下單接口:商家提交下單請求到第三方支付接口,第三方支付收到成功后返回下單成功的結果給到商家系統(tǒng)
支付接口:調(diào)用該接口時指定支付參數(shù)宴树,完成用戶賬戶向商家賬戶的支付策菜,采用頁面跳轉交互模式和后臺通知交互模式
退款接口:調(diào)用第三方的支付請求接口返回付款成功后,在需要做退款處理時調(diào)用退款請求接口發(fā)起退款處理
單筆訂單查詢接口:根據(jù)訂單號查詢單筆訂單信息和狀態(tài)酒贬。退款訂單查詢接口:調(diào)用第三方支付的退款接口返回后又憨,在需要查詢退款請求狀態(tài)的地方可以調(diào)用退款訂單查詢接口,查詢退款訂單的狀態(tài)和訂單信息
5.如何展開兼容性測試
web端
(1)首先人工測試锭吨,測試主流瀏覽器和常用的操作系統(tǒng)蠢莺,測試主流程和主界面,看看主流程和主界面是否有問題零如,如果存在問題躏将,就記錄下bug以及瀏覽器的型號和版本,以及操作系統(tǒng)考蕾,準確定位bug產(chǎn)生的原因祸憋,提交bug告知開發(fā)人員修改,所有的主流設備都需要進行測試肖卧,只關注主流程和主界面
(2)其次借助第三方測試工具蚯窥,IEtester(離線)、SuperPreview(離線)和Brows ershots(在線)塞帐,一款可以測試IE的兼容拦赠,一款可以測試主瀏覽器的兼容,包括火狐葵姥,谷歌荷鼠,Opera等等,借助第三方測試工具找到bug產(chǎn)生的位置牌里,分析測試結果告知開發(fā)進行修改
APP兼容性測試
(1)首先開展人工測試颊咬,測試工程師借助測試設備對主流程和主功能务甥,
主界面進行測試牡辽;收集所有的能收集到的不同型號的測試設備測試主流程和主界面,看看主流程和主界面是否有問題敞临,如果存在問題态辛,綜合考慮設備的使用率等因素,看看是否需要調(diào)整挺尿,如果需要奏黑,那么記錄下bug 情況以及測試設備的型號和操作系統(tǒng)炊邦,準確定位 bug 產(chǎn)生的原因,提交 bug熟史,告知開發(fā)人員修改
(2)次借助第三方測試工具馁害,對于 APP 的兼容性測試,百度眾測平臺和云測平臺蹂匹,這兩款測試工具里面包含了安卓和 iOS 的測試碘菜;測試很齊全,包括功能測試限寞、深度兼容測試忍啸、性能測試、網(wǎng)絡環(huán)境測試履植,還可以模擬海量用戶測試计雌,,還可以導入自己編寫的測試用例進行功能測試玫霎,里面還包括測試專家的測試凿滤,測試工程師把打包好的 apk 或者 IPA 文件,上傳到測試平臺鼠渺,選擇需要測試的設備型號鸭巴,開始任務即可
6.常用 HTTP 協(xié)議調(diào)試代理工具有什么?詳細說明抓取 HTTPS 協(xié)議的設置過程拦盹?
Fiddler 是一個 http 協(xié)議調(diào)試代理工具
打開 Fiddler鹃祖,進入 Tools-Options-HTTPS,配置允許抓取 HTTPS 連接和解析 HTTPS 流量然后選擇要解釋的來源普舆,設置是否忽略服務證書錯誤(這些操作做完之后恬口,在瀏覽器方位 IP:8888,安裝證書就可以在瀏覽器抓取 HTTPS協(xié)議了)
進入 Tools-Options-Connections沼侣,保證打開啟抓取 HTTPS 連接祖能,然后默認端口按需求是或否需要修改,然后點選允許遠程計算機連接選項
7.Android 四大組件及生命周期
Activity蛾洛、Service养铸、BroadcasReceiver、ContentProvider
8. APP 測試的內(nèi)容主要包括哪些轧膘,如何開展钞螟?
功能測試
1.業(yè)務邏輯正確性測試:依據(jù):產(chǎn)品文檔->測試用例編寫
兼容性測試:
1.系統(tǒng)版本:Android:官方版本,定制版本;IOS:官方提供版本
2.分辨率:720 * 1280 1080* 1920
3.網(wǎng)絡情況:2g 3g 4g 5g Wi-Fi
異常測試
1.熱啟動應用:應用在后臺長時間待機;應用在后臺待機過程中,手機重啟
2.網(wǎng)絡切換和中斷恢復:網(wǎng)絡切換;中斷恢復:
3.電話信息中斷恢復
升級谎碍,安裝鳞滨,卸載測試
1.升級測試:臨近版本升級(1.0->1.1);跨版本(1.0->....->2.2)
2.安裝測試:首次安裝;覆蓋安裝(同版本,不同版本覆蓋);卸載后安裝
3.卸載測試:首次卸載;卸載安裝后在卸載
健壯性測試
1.手機資源消耗:cpu蟆淀,內(nèi)存
2.流量消耗:圖片拯啦,數(shù)據(jù)澡匪,視頻
3.電量測試
4.崩潰恢復
9.針對 App 的安裝功能,寫出測試點褒链?
安裝
1.正常安裝測試唁情,檢查是否安裝成功。
2.APP 版本覆蓋測試甫匹。例如:先安裝一個 1.0 版本的 APP,再安裝一個高版本(1.1 版本)的 APP荠瘪,檢查是否被覆蓋
3.回退版本測試。例如:先裝一個 2.0 版本的 APP,再安裝一個 1.0 版本的 APP,正常情況下版本是可以回退的赛惩。
4.安裝時內(nèi)存不足哀墓,彈出提示。
5.根據(jù)安裝手冊操作喷兼,是否正確安裝篮绰。
6.安裝過程中的意外情況(強行斷電、斷網(wǎng)季惯、來電話了吠各、查看信息)等等,檢查會發(fā)生的情況
7.通過“同步軟件”勉抓,檢查安裝時是否同步安裝了
8.在不同型號贾漏、系統(tǒng)、屏幕大小藕筋、分辨率上的手機進行安裝
9.安裝時是否識別有 SD 卡纵散,并默認安裝到 sd 卡中
10.安裝完成后,能否正常啟動應用程序
11.安裝完成后隐圾,重啟手機能否正常啟動應用程序伍掀。
12.安裝完成后,是否對其他應用程序造成影響暇藏。
13.安裝完成后蜜笤,能否添加快捷方式。
14.安裝完成后盐碱,殺毒軟件是否會對其當做病毒處理把兔。
15.多進程進行安裝,是否安裝成功瓮顽。
16.在安裝過程中县好,所有的提示信息必須是英文或者中文,提示信息中不能出現(xiàn)代碼趣倾、符號聘惦、亂碼等某饰。
17.安裝之后儒恋,是否自動啟動程序善绎。
18.是否支持第三方安裝。
19.在安裝中點擊取消诫尽。
卸載
1.用自己的卸載程序進行卸載禀酱,檢查是否卸載干凈。
2.用第三方工具牧嫉,檢查是否卸載干凈剂跟。
3.在卸載過程中,點擊取消按鈕酣藻,看是否正常退出卸載程序曹洽,檢查軟件是否還能繼續(xù)正常使用。
4.卸載過程中辽剧,出現(xiàn)意外(比如手機關機送淆,沒電,查看信息怕轿,接打電話)偷崩,程序是否還能運行。
5.在卸載過程中撞羽,突然重啟設備阐斜,再次訪問程序,是否還能運行诀紊。
6.在沒用使用程序時谒出,刪除目錄文件,看程序是否能運行邻奠。
7.在使用過程中到推,直接刪除目錄文件,程序是否還能運行惕澎。
8.不同系統(tǒng)莉测、硬件環(huán)境、網(wǎng)絡環(huán)境下進行卸載唧喉。
9.卸載成功后捣卤,是否對其他程序有影響。
10.卸載后再次安裝八孝,是否正常使用董朝。
11.在卸載過程中,所有的提示信息必須是英文或者中文干跛,提示信息中不能出現(xiàn)代碼子姜、符號、亂碼等楼入。
更新
1.當客戶端有新版本時哥捕,提示更新牧抽。
2.非強制更新,可以取消更新遥赚,舊版本正常使用扬舒,下次使用軟件時,仍然會出現(xiàn)更新提示凫佛。
3.強制更新讲坎,強制更新而用戶沒有更新時,退出客戶端愧薛,下次啟動晨炕,依然提示更新。
4.不卸載更新毫炉,檢查是否可以更新府瞄。
5.不卸載更新,檢查資源同名文件如圖片等是否更新成最新版本碘箍。
6.非 wifi 網(wǎng)絡下遵馆,提示是否更新,取消就加入待下載丰榴,wifi 下自動更新货邓。
10.常用的 ADB 命令?
adb --help / adb :看見幫助信息
adb start-server:啟動 adb 服務
adb kill-server:關閉 adb 服務
adb devices:查看手機設備號
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 啟動時間
11.在查看logcat命令日志時候怎么內(nèi)容保存到本地文件换况?
輸出重定向:logcat>>log_file_name
12.APP崩潰(閃退),可能是什么原因?qū)е碌模?/h4>
緩存垃圾過多:由于安卓系統(tǒng)的特性,如果長時間不清理垃圾文件.會導致越來越卡.也會出現(xiàn)閃退情況.
運行的程序過多,導致內(nèi)存不足
應用版本兼容問題:如果應用版本太低盗蟆,會導致不兼容戈二,造成閃退。此外喳资,有些新版本在調(diào)試中觉吭,也會造成應用閃退。解決方法:如果是版本太舊仆邓,更新為新版本即可鲜滩;如果是新版本閃退,可能是應用在改版調(diào)試节值,可卸載后
安裝舊版徙硅。
檢查 APP 中訪問網(wǎng)絡的地方,組件中的 ImageView 是否可以正常的下載并顯示到 app 頁面上搞疗。
檢查 APP 的 sdk 和手機的系統(tǒng)是否兼容嗓蘑。
在一些特定情況下的閃退,比如播放視頻,在 Android5.0 升級到 Android6.0 的時候,有些系統(tǒng) API 老版本有,新版本沒有,到時回去對象的時候失敗,報空,系統(tǒng)就會出現(xiàn)閃退問題.
13.如何測試監(jiān)測 app 的內(nèi)存使用、CPU 消耗、流量使用情況桩皿?
adb shell top
Android 應用性能測試通常包括:啟動時間豌汇、內(nèi)存、CPU业簿、耗電量、流量阳懂、流暢度等
根據(jù)手機的使用應用頻度和強度不同梅尤,可將應用使用強度分為如下幾種狀態(tài):
空閑狀態(tài):指啟動應用后,不做任何操作或切換到后臺運行的情況稱為空閑狀態(tài)岩调,該情況為應用對內(nèi)存的
消耗是最小的巷燥。
中強度狀態(tài):該情況用戶使用應用的強度和時間長短不確定,相對來說使用時長偏長号枕。
高強度狀態(tài):該種情況為應用內(nèi)高頻率的使用缰揪,用戶很少達到,跑 monkey 時可認為高強度狀態(tài)葱淳,該種情
況常用來測試應用內(nèi)存泄漏的情況測試時钝腺,可根據(jù)用戶的操作習慣模擬應用使用頻率和強度等級。
使用 adb 命令赞厕,手機連接電腦開啟 USB 調(diào)試模式艳狐,進入 adbshell。
(1)查看 CPU 占用率
使用命令 top -m 10 -s cpu(-t 顯示進程名稱皿桑,-s 按指定行排序毫目,-n 在退出前刷新幾次,-d 刷新間隔废士,-m 顯示最大數(shù)量)
參數(shù)含義:
PID:progressidentification翩肌,應用程序 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:應用程序名稱
在測試過程中,QA 需要關注對應包的 cpu 占用率久信,反復進行某個操作窖杀,cpu 占用過高且一直無法釋放,此時
可能存在風險裙士。如果你想篩選出你自己的應用的話可以用下面命令 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
重點關注如下幾個字段:
Native/Dalvik 的 Heap 信息中的 alloc :具體在上面的第一行和第二行,它分別給出的是 JNI 層和 Java
層的內(nèi)存分配情況肿嘲,如果發(fā)現(xiàn)這個值一直增長融击,則代表程序可能出現(xiàn)了內(nèi)存泄漏。
Total 的 PSS 信息:這個值就是你的應用真正占據(jù)的內(nèi)存大小雳窟,通過這個信息尊浪,你可以輕松判別手機中哪些
程序占內(nèi)存比較大了。
-----------------------------a--