CN112115063B - 一种软件本地化测试方法、装置、终端及存储介质 - Google Patents
一种软件本地化测试方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112115063B CN112115063B CN202011053183.5A CN202011053183A CN112115063B CN 112115063 B CN112115063 B CN 112115063B CN 202011053183 A CN202011053183 A CN 202011053183A CN 112115063 B CN112115063 B CN 112115063B
- Authority
- CN
- China
- Prior art keywords
- language
- text
- resource
- target
- text content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种软件本地化测试方法、装置、终端及存储介质,该方法只需对原产国语种的软件版本进行一次测试,在测试过程中,对于每一个用户界面,将该用户界面上显示的原始文本内容替换为目标语种的文本内容,从而得到目标语种的测试结果。该方案不需要针对不同语种进行重复测试,因此,极大地缩短了本地化测试周期,提高了测试效率。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种软件本地化测试方法、装置、终端及存储介质。
背景技术
软件本地化是指将某一软件产品的用户界面(UI)和辅助材料(如文档资料和在线帮助菜单等)从其原产国语言转化为另一种语言,使之适应某一目标国家语言和文化的过程,以便在目标国家推广。本地化测试是软件本地化过程中一个重要步骤。
本地化测试(Localisation Quality Assurance,LQA)的任务是检测每种语言的软件版本中的对话、文本、用户界面及其它相关资源,发现、记录和解决本地化过程中出现的bugs。
相关技术方案中,软件的本地化测试通常是将某一语言的软件测试包发送给该国家的软件测试人员,由该国家软件测试人员对软件测试包进行相应的测试,如果需要进行多种语言的测试,则分别需要对应国家的测试人员重复地对软件进行测试,例如,某一软件对应N种语言版本,则需要对该软件重复地进行N次测试,测试周期长且测试效率低。
发明内容
有鉴于此,本申请提供了一种软件本地化测试方法、装置、终端及存储介质,以解决相关技术中的软件本地化测试方案需要针对每一种语言分别进行本地化测试测试周期长、效率低的问题,其公开的技术方案如下:
第一方面,本申请提供了一种软件的本地化测试方法,包括:
获取当前测试界面中的文本对象以及所述文本对象包含的原始文本内容;
针对任一所述文本对象,获取所述文本对象的原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源;
根据所述原始文本内容对应的翻译资源得到与所述目标语种对应的目标文本内容;
将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图;
遍历所有目标语种,得到所述当前测试界面分别对应各个目标语种的目标语种测试结果图;
测试下一个用户界面直到整个软件中的所有用户界面都完成测试,得到所述软件对应的各个目标语种的测试结果图集。
在第一方面一种可能的实现方式中,所述获取当前测试界面中的文本对象,及所述文本对象包含的原始文本内容,包括:
针对所述当前测试界面,遍历所述当前测试界面中的所有对象,并从所述所有对象中筛选出具有文本属性的对象,得到所述文本对象;
获取每个所述文本对象对应的文本属性,得到所述文本对象的原始文本内容;
建立所述文本对象与对应的原始文本内容之间的映射关系得到对象文本映射表。
在第一方面另一种可能的实现方式中,所述针对任一所述文本对象,获取所述文本对象的原始文本内容对应的各语言资源,包括:
对于所述当前测试界面中的任一文本对象,从所述当前测试界面对应的对象文本映射表中查询得到所述文本对象对应的原始文本内容;
从所述文本对象对应的代码中获取构成所述原始文本内容的所有语言资源。
在第一方面又一种可能的实现方式中,所述从所述文本对象对应的代码中获取构成所述原始文本内容的所有语言资源,包括:
当所述文本对象的代码中不包含字符串构造函数且所述文本对象对应的原始文本内容是语言资源时,直接读取所述文本对象对应的原始文本内容作为所述原始文本内容对应的语言资源,所述字符串构造函数用于将至少一个字符串构造成对应的文本;
当所述文本对象对应的代码中包含所述字符串构造函数时,获取所述字符串构造函数中包含的字符串参数,得到所述原始文本内容对应的语言资源。
在第一方面再一种可能的实现方式中,所述从所述文本对象对应的代码中获取构成所述原始文本内容的所有语言资源还包括:
当所述文本对象对应的文本内容为基于CS协议下发的数据时,确定所述文本对象为无需翻译的干扰项;
当所述文本对象对应的文本内容来自图标图片时,确定所述文本对象中的文本无需翻译。
在第一方面另一种可能的实现方式中,所述从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源,包括:
针对所述原始文本内容中的任一所述语言资源,从所述语言映射表中查找与所述语言资源相匹配的目标资源;
从所述语言映射表中查找所述目标资源对应的所述目标语种的翻译资源。
在第一方面又一种可能的实现方式中,所述针对所述原始文本内容中的任一所述语言资源,从所述语言映射表中查找与所述语言资源相匹配的目标资源,包括:
当所述语言映射表中存在与所述原始文本内容的语言资源完全一致的语言资源时,确定与所述原始文本内容中的语言资源完全一致的语言资源为所述目标资源;
当所述语言映射表中不存在与所述原始文本内容的语言资源完全一致的语言资源时,继续从所述语言映射中查找与所述原始文本内容中的语言资源相似度最高的语言资源确定为所述目标资源。
在第一方面再一种可能的实现方式中,所述从所述语言映射表中查找所述目标资源对应的所述目标语种的翻译资源,包括:
从所述语言映射表中查找所述目标资源对应的资源唯一标识;
从所述语言映射表中查找与所述资源唯一标识相匹配的所述目标语种对应的语言资源,并从所述翻译资源中去除无需翻译内容,得到所述目标资源对应的所述目标语种的翻译资源。
在第一方面另一种可能的实现方式中,所述根据所述原始文本内容对应的翻译资源得到与所述目标语种对应的目标文本内容,包括:
将所述文本对象的文本属重新赋值为所述文本对象对应的原始文本内容的翻译资源;
根据所述翻译资源组装所述文本对象对应的所述目标语种的目标文本内容。
在第一方面又一种可能的实现方式中,所述将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,并获得所述当前测试界面对应的目标语种测试结果图,包括:
对于所述当前测试界面中的任一文本对象,将所述文本对象在所述当前测试界面上显示的文本内容渲染为所述目标文本内容;
将所述当前测试界面中所有文本对象所对应为文本内容渲染为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图。
在第一方面再一种可能的实现方式中,所述测试下一个用户界面直到遍历软件中的所有用户界面,得到所述软件对应的各个目标语种的测试结果图集,包括:
当获得所述当前测试界面对应的各个目标语种的测试结果图集后,将所述当前测试界面中各文本对象对应的文本内容还原为对应的原始文本内容;
基于还原后的所述当前测试界面继续进行测试,直到测试完整个软件得到所述软件对应的各个目标语种的测试结果图集。
第二方面,本申请还提供了一种软件的本地化测试装置,包括:
原始文本获取模块,用于获取当前测试界面中的文本对象,及所述文本对象包含的原始文本内容;
翻译资源获取模块,用于针对任一所述文本对象,获取所述文本对象的原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源;
文本转换模块,用于根据所述原始文本内容对应的翻译资源得到与所述目标语种对应的目标文本内容;
文本替换模块,用于将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图;
语种遍历模块,用于遍历所有目标语种,得到所述当前测试界面分别对应各个目标语种的目标语种测试结果图;
界面遍历模块,用于测试下一个用户界面直到测试完整个所述软件,得到所述软件对应的各个目标语种的测试结果图集。
第三方面,本申请还提供了一种用于软件本地化测试的终端,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取当前测试界面中的文本对象,及所述文本对象包含的原始文本内容;
针对任一所述文本对象,获取所述文本对象的原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源;
根据所述原始文本内容对应的翻译资源得到与所述目标语种对应的目标文本内容;
将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图;
遍历所有目标语种,得到所述当前测试界面分别对应各个目标语种的目标语种测试结果图;
测试下一个用户界面直到遍历软件中的所有用户界面,得到所述软件对应的各个目标语种的测试结果图集。
第四方面,本申请还提供了一种计算机可读存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现上述第一方面任一种可能的实现方式所述的软件本地化测试方法。
本申请提供的软件本地化测试方法,只需对原产国语种的软件版本进行本地化测试,在测试过程中,对于每一个用户界面,将该用户界面上显示的原始文本内容替换为目标语种的文本内容,从而得到目标语种的测试结果。具体的,获取用户界面中的文本对象所对应的语言资源,并从语言映射表中获取各语言资源对应的目标语种的翻译资源。进一步根据各翻译资源得到原始文本内容对应的目标语种的目标文本内容,并将该文本对象对应的原始文本内容替换为所述目标文本内容。重复上述过程直到该用户界面中所有文本对象都替换为相应的目标文本内容后得到该用户界面对应的目标语种的测试结果图。遍历所有目标语种得到该用户界面对应的各个目标语种的目标语种测试结果图。然后,继续测试下一个用户界面直到整个软件测试完成得到软件对应的各个目标语种的测试结果图集。由上述过程可知,本方案只需对软件进行一次测试,在测试过程中将软件每一个用户界面所显示的文本替换成目标语种对应的内容得到用户界面对应的目标语种的测试结果图,不需要针对不同语种进行重复测试,因此,本方案极大地缩短了本地化测试周期,提高了测试效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的运行软件本地化测试方法的程序的结构示意图;
图2是本申请实施例提供的一种软件本地化测试方法的流程图;
图3是本申请实施例提供的一种从语言映射表中查找翻译资源过程的流程图;
图4是本申请实施例提供的一种游戏软件本地化测试方法的流程图;
图5是本申请实施例提供的一种获得多种语言版本JSON数据过程的流程图;
图6是采用本申请提供的软件本地化测试方案与人工对比结果相比的测试结果准确率数据表;
图7是本申请实施例提供的一种软件本地化测试装置的结构示意图;
图8是本申请实施例提供的一种终端的结构示意图。
具体实施方式
相关技术中,软件本地化测试需要针对每一语种分别进行测试,从而检测该语种对应的软件版本中的对话、文本、用户界面及其它相关资源是否准确,但是此种本地化测试方案需要针对不同语种重复地进行相同的测试,导致测试周期长且测试效率低的问题。为了解决该技术问题,本申请提供了一种软件本地化测试方法,该方法只需对原产语种的软件版本进行本地化测试,测试过程中,获得软件的用户界面中每个文本对象对应的各个目标语种对应的目标文本内容,并将当前测试界面中各文本对象的原始文本内容替换为对应的目标文本内容得到该多个语种所对应的测试结果图,无需针对每个语种重复进行测试,因此缩短了测试周期同时提高了测试效率。
首先,结合图1介绍运行软件本地化测试方法的程序的结构,该程序运行在智能终端(例如,智能手机)上,还可以运行在PC机上。如图1所示,该程序客户端主要包括应用接口层、逻辑兼容层和底层Hook。
应用接口层,用于实现多语言资源读取和替换,用户界面截图等基础应用操作,以及超宽和漏翻检测等功能,此处的超宽检测是指目标语种文本的宽度是否超出对象的宽度,漏翻检测是指检测UI中是否存在没有翻译的文本。
逻辑兼容层,其主要实现的功能是对于各种复杂情况的用户界面和OBJ对象之间的关系组织,建立原始语言资源与最终生成Text之间的映射关系;建立用户界面中OBJ对象与Text之间的映射关系;最终实现将用户界面中的Text替换为不同语种的文本。
以运行在智能手机上的本地化测试程序为例进行说明,用户界面中“10连胜”文本是通过Format函数得到的一种组装格式:Text=String.format(“{0}连胜”,arg)。
底层Hook,通过C#反射机制找到系统中的各个Format函数、字符串拼接函数等可能造成UI文本变化的函数,此类函数称为字符串构造函数。
通过Hook字符串构造函数获取此类函数中的参数,得到构成UI文本的语言资源。
下面将详细介绍上述程序运行软件本地化测试方法的具体过程:
请参见图2,示出了本申请实施例提供的一种软件本地化测试方法的流程图,该方法应用于图1所示的本地化测试程序中,本实施例的本地化测试程序可以是运行在智能终端(如,智能手机等)上的应用程序。
在本申请的其他实施例中该本地化测试还可以是运行在PC机上的软件程序。
本文中需要进行本地化测试的软件称为待测软件,该方法通过本地化测试程序启动待测软件。而且,该方法对待测软件的原产国语言版本进行测试,测试过程中,分别针对每一用户界面生成多个语种的测试结果图。
如图2所示,该方法主要包括以下步骤:
S110,获取当前测试界面中的文本对象及文本对象的原始文本内容。
当前测试界面是待测软件进行本地化测试过程中的任一用户界面(UserInterface,UI)。
在本申请一种可能的实现方式中,获取当前测试界面中的所有对象(即,Object对象),并从所有对象中筛选出包含文本属性的对象,称为文本对象。其中,如果一个Object对象包含文本属性表明该Object对象中包含文本内容。进一步,获取文本对象的文本属性值,得到该文本对象的原始文本内容。
通常一个用户界面中包含多个文本对象,为了便于获取文本对象对应的文本内容,在本申请一种可能的实现方式中,可以建立文本对象与对应的原始文本内容之间的映射关系,得到对象文本映射表。当遍历到某一文本对象时,直接从该对象文本映射表中查找到与该文本对象对应的原始文本内容。
S120,针对任一文本对象,获取文本对象的原始文本内容对应的各语言资源。
通常待测软件中的UI包含的文本对象非常多,无法直接索引翻译前后的文本,因此需要找到构成文本对象包含的文本内容对应的基础构造单元(即,最基础的语言资源)
例如,某个对话框中显示的文本内容是“恭喜10连胜”,通过Format函数将“恭喜”、“10”、“连胜”组装得到。因此,{“恭喜”、“10”、“连胜”}即“恭喜10连胜”对应的语言资源。
在本申请的一个应用场景中,各语言资源通过字符串构造函数组装为最终在UI上显示的文本内容,此种应用场景下,可以通过Hook技术从该UI的代码中获取文本对象包所对应的字符串构造函数。并获取字符串构造函数中的字符串参数,得到文本内容对应的各语言资源。
其中,字符串构造函数包括但不限于Format函数(格式化函数),以及String+函数、String.append函数等字符串拼接函数。
例如,对于Format函数类型,包含多种不同的Format函数,使用不同Format函数所构造得到的文本内容对应的语言资源也不同。以原始文本内容“恭喜1连胜!”为例,介绍部分Format函数的示例如下:
(1)Text=String.format(“恭喜{0}连胜!”,var),此种情况下,需要从语言映射表中查找的语言资源是“恭喜{0}连胜!”。
(2)Text=String.format(“恭喜{0}{1}”,“连胜!”,var),此种情况下,需要从语言映射表中查找的语言资源是“恭喜{0}{1}”和“连胜!”。
(3)Text=“恭喜”+var+“连胜!”,此种情况下,需要从语言映射表中查找的语言资源是“恭喜”和“连胜!”
(4)Text=String.format(“恭喜{0}连胜”,var)+“!”,此种情况下,需要从语言映射表中查找的语言资源是“恭喜{0}连胜”,“!”无需翻译。
需要说明的是,运行在PC机上的本地化测试程序所使用的字符串构造函数与运行在手机中的本地化测试程序所使用的字符串构造函数有所不同,需要根据具体的实际应用场景调整本地化测试程序内部的参数。
在本申请的另一个应用场景中,如果文本对象对应的代码中不包含字符串构造函数,且文本对象的文本内容本身就是语言资源,则直接将文本内容作为语言资源。
在本申请的又一应用场景中,如果文本对象对应的文本内容为图标图片类型,则确定图标图片中的文本无需翻译。例如,对于“开始”按钮,后续进行替换时,直接将该按钮的图标图片替换为另一图标图片“PLAY”按钮即可。
在本申请的再一种应用场景中,如果文本对象对应的文本内容是基于CS协议下发的数据时,确定该文本对象为无需翻译的干扰项。例如,组织名称、角色名称等无需翻译的内容。
S130,从预先创建的语言映射表中查找各语言资源对应的目标语种的翻译资源。
在执行S130步骤之前,先创建待测软件中各个语言资源所对应的各个目标语种的翻译资源之间的语言映射表。该语言映射表中包含同一语言资源对应的多个语种的翻译资源。语言映射表中每个语言资源具有一唯一标识,即资源ID。
其中,多个语种的翻译资源可以存储在同一个语言映射表中。此外,多个语种的翻译资源还可以对应的翻译资源分别存储在不同语种的语言映射表中,不同语种的语言映射表中同一语言资源的资源ID相同。例如,语言资源“你好”在不同语种的语言映射表中的资源ID相同。
在本申请的另一个实施例中,还可以根据字符串构造函数类型不同创建不同的语言映射表,例如,针对Format函数类型创建一个语言映射表,针对字符串拼接函数类型创建另一语言映射表。
这样按类别分别创建语言映射表,确定构成UI文本的函数类型后,直接索引相同函数类型对应的语言映射表即可,从而减小了同一语言映射表中的匹配项数量,因此缩短了查找语言映射表的耗时,即提高了查找效率。
在本申请的一个实施例中,如图3所示,S130可以包括以下步骤:
S131,对于任一文本对象对应的语言资源,查找语言映射表中是否存在与该语言资源完全一致的语言资源;如果存在,则执行S132;如果不存在,执行S133。
S132,确定与该语言资源完全一致的语言资源为目标资源。
如果语言映射表中存在与文本对象包含的语言资源完全一致的语言资源时,则确定语言资源为目标资源,下一步根据该目标资源查找不同语种对应的翻译资源。
S133,从语言映射表中查找与原始文本内容中的语言资源相似度最高的语言资源,确定为目标资源。
如果语言映射表中不存在与该文本对象包含的语言资源完全一致的语言资源时,从语言映射表中查找与该语言资源相似度最高的资源,并确定该相似度最高的语言资源为目标资源,下一步根据该目标资源查找对应的翻译资源。
S134,从语言映射表中查找目标资源对应的目标语种的翻译资源。
根据目标资源在语言映射表中的资源ID,查找与该资源ID相对应的语言资源对应不同目标语种的翻译资源。
例如,确定目标资源为“你好”,则从语言映射表中查找“你好”这一资源对应的资源ID,继续从语言映射表中查找该资源ID对应的英文翻译资源为“Hello”。
S140,根据原始文本内容对应的翻译资源得到与目标语种对应的目标文本内容。
在得到一个原始文本内容所包含的所有语言资源对应目标语种的翻译资源后,将该文本对象的文本属性重新赋值为对应的翻译资源,再将翻译资源按照原始文本内容的组装规则组装为目标语种的目标文本内容。
例如,原始文本内容“10连胜”是利用Format函数组装得到,Text=String.format(“{0}连胜”,arg),则将该Format函数中“连胜”替换为对应的翻译资源,即将字符串重新赋值为“连胜”的翻译资源,继续利用Format函数将重新赋值的字符串组装得到目标语种对应的目标文本内容。
S150,将当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到当前测试界面对应的目标语种测试结果图。
得到UI包含的任一文本对象获得对应的目标文本内容存储在待测软件的内存中,当执行UI刷新的操作后从内存中读取该文本对象对应的目标文本内容并将UI中的该文本对象渲染为目标文本内容,此时该文本对象显示为目标文本。例如,原始文本内容是“你好”,目标文本内容是“Hello”,则文本替换后,Objet对象显示为“Hello”。
执行完一个文本对象的文本替换过程后,继续读取下一个文本对象的原始文本内容并替换为目标文本内容,直到遍历UI中的所有文本对象,进行截图,得到该UI对应的目标语种测试结果图。
S160,遍历所有目标语种得到当前测试界面分别对应各个目标语种的目标语种测试结果图。
执行完S150后,将目标语种更新为另一个需要进行本地化测试的语种,并返回执行S110,得到该UI对应的新目标语种的测试结果图,直到遍历所有目标语种。即,针对任一UI,重复地执行S110~S150得到该UI对应不同语种的测试结果图。
S170,测试下一个用户界面直到整个软件中的所有用户界面都完成测试,得到软件对应的各个目标语种的测试结果图集。
待测软件中通常包括多个UI,测试完一个UI并获得该UI对应的各个目标语种的测试结果图后,继续测试下一个UI,即重复执行S110~S160,得到新UI对应的各个目标语种的测试结果图。
在本申请中,进行本地化测试时利用的是待测软件的原产国语言,因此,在完成当前测试UI的目标文本的替换后,再将该当前测试UI中的各个文本对象的文本内容还原为原始文本内容,基于还原后的UI继续测试下一个UI,直到测试完整个待测软件的所有UI,得到该待测软件的各个目标语种的测试结果图集。
本实施例提供的软件本地化测试方法,只需对原产国语种的软件版本进行一次测试,在测试过程中针对每一个用户界面,将该用户界面中包含的文本分别替换成目标语种对应的内容得到对应的目标语种的测试结果图,通过图片核对得到不同语种的本地化测试结果,不需要针对不同语种进行重复测试,减少了本地化测试用例跑测耗时,同时,减少了本地化测试用例环境熟悉耗时。因此,本方案极大地缩短了本地化测试周期,提高了测试效率。
下面以游戏软件为例进行说明,请参见图4,示出了本申请实施例提供的一种游戏软件本地化测试方法的流程图,该方法应用于本地化测试软件(ILQA)中,如图4所示,该方法包括以下步骤。
S210,加载游戏APK包及语言映射表。本实施例以运行于移动终端侧的游戏软件为例进行说明。
APK(Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式。对于其他操作系统则加载该操作系统所使用的应用程序包。
在本申请的一个实施例中,可以通过本地化测试软件启动待测试的游戏APP,加载游戏APK并进入游戏界面启动本地化测试。
S220,通过Hook函数调用Text处理函数,如Format函数、String+函数等。
在游戏进程中注入动态链接库(Dynamic Link Library,DLL),通过DLL实现在游戏代码中部署Hook函数。
在本申请的一个实施例中,执行Hook函数时,生成全局唯一ID,并记录各Text处理函数的各参数和对应的ID。
生成全局唯一的ID信息,
S230,生成Text与原始资源之间的原始资源映射表。
此处的原始资源是指构成文本的语言资源,例如,原始文本为“恭喜10连胜”对应的原始语言资源是{“恭喜”、“10”、“连胜”}。
S240,遍历当前UI中的Text,生成UI-Text关联映射表。
UI-Text关联映射表中是各个UI中所包含的所有Text之间的关联映射关系。
S250,参考UI-Text关联映射表,将每个Text分别替换为各个目标语种资源,得到多种语言版本的JSON数据。
对于每一个UI,将该UI所包含的所有Text逐一替换为相应的目标语种资源,该UI中的所有Text都替换为目标语种资源后,接着将该UI中的Text替换为另一种需要测试的语言,直到所有需要测试的语言都替换完成后,继续替换下一个UI中的Text。
S260,目标语种文本超宽检测。
在将UI中的每个Text替换为目标语种得到目标语种文本后,检测该目标语种文本的显示宽度是否超出UI中该Text对应的对象宽度,如果超出则产生超宽提示信息,以便研发人员针对超宽的对象修改其显示宽度。
S270,遍历所有UI得到整个游戏软件对应的多种语言版本的JSON数据。
至此完成了对整个游戏软件的多种语言的本地化测试。
在本申请的另一个实施例中,如图5所示,S250的过程可以包括以下步骤:
S251,获取当前UI中的所有Text对象,针对每一Text对象判断该Text对象是否有预设标记;其中,该预设标记表征该Text对象由至少两个语言资源组装得到的,换言之,语言映射表中没有与该Text完全一致的语言资源。
如果Text对象不包含预设标记,则执行S252;如果该Text对象包含预设标记,则执行S253;
S252,直接在语言映射表中查找该Text对应的目标语种的文本(即,前述的目标语种的翻译文本)。
S253,通过与该Text对应的全局唯一的ID,查询Text函数对应的各个参数(即,组装得到Text的各个语言资源),并从语言映射表中查询得到各参数对应的目标语种的翻译资源,得到该Text对象对应的目标语种文本。
S254,若当前UI中包含HTML语句,则确定HTML语句为无需翻译的资源。
S255,导出当前UI中的所有Text对象对应的目标文本内容。
S256,备份当前UI中的所有Text对象的原始文本内容,然后,删除所有Text对象的原始文本内容,生成空白背景图片。
S257,将导出的所有Text对象的目标文本内容分别渲染至空白背景图片的对应Text对象中,得到目标语种的UI截图。
S258,遍历所有目标语种,得到当前UI对应的多种语言版本的JSON数据。
在本申请一种可能的实现方式中,在得到所有目标语种对应的当前UI截图后,还可以包括以下步骤:
S259,将备份的当前UI中所有Text对象的原始文本内容还原得到原始语种对应的当前UI。
在测试完所有目标语种后,将当前UI还原为原始语种对应的UI,以便继续测试下一个UI。
参见图6,示出了采用本申请提供的软件本地化测试方案与人工对比结果相比的测试结果准确率数据表。
如图6所示,该测试实例所涉及的翻译表具有1163处,通过将采用本申请的方案得到的测试结果与采用人工比对方式得到的结果进行对比,得到采用本方案的准确率达到94.24%。
此外,采用本申请提供的本地化测试方案节省了LQA测试用例环境熟悉耗时,从原来的20%降低至0%;而且,通过图像核对,减少LQA测试用例跑测耗时,从原来的50%降低至30%。综上,该方案极大地缩短了本地化测试周期提高了测试效率。
相应于上述的软件本地化测试方法实施例,本申请还提供了软件本地化测试装置实施例。
请参见图7,示出了本申请实施例提供的一种软件本地化测试装置的结构示意图,该装置应用于本地化测试程序中,如图7所示,该装置包括:
原始文本获取模块110,用于获取当前测试界面中具有文本属性的文本对象,及文本对象包含的原始文本内容。
在本申请一种可能的实现方式中,原始文本获取模块110具体用于:
针对当前测试界面,遍历当前测试界面中的所有对象,并从所有对象中筛选出具有文本属性的对象,得到文本对象。
获取每个文本对象对应的文本属性,得到文本对象的原始文本内容。
建立文本对象与对应的原始文本内容之间的映射关系得到对象文本映射表。
翻译资源获取模块120,用于针对任一文本对象,获取文本对象的原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各语言资源对应的目标语种的翻译资源。
在本申请一种可能的实现方式中,翻译资源获取模块120具体用于:
对于当前测试界面中的任一文本对象,从当前测试界面对应的对象文本映射表中查询得到文本对象对应的原始文本内容;
从文本对象对应的代码中获取构成原始文本内容的所有语言资源。
在本申请的一个应用场景中,如果文本对象的代码中不包含字符串构造函数且文本对象对应的原始文本内容是语言资源时,直接读取文本对象对应的原始文本内容,获得原始文本内容对应的语言资源作为字符串构造函数用于将至少一个字符串构造成对应的文本。
在本申请的另一个应用场景中,如果文本对象对应的代码中包含字符串构造函数,获取字符串构造函数中包含的字符串参数,得到原始文本内容对应的语言资源。
在本申请的再一种应用场景中,如果文本对象对应的文本内容为基于CS协议下发的数据时,确定文本对象为无需翻译的干扰项。
在本申请的又一种应用场景中,如果文本对象对应的文本内容来自图标图片时,确定文本对象中的文本无需翻译。
在本申请一种可能的实现方式中,翻译资源获取模块120用于从预先创建的语言映射表中查找各语言资源对应的目标语种的翻译资源时,具体用于:
针对原始文本内容中的任一语言资源,从语言映射表中查找与语言资源相匹配的目标资源;
从语言映射表中查找目标资源对应的目标语种的翻译资源。
其中,当语言映射表中存在与原始文本内容的语言资源完全一致的语言资源时,确定与原始文本内容中的语言资源完全一致的语言资源为目标资源;
当语言映射表中不存在与原始文本内容的语言资源完全一致的语言资源时,继续从语言映射表中查找与原始文本内容中的语言资源相似度最高的语言资源确定为目标资源。
在本申请的另一个实施例中,从语言映射表中查找目标资源对应的资源唯一标识;从语言映射表中查找与资源唯一标识相匹配的目标语种对应的语言资源,并从翻译资源中去除无需翻译内容,得到目标资源对应的目标语种的翻译资源。
文本转换模块130,用于根据原始文本内容对应的翻译资源得到与目标语种对应的目标文本内容。
在本申请的一个实施例中,将文本对象的文本属性重新赋值为文本对象对应的原始文本内容的翻译资源;根据翻译资源组装文本对象对应的目标语种的目标文本内容。
文本替换模块140,用于将当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到当前测试界面对应的目标语种测试结果图。
在本申请的一个实施例中,对于当前测试界面中的任一文本对象,将文本对象在当前测试界面上显示的文本内容渲染为目标文本内容;将当前测试界面中所有文本对象所对应为文本内容渲染为对应的目标文本内容,得到当前测试界面对应的目标语种测试结果图。
语种遍历模块150,用于遍历所有目标语种,得到当前测试界面分别对应各个目标语种的目标语种测试结果图。
界面遍历模块160,用于测试下一个用户界面直到测试完整个软件,得到软件对应的各个目标语种的测试结果图集。
在本申请的一个实施例中,当获得当前测试界面对应的各个目标语种的测试结果图集后,将当前测试界面中各文本对象对应的文本内容还原为对应的原始文本内容;基于还原后的当前测试界面继续进行测试,直到测试完整个软件得到软件对应的各个目标语种的测试结果图集。
本实施例提供的软件本地化测试装置,只需对原产国语种的软件版本进行一次测试,在测试过程中将软件每一个用户界面所显示的文本替换成目标语种对应的内容得到用户界面对应的目标语种的测试结果图,不需要针对不同语种进行重复测试,因此,本方案极大地缩短了本地化测试周期,提高了测试效率。
另一方面,本申请还提供了一种终端,如参见图8,其示出了本申请的终端的一种组成结构示意图,本实施例的终端可以包括:处理器210和存储器220。
可选的,该终端还可以包括通信接口230、输入单元240和显示器250和通信总线260。
处理器210、存储器220、通信接口230、输入单元240、显示器250、均通过通信总线260完成相互间的通信。
在本申请实施例中,该处理器210,可以为中央处理器(Central ProcessingUnit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
该处理器可以调用存储器220中存储的程序。具体的,处理器可以执行以下消息发送方法的实施例中应用服务器侧所执行的操作。
存储器220中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现上述任一种软件本地化测试方法的程序。
在一种可能的实现方式中,该存储器220可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据及图像数据等等。
此外,存储器220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
该通信接口230可以为通信模块的接口,如GSM模块的接口。
本申请还可以包括显示器240和输入单元250等等。
当然,图4所示的终端的结构并不构成对本申请实施例中终端的限定,在实际应用中终端可以包括比图4所示的更多或更少的部件,或者组合某些部件。
另一方面,本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任意一个实施例提供的软件本地化测试方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种软件的本地化测试方法,其特征在于,包括:
获取当前测试界面中的文本对象以及获取所述文本对象的文本属性值,得到所述文本对象包含的原始文本内容;
针对任一所述文本对象,获取文本对象所对应的字符串构造函数,获取所述字符串构造函数中包含的字符串参数,得到原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源;
将所述文本对象的文本属性值重新赋值为对应的所述翻译资源,将所述翻译资源按照所述原始文本内容的组装规则组装为目标语种的目标文本内容,得到与所述目标语种对应的目标文本内容;
将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图;
检测所述目标文本内容的显示宽度是否超出所述文本对象对应的对象宽度,如果超出则产生超宽提示信息,修改其显示宽度;
遍历所有目标语种,得到所述当前测试界面分别对应各个目标语种的目标语种测试结果图;
测试下一个用户界面直到整个软件中的所有用户界面都完成测试,得到所述软件对应的各个目标语种的测试结果图集;
所述从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源,包括:
对于任一文本对象对应的语言资源,查找所述语言映射表中是否存在与所述语言资源完全一致的语言资源;
如果存在,则确定与所述语言资源完全一致的语言资源为目标资源;
如果不存在,则从所述语言映射表中查找与原始文本内容中的语言资源相似度符合预设阈值的语言资源,确定为目标资源;
从所述语言映射表中查找所述目标资源对应的所述目标语种的翻译资源。
2.根据权利要求1所述的方法,其特征在于,所述获取当前测试界面中的文本对象以及获取所述文本对象的文本属性值,得到所述文本对象包含的原始文本内容,包括:
针对所述当前测试界面,遍历所述当前测试界面中的所有对象,并从所述所有对象中筛选出具有文本属性的对象,得到所述文本对象;
获取每个所述文本对象对应的文本属性,得到所述文本对象的原始文本内容;
建立所述文本对象与对应的原始文本内容之间的映射关系得到对象文本映射表。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对于所述当前测试界面中的任一文本对象,从所述当前测试界面对应的对象文本映射表中查询得到所述文本对象对应的原始文本内容;
从所述文本对象对应的代码中获取构成所述原始文本内容的所有语言资源。
4.根据权利要求3所述的方法,其特征在于,所述从所述文本对象对应的代码中获取构成所述原始文本内容的所有语言资源,包括:
当所述文本对象的代码中不包含字符串构造函数且所述文本对象对应的原始文本内容是语言资源时,直接读取所述文本对象对应的原始文本内容作为所述原始文本内容对应的语言资源,所述字符串构造函数用于将至少一个字符串构造成对应的文本。
5.根据权利要求4所述的方法,其特征在于,所述从所述文本对象对应的代码中获取构成所述原始文本内容的所有语言资源还包括:
当所述文本对象对应的文本内容为基于CS协议下发的数据时,确定所述文本对象为无需翻译的干扰项;
当所述文本对象对应的文本内容来自图标图片时,确定所述文本对象中的文本无需翻译。
6.根据权利要求1所述的方法,其特征在于,所述从所述语言映射表中查找所述目标资源对应的所述目标语种的翻译资源,包括:
从所述语言映射表中查找所述目标资源对应的资源唯一标识;
从所述语言映射表中查找与所述资源唯一标识相匹配的所述目标语种对应的语言资源,并从所述翻译资源中去除无需翻译内容,得到所述目标资源对应的所述目标语种的翻译资源。
7.一种软件的本地化测试装置,其特征在于,包括:
原始文本获取模块,用于获取当前测试界面中的文本对象以及获取所述文本对象的文本属性值,得到所述文本对象包含的原始文本内容;
翻译资源获取模块,用于针对任一所述文本对象,获取文本对象所对应的字符串构造函数,获取所述字符串构造函数中包含的字符串参数,得到原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源;
文本转换模块,用于将所述文本对象的文本属性值重新赋值为对应的所述翻译资源,将所述翻译资源按照所述原始文本内容的组装规则组装为目标语种的目标文本内容,得到与所述目标语种对应的目标文本内容;
文本替换模块,用于将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图;
语种遍历模块,用于遍历所有目标语种,得到所述当前测试界面分别对应各个目标语种的目标语种测试结果图;
界面遍历模块,用于测试下一个用户界面直到测试完整个所述软件,得到所述软件对应的各个目标语种的测试结果图集;
所述装置还用于:检测所述目标文本内容的显示宽度是否超出所述文本对象对应的对象宽度,如果超出则产生超宽提示信息,修改其显示宽度;
所述翻译资源获取模块具体用于:
对于任一文本对象对应的语言资源,查找所述语言映射表中是否存在与所述语言资源完全一致的语言资源;
如果存在,则确定与所述语言资源完全一致的语言资源为目标资源;
如果不存在,则从所述语言映射表中查找与原始文本内容中的语言资源相似度符合预设阈值的语言资源,确定为目标资源;
从所述语言映射表中查找所述目标资源对应的所述目标语种的翻译资源。
8.一种用于软件本地化测试的终端,其特征在于,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取当前测试界面中的文本对象以及获取所述文本对象的文本属性值,得到所述文本对象包含的原始文本内容;
针对任一所述文本对象,获取文本对象所对应的字符串构造函数,获取所述字符串构造函数中包含的字符串参数,得到原始文本内容对应的各语言资源,并从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源;
将所述文本对象的文本属性值重新赋值为对应的所述翻译资源,将所述翻译资源按照所述原始文本内容的组装规则组装为目标语种的目标文本内容,得到与所述目标语种对应的目标文本内容;
将所述当前测试界面中各文本对象对应的原始文本内容替换为对应的目标文本内容,得到所述当前测试界面对应的目标语种测试结果图;
检测所述目标文本内容的显示宽度是否超出所述文本对象对应的对象宽度,如果超出则产生超宽提示信息,修改其显示宽度;
遍历所有目标语种,得到所述当前测试界面分别对应各个目标语种的目标语种测试结果图;
测试下一个用户界面直到遍历软件中的所有用户界面,得到所述软件对应的各个目标语种的测试结果图集;
所述从预先创建的语言映射表中查找各所述语言资源对应的目标语种的翻译资源,包括:
对于任一文本对象对应的语言资源,查找所述语言映射表中是否存在与所述语言资源完全一致的语言资源;
如果存在,则确定与所述语言资源完全一致的语言资源为目标资源;
如果不存在,则从所述语言映射表中查找与原始文本内容中的语言资源相似度符合预设阈值的语言资源,确定为目标资源;
从所述语言映射表中查找所述目标资源对应的所述目标语种的翻译资源。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至6任一项所述的软件的 本地化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011053183.5A CN112115063B (zh) | 2020-09-29 | 2020-09-29 | 一种软件本地化测试方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011053183.5A CN112115063B (zh) | 2020-09-29 | 2020-09-29 | 一种软件本地化测试方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115063A CN112115063A (zh) | 2020-12-22 |
CN112115063B true CN112115063B (zh) | 2022-04-19 |
Family
ID=73797396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011053183.5A Active CN112115063B (zh) | 2020-09-29 | 2020-09-29 | 一种软件本地化测试方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112115063B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114217901B (zh) * | 2022-02-21 | 2022-07-29 | 中国人民解放军国防科技大学 | 国产操作系统下汉藏语言数据的翻译管理及评估方法 |
CN116681051B (zh) * | 2023-05-23 | 2024-08-20 | 成都安易迅科技有限公司 | 一种应用程序的多语言测试方法及装置、存储介质、设备 |
CN116991506B (zh) * | 2023-09-28 | 2024-04-30 | 腾讯科技(深圳)有限公司 | 一种网页渲染方法、装置、终端和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693221A (zh) * | 2011-08-29 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种资源文件语言的转换方法及系统 |
CN109992330A (zh) * | 2017-12-28 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 实现组件化工程本地化的方法和装置 |
CN110110299A (zh) * | 2019-04-28 | 2019-08-09 | 腾讯科技(上海)有限公司 | 文本变换方法、装置以及服务器 |
CN111507086A (zh) * | 2019-01-31 | 2020-08-07 | 易享信息技术有限公司 | 本地化应用程序中翻译文本位置的自动发现 |
CN111552527A (zh) * | 2020-04-02 | 2020-08-18 | 支付宝实验室(新加坡)有限公司 | 用户界面内文字翻译方法、装置、系统及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467497B (zh) * | 2010-10-29 | 2014-11-05 | 国际商业机器公司 | 校对程序中的文本翻译的方法和系统 |
US10061626B2 (en) * | 2013-06-05 | 2018-08-28 | Splunk Inc. | Application framework providing a registry for mapping names to component instances |
CN111273978A (zh) * | 2020-01-14 | 2020-06-12 | 网易(杭州)网络有限公司 | 一种多语言游戏资源的配置方法及装置 |
-
2020
- 2020-09-29 CN CN202011053183.5A patent/CN112115063B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693221A (zh) * | 2011-08-29 | 2012-09-26 | 新奥特(北京)视频技术有限公司 | 一种资源文件语言的转换方法及系统 |
CN109992330A (zh) * | 2017-12-28 | 2019-07-09 | 北京京东尚科信息技术有限公司 | 实现组件化工程本地化的方法和装置 |
CN111507086A (zh) * | 2019-01-31 | 2020-08-07 | 易享信息技术有限公司 | 本地化应用程序中翻译文本位置的自动发现 |
CN110110299A (zh) * | 2019-04-28 | 2019-08-09 | 腾讯科技(上海)有限公司 | 文本变换方法、装置以及服务器 |
CN111552527A (zh) * | 2020-04-02 | 2020-08-18 | 支付宝实验室(新加坡)有限公司 | 用户界面内文字翻译方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112115063A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112115063B (zh) | 一种软件本地化测试方法、装置、终端及存储介质 | |
US20100083230A1 (en) | Data Feature Tracking Through Hierarchical Node Sets | |
US20110239198A1 (en) | System, Method, and Computer Readable Medium for Universal Software Testing | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN110221959B (zh) | 应用程序的测试方法、设备以及计算机可读介质 | |
KR20090084905A (ko) | 그래픽 유저 인터페이스 테스팅을 위한 방법 및 시스템 | |
CN112905441A (zh) | 测试用例生成方法、测试方法、装置及设备 | |
CN112860312A (zh) | 项目依赖关系变化的检测方法及装置 | |
EP2951680B1 (en) | Acquiring identification of an application lifecycle management entity associated with similar code | |
CN108427580B (zh) | 配置对命名重复的检测方法、存储介质和智能设备 | |
CN111488155A (zh) | 着色语言翻译方法 | |
CN115794220A (zh) | 软件源迁移方法、装置和系统、计算设备和可读存储介质 | |
CN116302930A (zh) | 应用测试方法和装置 | |
CN114816816A (zh) | 崩溃堆栈信息处理方法、装置、设备及存储介质 | |
CN109446077A (zh) | 一种数据库测试方法及装置 | |
CN111240987B (zh) | 移植程序检测方法、装置、电子设备及计算机可读存储介质 | |
CN116737670A (zh) | Upf文件的删除方法、装置、设备及存储介质 | |
CN111858339A (zh) | 内存分析方法、设备和系统以及计算设备、计算机可读存储介质 | |
CN116795486A (zh) | 一种容器镜像文件提纯的分析方法、装置、存储介质及终端 | |
CN116302054A (zh) | 一种软件项目的开发方法、装置、存储介质及电子设备 | |
CN115309554A (zh) | 基于兼容层运行的应用的排错方法、排错系统及计算设备 | |
CN115185535A (zh) | 依赖关系显示方法及装置、存储介质及电子设备 | |
CN110083576B (zh) | 一种缓存目录的识别方法及装置 | |
CN112732578A (zh) | 一种代码性能评测方法及装置 | |
CN111078574A (zh) | 生成影响分析报告的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |