如何測(cè)試崩潰

首先迅箩,崩潰有幾種情況:
閃退
提示停止運(yùn)行
無(wú)響應(yīng)
( 不同情況雖然沒(méi)有嚴(yán)格意義上區(qū)分開引起原因溉愁,但是都有側(cè)重。在之后的工作中饲趋,我會(huì)實(shí)時(shí)補(bǔ)充統(tǒng)計(jì)拐揭。)

1.接口返回值
[直接原因]:app無(wú)法解析接口返回值/獲取不到要獲取的參數(shù)/參數(shù)類型不對(duì) 導(dǎo)致客戶端代碼報(bào)錯(cuò)
[引起原因]:臟數(shù)據(jù)/網(wǎng)絡(luò)問(wèn)題導(dǎo)致接口超時(shí)或漏了數(shù)組元素/前后臺(tái)沒(méi)有統(tǒng)一參數(shù)類型標(biāo)準(zhǔn)/參數(shù)名錯(cuò)誤/實(shí)體消失
[解決辦法]:在網(wǎng)絡(luò)順暢/不順暢情況下抓包,對(duì)著api文檔一個(gè)一個(gè)的參數(shù)對(duì)比奕塑,返回值有數(shù)組可以橫向?qū)Ρ忍梦郏赡苁瞧渲心硞€(gè)元素內(nèi)的某個(gè)參數(shù)和其他元素內(nèi)的這個(gè)參數(shù)有內(nèi)容不同/類型不同/為空/不存在/規(guī)范不同。
[測(cè)試方法]:首先要從2個(gè)角度考慮爵川。1:后臺(tái)不要返回這種臟數(shù)據(jù)敷鸦,或者有臟數(shù)據(jù)要進(jìn)行處理再返回給app。2:app要有一定的容錯(cuò)性寝贡,不能因?yàn)橐粋€(gè)參數(shù)這么一點(diǎn)小事就導(dǎo)致崩潰(低級(jí)bug瞬間升級(jí)到致命bug)。所以要從倆邊測(cè)試值依。1:先進(jìn)行正常的接口測(cè)試圃泡,保證正常數(shù)據(jù)返回沒(méi)有問(wèn)題。再通過(guò)操作數(shù)據(jù)庫(kù)或其他手段進(jìn)行構(gòu)造臟數(shù)據(jù)愿险,測(cè)試服務(wù)器的錯(cuò)誤處理能力颇蜡。2:再利用mock或抓包工具,強(qiáng)行修改返回值辆亏,測(cè)試app端的容錯(cuò)能力风秤。用腳本或手動(dòng)把所有/特定 的參數(shù)進(jìn)行更改,包括 類型/內(nèi)容長(zhǎng)度/為空/刪除掉/不符合規(guī)范 等情況來(lái)測(cè)試app的容錯(cuò)性和成熟性扮叨。
其次網(wǎng)絡(luò)問(wèn)題也是有概率引起崩潰缤弦,就是在網(wǎng)絡(luò)環(huán)境很惡劣 或變動(dòng)頻繁的情況下進(jìn)行所有接口測(cè)試,保證返回值全面完整彻磁。觀察接口返回是否有拉下的數(shù)組元素碍沐。因?yàn)閍pp的超時(shí)判定 和服務(wù)器的超時(shí)判定是不統(tǒng)一的≈则眩可能接口超時(shí)要60秒累提,但是app只等待10秒鐘,10秒沒(méi)到就判定失敗了磁浇,但這不是導(dǎo)致崩潰的原因斋陪。導(dǎo)致崩潰的原因在于服務(wù)器返回超時(shí)后(不是無(wú)網(wǎng)絡(luò),不是關(guān)掉wifi或數(shù)據(jù)流量),接口報(bào)什么http狀態(tài)碼无虚,一般是502鞍匾,app原則上是要對(duì)所有接口502都有對(duì)應(yīng)處理和提示,但實(shí)際情況是骑科,很多接口有提示不崩潰橡淑,更多的接口會(huì)崩潰。所以測(cè)試的時(shí)候要構(gòu)造特殊環(huán)境咆爽,來(lái)讓所以接口依次超時(shí)梁棠。方法可以是在抓包工具上打斷點(diǎn),然后不進(jìn)行繼續(xù)操作斗埂,挺著看app最終會(huì)不會(huì)崩潰符糊。
實(shí)體消失問(wèn)題導(dǎo)致崩潰,其實(shí)是接口規(guī)范上的原因呛凶,當(dāng)因?yàn)橄群蟛僮髂新Γ?yè)面未及時(shí)刷新的情況,導(dǎo)致app對(duì)一個(gè)已經(jīng)在后臺(tái)數(shù)據(jù)庫(kù)抹除的實(shí)體或關(guān)系進(jìn)行訪問(wèn)時(shí)漾稀,后臺(tái)又恰好沒(méi)考慮過(guò)此情況模闲,導(dǎo)致后臺(tái)返回結(jié)果不可預(yù)料,app又沒(méi)有抓取某種異常返回崭捍,導(dǎo)致崩潰尸折。測(cè)試辦法就是測(cè)試點(diǎn)中計(jì)劃好所有這種可以操作到消失實(shí)體的情況,來(lái)進(jìn)行模擬測(cè)試殷蛇∈导校或者抓包時(shí)強(qiáng)行更改請(qǐng)求實(shí)體,來(lái)達(dá)到請(qǐng)求一個(gè)不存在實(shí)體的場(chǎng)景粒梦,觀察服務(wù)器如何處理并返回亮航,app又是否會(huì)因此而崩潰。

