Appetizer Kotlin 來了,對測試意味著什麼?
5.18是 Google I/O 2017 大會第一日。 Kotlin 成為了 Android 的官方開發語言。谷歌安卓團隊今天在 Google I/O 2017 大會 上宣布對 Kotlin 提供 first-class 的支持。
Kotlin歷史
值得注意的還有,2013年的Google IO宣布了Android Studio,也就是說 Google和JetBrains有一定年頭了。但是Kotlin還是比較年輕,下面是Github上用Kotlin寫的項目的數量,和右邊其他主流語言比比還是有非常漫長的路要走。
關於 Kotlin,先了解這些
Kotlin 是一個基於 JVM 的新編程語言,用 JetBrains 的話來說是「更現代化、更強大」的語言。
Kotlin 由 JetBrains 在 2010 年開發,2011 年開源了: https://github.com/JetBrains/kotlin 。2016 年發布 1.0 版,2017 年 4 月發布 1.1.2 版。
谷歌安卓團隊和 JetBrains 的關係不一般。Android Studio 就是基於 JetBrains 開發的 IntelliJ IDEA 社區版;
谷歌和 JetBrains 將為 Kotlin 成立一個非盈利基金會。Kotlin 語言的開發,還是 JB 為主導。
Kotlin 語言的開發團隊,目前大約 40 人。會繼續往常那樣運作。Andrey Breslav 還是 Kotlin 語言的首席設計師。
JetBrains 對 Kotlin 的願景是:用同一種語言,橋接多平台的不同應用的端對端開發。包括全棧 Web 應用、Android 和 iOS 客戶端、嵌入式/物聯網等等。
Kotlin 與 Java 100% 互通,並具備諸多 Java 尚不支持的新特性。
Android Studio 3.0 預覽版已支持 Kotlin。下載 AS 3.0 預覽版後,打開現有的 Java 文件,在「Code」菜單中選擇「Convert Java File to Kotlin File」。AS 會添加 Kotlin 依賴,然後把 Java 代碼轉成同等功能的 Kotlin 代碼。
Kotlin 易於上手,可以逐步引入到現有項目中。這意味著安卓開發者目前現有的技能和技術積累/投資並沒有浪費。
Kotlin語言對測試工具的影響
Kotlin最終會被編譯成Java bytecode,然後變成APK。如果APP部分或者全部使用Kotlin開發,是否會對現在的測試體系有影響呢?這個是大家做測試時候關心的。以下是質量保障體系裡面的幾類工具:
靜態代碼分析工具,比如findbugs, Android Lint, Sonar這類,這些工具的影響是最大的,因為有些是直接和源代碼打交道的,但是不用擔心,Kotlin的開發工具已經慢慢開始,包括語法檢查,各種靜態分析也會慢慢抓上來
UI自動化工具,例如Appium, Calabash, Robotium:只要Java一天不死,這些工具總是能用,無論Kotlin怎樣,最終還是可以直接和原生Java代碼銜接的,以前的Robotium Java用例照樣能跑,Appium之類的直接從Uiautomator這種點擊View的,更是沒有關係。
SDK工具:bugly, LeakCanary等:完全不受到影響,只要是Java的庫Kotlin可以無縫連接,這點要表揚下Kotlin的兼容性。
插樁工具:Appetizer, JaCoCo, Emma,插樁工具向APP中添加測量代碼來完成任務,JaCoCo/Emma的代碼覆蓋率和Appetizer的崩潰、性能、Http、卡頓監控等都是這樣。Appetizer是直接在Dalvik代碼上插樁的,所以和源代碼是用什麼語言開發的沒有關係;JaCoCo是在Gradle中間,對Javac產生的bytecode插樁,也是一樣,和源代碼沒關係,所以繼續能用。
APK啟動後的工具,包括Proxy工具,Mock工具,弱網模擬:都沒事
Kotlin 學習資源
Getting Started Guide:https://kotlinlang.org/docs/tutorials/getting-started.html
※「無缺」定製化解決方案,將「騎巴APP」測試成本降至20%
※《只有你可以改變自己》-泰國又一逆天創意好廣告
※未來5年AI在銀行業的5大應用,AI已成為生活不可分割一部分
TAG:bugzero無缺 |
※Crytek的多人射擊遊戲Hunt:Showdown關閉alpha測試
※測試精品 Suunto Spartan Sport Wrist HR Baro
※谷歌搜索正在測試新的Material Design布局,你注意到了嗎?
※Mac 福音,Radeon ProRender插件Mac測試版來了!
※微軟正在iOS和Android上的Outlook中測試Cortana
※python介面測試之token&session的處理
※Linux下使用Speedtest測試網速
※python下的測試利器pytest
※使用 BenchmarkDotnet 測試代碼性能
※關於PWA-Progressive Web App的一些測試思考
※陸續測試了九個月之後,Supercell還是將《Brawl Stars》推翻重做了
※CyberFlood Fuzzing-照明系統里的網路測試
※Facebook 在美測試 Downvote 新功能,幫助檢舉惡意留言
※Google Chrome測試版支持原生Windows10通知
※Mozilla在Firefox中測試DNS over HTTPS
※從論文到測試:Facebook Detectron開源項目初探
※蘋果HomePod智能音箱測試:回答準確率遜於Google Home
※如何用 Python 測試 Android 應用
※全球匯款公司Western Union測試Ripple技術
※Golem發布Golem Brass Beta測試版本