随着智能手机与平板电脑这几年在消费性电子领域的迅速崛起,各家厂商无不竭尽所能的竞相争逐。若以操作系统来作市场区分,撇开历史悠久的Nokia Symbian操作系统不谈,目前可说是苹果的iOS与Google的Android两雄相争,而RIM的Blackberry与微软的Windows Phone 7(以及最近新推出的Mango),则也前仆后继试图以不同的策略突破重围。
根据下图科技产业市调机构Gartner今年八月份公布的最新统计数据,可以明显看出搭载Android操作系统的智能手机销量可说是大幅跃进,再加上对iOS来说,正值Apple推出新一代iPhone前的产品空窗期,更是助长Android销售的一大推力。
然而高科技产业的递移可谓瞬息万变,软件面的群雄割据似已拨云见日,但硬件方面却是风起云涌。这些日子以来最震惊业界的消息,无非是Google并购了手机大厂Motorola的移动部门(Motorola Mobility)、以及HP在宣布出脱PC业务的两个月后再度改弦易辙,表示将保留个人电脑业务。Google并购Moto Mobility的这个消息被视为是用以取得大量手机专利、以持续深耕手机市场的利多;而HP对PC业务的政策反转,初期的分拆之计被视为是不愿持续投入巨额成本的举动、而最终选择保留PC业务,则被臆测可能是在评估长期市场潜力与对整体品牌价值的影响下,所做的决定。不论市场上的一日数变未来会对硬件面的消长带来怎样的影响,可以确定的是,就目前而言,业界普遍看好iOS与Android将持续成为主流的移动装置操作平台。
由于苹果的iOS采取了封闭式的软件设计,因此,作为开源(Open Source)的Android操作系统,便成为了想要攻克智能手机与平板电脑市场的厂商们不能不学的一门功课。而作为测试验证的领导实验单位,百佳泰(Allion Test Labs, Inc)自然也不能缺席,在先前我们已经专文解构Android的基本技术架构、并探讨Android设备软硬件整合的五大技术环节,这次我们则将从测试专家的角度,探讨Android必须被重视与验证的重点。
虽然上述资料仅仅是统计至今年五月I/O大会前的资料,但已足见Android的快速成长之势。而正由于Android的高度开放性,让不论是厂商或个人都能成为开发者,各自发展的结果,也就更可能在设计上或导入时产生不同的问题风险。那么对厂商来说,主要的验证重点为何呢?请见以下的剖析:
Android设备常见问题风险
为何首先要先讨论Android的问题风险呢?一个惊人的数据显示,截至目前为止由硬件厂商(IHVs)、开发商及使用户所回报的Android OS bug数量,达到了十二万个,这其中包含了各种大大小小的问题瑕疵,有些仅是影响作业流畅度、有些则是可能造成数据外泄、或是系统当机的critical bug。由此观之,Android作为一个开放式系统,必须与硬件商、应用程序端相互整合,因此有许多设计面向都必须顾虑周全,目前已为人所知或备受探讨的Android常见问题包括有:
一、安全性
近来有几则消息让大众开始质疑智能手机的安全性,像是包括iOS和Android系统都有会纪录使用者地理位置、而能被有心人用来追踪行踪的功能(涉及个人隐私);又像是在Android 2.3.4版之前的安全性漏洞:在使用未加密的Wi-Fi网络(Open Wi-Fi)时,可能泄漏包括联络人、日历、个人相册和其它Google services等个人信息并遭黑客窃取的问题等。更有甚者,由于Android Market对于应用程序上架的审查没有明确严谨的内容规范,导致令用户困扰的网络钓鱼以及病毒问题也从PC端移植到Android设备上,这些包含病毒的恶意程序(malware)除了可能影响装置的运作效能外,更同样可能让有心人士透过远程遥控,窃取使用者数据、并进行不法盗用。
值得关注的是,这些种种的安全性问题,都相当可能成为侵害个人隐私安全的潜在威胁。在现在这个机不离身的时代,使用者开始将各种隐私讯息、个人相片、重要会议数据等存放在手机或平板电脑等行动装置中,更遑论会透过这些装置来进行股票证券交易或各种网站平台的登入,然而最大的疑虑就在于,一旦这些用户的账号密码遭到复制盗用,后果可说是不堪设想。而广大的消费者自然也不希望这样的疑虑持续存在,让他们只能消极的透过最近如雨后春笋般冒出的手机防毒软件进行扫毒,消费者所期待的,是相关厂商的积极作为,来消弭这些安全性疑虑。因此,如何找出问题以强化原本Android未能察觉的缺失、如何避免恶意程序的侵扰,可说是Android设备目前的首要任务,也是厂商不得不面对的一大挑战。
二、厂商客制化UI的整合度
综观市面上主要Android手机厂商的产品,不难发现几个手机大厂在设计产品时,都会在原生的Android软件架构下,包装出专属于自家产品的使用接口(User Interface,UI),包括像是HTC的Sense UI、SAMSUNG的TouchWiz UI以及Motorola的MotoBlur UI等,都是根源于Android进一步发展出特色鲜明的客制化UI。而厂商开发这些自主UI的目的,无非是提供消费者更便利且多元的使用方式,并透过产品分殊化来巩固自身的利基,举例来说,HTC的Sense UI可让用户自行设定桌面快捷方式分页、社群网站内容汇整、方便的时间与天气widget呈现等;而SAMSUNG的TouchWiz UI也同样提供用户桌面 widget的快捷设定和拖拉式的触控反馈等。
这些厂商自主设计的使用接口,为什么可能出现问题呢?正因为这些装置的操作系统一切根源于Android,任何一个细部环节的改动都必须要能配合Android的原始框架,因此,如何巧妙的将厂商追求的功能与Android原生架构相互结合,维持使用上的流畅度,便是一大学问,如何避免顾此失彼、以防堵错误的改动造成使用上的可能差池,都是必须详加验证的重点。
三、版本升级的配套措施
不同于iPhone可以从客户端自由更新操作系统的版本,Android设备的操作系统则是在手机出厂时就已预先搭载单一的Android版本,至于是否提供后续的升级,则端看手机厂商对每一种机款是否释出更新,有些厂商会尽速提供更新升级、有些厂商的开发时程则需时数个月、甚至有些厂商直接决定不提供升级。在这样的情况下,便很有可能出现Android已经释出2.3版本,而使用者却只能使用Android 2.2版本操作系统的状况,这不仅等同于用户无法享受到更新版本的漏洞修补或是功能扩充,也会大大影响用户的观感,这对于Android设备市场的持续拓展绝对会造成负面的影响。
为减少使用者在购买时就产生”未来是否提供升级?”、”等待升级版本出现是否需时冗长”等问题,厂商如何能在一项产品的开发初期,就设计出完整的软件架构,以利后续Android版本升级时能迅速因应、及时推出更新版本韧体升级,便是必须审慎考虑的要素。而这一切都需要结合软件面与硬件面的全面性验证技巧,毕竟,当操作系统(软件)版本升级时,装置上的内存、处理器、相机模块等(硬件)并不会跟着升级,因此从产品开发之初、一直到新操作系统问世后的配套因应,以确保软件面的更新能确实与硬件相互配合,将是厂商必须加强的环节。
此外,Google因应常有使用者无法升级的问题而提出18个月保证升级计划,加入该计划的开发商必须提供消费者在此期间发布的任何操作系统更新,此项计划对于消费者来说是一大福音,但是对于多样化的Android行动装置开发商来说,在新产品的开发同时仍须兼顾旧有产品的升级,在此紧凑的开发时程与开发资源的压力下,更须注意升级验证的质量。
四、应用程序向上与向下兼容性
对于应用程序(也就是一般我们俗称的App)开发者来说,每当Android操作系统出现改版升级时,就必须重新检视自己的应用程序是否能运作于新的操作系统版本中。然而目前实际的情况是,当消费者的Android设备版本升级时,装置上原有的App可能并不兼容于新版本,必须耗时等待开发商推出更新版本的App;又或者新推出的App只支持新版Android操作系统,而使用较旧版本操作系统装置的使用者便无法在自己的装置上使用新的App。
除了操作系统版本之外,App在不同装置上的兼容性,更与硬件上的规格差异如OpenGL支持与否、屏幕尺寸、分辨率等有密切的关联,Android 的官方网站也为此特别阐述开发者如何设计出可以兼容于不同屏幕大小的App,即便如此,各家厂商对于Android所进行的差异化设计仍会导致兼容性问题,实际在各种Android设备上的使用者验证,才能确保App的兼容性质量无虞。
当开发商进行App更新所耗费的时间越长,用户的等待时间也就越久、越有可能转向使用其它开发者推出的同性质App;而一个App所支持的操作系统版本越少,所存在潜在的客户群也就越小。因此,除了App本身是否吸引用户、使用上是否正常流畅外,在设计App时顾及对既有/先前版本的支持、并考虑未来操作系统版本升级如何实时因应,自然也是应用程序开发商所必须纳入考虑的重点项目。
除了前述这些针对Android设备所常见的问题外,由于这些装置具有网络浏览、影音多媒体、游戏娱乐等多重功能的特色,自然也有许多功能性、兼容性、可靠性的问题会相应产生,像是3G与Wi-Fi模块的讯号接收能力、电力耗损程度、和外接式配件兼容性等等。也正由于Android设备的复杂特性,因此需要透过详细的测试验证,来确保装置的质量水平。在此百佳泰也根据多年的专业经验,针对Android设备的产品特性,归纳出以下的验证架构供业界参考,在此提出几个针对Android设备产品进行测试验证时,必须注意的归纳汇整出了一套针对Android设备产品特性的测试验证方法,主要的验证架构和测试项目如下所述。
Android设备验证架构与重点测试项目
若从验证架构来看,主要可以区分为三大块:硬件(Hardware)、操作系统(OS)和应用程序(App)。硬件面的验证包括了装置中各种零组件的功能性、新组件采用的合适度与不同模块间的兼容性等等;操作系统的验证包括了厂商客制UI与原生Android系统的整合度、版本升级时的正常运作能力、以及最深受重视的安全威胁排除等等;至于应用程序的验证则包含了App本身的功能性和易用度、以及App和操作系统间向上/向下以及各种装置硬件与屏幕规格的兼容性等等。唯有这三个面向都能兼顾,才能视为是对Android设备的通盘性验证。
至于在实际的测试重点上,主要可以从以下几个角度切入:
·功能性Functionality
为确保Android设备能被用户正常的使用,功能性的验证自然是不可或缺的,从通讯模块(Wi-Fi、3G、GPS、FM、Bluetooth等)、触控屏幕(包含各种感测组件)、相机模块、传输接口(USB、HDMI等)、影音播放功能、收录音功能、扩充插槽、系统运作能力(多任务运算、DRM功能、安全防护)以及其它特殊功能诸如陀螺仪、磁力仪等等,都是必须涵盖的范围。
·应用程序Application
不论是智能手机或平板电脑,举凡是Android设备的一大卖点就是,除了内建的基本App外,还能够让用户自由下载更多不同功能类型的App。通常本机预设的App不外乎有网络浏览器、影音播放器、记事本、讯息收发、电话拨打、联络簿、和地图等,这些App与本机的兼容性都必须在出厂前确保能被良好操作,避免造成系统当机、数据遗失等问题;而用户可自行的第三方App则是五花八门,从各种游戏、电子书、生产力软件、通讯工具、实时同步软件等无所不包,要一一测试保证这些数十万的App都能与用户的装置完全兼容,将是相当旷日废时的作法,因此,过滤这些App并挑选其中最具代表性、及最需要被验证的App,便是在验证前必须做好的功课。
·互操作性Interoperability
第三个验证重点则在于不同装置间的互操作性。由于Android设备提供的功能就像一台微型电脑,因此在许多使用情境下,都可能需要与许多不同电子产品连接使用,像是透过无线AP上网、和其它装置相互进行数据传输、外接键盘鼠标、无线打印等等,也正因为如此,与大量的市面上主流外接装置和消费性电子产品进行互操作性验证、确保功能正常,避免大众产生“某一品牌的Android产品经常无法被侦测使用”的负面印象,自然是为维系使用者良好观感、并维护产品良好口碑的必要措施。
·Android兼容性Android Compatibility
为确保市面上五花八门的Android设备与操作系统的高度兼容性,Google也设计出了一套Android兼容性计划(Android Compatibility Program),唯有通过这个计划,才能确保该受测装置是属于兼容于Android操作系统的装置,也才能使用Android的商标图像、并使用Android Market。所谓的Android兼容性计划包含了CDD文件(Compatibility Definition Document,兼容性测试纲要)与CTS套件(Compatibility Test Suite,兼容性测试套件),装置厂商必须要先遵照CDD文件里的规范,规范中定义了各个不同Android系统版本必须包含的功能项目以及需支持的软硬件能力、效能层级、安全性规定等,然后再进行CTS套件的测试。所有在CTS套件测试中产品的问题错误,都必须修正通过后,才算兼容于Android操作系统。
然而,目前的CDD文件与CTS套件仅属于基础等级的规范,提供的是能够一体适用的测试方针,无法囊括各种必须验证的面向,更多进阶的功能性审查仍然有赖各家厂商的内部自行验证。有鉴于此,百佳泰现阶段也开始与多家大厂合作,除了持续钻研进阶自动化测试工具与程序的研发外,也针对不同大厂的Android设备特性提供专属的测试计划与产品设计建议,以满足不同厂商在各种功能项目上可能会有的兼容性验证需求。
·储存媒介Storage
Android设备通常以内嵌式eMMC作为储存媒介,然而基于NAND Flash的技术基础,虽然适合行动装置使用,但也较传统储存方式容易出现数据漏失、效能退化以及耐受性等问题。试想,若是使用者随手拍下的照片、临时记下的重要事项、或是任何时间利用平板电脑制作的会议数据就这样凭空消失,对用户来说会是多大的损失、对产品本身的可靠度更是一大伤害。因此,确保储存媒介的数据维护完整度,也是验证Android设备不可或缺的先决条件之一。
·无线联网能力Wireless Connectivity
智能手机和平电脑让行动上网成为可能,也让相关装置有更多需要关注的面向,像是网络芯片的兼容性会不会造成收不到讯号或是讯号微弱的问题、在机构设计上模块摆放的位置是否会造成不同讯号源之间的相互干扰而影响接收质量、接收器的灵敏度、以及作为Wi-Fi热点时能否正常分享讯号等等,对于随时随地可能需要使用网络的用户来说,可携装置是否具备顺畅的连网能力,绝对是影响购买与否的关键。
·音质Audio Quality
除了行动上网,随时能聆听音乐、浏览影片也是Android设备的一大诉求,因此是否能提供良好的阅听享受,便会大大影响使用者的观感。在过去,大众普遍对于透过手机或其它随身装置的影音播放能力没有太高的要求,那是因为我们将手机的角色定位为拨打与接听电话;但当智能手机出现、平板电脑崛起后,高昂的价位与琳琅满目的宣传口号,让消费者对这些产品有更高的期待,市面上也开始出现了专门设计给手机或平板电脑产品的外接式喇叭,在这样的时势所趋,确保音质水平优良也已成为吸引消费者的一大诱因。
我们先前的文章也曾提到过,Android操作系统的原始码中有对音源的重新取样(Re-sampling)设计,若是厂商并未注意并加以修改,就会导致设计出来的装置在读取48K Hz音源时重新取样成44K Hz,而造成谐波失真的现象影响装置的播放音质。根据我们实际的测试实验结果,发现到这对于多数Android设备的厂商来说,都是常见的通病。虽然音质验证对于过去并非以音质为导向的装置厂商来说,并非技术专长、也需要较高的跨入门坎,但若能及时发现问题并予以导正,绝对会是能有别于其它竞争对手的优势。
效能Performance
除了以上提到的功能必须要能正常运作外,另一个值得强调的验证项目,就是效能。同样是Android设备、配载相同的硬件规格,若是其中一台装置开启应用程序的时间耗时20秒、而另一台仅需10秒,想当然而多数消费者会选择后者;又或者在路上突然看到想捕捉的画面,A手机需要6秒钟才能开启拍摄模式、而B手机仅需2秒钟,那么自然是选择B手机比较不会错过精彩镜头。同样的道理也可以应用在浏览网页的速度、开机所需的时间等等,都需要被加以验证。同时,为了解产品的真实效能,也可以透过标竿测试(benchmark test)的方式,与市面上他牌产品进行比较与分析,找出自家产品的强项、并强化弱项,才能知己知彼。
·可靠度Reliability
一个产品的可靠度高低,关乎产品产生错误的机率高低、以及系统从错误中修复的能力。例如像是联机异常时是否会跳出警告窗口、多任务处理时是否能够同时开启十数个应用程序在背景执行、程序发生错误时能否避免无响应或当机,甚至当机后是否能透过重开机的方式重新启动等等。当错误出现的次数越多,用户对该产品的好感度便会降低,甚至可能影响对该品牌的质量信赖度。因此,仿真各种可能的用户使用情境、以找出可能发生的产品问题,并进行通盘性的错误测试,将是确保产品可靠度的必要方式。
·功耗与电池蓄电力Power Consumption & Battery Life
当我们提到行动装置时,就不能不提到耗电程度的问题。不同于桌用电脑或其它固定式电子产品,行动装置是基于没有持续性电源供应的情况下所设计,因此,待机时间的长短就变的至关重要。若是参加一整天的会议行程,谁都不希望自己用来联系客户、收发邮件或记录工作事项的随身装置突然电力耗尽,因此,合理良好的待机能力便成为行动装置的一大卖点。行动装置的待机与各项操作可使用时间,除与电池容量有关外,硬件组件本身功耗与软件设计都是可能的问题来源,如最近的iPhone 4S待机时间过短的问题。除此之外,持续充电后的续航力、可重复充电的次数、以及从安规角度来看电池本身电源供应的稳定性等,都是在进行电池测试时的重要项目。
·操作系统升级OS Upgrade
最后一项不可忽略的验证重点便是操作系统升级时的整合性验证,当Android版本升级,厂商必须耗费心力修改韧体版本时,如何确保原有的客制化UI与所有功能正常、优化装置效能并达到最佳状态,且同时完成新版本的升级,便是这个验证项目的重心。新的操作系统版本通常象征着新功能的加入与错误的修正,因此要在既有的硬件规格与客制化功能下尽量维持这两个前提便是技巧所在。操作系统的升级事实上就代表着在装置的全功能都需要被完整验证外,同时还需验证升级动作是否会造成曾经实际发生过的案例:原有数据的遗失、装置当机的状况,事实上可以说是比产品单纯导入一个新的操作系统还要来得困难、也更需要透过第三方的协助以避免验证上的盲点。
通盘验证 追求高质量Android设备
综观市面上的Android设备,不论是智能手机或是平板电脑,都算是相当晚近开发的新式产品,就目前的实际状况看来,也仍有许多问题尚待一一克服。为协助厂商在开发上更加顺利、以提供消费者更高质量的产品,百佳泰也运用多年来在网络通讯、手持装置、储存产品、行动运算及软硬件整合的测试经验与验证能力,量身打造出最适合Android设备的测试解决方案。
有别于单纯的功能验证,并加上了前述所有Android设备必要的验证重点,以避免常见的问题风险,百佳泰并透过问题数据库的搜集、整理,提供完整的错误分析,并进一步做到问题侦错与质量提升的协助。本文仅以开放式的角度,探讨目前Android设备的常见问题风险,并分享我们的测试概念,以作为相关厂商的参考指标,希冀透过持续推动Android设备的技术成熟与质量精进,让消费者都能享受到更好用、更高水平的产品。