2.內(nèi)存問(wèn)題
[直接原因]:客戶端app代碼報(bào)錯(cuò)匀们。
[引起原因]:兼容不好/內(nèi)存不足/內(nèi)存泄露造成app開辟內(nèi)存空間失敗/內(nèi)存泄漏缴淋。
[解決辦法]:提醒用戶更換手機(jī)或關(guān)掉后臺(tái)其他app進(jìn)程,崩潰的app要進(jìn)行全面測(cè)試昼蛀,定位到具體什么操作導(dǎo)致崩潰宴猾。
[測(cè)試方法]:先進(jìn)行兼容性測(cè)試,用不同的操作系統(tǒng)/手機(jī)型號(hào)/品牌/系統(tǒng)版本/藍(lán)牙版本去執(zhí)行一些跟寫入讀取有關(guān)的功能的用例叼旋。用emmagee監(jiān)控app仇哆,看到各種操作后,占用的內(nèi)存是否超過(guò)預(yù)期夫植。讓開發(fā)規(guī)范代碼讹剔,及時(shí)釋放掉占用的存儲(chǔ)空間油讯。手機(jī)安裝很多app,然后后臺(tái)都打開延欠,然后再運(yùn)行自家app陌兑,觀察其是否會(huì)崩潰頻繁,可以用monkey測(cè)試(雖然monkey無(wú)法表明到底是什么原因引起崩潰由捎,但是可以通過(guò) 觀察后臺(tái)干凈/后臺(tái)運(yùn)行過(guò)多app 這倆種情況下多次測(cè)試兔综,看是否因?yàn)楹笈_(tái)運(yùn)行過(guò)多app 就導(dǎo)致monkey崩潰概率高。而判斷出大致自家app的生存能力)其他待補(bǔ)充狞玛。

