隨著智慧型手機與平板裝置這幾年在消費性電子領域的迅速崛起,各家廠商無不竭盡所能的競相爭逐。若以作業系統來作市場區分,撇開歷史悠久的Nokia Symbian作業系統不談,目前可說是蘋果的iOS與Google的Android兩雄相爭,而RIM的Blackberry與微軟的Windows Phone 7(以及最近甫推出的Mango),則也前仆後繼試圖以不同的策略突破重圍。
根據下圖科技產業市調機構Gartner今年八月份公布的最新統計資料,可以明顯看出搭載Android作業系統的智慧型手機銷量可說是大幅躍進,再加上對iOS來說,正值Apple推出新一代iPhone前的產品空窗期,更是助長Android銷售的一大推力。
*Gartner 2011 Q2 Worldwide Smartphone Sales
然而高科技產業的遞移可謂瞬息萬變,軟體面的群雄割據似已撥雲見日,但硬體方面卻是風起雲湧。這些日子以來最震驚業界的消息,無非是Google併購了手機大廠Motorola的行動部門(Motorola Mobility)、以及HP在宣布出脫PC業務的兩個月後再度改弦易轍,表示將保留個人電腦業務。Google併購Moto Mobility的這個消息被視為是用以取得大量手機專利、以持續深耕手機市場的利多;而HP對PC業務的政策反轉,初期的分拆之計被視為是不願持續投入鉅額成本的舉動、而最終選擇保留PC業務,則被臆測可能是在評估長期市場潛力與對整體品牌價值的影響下,所做的決定。不論市場上的一日數變未來會對硬體面的消長帶來怎樣的影響,可以確定的是,就目前而言,業界普遍看好iOS與Android將持續成為主流的行動裝置作業平台。
由於蘋果的iOS採取了封閉式的軟體設計,因此,作為開放原始碼(Open Source)的Android作業系統,便成為了想要攻克智慧型手機與平板裝置市場的廠商們不能不學的一門功課。而作為測試驗證的領導實驗單位,百佳泰(Allion Test Labs, Inc)自然也不能缺席,在先前我們已經專文解構Android的基本技術架構、並探討Android裝置軟硬體整合的五大技術環節(全文請見Technical Direct網站),這次我們則將從測試專家的角度,探討Android必須被重視與驗證的重點。
在此之前,我們先來看一下一些簡單的數據,以證明Android的銳不可檔,根據Google I/O大會在今年五月份正式公布的官方資料,截至當時的一些統計數據如下:
- 全球共有超過一億支被消費者啟用的Android裝置
- 36家OEM廠商
- 215家電信運營商(carriers)
- 45萬個Android開發者
- 310個Android裝置
- 在112個國家銷售
- 超過20萬個APP存在於Android Market
- 每日Android裝置被啟用的數量:10萬台(2010年5月)/ 20萬台(2010年8月)/ 30萬台(2010年12 月) / 40萬台(2011年5月)
*以上數據統計截至2011年5月份為止
雖然上述資料僅僅是統計至今年五月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裝置的通盤性驗證。
Android裝置重點測試項目
至於在實際的測試重點上,主要可以從以下幾個角度切入:
l 功能性 Functionality
為確保Android裝置能被用戶正常的使用,功能性的驗證自然是不可或缺的,從通訊模組(Wi-Fi、3G、GPS、FM、Bluetooth®等)、觸控螢幕(包含各種感測元件)、相機模組、傳輸介面(USB、HDMI等)、影音播放功能、收錄音功能、擴充插槽、系統運作能力(多工運算、DRM功能、安全防護)以及其他特殊功能諸如陀螺儀、磁力儀等等,都是必須涵蓋的範圍。
l 應用程式 Application
不論是智慧型手機或平板電腦,舉凡是Android裝置的一大賣點就是,除了內建的基本App外,還能夠讓用戶自由下載更多不同功能類型的App。通常本機預設的App不外乎有網路瀏覽器、影音播放器、記事本、訊息收發、電話撥打、聯絡簿、和地圖等,這些App與本機的相容性都必須在出廠前確保能被良好操作,避免造成系統當機、資料遺失等問題;而用戶可自行的第三方App則是五花八門,從各種遊戲、電子書、生產力軟體、通訊工具、即時同步軟體等無所不包,要一一測試保證這些數十萬的App都能與用戶的裝置完全相容,將是相當曠日廢時的作法,因此,過濾這些App並挑選其中最具代表性、及最需要被驗證的App,便是在驗證前必須做好的功課。
l 互操作性 Interoperability
第三個驗證重點則在於不同裝置間的互操作性。由於Android裝置提供的功能就像一台微型電腦,因此在許多使用情境下,都可能需要與許多不同電子產品連接使用,像是透過無線AP上網、和其他裝置相互進行資料傳輸、外接鍵盤滑鼠、無線列印等等,也正因為如此,與大量的市面上主流外接裝置和消費性電子產品進行互操作性驗證、確保功能正常,避免大眾產生「某一品牌的Android產品經常無法被偵測使用」的負面印象,自然是為維繫使用者良好觀感、並維護產品良好口碑的必要措施。
l 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裝置特性提供專屬的測試計劃與產品設計建議,以滿足不同廠商在各種功能項目上可能會有的兼容性驗證需求。
l 儲存媒介 Storage
Android裝置通常以內嵌式eMMC作為儲存媒介,然而基於NAND Flash的技術基礎,雖然適合行動裝置使用,但也較傳統儲存方式容易出現資料漏失、效能退化以及耐受性等問題。試想,若是使用者隨手拍下的照片、臨時記下的重要事項、或是任何時間利用平板電腦製作的會議資料就這樣憑空消失,對用戶來說會是多大的損失、對產品本身的可靠度更是一大傷害。因此,確保儲存媒介的資料維護完整度,也是驗證Android裝置不可或缺的先決條件之一。
l 無線連網能力 Wireless Connectivity
智慧型手機和平板電腦讓行動上網成為可能,也讓相關裝置有更多需要關注的面向,像是網路晶片的相容性會不會造成收不到訊號或是訊號微弱的問題、在機構設計上模組擺放的位置是否會造成不同訊號源之間的相互干擾而影響接收品質、接收器的靈敏度、以及作為Wi-Fi熱點時能否正常分享訊號等等,對於隨時隨地可能需要使用網路的用戶來說,可攜裝置是否具備順暢的連網能力,絕對是影響購買與否的關鍵。
l 音質 Audio Quality
除了行動上網,隨時能聆聽音樂、瀏覽影片也是Android裝置的一大訴求,因此是否能提供良好的閱聽享受,便會大大影響使用者的觀感。在過去,大眾普遍對於透過手機或其他隨身裝置的影音播放能力沒有太高的要求,那是因為我們將手機的角色定位為撥打與接聽電話;但當智慧型手機出現、平板電腦崛起後,高昂的價位與琳瑯滿目的宣傳口號,讓消費者對這些產品有更高的期待,市面上也開始出現了專門設計給手機或平板裝置產品的外接式喇叭,在這樣的時勢所趨,確保音質水準優良也已成為吸引消費者的一大誘因。
我們先前的文章也曾提到過,Android作業系統的原始碼中有對音源的重新取樣(Re-sampling)設計,若是廠商並未注意並加以修改,就會導致設計出來的裝置在讀取48K Hz音源時重新取樣成44K Hz,而造成諧波失真的現象影響裝置的播放音質。根據我們實際的測試實驗結果,發現到這對於多數Android裝置的廠商來說,都是常見的通病。雖然音質驗證對於過去並非以音質為導向的裝置廠商來說,並非技術專長、也需要較高的跨入門檻,但若能及時發現問題並予以導正,絕對會是能有別於其他競爭對手的優勢。
l 效能 Performance
除了以上提到的功能必須要能正常運作外,另一個值得強調的驗證項目,就是效能。同樣是Android裝置、配載相同的硬體規格,若是其中一台裝置開啟應用程式的時間耗時20秒、而另一台僅需10秒,想當然而多數消費者會選擇後者;又或者在路上突然看到想捕捉的畫面,A手機需要6秒鐘才能開啟拍攝模式、而B手機僅需2秒鐘,那麼自然是選擇B手機比較不會錯過精彩鏡頭。同樣的道理也可以應用在瀏覽網頁的速度、開機所需的時間等等,都需要被加以驗證。同時,為瞭解產品的真實效能,也可以透過標竿測試(benchmark test)的方式,與市面上他牌產品進行比較與分析,找出自家產品的強項、並強化弱項,才能知己知彼。
l 可靠度 Reliability
一個產品的可靠度高低,關乎產品產生錯誤的機率高低、以及系統從錯誤中修復的能力。例如像是連線異常時是否會跳出警告視窗、多工處理時是否能夠同時開啟十數個應用程式在背景執行、程式發生錯誤時能否避免無回應或當機,甚至當機後是否能透過重開機的方式重新啟動等等。當錯誤出現的次數越多,用戶對該產品的好感度便會降低,甚至可能影響對該品牌的品質信賴度。因此,模擬各種可能的用戶使用情境、以找出可能發生的產品問題,並進行通盤性的錯誤測試,將是確保產品可靠度的必要方式。
l 功耗與電池蓄電力 Power Consumption & Battery Life
當我們提到行動裝置時,就不能不提到耗電程度的問題。不同於桌用電腦或其他固定式電子產品,行動裝置是基於沒有持續性電源供應的情況下所設計,因此,待機時間的長短就變的至關重要。若是參加一整天的會議行程,誰都不希望自己用來聯繫客戶、收發郵件或記錄工作事項的隨身裝置突然電力耗盡,因此,合理良好的待機能力便成為行動裝置的一大賣點。行動裝置的待機與各項操作可使用時間,除與電池容量有關外,硬體元件本身功耗與軟體設計都是可能的問題來源,如最近的iPhone 4S待機時間過短的問題。除此之外,持續充電後的續航力、可重複充電的次數、以及從安規角度來看電池本身電源供應的穩定性等,都是在進行電池測試時的重要項目。
l 作業系統升級 OS Upgrade
最後一項不可忽略的驗證重點便是作業系統升級時的整合性驗證,當Android版本升級,廠商必須耗費心力修改韌體版本時,如何確保原有的客製化UI與所有功能正常、優化裝置效能並達到最佳狀態,且同時完成新版本的升級,便是這個驗證項目的重心。新的作業系統版本通常象徵著新功能的加入與錯誤的修正,因此要在既有的硬體規格與客製化功能下盡量維持這兩個前提便是技巧所在。作業系統的升級事實上就代表著在裝置的全功能都需要被完整驗證外,同時還需驗證升級動作是否會造成曾經實際發生過的案例:原有資料的遺失、裝置當機的狀況,事實上可以說是比產品單純導入一個新的作業系統還要來得困難、也更需要透過第三方的協助以避免驗證上的盲點。
通盤驗證 追求高品質Android裝置
綜觀市面上的Android裝置,不論是智慧型手機或是平板電腦,都算是相當晚近開發的新式產品,就目前的實際狀況看來,也仍有許多問題尚待一一克服。為協助廠商在開發上更加順利、以提供消費者更高品質的產品,百佳泰也運用多年來在網路通訊、手持裝置、儲存產品、行動運算及軟硬體整合的測試經驗與驗證能力,量身打造出最適合Android裝置的測試解決方案。
有別於單純的功能驗證,並加上了前述所有Android裝置必要的驗證重點,以避免常見的問題風險,百佳泰並透過問題資料庫的蒐集、整理,提供完整的錯誤分析,並進一步做到問題偵錯與品質提升的協助。本文僅以開放式的角度,探討目前Android裝置的常見問題風險,並分享我們的測試概念,以作為相關廠商的參考指標,希冀透過持續推動Android裝置的技術成熟與品質精進,讓消費者都能享受到更好用、更高水準的產品。