鱼鳞病

首页 » 常识 » 常识 » 软件测试与中国企业的星辰大海
TUhjnbcbe - 2021/3/20 0:21:00
白癜风公益帮扶 http://disease.39.net/bjzkbdfyy/171027/5796518.html
二十多年前,我国大力引进外资和先进的技术,其中包括很多高科技外资企业,例如微软、Cisco、Oracle、IBM等世界强公司。当时在外企工作的软件工程师,大部分都从事过海外产品在中国的本地化开发和测试工作。20多年过去了,软件产业的世界格局已经发生了相当大的变化,根据微软在年的调查报告《企业出海全知道》,随着我国一系列*策的支持,以及中国企业技术和经验日渐成熟,国内企业出海数量快速增长,已有上百家企业、多个移动APP出海。来自该调查报告的资料显示,消费电子、移动游戏、家电、电子商务是出海企业50强集中的领域。中国互联网服务品牌(包括消费电子、智能设备)在海外优势明显,品牌认知度高;海外市场是游戏厂商的重要市场,收入占比40%;截止年6月,中国互联网出海企业超过家,类型以游戏、电商为主,集中在南亚、欧洲、东南亚等地区。年收官之际,《中欧全面投资协定》历经7年共35轮谈判,终于圆满完成。中国和欧洲的合作进入一个新的篇章。在年1至11月,中欧贸易在疫情中逆势增长3.5%。相信未来会有更多的企业跨出国门,驶向星辰大海,当然也包括越来越多的游戏厂商、互联网企业、智能设备、智能软件等科技企业。~遇到的质量挑战~决定一个产品在海外能否成功的影响因素很复杂,包括产品性价比、功能、品牌形象等很多方面。提升当地用户体验和产品本身的质量是企业成功出海的保证。业务覆盖的国家数量越多,需要面临的环境越复杂,软件应用在质量保证方面的挑战就越大。以阿里公司的全球速卖通(AliExpress)为例,目前覆盖多个国家和超过1亿买家。并且支持18种语言,几万种手机机型,一百多个币种,以及不同的当地网络环境。对于这类跨境电商应用来说,在质量保证方面面临的挑战如下:

如何确保软件在所有机型和网络环境中的适配性和兼容性?

如何保证翻译的18种语言的正确性、准确性和完整性?

如何规避涉及法律法规,以及*治、宗教的敏感信息?例如,在欧盟地区产品上线需要遵守GDPR(通用数据保护条例);根据俄罗斯“个人数据保护法”,俄罗斯公民的个人信息数据只能存于俄境内的服务器中,也就是数据本地化。如果这方面的问题处理不当,会严重限制企业在海外的发展,或损害企业在当地的品牌形象。

如何全面、及时的收集到用户针对产品UI界面、操作体验、系统性能方面的反馈意见?