3.下標(biāo)越界問(wèn)題
[直接原因]:客戶端app代碼報(bào)錯(cuò)软驰。
[引起原因]:需要操作的元素已經(jīng)消失/代碼錯(cuò)誤,超出實(shí)體數(shù)量/讀取or寫入本地文件或緩存時(shí)的IO錯(cuò)誤
[解決辦法]:調(diào)查引起崩潰的具體操作步驟心肪,然后提交開發(fā)解決锭亏,前端代碼容錯(cuò)率需要提高。
[測(cè)試方法]:邊界值測(cè)試為核心思想硬鞍,測(cè)試正常情況有關(guān)數(shù)量的功能用例
要進(jìn)行代碼review1:保證代碼沒(méi)有錯(cuò)誤慧瘤,循環(huán)中沒(méi)有超出實(shí)體數(shù)量。2:保證代碼容錯(cuò)性高固该,每個(gè)循環(huán)都要有越界異常捕獲并處理锅减。/
要進(jìn)行手動(dòng)破壞性測(cè)試,1:如刪除本地文件蹬音,比如app要調(diào)取本地緩存的4張圖片上煤,在app剛要調(diào)用的時(shí)候,已經(jīng)選擇好的時(shí)候著淆,切換到本地文件管理中,刪掉其中一個(gè)拴疤,那么app就會(huì)訪問(wèn)到一個(gè)不存在的文件永部,會(huì)引發(fā)越界等代碼報(bào)錯(cuò)。2:破壞掉這個(gè)文件呐矾。那么app就會(huì)讀取的時(shí)候發(fā)生io錯(cuò)誤苔埋。等情況來(lái)進(jìn)行測(cè)試。

4.渲染不及時(shí)問(wèn)題
[直接原因]:控件生成/調(diào)用受阻蜒犯,導(dǎo)致前端app代碼報(bào)錯(cuò)
[引起原因]:渲染過(guò)慢组橄,操作過(guò)快,兼容性不好
[解決辦法]:讓用戶換手機(jī)罚随,或慢點(diǎn)點(diǎn)玉工,重新設(shè)計(jì)避免用戶連點(diǎn)造成的操作過(guò)快,重新設(shè)計(jì)減輕頁(yè)面加載渲染負(fù)擔(dān)淘菩,異步處理
[測(cè)試方法]:對(duì)復(fù)雜/卡頓頁(yè)面進(jìn)行快速操作來(lái)讓本不應(yīng)該出現(xiàn)在一起的倆個(gè)控件出現(xiàn)在一起遵班,或用monkey最大速度測(cè)試屠升。待補(bǔ)充

5.權(quán)限問(wèn)題
[直接原因]:客戶端未對(duì)無(wú)權(quán)限情況處理,導(dǎo)致代碼報(bào)錯(cuò)
[引起原因]:用戶訪問(wèn)未獲取到系統(tǒng)相關(guān)權(quán)限的功能狭郑,客戶端又未對(duì)此情況進(jìn)行處理
[解決辦法]:修改崩潰bug腹暖,設(shè)計(jì)此情況的處理機(jī)制,如提示用戶去手動(dòng)開權(quán)限翰萨,或自動(dòng)退出等情況脏答。
[測(cè)試方法]:關(guān)掉app所有的系統(tǒng)權(quán)限,然后去訪問(wèn)所有系統(tǒng)權(quán)限相關(guān)的頁(yè)面和功能亩鬼。例如:相冊(cè)殖告,照相,定位辛孵,開啟wifi丛肮,藍(lán)牙,gps 等等權(quán)限魄缚。

6.第三方問(wèn)題
[引起原因]:第三方廣告的突然彈出/其他app分享進(jìn)來(lái)和出去/各種第三方app的強(qiáng)行搶鏡(如搶紅包提醒)
[測(cè)試方法]:在各個(gè)頁(yè)面宝与,手動(dòng)觸發(fā)大多數(shù)app的 或 本app的外接 廣告來(lái)測(cè)試。用其他主流app測(cè)試分享冶匹,或自家app分享出去再回來(lái)看是否已經(jīng)被退出习劫。突然收到其他app的強(qiáng)制提醒。

7.系統(tǒng)高優(yōu)先級(jí)app問(wèn)題
[直接原因]:導(dǎo)致自家app突然被掛起或放置后臺(tái)
[引起原因]:突然來(lái)電話嚼隘,突然收短信诽里,鬧鐘,會(huì)議提醒系統(tǒng)原生app等情況
[測(cè)試方法]:在各個(gè)頁(yè)面飞蛹,功能運(yùn)行前中后谤狡。進(jìn)行接電話/短信來(lái)測(cè)試。主要測(cè)試是否會(huì)影響電話/短信卧檐,電話/短信結(jié)束后 app是否能恢復(fù)到之前的頁(yè)面,還是已經(jīng)閃退被強(qiáng)關(guān)了墓懂。

