1軟件驗(yàn)收測試不包括 (B) 不包括白盒測試
2下面描述測試工具功能不正確的是(B)Junit黑盒測試工具
3使用語句覆蓋對下列代碼進(jìn)行測試用例設(shè)計(jì)時(shí)鲫忍,需要設(shè)計(jì)(B)2個測試用例
5關(guān)于常用性能指標(biāo)的說法嚼松,錯誤的是(B)吞吐量,是指單位時(shí)間內(nèi)系統(tǒng)處理的請求數(shù)量循签,直接提醒軟件系統(tǒng)的i性能承載
6 對設(shè)計(jì)軟件的壓力測試通常不包括(ABC)
7 關(guān)于linux常用的命令說法錯誤的是(C)
9 關(guān)于HTTP響應(yīng)內(nèi)容的劃分是否正確(正確)
10 測試人員發(fā)現(xiàn)一個問題,如果問題影響不大,而自己可以簡單修改下滥比,可以在修改后驗(yàn)證下沒有問題牙咏,而不再報(bào)bug(錯誤)
11.說一下自己的軟件測試的理解
即軟件測試的目的和原則
12.軟件測試有哪些不同的類型
即軟件測試階段的分類
3.什么是軟件開發(fā)生命周期
軟件生命周期 同任何事物一樣臼隔,一個軟件產(chǎn)品或軟件系統(tǒng)也要經(jīng)歷孕育、誕生妄壶、成長摔握、成熟、衰亡等階段丁寄,一般稱為軟件生命周期(軟件生存周期)[1] 氨淌。軟件生命周期模型是指人們?yōu)殚_發(fā)更好的軟件而歸納總結(jié)的軟件生命周期的典型實(shí)踐參考
<meta charset="utf-8">
5.如何編寫測試報(bào)告
1、什么時(shí)候?qū)懀?br> 測試報(bào)告一般是在項(xiàng)目測試結(jié)束或一個迭代完成之后由測試負(fù)責(zé)人編寫伊磺。若不是項(xiàng)目盛正,只有一二個測試人員,那就是由該項(xiàng)目主導(dǎo)人來寫屑埋,若只有你一個來測試豪筝,那就是由你來寫。
2、測試報(bào)告內(nèi)容
測試報(bào)告主要內(nèi)容大致可以分為測試范圍续崖、測試進(jìn)度敲街、缺陷管理、測試結(jié)論四大部分严望,在實(shí)際編寫過程中多艇,我們根據(jù)企業(yè)的要求輸出這四個部分或包含這四個部分以上的內(nèi)容即可。
(1)測試范圍
測試范圍主要是寫本次項(xiàng)目或本次迭代需要測試的功能著蟹,一般來說是以新增功能和修改功能為主墩蔓,以回歸測試內(nèi)容為輔,測試報(bào)告中的測試范圍可以摘取測試計(jì)劃中的測試范圍萧豆,再根據(jù)本輪測試活動中實(shí)際測試的功能進(jìn)行補(bǔ)充奸披。
測試報(bào)告中測試范圍與測試計(jì)劃中的測試范圍區(qū)別:
1、內(nèi)容:測試計(jì)劃中的測試范圍是根據(jù)需求文檔梳理出來的涮雷,而測試報(bào)告中的測試范圍以實(shí)際測試內(nèi)容整理出來的
2阵面、結(jié)果:測試計(jì)劃中的測試范圍沒有測試結(jié)果,測試報(bào)告中的測試范圍需要標(biāo)明測試結(jié)果
(2)測試進(jìn)度
測試報(bào)告中的測試進(jìn)度由二部分組成:一個是時(shí)間進(jìn)度安排(展示)洪鸭,另一個是人員測試時(shí)間花費(fèi)样刷。
1、時(shí)間進(jìn)度安排
測試報(bào)告中的測試時(shí)間比測試計(jì)劃中的測試時(shí)間多了每個階段中實(shí)際開始時(shí)間和實(shí)際結(jié)束時(shí)間览爵。
2置鼻、測試時(shí)間花費(fèi)
測試時(shí)間花費(fèi)的輸出是測試計(jì)劃中所沒有的,測試報(bào)告中輸出測試時(shí)間花費(fèi)主要是反映本輪測試所花費(fèi)總的單位人力時(shí)間蜓竹,也從側(cè)方面反映本輪軟件質(zhì)量箕母。
我是一個例子:
執(zhí)行測試人:X人(XXX、XXX俱济、XXX等)—》本輪測試中參與了多少人測試人員
總花費(fèi)時(shí)間:XXX人/天 —》總的單位人力時(shí)間
(3)缺陷管理
缺陷管理是測試報(bào)告中的核心內(nèi)容嘶是,而測試報(bào)告中需要對本輪測試缺陷從不同維度進(jìn)行輸出,目的就是為了從缺陷分析中得出軟件質(zhì)量蛛碌、修改bug的效率聂喇、開發(fā)質(zhì)量等。
一般測試報(bào)告中需要輸出:
缺陷匯總
統(tǒng)計(jì)本輪所有缺陷蔚携,可以根據(jù)提測版本來匯總
按bug等級分
根據(jù)bug等級統(tǒng)計(jì)本輪缺陷的分布情況
按模塊分
根據(jù)測試系統(tǒng)/模塊來統(tǒng)計(jì)本輪缺陷的分布情況
缺陷收斂情況
缺陷收斂情況就統(tǒng)計(jì)測試過程中每天新增bug數(shù)希太、解決bug數(shù)、關(guān)閉bug數(shù)浮梢,來檢查bug的收斂是否健康跛十,一般來說第一個測試版本bug數(shù)量會增加,后面慢慢bug會降低秕硝,關(guān)閉bug數(shù)量會慢慢增加,這里主要檢查一個bug開啟的數(shù)量、測試后期bug數(shù)量有沒有增多等情況远豺。
缺陷收斂情況除了用表格展示之外奈偏,還可以以圖表的形式展示,更出看出缺陷的健康度躯护。
缺陷管理中不僅限于包含以上內(nèi)容惊来,還會根據(jù)實(shí)際的項(xiàng)目情況包含其他bug分析內(nèi)容,比如缺陷狀態(tài)棺滞、缺陷遺留等裁蚁。
(4)測試結(jié)論
測試報(bào)告中的測試結(jié)論絕對是占C位的,也有企業(yè)寫測試報(bào)告只需要測試結(jié)論就行继准。
測試結(jié)論中包含對本輪測試過程的總結(jié)枉证,主要是得出本輪測試之后項(xiàng)目是否達(dá)到了上線標(biāo)準(zhǔn),所以測試結(jié)論有測試通過移必,可以上線室谚,或者是測試不通過,建議不上線崔泵。
1秒赤、測試通過,可以上線
總結(jié)性語言寫出本輪測試從哪些維度進(jìn)行了哪些功能/業(yè)務(wù)方面的測試憎瘸,滿足需求文檔和上線標(biāo)準(zhǔn)入篮。
我是一個簡單的例子:
XX項(xiàng)目在測試環(huán)境進(jìn)行了功能、可靠性幌甘、安全性潮售、可用性、性能五個方面進(jìn)行了全面含潘、嚴(yán)格饲做、規(guī)范的測試,測試結(jié)果表明遏弱,XX項(xiàng)目實(shí)現(xiàn)了XXX業(yè)務(wù)盆均,項(xiàng)目測試質(zhì)量符合需求及上線標(biāo)準(zhǔn)。
測試結(jié)論:通過
2漱逸、測試不通過泪姨,建議不上線
一般來說軟件測試結(jié)論中很少會包含測試不通過的情況,但軟件測試人員還是要根據(jù)實(shí)際的測試情況給出實(shí)際的結(jié)論饰抒,若是軟件質(zhì)量不理想肮砾,不要迫于壓力而建議上線。
測試報(bào)告包含了軟件測試人員對于這次軟件質(zhì)量的評估袋坑,所以在寫測報(bào)報(bào)告的時(shí)候需要客觀地分析這次測試活動仗处,雖說很多企業(yè)在項(xiàng)目都沒有要求輸出測試報(bào)告,但王豆豆還是建議每個測試項(xiàng)目都盡量輸出測試報(bào)告,可以不用word文檔來來婆誓,直接在郵件中寫吃环,不需要太詳細(xì),包括主要內(nèi)容即可洋幻,然后通過發(fā)送郵件的方式來知會到項(xiàng)目組成員郁轻。
7.代碼題(用熟悉的代碼寫出來)
三角形的三條邊分別為a,b,c
要求: 1.要構(gòu)成三角形,必須要任意兩邊和大于第三邊
2.輸出結(jié)果文留,能否構(gòu)成三角形好唯,三角形的類型是什么。
代碼塊
public class Triangle {
public boolean isTriangle(int a,int b, int c){
boolean flag=false;
//Java Math.abs() 方法返回參數(shù)的絕對值
//參數(shù)可以是 int, float, long, double, short, byte 類型
if ((a+b>c&&a+c>b&&c+b>a)&&(Math.abs(a-b)<c&&Math.abs(a-c)<b&&Math.abs(c-b)<a)){
flag=true;
shape(a,b,c);
}else {
System.out.println("這不能構(gòu)成三角形燥翅。");
}
return flag;
}
public String shape(int a,int b, int c){
String shape=null;
if (a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){
shape="直角三角形";
System.out.println("這是"+shape);
}else if (a*a>b*b+c*c||b*b>a*a+c*c||c*c>a*a+b*b){
shape="鈍角三角形";
System.out.println("這是"+shape);
}else if (a*a<b*b+c*c||b*b<a*a+c*c||c*c<a*a+b*b){
shape="銳角三角形";
System.out.println("這是"+shape);
}
return shape;
}
}
wep 和app 測試的相同點(diǎn)和區(qū)別
相同點(diǎn)
不管是傳統(tǒng)行業(yè)的web測試骑篙,還是新興的手機(jī)app測試,都離不開測試的基礎(chǔ)知識权旷,即是不管怎么變替蛉,測試的原理依然會融入在這兩者當(dāng)中。
1)設(shè)計(jì)測試用例時(shí)拄氯,依然都是依據(jù)邊界值分析法躲查、等價(jià)類劃分等;
2)多數(shù)采用黑盒的測試方法译柏,來驗(yàn)證業(yè)務(wù)功能是否得到正確的應(yīng)用镣煮;
3)需要檢查界面的布局、風(fēng)格和按鈕等是否簡潔美觀鄙麦、是否統(tǒng)一等典唇;
4)測試頁面載入和翻頁的速度、登錄時(shí)長胯府、內(nèi)存是否溢出等介衔;
5)測試應(yīng)用系統(tǒng)的穩(wěn)定性等。
區(qū)別:
系統(tǒng)架構(gòu)方面:
web項(xiàng)目骂因,一般都是b/s架構(gòu)炎咖,基于瀏覽器的
app項(xiàng)目,則是c/s的寒波,必須要有客戶端乘盼,用戶需要安裝客戶端。
web測試只要更新了服務(wù)器端俄烁,客戶端就會同步會更新绸栅。App項(xiàng)目則需要客戶端和服務(wù)器都更新。
性能方面:
web頁面主要會關(guān)注響應(yīng)時(shí)間
而app則還需要關(guān)心流量页屠、電量粹胯、CPU蓖柔、GPU、Memory這些矛双。
它們服務(wù)端的性能沒區(qū)別渊抽,都是一臺服務(wù)器蟆豫。
兼容方面:
web是基于瀏覽器的议忽,所以更傾向于瀏覽器和電腦硬件,電腦系統(tǒng)的方向的兼容
app測試則要看分辨率十减,屏幕尺寸栈幸,還要看設(shè)備系統(tǒng)。
web測試是基于瀏覽器的所以不必考慮安裝卸載帮辟。
而app是客戶端的速址,則必須測試安裝、更新由驹、卸載芍锚。除了常規(guī)的安裝、更新蔓榄、卸載還要考慮到異常場景并炮。包括安裝時(shí)的中斷、弱網(wǎng)甥郑、安裝后刪除安裝文件 逃魄。
此外APP還有一些專項(xiàng)測試:如網(wǎng)絡(luò)、適配性澜搅。
如何測試一個app的登錄功能
具體要求:有一個賬號伍俘,一個密碼輸入框,一個提交按鈕勉躺,考察目的
1.了解需求
2.是否具有設(shè)計(jì)用例的能力
3.是否熟悉各種測試方法
4.是否有豐富的web測試經(jīng)驗(yàn)
1.了解需求:
測試需求分析過程癌瘾,可以從質(zhì)量要求出發(fā),來展開測試需求分析饵溅,從功能妨退,性能,安全性概说,兼容性等各個質(zhì)量要求出發(fā)碧注,不斷細(xì)化其內(nèi)容,挖掘?qū)?yīng)的測試需求糖赔,覆蓋質(zhì)量要求萍丐,也可從開發(fā)需求出發(fā),把每一條開發(fā)需求分解為測試項(xiàng)放典,結(jié)合質(zhì)量要求逝变,這些測試項(xiàng)再分解成測試任務(wù)基茵,則包括功能性測試任務(wù)和非功能性測試任務(wù),在整理測試需求時(shí)壳影,需要分類拱层,細(xì)化,合并宴咧,并按照優(yōu)先級進(jìn)行排列根灯,形成測試需求列表
1> 登錄界面應(yīng)該是彈出框,還是直接顯示在網(wǎng)頁里面
2>賬號和密碼的長度(eg:長度掺栅,大小寫敏感烙肺,特殊字符混搭)
3>界面美觀是否有特殊需求(UI測試)
2.用例設(shè)計(jì):
功能測試:
1>輸入正確的用戶名密碼,點(diǎn)擊提交按鈕氧卧,驗(yàn)證能否正確登錄
2> 輸入錯誤的用戶名或者密碼桃笙,點(diǎn)擊提交按鈕,驗(yàn)證登錄失敗沙绝,提示相應(yīng)的錯誤信息
3 >登錄成功后能否跳轉(zhuǎn)到正確的頁面
4>賬號名或者密碼長度過長或者過短搏明,應(yīng)該怎么處理(安全性,密碼太短是否有提示)
5>賬號和密碼有特殊字符(空格)闪檬,是否做了過濾
6>密碼是否加密顯示
7>輸入密碼 星著,大寫鍵盤開啟的時(shí)候要有提示信息
8>什么都不輸入,直接點(diǎn)擊提交(非空檢查)
9>登錄失敗后谬以,不能記住密碼的功能
10>登錄頁面中忘記密碼等等鏈接跳轉(zhuǎn)是否正確
11>牽扯到驗(yàn)證碼强饮,還要考慮文字是否扭曲過度導(dǎo)致辨認(rèn)難度大
UI測試:
1>布局是否合理,兩個textbox和一個按鈕是否對齊
2>textbox的長度和高度是否符合要求
3>界面設(shè)計(jì)風(fēng)格和UI設(shè)計(jì)風(fēng)格是否一致
4>界面中的文字簡潔易懂为黎,沒有錯別字
性能測試:
1>打開登錄界面邮丰,需要幾秒
2>輸入正確的用戶名和密碼,登錄成功跳轉(zhuǎn)到新頁面铭乾,需要幾秒
安全性測試:
1>登錄成功后的cookie是否有HttpOnly(降低腳本風(fēng)險(xiǎn))
2>賬號和密碼是否通過加密的方式剪廉,發(fā)送給web服務(wù)器
3>賬號和密碼的驗(yàn)證,應(yīng)該是用服務(wù)器驗(yàn)證炕檩,而不單單是在客戶端用javaScript驗(yàn)證
4>賬號和密碼的輸入框斗蒋,應(yīng)該屏蔽SQL注入攻擊
5>賬號和密碼的輸入框,應(yīng)該禁止輸入腳本(防止XSS攻擊)
6>錯誤登錄的次數(shù)限制(防止暴力破解)
7>是否支持多用戶在同一臺機(jī)器上登錄
8>一用戶在多臺機(jī)器上登錄
可用性測試:
1>輸入框是否可以用tab鍵切換
2>輸入賬號笛质,密碼后按回車泉沾,是否可以登錄
3>是否可用全用鍵盤操作,是否有快捷鍵
兼容性測試:
1>主流的瀏覽器下能否顯示正常已經(jīng)功能正常
2>不同的平臺是否能正常工作,eg:windows,mac
3>移動設(shè)備上是否正常工作妇押,比如iphone,android
4>不同的分辨率
推送消息如何測試
-消息推送對象
消息推送一般可以自定義推送對象跷究,有全部推送,精確推送敲霍,及安卓和IOS渠道推送俊马,注意推送對象是否正確丁存,推送之前確認(rèn)自己是否在測試環(huán)境操作,以免造成生產(chǎn)問題柴我。
-消息簡介
客戶端收到消息推送有兩種形式解寝,客戶端后臺運(yùn)行一般推送顯示在通知欄,客戶端前臺運(yùn)行一般彈出彈框艘儒,簡介內(nèi)容注意字?jǐn)?shù)過多溢出情況聋伦。
-消息詳情
注意詳情所支持的內(nèi)容,包括文字彤悔、圖片嘉抓、表情包、換行以及鏈接跳轉(zhuǎn)晕窑。
-消息推送場景(支持定時(shí)推送)
(1)消息推送時(shí)間:
a)設(shè)置過去時(shí)間
b)未推送之前修改消息內(nèi)容
c)刪除消息,查看是否還會推送
(2)客戶端運(yùn)行狀態(tài)
a)前臺運(yùn)行
b)后臺運(yùn)行
c)進(jìn)程關(guān)閉狀態(tài)
(3)特殊場景
a)多個提醒沖突
b)當(dāng)天設(shè)置當(dāng)天推送
c)當(dāng)天設(shè)置隔幾天起效
app閃退是有那些原因造成的
1.緩存垃圾過多
由于安卓系統(tǒng)的特性,如果長時(shí)間不清理垃圾文件.會導(dǎo)致越來越卡.也會出現(xiàn)閃退情況.
- 運(yùn)行的程序過多,導(dǎo)致內(nèi)存不足
3.應(yīng)用版本兼容問題
如果應(yīng)用版本太低卵佛,會導(dǎo)致不兼容杨赤,造成閃退。此外截汪,有些新版本在調(diào)試中疾牲,也會造成應(yīng)用閃退。
4.. 檢查APP中訪問網(wǎng)絡(luò)的地方衙解,組件中的ImageView是否可以正常的下載并顯示到app 頁面上阳柔。
5.檢查APP的sdk和手機(jī)的系統(tǒng)是否兼容。
6.在一些特定情況下的閃退,比如播放視頻,在Android5.0 升級到Android6.0的時(shí)候,有些系統(tǒng)API老版本有,新版本沒有,到時(shí)回去對象的時(shí)候失敗,報(bào)空,系統(tǒng)就會出現(xiàn)閃退問題.
二.常見的解決方案
1.緩存垃圾過多
可通過“設(shè)置”中清除應(yīng)用緩存的方式解決
2.內(nèi)存不足
可嘗試關(guān)閉其他暫時(shí)不用的軟件
3.兼容性問題
3.1應(yīng)用版本兼容性問題
如果是版本太低蚓峦,可升級版本即可:如果是新版本閃退舌剂,可能還在調(diào)式,需卸載安裝舊的版本使用
3.2APP中的SDK和手機(jī)的兼容性問題
需要原生端相關(guān)人員暑椰,設(shè)置SDK的最低兼容系統(tǒng)版本
測試過程中遇到app出現(xiàn)anr的時(shí)候你會怎么處理
可以先把日志過濾出來: adb logcat | findstr xxxxx(過濾日志信息) 霍转,然后再搜索其中的關(guān)鍵字,比如:exception一汽、crash避消,看看是那些方法或者異常導(dǎo)致了問題的發(fā)送,初步定位問題原因后召夹,可以交給開發(fā)人員去具體查找深層原因并修復(fù)岩喷。
如何查看移動端的日志以及會出現(xiàn)哪些異常(點(diǎn)擊題目跳轉(zhuǎn)鏈接)
app測試哪些以及如何展開測試工作
一、APP要做哪些測試监憎?
1纱意、功能測試:對具體功能點(diǎn)一一測試,驗(yàn)證確認(rèn)每個點(diǎn)都實(shí)現(xiàn)滿足需求的相應(yīng)功能枫虏。
2妇穴、APP兼容性測試:根據(jù)屏幕尺寸爬虱、系統(tǒng)進(jìn)行適配測試;對市場上主流的設(shè)備安裝應(yīng)用執(zhí)行測試(如果有特定針對群體,應(yīng)該根據(jù)實(shí)際用戶數(shù)據(jù)接入設(shè)備進(jìn)行分析腾它,對靠前的機(jī)型進(jìn)行適配測試)跑筝,確保都能正常運(yùn)行。
3瞒滴、壓力測試:用戶量大曲梗,交互性高的應(yīng)用需對接口執(zhí)行壓力測試,確應(yīng)用在海量的用戶使用的情況下能正常運(yùn)行妓忍。
4虏两、UI/UE測試:主要是一些適配,用戶體驗(yàn)方面世剖,交互方面的測試定罢。
5、用戶行為統(tǒng)計(jì)測試:確保手頭的行為統(tǒng)計(jì)分析定義文檔為最新版本旁瘫,且與開發(fā)人員手中的文檔一致祖凫;確保產(chǎn)品經(jīng)理在文檔中所定義的頁面在該產(chǎn)品中都是存在的;盡可能真實(shí)地模擬用戶行為;核對統(tǒng)計(jì)日志,確保各項(xiàng)操作所對應(yīng)的頁面ID以及操作ID都是正確的酬凳。
6惠况、安全測試 :軟件權(quán)限、數(shù)據(jù)安全性宁仔、通訊安全性稠屠、人機(jī)接口安全性。
7翎苫、安裝卸載測試:確保應(yīng)用都能正確安裝权埠、卸載,且能正確運(yùn)行(注意應(yīng)用的升級測試:升級前后的狀態(tài))拉队。
8弊知、交叉測試:對于正在運(yùn)行的應(yīng)用,若進(jìn)入短信粱快、電話等其它軟件響應(yīng)的情況秩彤,不會影響被測試應(yīng)用,且會保證應(yīng)用能正確運(yùn)行;殺掉進(jìn)程時(shí)再重新打開APP;多個APP切換數(shù)據(jù)的保存等事哭。
9漫雷、協(xié)議測試:模擬客戶端直接發(fā)送協(xié)議包給服務(wù)器,看服務(wù)器是否有一定的校驗(yàn)鳍咱,認(rèn)不認(rèn)客戶端發(fā)過來的數(shù)據(jù)降盹。協(xié)議測試主要是為了處理用戶發(fā)送惡意協(xié)議到服務(wù)器,騙過服務(wù)器的校驗(yàn)谤辜。
10蓄坏、異常測試:多次快速點(diǎn)擊切換頁面的響應(yīng)情況?橫屏豎屏的快速操作:切換菜單价捧,播放,下載等;服務(wù)器宕機(jī)或出現(xiàn)404涡戳、502等情況下的測試结蟋。
11、弱網(wǎng)測試:APP在2G/3G/4G/wifi下的表現(xiàn)情況渔彰,網(wǎng)絡(luò)環(huán)境變化時(shí)嵌屎,APP的應(yīng)對情況:是否有適當(dāng)提示?從有網(wǎng)環(huán)境到無網(wǎng)環(huán)境時(shí),APP的反饋如何?從無網(wǎng)絡(luò)環(huán)境回到有網(wǎng)絡(luò)環(huán)境時(shí)恍涂,是否能自動加載數(shù)據(jù)宝惰,且多久才能開始加載數(shù)據(jù)?
12、電量測試:設(shè)備在不同電量時(shí)(低于10%再沧,50%尼夺,95%),APP的響應(yīng)以及操作流暢度;設(shè)備在充電時(shí)产园,APP的響應(yīng)以及操作流暢度;設(shè)備意外斷電時(shí)汞斧,APP數(shù)據(jù)丟失情況等。
app的性能測試的關(guān)注點(diǎn)有哪些
app性能測試分類:
1什燕、響應(yīng)
2、內(nèi)存
3竞端、cpu
4屎即、FPS (app使用的流暢度)
5、GPU過度渲染
6事富、耗電
7技俐、耗流
(app除了這些性能測試,還有:手機(jī)版本號兼容性统台,屏幕分辨率兼容性雕擂,穩(wěn)定性測試,安全測試等贱勃,后續(xù)會持續(xù)更新… 流量測試同這些一起更新井赌,這里就不在說明了 )
App性能測試響應(yīng)點(diǎn):
主要測試點(diǎn):
1、冷啟動:首次啟動app的時(shí)間間隔(只是啟動時(shí)間贵扰,不包括頁面加載)
2仇穗、熱啟動:非首次啟動app的時(shí)間間隔(只是啟動時(shí)間,不包括頁面加載)
3戚绕、完全啟動:從啟動到首頁完全加載出來的時(shí)間間隔
4纹坐、有網(wǎng)啟動:從發(fā)起跳轉(zhuǎn),到頁面完全加載出來的時(shí)間間隔
5舞丛、無網(wǎng)啟動:從發(fā)起跳轉(zhuǎn)耘子,到頁面完全加載出來的時(shí)間間隔
(在項(xiàng)目中果漾,主要測試關(guān)注點(diǎn)是冷啟動,熱啟動)
測試標(biāo)準(zhǔn):冷啟動時(shí)間不超過1.5s, 熱啟動不超過1s.
內(nèi)存:
測試點(diǎn):
1谷誓、空閑狀態(tài):切換至后臺或者啟動后不做任何操作绒障,消耗內(nèi)存最少。
2片林、中強(qiáng)度狀態(tài):時(shí)間偏長的操作應(yīng)用端盆。
3、高強(qiáng)度狀態(tài):高強(qiáng)度使用應(yīng)用费封,可以跑monkey來測試(通常用來測試內(nèi)存泄漏)焕妙。
** 內(nèi)存泄漏:指應(yīng)用里的內(nèi)存一直沒有釋放,內(nèi)存一直增加 ,系統(tǒng)內(nèi)存一直減少 **
CPU:
CPU測試弓摘,主要關(guān)注的是cpu的占用率焚鹊。很多時(shí)候,我們玩手機(jī)時(shí)韧献,會出現(xiàn)發(fā)熱發(fā)燙末患,那是因?yàn)镃PU使用率過高,CPU過于繁忙锤窑,會使整個手機(jī)無法響應(yīng)用戶璧针,整體性能降低,用戶體驗(yàn)就會很差渊啰,也容易引起ANR(application not responding, 主線程(UI線程)如果在規(guī)定時(shí)內(nèi)沒有處理完相應(yīng)工作探橱,就會出現(xiàn)ANR)等等一系列問題。
測試點(diǎn):
1).在空閑時(shí)間(切換至后臺)的消耗绘证,基本沒大應(yīng)用使用cpu
2).在運(yùn)行一些應(yīng)用的情況下隧膏,cpu已占50%的情況下,觀察應(yīng)用程序占用cpu的情況
3).在高負(fù)荷的情況下看CPU的表現(xiàn)(cpu占用應(yīng)是在80%以上)
FPS (應(yīng)用的使用流暢度)
FPS是圖像領(lǐng)域中的定義嚷那,是指畫面每秒傳輸幀數(shù)胞枕,通俗來講就是指動畫或視頻的畫面數(shù)。FPS是測量用于保存魏宽、顯示動態(tài)視頻的信息數(shù)量腐泻。每秒鐘幀數(shù)愈多,所顯示的動作就會愈流暢湖员。
′一般來說贫悄,Android設(shè)備的屏幕刷新率為60幀/s突勇,要保持畫面流暢不卡頓奏司,要求每一幀的時(shí)間不超過1000/60=16.6ms,這就是16ms的黃金準(zhǔn)則春瞬,如果中間的某些幀的渲染時(shí)間超過16ms,就會導(dǎo)致這段時(shí)間的畫面發(fā)生了跳幀鸭津,因此原本流暢的畫面變發(fā)生了卡頓彤侍。
GPU渲染
GPU渲染是指在一個像素點(diǎn)上繪制多次(超過一次):顯示一個什么都沒有做的activity界面算作畫了1層,給activity加一個背景是第2層逆趋,在上面放了一個Text View(有背景的Text View)是第3層盏阶,Text View顯示文本就是第4層僅僅只是為了顯示一個文本,卻在同一個像素點(diǎn)繪制了四次,這是一定要優(yōu)化的闻书。過度繪制對動畫性能的影響是極其嚴(yán)重的名斟,如果你想要流暢的動畫效果,那么一定不能忽視過度繪制魄眉。
耗電量
測試應(yīng)用對電量的消耗前需要對手機(jī)本身的電量消耗有個大概了解砰盐,測試前先看規(guī)定時(shí)間內(nèi)手機(jī)正常待機(jī)下(重啟后待機(jī))電量消耗為多少。然后再啟動待測試APP看看消耗的電量增加了多少取差值坑律。
測試點(diǎn):
測試手機(jī)安裝目標(biāo)APK前后待機(jī)功耗無明顯差異岩梳;
常見使用場景中能夠正常進(jìn)入待機(jī),待機(jī)電流在正常范圍內(nèi)晃择;
長時(shí)間連續(xù)使用應(yīng)用無異常耗電現(xiàn)象冀值。
如何對app進(jìn)行弱網(wǎng)測試(找的博客里面寫的詳細(xì)點(diǎn),點(diǎn)擊題目跳轉(zhuǎn))
弱網(wǎng)測試
常見的ADB命令(找的博客里面寫的詳細(xì)點(diǎn)宫屠,點(diǎn)擊題目跳轉(zhuǎn))
查看當(dāng)前連接設(shè)備:
代碼塊
adb devices
如果發(fā)現(xiàn)多個設(shè)備:
adb -s 設(shè)備號 其他指令
舉例:
adb -s devicel install xxx.apk
查看頂部Activity:
windows環(huán)境下:
adb shell dumpsys activity | findstr "mFocusedActivity"
Linux列疗、Mac環(huán)境下:
adb shell dumpsys activity | grep "mFocusedActivity"
查看日志:
adb logcat
安裝apk文件:
adb install xxx.apk
此安裝方式,如果已經(jīng)存在浪蹂,無法安裝作彤;
推薦使用覆蓋安裝:
adb install -r xxx.apk
比分直接RUN出來的包是test-onlu的無法安裝,推薦使用**-t**
adb install -r -t xxx.apk
卸載App:
adb uninstall com.zhy.app
如果想要保留數(shù)據(jù)乌逐,則:
adb uninstall -k com.zhy.app
傳遞文件:
往手機(jī)SDCard傳遞文件:
adb push 文件名 手機(jī)端SDCard路徑
例如:
adb push 帥照.jpg /sdcard/
從手機(jī)端下載文件:
adb pull /sdcard/xxx.txt
查看手機(jī)端安裝的所有app包名:
adb shell pm list packages
啟動Activity:
adb shell am start 包名/完整Activity路徑
例如:
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity
如果需要攜帶參數(shù)(攜帶一個Intent,Key 為name):
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity -e name zhy
啟動一個隱式的Intent:
adb shell am start -a "android.intent.action,VIEW" -d "https://www.google.com"
發(fā)送廣播:
adb shell am broadcast -a "broadcastactionfilter"
-如果需要攜帶參數(shù)(攜帶一個Intent,key為name):
adb shell am broadcast -a "broadcastactionfilter" -e name zhy
啟動服務(wù):
adb shell am startservice "com.zhy.aaa/com.zhy.aaa.MyService"
屏幕截圖:
可以使用screencap命令來進(jìn)行手機(jī)屏幕截圖,例如:
adb shell screencap /sdcard/screen.png
錄制視頻:
可以使用screenrecord[options] filename命令來錄制屏幕視頻创葡,例如:
adb shell screenrecord /sdcard/demo.mp4
> ##### 常見的monkey 命令( 找的博客里面寫的詳細(xì)點(diǎn)浙踢,點(diǎn)擊題目跳轉(zhuǎn) )
Monkey 是什么?
Monkey 就是SDK中附帶的一個工具灿渴。
Monkey 測試的目的洛波?
:該工具用于進(jìn)行壓力測試。 然后開發(fā)人員結(jié)合monkey 打印的日志 和系統(tǒng)打印的日志骚露,結(jié)局測試中出現(xiàn)的問題蹬挤。
Monkey 測試的特點(diǎn)?
Monkey 測試,所有的事件都是隨機(jī)產(chǎn)生的棘幸,不帶任何人的主觀性焰扳。
Monkey 命令
標(biāo)準(zhǔn)的monkey 命令
[adb shell] monkey [options] <eventcount>
, 例如:adb shell monkey -v 500 --------產(chǎn)生500次隨機(jī)事件,作用在系統(tǒng)中所有activity(其實(shí)也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)吨悍。
上面只是一個簡單的例子扫茅,實(shí)際情況中通常會有很多的options 選項(xiàng)
四大類—— 常用選項(xiàng) 、 事件選項(xiàng) 育瓜、 約束選項(xiàng) 葫隙、 調(diào)試選項(xiàng)
一:常用選項(xiàng)
--help:打印幫助信息
-v:指定打印信息的詳細(xì)級別,一個 -v增加一個級別 躏仇, 默認(rèn)級別為 0 恋脚。
二:事件選項(xiàng)
-s:指定產(chǎn)生隨機(jī)事件種子值,相同的種子值產(chǎn)生相同的事件序列焰手。如: -s 200
--throttle:每個事件結(jié)束后的間隔時(shí)間——降低系統(tǒng)的壓力(如不指定糟描,系統(tǒng)會盡快的發(fā)送事件序列)。如:--throttle 100
--pct-touch:指定觸摸事件的百分比册倒,如:--pct-touch 5% 蚓挤, 相關(guān)的還有以下option:
--pct-motion <percent> (滑動事件)、 --pct-trackball <percent> (軌跡球事件) 驻子、 --pct-nav <percent> (導(dǎo)航事件 up/down/left/right)灿意、 --pct-majornav <percent> (主要導(dǎo)航事件 back key 、 menu key)崇呵、 --pct-syskeys <percent> (系統(tǒng)按鍵事件 Home 缤剧、Back 、startCall 域慷、 endCall 荒辕、 volumeControl)、 --pct-appswitch <percent> (activity之間的切換)犹褒、 --pct-anyevent <percent>(任意事件)
三:約束選項(xiàng)
-p:指定有效的package(如不指定抵窒,則對系統(tǒng)中所有package有效),一個-p 對應(yīng)一個有效package叠骑, 如:-p com.ckt -p com.ckt.asura李皇;
-c:activity必須至少包含一個指定的category,才能被啟動宙枷,否則啟動不了
四:調(diào)試選項(xiàng)
--dbg-no-events:初始化啟動的activity掉房,但是不產(chǎn)生任何事件。
--hprof:指定該項(xiàng)后在事件序列發(fā)送前后會立即生成分析報(bào)告 —— 一般建議指定該項(xiàng)慰丛。
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時(shí)
--ignore-security-exceptions:忽略安全異常
--kill-process-after-error:發(fā)生錯誤后直接殺掉進(jìn)程
--monitor-native-crashes:跟蹤本地方法的崩潰問題
--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測試卓囚。
一個簡單的monkey命令:
adb shell monkey -p com.xy.android.junit -s 500 -v 10000
但是,工作中為了保證測試數(shù)量的完整進(jìn)行诅病,我們一般不會在發(fā)生錯誤時(shí)立刻退出壓力測試哪亿。monkey 測試命令如下
adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt
monkey作用的包:com.ckt.android.junit
產(chǎn)生時(shí)間序列的種子值:500
忽略程序崩潰 粥烁、 忽略超時(shí) 、 監(jiān)視本地程序崩潰 锣夹、 詳細(xì)信息級別為2 页徐, 產(chǎn)生 10000個事件 。
安卓的四大組件
Android四大基本組件:Activity银萍、BroadcastReceiver廣播接收器变勇、ContentProvider內(nèi)容提供者、Service服務(wù)贴唇。