軟件測試常規(guī)面試題問答題(附帶答案)-問答基礎(chǔ)篇03

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í)踐參考

image.png
<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ù)提測版本來匯總

image

按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)閃退情況.

  1. 運(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ù)贴唇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搀绣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子戳气,更是在濱河造成了極大的恐慌链患,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓶您,死亡現(xiàn)場離奇詭異麻捻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呀袱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門贸毕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夜赵,你說我怎么就攤上這事明棍。” “怎么了寇僧?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵摊腋,是天一觀的道長。 經(jīng)常有香客問我嘁傀,道長兴蒸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任细办,我火速辦了婚禮类咧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蟹腾。我一直安慰自己,他們只是感情好区宇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布娃殖。 她就那樣靜靜地躺著,像睡著了一般议谷。 火紅的嫁衣襯著肌膚如雪炉爆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音芬首,去河邊找鬼赴捞。 笑死,一個胖子當(dāng)著我的面吹牛郁稍,可吹牛的內(nèi)容都是我干的赦政。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼耀怜,長吁一口氣:“原來是場噩夢啊……” “哼恢着!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起财破,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掰派,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后左痢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體靡羡,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年俊性,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了略步。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡磅废,死狀恐怖纳像,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拯勉,我是刑警寧澤竟趾,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站宫峦,受9級特大地震影響岔帽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜导绷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一犀勒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧妥曲,春花似錦贾费、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葵萎,卻和暖如春导犹,著一層夾襖步出監(jiān)牢的瞬間唱凯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工谎痢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磕昼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓节猿,卻偏偏與公主長得像票从,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沐批,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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