對計算機程序進行測試的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明實施例提供了一種用于對計算機程序進行測試的方法和設(shè)備。所述方法包括:獲取所述計算機程序的圖形用戶界面GUI中字符區(qū)域的第一顯示數(shù)據(jù);縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置;獲取刷新后的GUI中字符區(qū)域的第二顯示數(shù)據(jù);以及在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下,生成指示字符截斷的消息。采用本發(fā)明實施例提供的技術(shù)方案可以自動地檢測GUI中存在的字符截斷。
【專利說明】對計算機程序進行測試的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及數(shù)據(jù)處理領(lǐng)域,特別地,涉及對計算機程序進行測試的方法和設(shè)備。
【背景技術(shù)】
[0002]在對計算機程序進行測試的過程中,圖形用戶界面(Graphic User Interface,GUI)測試是一個重要的部分。GUI測試可以發(fā)現(xiàn)計算機程序的GUI中可能導(dǎo)致用戶誤操作或操作不方便的問題。一種典型的此類問題是字符截斷。GUI中可能包括許多字符區(qū)域,以便指示用戶進行操作。字符區(qū)域在計算機程序中的表示就是可視對象以及與所述可視對象關(guān)聯(lián)的字符串。在計算機程序的開發(fā)過程中,可能忽略了字符串的顯示尺寸設(shè)置與可視對象的顯示尺寸設(shè)置之間的匹配。在將計算機程序從一種語言翻譯到另一種語言的過程中,字符串的實際顯示尺寸可能發(fā)生變化。這些原因都有可能造成字符截斷。字符截斷使得某些字符在GUI上變得不可見,從而無法有效地指導(dǎo)用戶的操作。
[0003]為了在⑶I測試中判斷一個字符區(qū)域是否發(fā)生字符截斷,需要首先獲取該字符區(qū)域?qū)?yīng)的可視對象,并獲取與所述可視對象關(guān)聯(lián)的字符串,然后對比與該可視對象關(guān)聯(lián)的字符串以及GUI所顯示的字符串是否相同。與可視對象關(guān)聯(lián)的字符串必須要通過查看計算機程序的源代碼才能獲得。在一個計算機程序的GUI中,往往有大量的可視對象。針對這些可視對象逐個查看源代碼是不現(xiàn)實的。因此,需要一種方案能夠自動地發(fā)現(xiàn)字符截斷問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了對計算機程序進行測試的方法和設(shè)備。
[0005]根據(jù)本發(fā)明實施例的對計算機程序進行測試的方法包括:獲取所述計算機程序的圖形用戶界面GUI中字符區(qū)域的第一顯示數(shù)據(jù);縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置;獲取刷新后的⑶I中字符區(qū)域的第二顯示數(shù)據(jù);以及,在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下,生成指示字符截斷的消息。
[0006]根據(jù)本發(fā)明實施例的對計算機程序進行測試的設(shè)備包括:第一獲取裝置,配置為獲取所述計算機程序的圖形用戶界面GUI中字符區(qū)域的第一顯示數(shù)據(jù);顯示尺寸設(shè)置裝置,配置為縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置;第二獲取裝置,配置為獲取刷新后的GUI中字符區(qū)域的第二顯示數(shù)據(jù);以及,字符截斷檢測裝置,配置為在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下,生成指示字符截斷的消息。
[0007]利用本發(fā)明的方法和設(shè)備,可以自動地檢測⑶I中存在的至少一種類型的字符截斷?!緦@綀D】
【附圖說明】
[0008]通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0009]圖1是適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。
[0010]圖2是字符截斷的示意圖。
[0011]圖3是根據(jù)本發(fā)明實施例的用于檢測字符截斷的方法的流程圖。
[0012]圖4是根據(jù)本發(fā)明實施例的用于檢測字符截斷的方法的流程圖。
[0013]圖5示出了檢測字符截斷的示意圖。
[0014]圖6是根據(jù)本發(fā)明實施例的用于檢測字符截斷的方法的流程圖。
[0015]圖7示出了檢測字符截斷的示意圖。
[0016]圖8是根據(jù)本發(fā)明實施例的用于檢測字符截斷的方法的流程圖。
[0017]圖9示出了檢測字符截斷的示意圖。
[0018]圖10是根據(jù)本發(fā)明實施例的用于檢測字符截斷的設(shè)備的方框圖。
【具體實施方式】
[0019]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0020]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。如圖1 所示,計算機系統(tǒng)100可以包括:CPU (中央處理單元)10URAM (隨機存取存儲器)102,ROM (只讀存儲器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、 并行接口控制器18、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備 113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU IOU RAM 102、ROM 103、 硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬 盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行 接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯 示控制器109耦合。應(yīng)當理解,圖1所述的結(jié)構(gòu)框圖僅僅是為了示例的目的,而不是對本發(fā) 明范圍的限制。在某些情況下,可以根據(jù)具體情況增加或減少某些設(shè)備。
[0021]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。 因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括 固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模 塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì) 中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0022]可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計 算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限 于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算 機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0023]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0024]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括——但不限于——無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0025]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0026]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0027]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0028]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0029]圖2是字符截斷的示意圖。雖然在圖2以及后續(xù)的其他附圖中以英文字母作為所述字符的示例,但是本發(fā)明實施例所提供的方法可以用于其他各種字符,包括但不限于中文字符。
[0030]如圖2所示,通過查看計算機程序的源代碼,可以知道該可視對象關(guān)聯(lián)的字符串是Hello World0在后面的描述中,將計算機程序的源代碼中為可視對象關(guān)聯(lián)的字符串稱為原始字符串。水平截斷指的是由于可視對象的實際顯示尺寸的寬度不足,導(dǎo)致原始字符串末尾的字符無法正常顯示。例如,在完全水平截斷的情況下,字符d完全沒有顯示在GUI 上。在部分水平截斷的情況下,字符d的一部分沒有顯示在⑶I上。豎直截斷指的是由于 可視對象的實際顯示尺寸的高度不夠,導(dǎo)致高度大于一定程度的部分或全部字符無法正常 顯示。在僅存在豎直截斷的情況下,所顯示的字符的個數(shù)通常并不會發(fā)生變化。
[0031]圖3是根據(jù)本發(fā)明實施例的檢測字符截斷的方法的示意圖。需要注意的是,本發(fā) 明并非意圖解決針對上述所有類型的字符截斷的檢測。本發(fā)明的一些實施例可能在檢測完 全水平截斷時具有較好的性能,而其他一些實施例可能在檢測部分水平截斷或豎直截斷時 具有較好的性能。
[0032]步驟301,獲取計算機程序的⑶I中字符區(qū)域的第一顯示數(shù)據(jù)。
[0033]如前所述,GUI中的字符數(shù)據(jù)在計算機程序中對應(yīng)于至少一個可視對象和與所述 至少一個可視對象關(guān)聯(lián)的原始字符串。一般來說,可視對象的屬性包括該可視對象的坐標。 因此可以通過所述坐標來確定字符區(qū)域在⑶I中的位置。
[0034]作為替換地,可以由測試人員指定字符區(qū)域的位置。例如,在⑶I顯示在計算機系 統(tǒng)的顯示設(shè)備上后,測試人員可以利用諸如鼠標、鍵盤的輸入設(shè)備來指定字符區(qū)域的位置。
[0035]在確定了字符區(qū)域的位置后,就可以獲取所述字符區(qū)域的顯示數(shù)據(jù)。例如可以通 過拷屏的方法來獲取所述顯示數(shù)據(jù)。
[0036]步驟302,縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置。
[0037]本領(lǐng)域技術(shù)人員可以容易地縮小原始字符串的顯示尺寸設(shè)置。例如,可以在計算 機程序的代碼中減小原始字符串的字號,也可以在計算機程序的代碼中取消原始字符串的 黑體顯示。這樣,在⑶I界面被刷新以后,與所述字符區(qū)域關(guān)聯(lián)的字符串將以較小的實際顯 示尺寸在字符區(qū)域中顯示。
[0038]步驟303,獲取刷新后的⑶I中字符區(qū)域的第二顯示數(shù)據(jù)。
[0039]該步驟與步驟301類似,在此不再贅述。
[0040]步驟304,在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在 其他不同的情況下,生成指示字符截斷的消息。
[0041]由于在步驟302中調(diào)整了原始字符串的顯示尺寸設(shè)置,因此第一顯示數(shù)據(jù)和第二 顯示數(shù)據(jù)在字符的實際顯示尺寸方面必然是不同的。根據(jù)本發(fā)明實施例,如果在字符的實 際顯示尺寸之外還存在其他的不同,則認為發(fā)生了字符截斷。
[0042]下面分別針對完全水平截斷、部分水平截斷和豎直截斷來具體描述如何判斷第一 顯示數(shù)據(jù)和第二顯示數(shù)據(jù)是否存在所述其他不同。
[0043]對于完全水平截斷的情況,步驟304的具體實施如圖4所示。
[0044]步驟401,根據(jù)所述第一顯示數(shù)據(jù),識別所述字符區(qū)域中的第一已顯示字符串。
[0045]本領(lǐng)域已經(jīng)有許多方法來進行字符識別,在此不再贅述。
[0046]步驟402,根據(jù)所述第二顯示數(shù)據(jù),識別所述字符區(qū)域中的第二已顯示字符串。
[0047]步驟403,在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)不同的 情況下,生成指示字符截斷的消息。
[0048]在完全水平截斷的情況下,由于可視對象的實際顯示尺寸的寬度不足,導(dǎo)致原始 字符串末尾的一部分字符無法顯示,這一部分字符稱為未顯示字符串??s小原始字符串的 顯示尺寸設(shè)置,可以使得未顯示字符串中至少第一個字符的至少一部分就會出現(xiàn)在字符區(qū)域中。這樣在縮小顯示尺寸設(shè)置前后所得到的已顯示字符串中字符的數(shù)目就會有所不同。
[0049]圖5A-圖5C示出根據(jù)圖4所示的方法檢測字符截斷的示意圖。原始字符串是Hello。
[0050]假設(shè)初始的字體大小是24,在步驟301中所取得的顯示數(shù)據(jù)如圖5A所示。在步驟302中,通過將字體大小設(shè)置為18,來縮小原始字符串的顯示尺寸設(shè)置。在步驟303中,所取得的顯示數(shù)據(jù)如圖5B所示。相應(yīng)地,在步驟401中所識別出的第一已顯示字符串為Hell,字符數(shù)為4 ;在步驟402中所識別出的第二已顯示字符串為Hello,字符數(shù)目為5。第一已顯示字符串和第二已顯示字符串的字符數(shù)目不同,則認為發(fā)生了字符截斷。
[0051]假設(shè)初始的字體大小是20,在步驟301中所取得的顯示數(shù)據(jù)如圖5C所示。在步驟302中,通過將字體大小設(shè)置為18,來縮小原始字符串的顯示尺寸設(shè)置。在步驟303中,所取得的顯示數(shù)據(jù)如圖5B所示。相應(yīng)地,在步驟401中所識別出的第一已顯示字符串為Hello,字符數(shù)為5 ;在步驟402中所識別出的第二已顯示字符串為Hello,字符數(shù)目也為5。第一已顯示字符串和第二已顯示字符串的字符數(shù)目相同,則認為沒有發(fā)生字符截斷。
[0052]圖6是根據(jù)本發(fā)明另一實施例的步驟304的具體實現(xiàn)。其中,步驟601到步驟603與步驟401到步驟403相同,在此不再贅述。
[0053]步驟604,在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)相同的情況下,進一步判斷第一已顯示字符串和第二已顯示字符串是否相同,如果不同則生成指示文字截斷的消息。
[0054]參考圖7A和圖7B。原始字符串仍然是Hello。
[0055]假設(shè)初始的字體大小是22,在步驟301中所取得的顯示數(shù)據(jù)如圖7A所示。在步驟302中,通過將字體大小設(shè)置為18,來縮小原始字符串的顯示尺寸設(shè)置。在步驟303中,所取得的顯示數(shù)據(jù)如圖7B所示。相應(yīng)地,在步驟601中所識別出的第一已顯示字符串可能是Hellc,字符數(shù)為5。則在步驟602中所識別出的第二已顯示字符串為Hello,字符數(shù)目為5。因此第一已顯示字符串和第二已顯示字符串的字符數(shù)目相同。
[0056]圖7A實際上是部分水平截斷的情況,即字符ο的一部分顯示在⑶I中。字符識別軟件可能將所顯示的ο的一部分識別為C。相應(yīng)地,第一已顯示字符串和第二已顯示字符串的字符數(shù)目相同。
[0057]因此,在第一已顯示字符串和第二已顯示字符串的字符數(shù)目相同的情況下,可以進一步判斷第一已顯示字符串和第二已顯示字符串的本身是否相同以便檢測部分水平截斷。
[0058]假設(shè)初始的字體大小是20,在步驟301中所取得的顯示數(shù)據(jù)如圖7C所示。在步驟302中,通過將字體大小設(shè)置為18,來縮小原始字符串的顯示尺寸設(shè)置。在步驟303中,所取得的顯示數(shù)據(jù)仍然如圖7B所示。相應(yīng)地,在步驟601中所識別出的第一已顯示字符串是Hello,字符數(shù)為5。在步驟602中所識別出的第二已顯示字符串為Hello,字符數(shù)目為5。因此第一已顯示字符串和第二已顯示字符串的字符數(shù)目相同,并且第一已顯示字符串和第二已顯示字符串本身相同,從而確定沒有發(fā)生截斷。
[0059]根據(jù)本發(fā)明的一個實施例,可以只比較第一已顯示字符串和第一已顯示字符串的最后一個字符。這樣可以節(jié)省用于進行字符比較的計算機資源。
[0060]圖6所示的方法對豎直截斷也同樣適用。這是因為,在豎直截斷的情況下,雖然已顯示字符串的字符個數(shù)不會發(fā)生變化,但是在調(diào)整原始字符串的顯示尺寸設(shè)置前后,已顯示字符串的某些字符在截斷程度上有所變化。對于截斷程度不同的同一個字符,字符識別軟件可能將其識別為不同的字符。例如對于圖2中豎直截斷情況下的字符“d”,字符識別軟件可能將其識別為字符“O”或“a”。因此,對第一已顯示字符串和第二已顯示字符串本身進行比較,也可以檢測豎直截斷。
[0061]根據(jù)本發(fā)明的一個實施例,在步驟302中,通過減小原始字符串的顯示尺寸設(shè)置,使得第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距。在第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距的情況下,可以確保未顯示字符串中的至少一個的至少一部分在刷新后的GUI中顯示在字符區(qū)域中。本領(lǐng)域技術(shù)人員可以理解,已顯示字符串中字符的個數(shù)越多,則已顯示字符串的實際顯示尺寸的水平減小量之和就越大。
[0062]根據(jù)本發(fā)明的另一個實施例,在步驟302中,通過減小原始字符串的顯示尺寸設(shè)置,使得所述第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距加上空格的實際顯示尺寸。這是因為未顯示字符串中的第一個字符和第一已顯示字符串中的最后一個字符可能分屬不同的單詞。
[0063]根據(jù)本發(fā)明的在一個實施例,在步驟302中,通過減小原始字符串的顯示尺寸設(shè)置,使得字符的實際顯示尺寸為字符識別軟件所能處理的最小尺寸。
[0064]本領(lǐng)域技術(shù)人員根據(jù)字符特點,還可以設(shè)計出其他的標準來確定原始字符串的顯示尺寸設(shè)置的縮小程度。
[0065]下面接合圖8描述根據(jù)本發(fā)明再一實施例的步驟304的具體實現(xiàn)。
[0066]步驟801,根據(jù)所述第一顯示數(shù)據(jù),獲取第一字符顯示數(shù)據(jù)。
[0067]步驟801與步驟401的區(qū)別在于,步驟801不需要進行字符識別,只需要獲取字符的顯示數(shù)據(jù)即可。一般來說,根據(jù)原始字符串的顯示尺寸設(shè)置,字符的寬度是在一定范圍內(nèi)變化的。因此,根據(jù)本發(fā)明一個實施例,可以截取字符區(qū)域中的這樣一塊區(qū)域的顯示數(shù)據(jù)作為所述第一字符顯示數(shù)據(jù):從字符區(qū)域的左側(cè)或右側(cè)邊緣開始,高度為字符區(qū)域的高度,寬度為所述范圍內(nèi)的任意一個預(yù)先設(shè)定的值。所述預(yù)先設(shè)定的值例如可以是所述范圍的中值或均值。
[0068]根據(jù)本發(fā)明另外一個實施例,也可以不預(yù)先設(shè)置所述寬度,而是根據(jù)所述第一顯示數(shù)據(jù)動態(tài)地確定所述寬度。例如,字符識別技術(shù)往往包括兩個步驟:第一步是確定需要對哪部分顯示數(shù)據(jù)進行識別,也就是確定哪部分顯示數(shù)據(jù)是表示單個字符的字符顯示數(shù)據(jù);第二步是對所述字符顯示數(shù)據(jù)進行模式識別,以便確定所述字符顯示數(shù)據(jù)所對應(yīng)的字符??梢岳盟龅谝徊絹泶_定所述寬度。
[0069]步驟802,根據(jù)所述第二顯示數(shù)據(jù),獲取第二字符顯示數(shù)據(jù)。
[0070]該步驟與步驟801類似。
[0071]步驟803,在所述第一字符顯示數(shù)據(jù)中的字符部分和第二字符顯示數(shù)據(jù)中的字符部分具有不同的寬高比的情況下,生成指示字符截斷的消息。
[0072]如果未發(fā)生豎直截斷,則在縮小原始字符串的顯示尺寸設(shè)置前后,字符顯示數(shù)據(jù)的高度和寬度發(fā)生相同比例的變化,則字符顯示數(shù)據(jù)的寬高比不發(fā)生變化。
[0073]如果發(fā)生了豎直截斷,則字符在垂直方向上有一部分無法顯示,但是在水平方向上能夠完全顯示。在縮小原始字符串的顯示尺寸設(shè)置之后,原先無法顯示的所述部分變?yōu)槟軌蝻@示,使得字符顯示數(shù)據(jù)的高度發(fā)生的變化超過與寬度變化比例相同的變化。相應(yīng)地,字符顯示數(shù)據(jù)的寬高比發(fā)生變化。
[0074]圖9A-圖9C示出根據(jù)圖8所示的方法檢測字符截斷的示意圖。
[0075]假設(shè)初始的字體大小是24,在步驟801中所取得的第一字符顯示數(shù)據(jù)如圖9A所示,該字符顯示數(shù)據(jù)的寬度為460,高度為500,寬高比為0.92。在步驟302中,通過將字體大小設(shè)置為18,來縮小原始字符串的顯示尺寸設(shè)置。在步驟402中,所取得的第二字符顯示數(shù)據(jù)如圖9B所示,該字符顯示數(shù)據(jù)的寬度為422,高度為434,寬高比為0.97。在改變原始字符串的顯示尺寸設(shè)置前后,第一字符顯示數(shù)據(jù)和第二字符顯示數(shù)據(jù)的寬高比發(fā)生了變化,則確定發(fā)生了字符截斷。
[0076]假設(shè)初始的字體大小是20,在步驟801中所取得的第一字符顯示數(shù)據(jù)如圖9C所示,該字符顯示數(shù)據(jù)的寬度為468,高度為481,寬高比為0.97。在步驟302中,通過將字體大小設(shè)置為18,來縮小原始字符串的顯示尺寸設(shè)置。在步驟802中,所取得的第二字符顯示數(shù)據(jù)也如圖9B所示,該字符顯示數(shù)據(jù)的寬度為422,高度為434,寬高比為0.97。在改變原始字符串的顯示尺寸設(shè)置前后,第一字符顯示數(shù)據(jù)和第二字符顯示數(shù)據(jù)的寬高比未發(fā)生變化,則確定未發(fā)生字符截斷。
[0077]圖10是根據(jù)本發(fā)明實施例的用于對計算機程序進行測試的設(shè)備的方框圖。
[0078]所述設(shè)備包括:
[0079]第一獲取裝置,配置為獲?、荌中字符區(qū)域的第一顯示數(shù)據(jù);
[0080]顯示尺寸設(shè)置裝置,配置為縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置;
[0081]第二獲取裝置,配置為獲取刷新后的Gn中字符區(qū)域的第二顯示數(shù)據(jù);以及,
[0082]字符截斷檢測裝置,配置為在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下,生成指示字符截斷的消息。
[0083]所述字符截斷檢測裝置包括:
[0084]第一識別裝置,配置為根據(jù)所述第一顯示數(shù)據(jù),識別所述字符區(qū)域中的第一已顯示字符串;
[0085]第二識別裝置,配置為根據(jù)所述第二顯示數(shù)據(jù),識別所述字符區(qū)域中的第二已顯示字符串;以及,
[0086]字符個數(shù)比較裝置,配置為在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)不同的情況下,生成指示字符截斷的消息。
[0087]所述字符截斷檢測裝置進一步包括:
[0088]字符串比較裝置,在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)相同的情況下,進一步判斷第一已顯示字符串和第二已顯示字符串是否相同,如果不同則生成指示文字截斷的消息。
[0089]所述字符截斷檢測裝置包括:
[0090]第三獲取裝置,配置為根據(jù)所述第一顯示數(shù)據(jù),獲取第一字符顯示數(shù)據(jù);
[0091]第四獲取裝置,配置為根據(jù)所述第二顯示數(shù)據(jù),獲取第二字符顯示數(shù)據(jù);以及
[0092]寬高比比較裝置,配置為在所述第一字符顯示數(shù)據(jù)中的字符部分和第二字符顯示數(shù)據(jù)中的字符部分具有不同的寬高比的情況下,生成指示字符截斷的消息。
[0093]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程 序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以 代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個 用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)中,方框中所 標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以 基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行 規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的 組合來實現(xiàn)。
[0094]以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也 不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技 術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨 在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本技術(shù)領(lǐng) 域的其它普通技術(shù)人員能理解本文披露的各實施例。
【權(quán)利要求】
1.一種對計算機程序進行測試的方法,所述方法包括: 獲取所述計算機程序的圖形用戶界面GUI中字符區(qū)域的第一顯示數(shù)據(jù); 縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置; 獲取刷新后的GUI中字符區(qū)域的第二顯示數(shù)據(jù);以及, 在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下,生成指示字符截斷的消息。
2.如權(quán)利要求1所述的方法,其中所述在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下生成指示字符截斷的消息包括: 根據(jù)所述第一顯示數(shù)據(jù),識別所述字符區(qū)域中的第一已顯示字符串; 根據(jù)所述第二顯示數(shù)據(jù),識別所述字符區(qū)域中的第二已顯示字符串;以及, 在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)不同的情況下,生成指示字符截斷的消息。
3.如權(quán)利要求2所述的方法,進一步包括: 在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)相同的情況下,進一步判斷第一已顯示字符串和第二已顯示字符串是否相同,如果不同則生成指示文字截斷的消肩、O
4.如權(quán)利要求1所述的方法,其中所述在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下生成指示字符截斷的消息包括: 根據(jù)所述第一顯示數(shù)據(jù),獲取第一字符顯示數(shù)據(jù); 根據(jù)所述第二顯示數(shù)據(jù),獲取第二字符顯示數(shù)據(jù);以及 在所述第一字符顯示數(shù)據(jù)中的字符部分和第二字符顯示數(shù)據(jù)中的字符部分具有不同的寬高比的情況下,生成指示字符截斷的消息。
5.如權(quán)利要求1至3中任意一項所述的方法,其中通過減小原始字符串的顯示尺寸設(shè)置,使得所述第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距。
6.如權(quán)利要求1至3中任意一項所述的方法,其中通過減小原始字符串的顯示尺寸設(shè)置,使得所述第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距加上空格的實際顯示尺寸。
7.如權(quán)利要求1至3中任意一項所述的方法,其中通過減小原始字符串的顯示尺寸設(shè)置,使得字符的實際顯示尺寸為字符識別軟件所能處理的最小尺寸。
8.一種對計算機程序進行測試的設(shè)備,所述設(shè)備包括: 第一獲取裝置,配置為獲取所述計算機程序的圖形用戶界面GUI中字符區(qū)域的第一顯示數(shù)據(jù); 顯示尺寸設(shè)置裝置,配置為縮小與所述字符區(qū)域關(guān)聯(lián)的原始字符串的顯示尺寸設(shè)置; 第二獲取裝置,配置為獲取刷新后的⑶I中字符區(qū)域的第二顯示數(shù)據(jù);以及, 字符截斷檢測裝置,配置為在所述第一顯示數(shù)據(jù)和第二顯示數(shù)據(jù)除字符的實際顯示尺寸以外存在其他不同的情況下,生成指示字符截斷的消息。
9.如權(quán)利要求8所述的設(shè)備,其中所述字符截斷檢測裝置包括: 第一識別裝置,配置為根據(jù)所述第一顯示數(shù)據(jù),識別所述字符區(qū)域中的第一已顯示字符串;第二識別裝置,配置為根據(jù)所述第二顯示數(shù)據(jù),識別所述字符區(qū)域中的第二已顯示字符串;以及,字符個數(shù)比較裝置,配置為在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)不同的情況下,生成指示字符截斷的消息。
10.如權(quán)利要求9所述的設(shè)備,進一步包括:字符串比較裝置,在所述第一已顯示字符串和所述第二已顯示字符串的字符個數(shù)相同的情況下,進一步判斷第一已顯示字符串和第二已顯示字符串是否相同,如果不同則生成指示文字截斷的消息。
11.如權(quán)利要求8所述的設(shè)備,其中所述字符截斷檢測裝置包括:第三獲取裝置,配置為根據(jù)所述第一顯示數(shù)據(jù),獲取第一字符顯示數(shù)據(jù);第四獲取裝置,配置為根據(jù)所述第二顯示數(shù)據(jù),獲取第二字符顯示數(shù)據(jù);以及寬高比比較裝置,配置為在所述第一字符顯示數(shù)據(jù)中的字符部分和第二字符顯示數(shù)據(jù)中的字符部分具有不同的寬高比的情況下,生成指示字符截斷的消息。
12.如權(quán)利要求8至10中任意一項所述的設(shè)備,其中通過減小原始字符串的顯示尺寸設(shè)置,使得所述第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距。
13.如權(quán)利要求8至10中任意一項所述的設(shè)備,其中通過減小原始字符串的顯示尺寸設(shè)置,使得所述第一已顯示字符串的實際顯示尺寸的水平減小量之和大于第一已顯示字符串中字符的水平間距加上空格的實際顯示尺寸。
14.如權(quán)利要求8至 10中任意一項所述的設(shè)備,其中通過減小原始字符串的顯示尺寸設(shè)置,使得字符的實際顯示尺寸為字符識別軟件所能處理的最小尺寸。
【文檔編號】G06F11/36GK103577314SQ201210266218
【公開日】2014年2月12日 申請日期:2012年7月30日 優(yōu)先權(quán)日:2012年7月30日
【發(fā)明者】宋強, 黃朝源, 江威德 申請人:國際商業(yè)機器公司