應(yīng)用程序的測(cè)試方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種應(yīng)用程序的測(cè)試方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]Android: An droid是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備(如智能手機(jī)、平板電腦),由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。Android目前尚未有統(tǒng)一的中文名稱(chēng),中國(guó)大陸地區(qū)較多人使用“安卓”。
[0003]模式識(shí)別:模式識(shí)別(Pattern Recognit1n)是指對(duì)表征事物或現(xiàn)象的各種形式(如數(shù)值、文字或邏輯關(guān)系)的信息進(jìn)行處理和分析以對(duì)事物或現(xiàn)象進(jìn)行描述、辨認(rèn)、分類(lèi)和解釋的過(guò)程,是信息科學(xué)和人工智能的重要組成部分。
[0004]OpenCV =OpenCV是一個(gè)基于(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),它實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。它是模式識(shí)別中的一種:圖像及視覺(jué)處理識(shí)別的開(kāi)源庫(kù)。
[0005]軟件測(cè)試,即software testing,是描述一種用來(lái)促進(jìn)鑒定軟件(或程序)的正確性、完整性、安全性和質(zhì)量的過(guò)程。具體是指在規(guī)定的條件下對(duì)程序進(jìn)行操作,一發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對(duì)其是否能滿(mǎn)足設(shè)計(jì)要求進(jìn)行評(píng)估的過(guò)程。
[0006]現(xiàn)有技術(shù)中使用Android平臺(tái)的手機(jī)的分辨率千差萬(wàn)別,如分辨率480*800像素、720*1280像素等,在Android平臺(tái)上測(cè)試軟件時(shí),經(jīng)常需要在不同分辨率的手機(jī)上測(cè)試同樣的功能,在不同分辨率的手機(jī)上測(cè)試同一軟件就需要重復(fù)多次相同或相似的操作,這樣就需要大量的測(cè)試時(shí)間,為了節(jié)省測(cè)試時(shí)間,通常我們使用錄制回放功能達(dá)到此目的,即在一臺(tái)手機(jī)上測(cè)試,將測(cè)試過(guò)程錄制下來(lái)保存為測(cè)試腳本,然后在其他手機(jī)上回放此測(cè)試腳本,以減少人工參與的時(shí)間。
[0007]具體地,現(xiàn)有技術(shù)中具有如下兩種錄制回放的方法:
[0008](I)基于坐標(biāo)的方式實(shí)現(xiàn)錄制回放功能的方法:即在第一臺(tái)Android平臺(tái)手機(jī)上測(cè)試軟件時(shí),記錄測(cè)試過(guò)程中點(diǎn)擊的坐標(biāo)并保存為測(cè)試腳本。
[0009](2)基于控件的方式實(shí)現(xiàn)錄制回放功能的方法:此錄制回放可跨分辨率,但需要待測(cè)試程的源碼。
[0010]然而,采用上述方法存在很多缺陷:
[0011]基于坐標(biāo)的方式實(shí)現(xiàn)錄制回放功能的方法依賴(lài)于手機(jī)的分辨率,例如,在480*800分辨率手機(jī)上獲取的坐標(biāo)應(yīng)用于720*1280分辨率的手機(jī)上回放時(shí),就會(huì)發(fā)生位置偏移,根本就無(wú)法定位到準(zhǔn)確的位置,從而無(wú)法實(shí)現(xiàn)準(zhǔn)確測(cè)試,也即,在480*800分辨率手機(jī)上獲取的坐標(biāo)只能用于相同分辨率的手機(jī)上,而無(wú)法在不同的分辨率如720*1280分辨率的手機(jī)上回放,有較大的局限性;而基于控件的方式實(shí)現(xiàn)錄制回放功能的方法雖然不受分辨率的限制,但是需要使用待測(cè)試程序的源碼才可以進(jìn)行測(cè)試,在實(shí)際的軟件測(cè)試過(guò)程中很難獲取到待測(cè)試程序的源碼,從而無(wú)法將該方法使用在對(duì)Android平臺(tái)的手機(jī)的軟件測(cè)試中。
[0012]針對(duì)上述使用錄制回放方法測(cè)試軟件無(wú)法適應(yīng)不同分辨率的終端,從而導(dǎo)致軟件測(cè)試結(jié)果不準(zhǔn)確的問(wèn)題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0013]本發(fā)明實(shí)施例提供了一種應(yīng)用程序的測(cè)試方法、裝置及系統(tǒng),以至少解決使用錄制回放方法測(cè)試軟件無(wú)法適應(yīng)不同分辨率的終端,從而導(dǎo)致軟件測(cè)試結(jié)果不準(zhǔn)確的問(wèn)題的技術(shù)問(wèn)題。
[0014]根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種應(yīng)用程序的測(cè)試方法,該方法包括:獲取在第一終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行的操作信息,其中,操作信息包括第一終端上用于執(zhí)行測(cè)試操作的界面、在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)、以及在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片;截取第二終端上運(yùn)行界面時(shí)的界面圖片;對(duì)界面圖片和錄制圖片進(jìn)行圖片識(shí)別,根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo);按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0015]根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種應(yīng)用程序的測(cè)試裝置,該裝置包括:信息獲取模塊,用于獲取在第一終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行的操作信息,其中,操作信息包括第一終端上用于執(zhí)行測(cè)試操作的界面、在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)、以及在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片;第一截圖模塊,用于截取第二終端上運(yùn)行界面時(shí)的界面圖片;圖片識(shí)別模塊,用于對(duì)界面圖片和錄制圖片進(jìn)行圖片識(shí)別,根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo);測(cè)試執(zhí)行模塊,用于按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0016]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種應(yīng)用程序的測(cè)試系統(tǒng),該系統(tǒng)包括:第一終端,用于根據(jù)對(duì)被測(cè)應(yīng)用程序執(zhí)行的測(cè)試操作生成并上傳操作信息,其中,操作信息包括第一終端上用于執(zhí)行測(cè)試操作的界面、在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)、以及在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片;服務(wù)器,與第一終端連接,用于保存接收到的操作信息,并在接收到測(cè)試請(qǐng)求之后,將對(duì)應(yīng)的操作信息下發(fā)至對(duì)應(yīng)的終端;第二終端,與服務(wù)器連接,用于發(fā)送測(cè)試請(qǐng)求,并在接收到服務(wù)器下發(fā)的操作信息之后,截取第二終端上運(yùn)行界面時(shí)的界面圖片,并對(duì)界面圖片和錄制圖片進(jìn)行圖片識(shí)別,在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0017]采用本發(fā)明,在第二終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作的過(guò)程中,獲取到在第一終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行的操作信息,由于操作信息中不僅包括執(zhí)行測(cè)試操作的界面和在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo),還包括在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片,在第二終端上執(zhí)行測(cè)試操作之前,對(duì)截取的第二終端上運(yùn)行被測(cè)應(yīng)用程序的界面時(shí)的界面圖片和錄制圖片進(jìn)行圖片識(shí)別,并在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)(而不是在第一終端上錄制的操作執(zhí)行坐標(biāo))在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作,從而在第二終端上進(jìn)行應(yīng)用程序的測(cè)試時(shí),不依據(jù)在第一終端上錄制的操作執(zhí)行坐標(biāo)執(zhí)行測(cè)試操作,而是通過(guò)圖片識(shí)別獲取到操作執(zhí)行坐標(biāo)在第二終端上對(duì)應(yīng)的操作回放坐標(biāo)執(zhí)行測(cè)試操作,在回放過(guò)程中不依賴(lài)于分辨率和被測(cè)應(yīng)用程序的源碼,僅僅使用坐標(biāo)便可在第二終端上確定準(zhǔn)確的測(cè)試位置(用操作回放坐標(biāo)表示該位置),然后按照操作回放坐標(biāo)在第二終端的界面上執(zhí)行對(duì)被測(cè)應(yīng)用程序的測(cè)試操作,解決了現(xiàn)有技術(shù)中使用錄制回放方法測(cè)試軟件無(wú)法適應(yīng)不同分辨率的終端,從而導(dǎo)致軟件測(cè)試結(jié)果不準(zhǔn)確的問(wèn)題,實(shí)現(xiàn)了準(zhǔn)確獲取操作執(zhí)行坐標(biāo),從而可以在第二終端上準(zhǔn)確執(zhí)行測(cè)試操作,達(dá)到獲取準(zhǔn)確的應(yīng)用程序的測(cè)試結(jié)果的效果。
【附圖說(shuō)明】
[0018]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0019]圖1是根據(jù)本發(fā)明實(shí)施例一的應(yīng)用程序的測(cè)試方法的流程圖;
[0020]圖2是根據(jù)本發(fā)明實(shí)施例一的錄制操作信息的流程圖;
[0021]圖3示出的本發(fā)明實(shí)施例一的確定操作回放坐標(biāo)的流程圖;
[0022]圖4是根據(jù)本發(fā)明實(shí)施例一的在界面圖片中找到與錄制圖片對(duì)應(yīng)的區(qū)域的流程圖;
[0023]圖5是根據(jù)本發(fā)明實(shí)施例一的一種可選的應(yīng)用程序的測(cè)試方法的流程圖;
[0024]圖6是根據(jù)本發(fā)明實(shí)施二的應(yīng)用程序的測(cè)試裝置的示意圖;
[0025]圖7是根據(jù)本發(fā)明實(shí)施二的一種可選的應(yīng)用程序的測(cè)試裝置的示意圖;
[0026]圖8是根據(jù)本發(fā)明實(shí)施二的圖片識(shí)別模塊的示意圖;
[0027]圖9是根據(jù)本發(fā)明實(shí)施二的區(qū)域獲取模塊的示意圖;
[0028]圖10是根據(jù)本發(fā)明實(shí)施例三的應(yīng)用程序的測(cè)試系統(tǒng)的結(jié)構(gòu)示意圖;以及
[0029]圖11是根據(jù)本發(fā)明實(shí)施例三的一種可選的應(yīng)用程序的測(cè)試系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0030]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0031]需要說(shuō)明的是,本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類(lèi)似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0032]實(shí)施例1
[0033]根據(jù)本發(fā)明實(shí)施例,提供了一種用于實(shí)施應(yīng)用程序的測(cè)試方法的方法實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0034]圖1是根據(jù)本發(fā)明實(shí)施例一的應(yīng)用程序的測(cè)試方法的流程圖。
[0035]如圖1所示,該方法可以包括如下步驟:
[0036]步驟S102:獲取在第一終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行的操作信息,其中,操作信息包括第一終端上用于執(zhí)行測(cè)試操作的界面、在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)、以及在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片。
[0037]步驟S104:截取第二終端上運(yùn)行界面時(shí)的界面圖片。
[0038]步驟S106:對(duì)界面圖片和錄制圖片進(jìn)行圖片識(shí)別,根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)。
[0039]步驟S108:按照操作回放坐標(biāo)在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作。
[0040]采用本發(fā)明,在第二終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作的過(guò)程中,獲取到在第一終端上對(duì)被測(cè)應(yīng)用程序執(zhí)行的操作信息,由于操作信息中不僅包括執(zhí)行測(cè)試操作的界面和在界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo),還包括在界面上執(zhí)行測(cè)試操作時(shí)與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片,在第二終端上執(zhí)行測(cè)試操作之前,對(duì)截取的第二終端上運(yùn)行界面時(shí)的界面圖片和錄制圖片進(jìn)行圖片識(shí)別,并在根據(jù)圖片識(shí)別的結(jié)果確定界面圖片中與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的操作回放坐標(biāo)之后,按照操作回放坐標(biāo)(而不是在第一終端上錄制的操作執(zhí)行坐標(biāo))在第二終端的界面上對(duì)被測(cè)應(yīng)用程序執(zhí)行測(cè)試操作,從而在第二終端上進(jìn)行應(yīng)用程序的測(cè)試時(shí),不依據(jù)在第一終端上錄制的操作執(zhí)行坐標(biāo)執(zhí)行測(cè)試操作,而是通過(guò)圖片識(shí)別獲取到操作執(zhí)行坐標(biāo)在第二終端上對(duì)應(yīng)的操作回放坐標(biāo)執(zhí)行測(cè)試操作,在回放過(guò)程中不依賴(lài)于分辨率和被測(cè)應(yīng)用程序的源碼,僅僅使用坐標(biāo)便可在第二終端上確定準(zhǔn)確的測(cè)試位置(用操作回放坐標(biāo)表示該位置),然后按照操作回放坐標(biāo)在第二終端的界面上執(zhí)行對(duì)被測(cè)應(yīng)用程序的測(cè)試操作,解決了現(xiàn)有技術(shù)中使用錄制回放方法測(cè)試軟件無(wú)法適應(yīng)不同分辨率的終端,從而導(dǎo)致軟件測(cè)試結(jié)果不準(zhǔn)確的問(wèn)題,實(shí)現(xiàn)了準(zhǔn)確獲取操作執(zhí)行坐標(biāo),從而可以在第二終端上準(zhǔn)確執(zhí)行測(cè)試操作,達(dá)到獲取準(zhǔn)確的應(yīng)用程序的測(cè)試結(jié)果的效果。
[0041]圖2是根據(jù)本發(fā)明實(shí)施例一的錄制操作信息的流程圖。
[0042]如圖2所示,在第一終端上錄制操作信息可以包括如下步驟:
[0043]步驟S202:啟動(dòng)在第一終端上測(cè)試被測(cè)應(yīng)用程序的測(cè)試事件。
[0044]具體地,在執(zhí)行步驟S202之前,在第一終端上安裝被測(cè)應(yīng)用程序,并在第一終端上運(yùn)行被測(cè)應(yīng)用程序。其中,測(cè)試事件可以包括一個(gè)或多個(gè)測(cè)試操作,如,點(diǎn)擊、滑動(dòng)、長(zhǎng)按以及短按等測(cè)試操作。
[0045]步驟S204:記錄在第一終端的界面上執(zhí)行測(cè)試操作時(shí)的操作執(zhí)行坐標(biāo)。
[0046]具體地,每個(gè)測(cè)試操作在第一終端的界面上對(duì)應(yīng)一個(gè)測(cè)試位置,每個(gè)測(cè)試位置均可以使用操作執(zhí)行坐標(biāo)來(lái)表示,在執(zhí)行每個(gè)測(cè)試操作時(shí)記錄執(zhí)行測(cè)試操作的界面和操作執(zhí)行坐標(biāo)。
[0047]步驟S206:按照預(yù)設(shè)截取像素?cái)?shù)據(jù)在第一終端的界面上截取與操作執(zhí)行坐標(biāo)對(duì)應(yīng)的錄制圖片。
[