8.設(shè)備視圖方向問(wèn)題
[直接原因]:因橫豎屏導(dǎo)致app崩潰
[解決方法]:重啟app
[測(cè)試方法]:
1.先橫,再開app
2.先豎霉囚,再開app
3.開app后捕仔,各種頁(yè)面上,功能前中后盈罐,橫屏/豎屏來(lái)回切換

9.多語(yǔ)言問(wèn)題
[直接原因]:各種語(yǔ)言導(dǎo)致崩潰
[測(cè)試方法]:
1.先切換成各國(guó)語(yǔ)言榜跌,再開app進(jìn)行各種功能用例測(cè)試
2.先開app,再來(lái)回切換各國(guó)語(yǔ)言進(jìn)行測(cè)試

10.其他代碼錯(cuò)誤
[直接原因]:客戶端app代碼錯(cuò)誤
[引起原因]:各種異常操作盅粪,正常操作
[解決辦法]:adb shell logcat抓日志钓葫,后臺(tái)查看崩潰日志
[測(cè)試方法]:執(zhí)行全部測(cè)試用例即可。

11.弱網(wǎng)問(wèn)題
[直接原因]:客戶端無(wú)法解析json返回值
[引起原因]:網(wǎng)絡(luò)差湾揽,json串過(guò)長(zhǎng)
[解決辦法]:體型用戶換更快網(wǎng)絡(luò)瓤逼,客戶端對(duì)此操作增加等待時(shí)間笼吟。接口返回進(jìn)行異步處理。增加翻頁(yè)功能霸旗。
[測(cè)試方法]:用抓包工具模擬出弱網(wǎng)環(huán)境贷帮,包含丟包率,穩(wěn)定性等元素诱告。然后對(duì)接口返回值構(gòu)造超長(zhǎng)數(shù)據(jù)進(jìn)行測(cè)試撵枢。

————————————————
版權(quán)聲明:本文為CSDN博主「我去熱飯」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議精居,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明锄禽。
原文鏈接:https://blog.csdn.net/qq_22795513/article/details/74590956

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市靴姿,隨后出現(xiàn)的幾起案子沃但,更是在濱河造成了極大的恐慌,老刑警劉巖佛吓,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宵晚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡维雇,警方通過(guò)查閱死者的電腦和手機(jī)淤刃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吱型,“玉大人逸贾,你說(shuō)我怎么就攤上這事〗蛑停” “怎么了铝侵?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)触徐。 經(jīng)常有香客問(wèn)我哟沫,道長(zhǎng),這世上最難降的妖魔是什么锌介? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮猾警,結(jié)果婚禮上孔祸,老公的妹妹穿的比我還像新娘。我一直安慰自己发皿,他們只是感情好崔慧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著穴墅,像睡著了一般惶室。 火紅的嫁衣襯著肌膚如雪温自。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天皇钞,我揣著相機(jī)與錄音悼泌,去河邊找鬼。 笑死夹界,一個(gè)胖子當(dāng)著我的面吹牛馆里,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播可柿,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸠踪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了复斥?” 一聲冷哼從身側(cè)響起营密,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎目锭,沒(méi)想到半個(gè)月后评汰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侣集,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年键俱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片世分。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡编振,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出臭埋,到底是詐尸還是另有隱情踪央,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布瓢阴,位于F島的核電站畅蹂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荣恐。R本人自食惡果不足惜液斜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叠穆。 院中可真熱鬧少漆,春花似錦、人聲如沸硼被。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嚷硫。三九已至检访,卻和暖如春始鱼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脆贵。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工医清, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丹禀。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓状勤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親双泪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子持搜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容