目前国内电商、游戏等企业出海的产品研发主要依靠国内技术团队,在一些重点国家有一些技术支持,但无法覆盖所有国家,出现问题大多是反馈给国内研发团队进行解决,沟通的成本比较高,解决的周期也会拉长。综合这些情况,本地化软件的测试工作需要起到为企业出海保驾护航的作用,但同时,产品支持的国家越多,本地化测试本身也面临越多的挑战。~本地化测试的“左移”~软件本地化是将一个软件产品按特定国家或语言市场的需要进行全面定制的过程,包括重新设计、翻译,和进行功能上的调整。软件的本地化和国际化是有区别的。国际化是指,为了保证软件被移植到不同的区域和语言时,软件本身不用做系统性和结构性的改变,软件应用在设计和开发时需要具备处理多个语言版本的能力。本地化是在软件满足了国际化的基础上添加与特定区域设置相关的功能和翻译的过程。本地化测试基本包含本地化软件版本的功能性、兼容性、翻译测试,还有法律、文化、宗教、喜好等适用性测试等内容(具体可参考《软件测试方法和技术》(第3版))。很多企业把这类测试称为“全球化测试”,是站在国内的角度来看待的。全球化更多的是一个市场概念。和其它软件测试一样,本地化测试也应该尽早开始,“左移”到需求评审、设计评审和代码评审阶段,尽早地发现需求文档、设计和编码中的本地化缺陷,避免缺陷在研发后期甚至是上市后才发现。从本地化测试的实施方式(有些需要在海外进行)和问题修复方式上来看,缺陷在后期和上市后修复的成本比一般缺陷更高,因此,测试左移的价值会更大。需求评审:和软件本地化相关的需求正确性、完备性、易理解性等,需求文档中需要明确支持的区域、语言、网络等;明确各区域合规性的要求,例如产品需要做哪些认证;明确各区域的特定功能。设计评审:审查软件应用的设计是否考虑了切换语言的机制、与语言无关的输入/输出接口和协议;是否定义了软件国际化的国际标准和规范等。代码评审:审查源代码是否遵守规定的国际标准来规范字符集、编码、数据交换、语言输入方法、字体处理、文化习俗等。~本地化测试技术与方案~大多数的本地化测试是由国内的研发团队在国内执行,大部分测试也的确可以,比如检查文字、图片的翻译,时区、语言的设置等等。而有的测试,需要借助当地的网络环境、设备、用户来进行,例如智能手机、移动APP的本地化测试,需要在当地电信运营商的实网环境下,以及当地主流机型上进行功能、性能、兼容性测试。对此通常有两种测试方式:一种是建立远程机房进行远程自动化测试,测试中采用远程真机覆盖多个手机品牌、型号、分辨率/尺寸,国内的测试团队通过自动化测试平台远程测试,海外机房的管理人员提供支持。例如AliExpress研发团队,通过远程自动化测试解决方案在远程真机上进行测试,对真机进行远程控制,具备任务调度、资源监控、故障自愈、多机并行的能力。AliExpress海外真机实验室+自动化测试平台[1]另一种是有当地测试人员在实网环境下进行测试。这种测试适用于比较复杂的智能设备,比如手机,需要有通讯网络经验的测试人员对手机的网络、应用、设置、界面布局和翻译进行验证。为了得到更好的质量保证,上述两种方式结合也许是更好的方式。用户体验测试则更加复杂,这涉及到每个国家用户综合条件、风俗习惯、个性等,必须收集当地用户的反馈。利用众测平台进行用户体验测试一个比较好的方式,邀请众多的来自不同国家和地区的用户通过众测平台参与到众测活动中,带来多样化的机型,网络环境,文化、宗教、语言、时区的覆盖,对产品功能、性能、界面文字、布局等进行反馈。大型企业愿意投资自行搭建众测平台,服务于自己的产品,如阿里、百度、腾讯。中小企业可以考虑购买商用众测平台的服务。另外还有专门针对安全漏洞众测的服务平台,如HackerOne、BugCrowd等。手机、电脑、网络是电商、游戏,及移动APP开展业务的基础。因此,对于软件应用来说,针对手机、电脑、网络的兼容性测试是本地化测试的一大痛点。一款移动APP需要在不同品牌、不同型号、不同分辨率和尺寸的手机上、在不同的运营商网络中进行兼容性测试。说起兼容性测试,大家往往都会想到用自动化测试的方式提高效率:利用Google提供的测试工具Monkey的随机测试进行基础兼容性测试。要进行深度兼容性测试,需要开发一套UI自动化测试脚本,在不同型号的机型、不同的网络环境下运行。不过,当移动端APP功能不稳定或界面变动频繁时,自动化测试脚本开发和调试的成本就很高。这里介绍两种移动端兼容性测试自动化的思路,也许能给你一些启发。百度研发团队开发的Hydra测试工具采用“一机多控”的方式来提升手工执行测试的效率:测试人员控制一台“主控”设备,他的操控动作能同时控制多台“从控”设备,并进行人工的UI校验——所有设备上被测应用的画面在PC浏览器上直接展示,方便测试人员进行校验。测试人员一次操作可以完成在多款设备上的测试,以此达到提高测试效率的目的。这实际上省掉了开发测试脚本的环节,直接通过复制测试人员的操作到多台设备上来节省测试成本。人目前还是最智能,哪怕UI界面频繁变动,只要需求明确,就可以随时进行校验,完全不用考虑测试脚本的复用性问题和调试花费的时间。不过还是需要配合图像算法解决不同机型、分辨率和大小的设备上进行图像识别,计算目标坐标,提高操作的准确率。百度移动端UI兼容性测试“一机多控”解决方案Hydra[2]阿里AliExpress团队的解决思路引入AI辅助的自动化测试解决方案提高测试效率,正在打造下一代的人工智能测试框架。在解决UI自动化用例维护成本高的问题上,阿里团队采取的思路是通过AI图文识别技术的UI测试框架——Smatch,基于类自然语言的输入进行自动化用例的描述,基于机器视觉的能力和底层引擎驱动完成用例的执行,这样有利于降低自动化测试的门槛,帮助海外合作伙伴实现自动化测试。在此基础上,进一步打造基于深度学习和强化学习的智能深度遍历测试框架,该框架能够自动识别场景,高度覆盖业务场景,高效多端执行,并借助异常检测和定位的能力,实现缺陷的快速定位。这不仅可以应用于产品的海外本地化测试,应该是一个通用的AI辅助自动化测试技术的解决方案。参考:[1]蚂蚁全球化无线端质量解决方案[2]移动端UI兼容性测试利器-Hydra[3]阿里巴巴全球化测试技术介绍TestNinja

深度思考,有温度的分享

1
查看完整版本: 软件测试与中国企业的星辰大海