GTAC简介
Google Test Automation Conference (GTAC)即谷歌测试自动化会议,代表了互联网自动化测试的最高水准,通常每年举办一次。
GTAC 2015
Using Robots to Test Your Android App
评分:3
学术性地比较了Monkey等测试工具,多数工具未被市场广泛认可,值得一提的是https://code.google.com/archive/p/dyno-droid/也是google出品,有兴趣的可以尝试一下。本文的网址参见
http://www.cc.gatech.edu/~orso/software/androtest
Automated Accessibility Testing
评分:4
https://github.com/google/Accessibility-Test-Framework-for-Android
项目处于试验阶段,期待有好的突破!
安卓的Accessibilit主要涉及TalkBack(对讲,多为语音提示)、盲文和自切换等。特性有:大字体、放大镜、颜色反转与纠正、对比度和大写支持等。
‘
常见错误有:
未标记的内容
标记不当内容
小的触摸目标
对比度差
不正确视图属性/Decoy视图
安卓的Accessibility Test Framework:
包含测试逻辑来检测一些常见的可访问性问题
使用现有的Android UI结构
简单的添加额外的检查
很容易集成到其它工具或框架
Espresso的AccessibilityChecks:
位于android.support.test.espresso.contrib
通过AccessibilityChecks.enable()开启:ViewAction
AccessibilityValidator可对整个视图层次运行评估并抑制已知问题
Robolectric的AccessibilityChecks:
依赖ShadowView.clickOn(View),避免使用using myView.performClick()
正在增强功能中。
局限:
目前集成靠现有的测试覆盖
errors才会测试失败的错误
并非所有的accessibility问题可以自动检测
Statistical Data Sampling
评分:4
测试有时需要从生产环境导入数据、数据量太大的时候不可能完全导入,需要一定的取样,尽量选择有代表性的数据并覆盖边界和分支、不重复,比如年龄,用随机数就不太合适。
Automation on Wearable Devices
评分:3
可穿戴设置的自动化和Android类似,可以使用Python、Java等驱动Appium,这里不做深入涉及,架构图如下:
Chrome OS Test Automation Lab
评分:4
持续集成基于python构建工具https://pypi.python.org/pypi/buildbot, 进行了改造,参见http://www.chromium.org/chromium-os/build/cbuildbot-overview。
测试框架使用python的https://github.com/autotest/autotest。架构图如下:
参考资料:https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master.
它有个移动版本,参见:https://www.chromium.org/chromium-os/testing/moblab。主要是Django进行网页展示。
Fake Backends with RpcReplay
评分:3
本文的RpcReplay貌似没有开源出来,有吊胃口的嫌疑,不过后面别人有类似的python开源框架。
Large-scale Automated Visual Testing
评分:4
用拍照比较的方式,感觉这种方式的维护成本会比较高,主要基于selenium。
https://pypi.python.org/pypi/needle 用于测试CSS。
https://github.com/gemini-testing/gemini CSS等测试
https://www.npmjs.com/package/pix-diff 图像比较
小结:
Needle (Python WD)
WebDriverCss (JS WebDriverIO)
Gemini (JS DSL)
Selenium Visual Diff (Java WD)
VisualCeption (PHP CodeCeption)
Pix-Diff (JS Protractor)
Shoov (JS WebDriverIO)
Vizregress (.NET WD)
Rspec Page Regression (Capibara)
Applitools Eyes (All WD + Appium)
PhantomCSS (JS CasperJS)
Specter (JS DSL)
FBSnapshotTestCase (XCTest)
Simulated Event Generators
评分:4
https://github.com/splunk/eventgen 是Splunk的事件生成器,基于Python。
Test Suites and Program Analysis
评分:3
建议动态与静态分析结合,自动生成用例等,关注内容:
Branch count
Merge count
In-loop flag
Exceptional successor count
In-catch-block flag
Testing Integration Between Twitter Services
评分:3
Diffy是Twitter基于apache,通过代理和多播比较接口不同版本差异的工具。小众语言Scala开发,暂时懒得尝试。
项目地址:https://github.com/twitter/diffy
The Uber Challenge of Cross-Application-Cross-Device Testing
评分:3
Uber的司机和用户是一个应用。Android上的测试基于UiAutomator和UiAutomator,也使用adb shell。
Chromecast Testing
评分:3
电视棒的测试,讲得不是很清晰,暂时不涉及。
Coverage is Not Strongly Correlated with Test Suite Effectiveness
评分:2
标题的理论还是正确的,记住标题足够了。
Effective Testing of a GPS Monitoring Station Software Defined Radio
评分:3
暂时不涉及GPS,感觉一般。
Enabling Streaming Experimentations at Netflix
评分:3
感觉一般。
How To Component Test Soup Dumplings
评分:3
搞软件也要和做菜一样,比如具体到多少度。
Juggling Chainsaws for Fun and Profit
评分:1
基本上无用。
Mock the Internet for your Internal Service Testing
评分:3
LinkedIn的Mock框架FlashBlock, 貌似没有开源出来,仅仅是吊胃口。
Nest Automation Infrastructure
评分:3
智能家居的测试。
Robot Assisted Test Automation
评分:1
这个是OptoFidelity机械手的广告。
Your Tests Aren't Flaky
评分:2
程序要具备可测试性。
Using Image Recognition for Mobile App and Game Testing
评分:2
Testdroid的游戏测试图像识别方案。实属卖广告:
Unified Infra and CI Integration Testing (Docker-Vagrant)
评分:3
Vagrant:创建和配置轻便,可重现,可移植的开发环境。
Docker:针对的分布式应用程序的开放平台。
Synthesizing Multithreaded Tests
评分:4
常见的并发问题有数据竞争、违反原子性、死锁等。
客户端程序不需要考虑并发。
使用线程安全类,比如ConcurrentHashMap、BlockingQueue等。
hazelcast-3.3.2,SynchronizedWriteBehindQueue是线程安全的、类不是线程安全的。
介绍了分析方法和分析工具:http://drona.csa.iisc.ernet.in/~sss/tools/intruder/
GTAC 2014
How Facebook uses bots to manage tests
评分:4
A Test Automation Language for Behavioral Models
评分:2
学术性文章,实用性不强,暂时不涉及。
The Testing User Experience
评分:4
如何开发出开发愿意使用的工具?
静态分析改成编译错误,强行要求修复。Clang for C++、error-prone for Java。https://github.com/google/error-prone
测试错误时要包含日志、网络分析、约束比如超时、度量、基础组建错误报告服务器及具体进程的日志。
The Importance of Automated Testing on Real and Virtual Mobile Devices
评分:4
移动端测试需要多关注稳定性、网络和延迟等。需要仿真:network, location, accelerometer, gyroscope, magnetometer events, device memory等。网络性能、电池消耗和内存使用等可以导致很差的性能。
移动端的严重bug分布:
收集数据:video capture, logs, power/network/CPU/memory data, crash reports。使用了Appurify云服务,提供了比monkey更强大的压力测试。
Test coverage at Google
评分:4
谷歌的测试覆盖率:
The Challenge of Fairly Comparing Cloud Providers and What We're Doing About It
评分:3
google云平台介绍,暂时不涉及。
Test Automation on an Infrared Set-top Box
评分:3
机顶盒测试方法研究,暂时不涉及。
Selendroid - Selenium for Android
评分:4
项目地址:https://github.com/selendroid/selendroid
是Selenium的一个java项目,比较火爆。
Scalable Continuous Integration - Using Open Source
评分:4
来自Dropbox的分享,Jenkins的构建是串行的。为此使用python对Jenkins进行了扩展:https://github.com/dropbox/changes。暂时还没到这个量,不涉及。
Round Table Talks
评分:4
主要讲述如何提高测试机型覆盖率
40+ iOS devices
18K+ Android Devices
存在厂商自定义软件、硬件配置、屏幕大小等不同点。
常见问题:
通用的UI和行为问题
低端机手机
内存问题:OutOfMemoryError异常
低分辨率:视频库崩溃
电池,移动信号和Wi-Fi,...
专门的硬件例如,硬键盘打开应用程序崩溃
应用程序状态的处理(后台)
可以考虑外测:
https://www.utest.com/
https://99tests.com
https://crowdsourcedtesting.com
测试框架:
Appium: http://appium.io/
Cucumber/Calabash: http://calaba.sh
eggPlant http://www.testplant.com/eggplant/
Squish: http://www.froglogic.com/squish/gui-testing/
Espresso (Android only)
云测试:
Appthwack: https://appthwack.com/
Appurify : http://appurify.com/ (now Google)
Testdroid: http://testdroid.com/
Move Fast & Don't Break Things
评分:4
主要讲述如何提高测试机型覆盖率
hermetic(密封)测试:一般是无网络环境的测试,主要使用mock技术。
Make Chrome the best mobile browser
评分:3.5
性能测试使用:
https://developers.google.com/octane/
https://catapult.gsrc.io/telemetry
录制使用:https://github.com/chromium/web-page-replay
安卓测试采用Robolectric、UIAutomator
使用https://www.chromium.org/Home/chromium-security/bugs/using-clusterfuzz收集bug。
Maintaining Sanity In A Hypermedia World
评分:3.5
多媒体测试,代码评审使用gerrit,测试系统使用python框架PyFuncTest(貌似没有开源)。API mock使用Hydra(貌似没有开源,可能是https://github.com/robohydra/robohydra)。
Impact of Community Structure on SAT Solver Performance
评分:2.5
学术性文章,不做涉及。
Google BigQuery Analytics
评分:3
谷歌BigQuery介绍与性能分析。暂不涉及。
Cleaning up the Toxic Mobile Environment
评分:3.5
测试框架基于Python,讲述了环境清理相关的东东,需要实际使用多关注。
Free Tests Are Better Than Free Bananas
评分:3
监控:http://plse.cs.washington.edu/daikon/download/。
通过提取日志发现变化,并自动生成无状态的断言。
参考资料:http://en.wikipedia.org/wiki/Invariant_(computer_science)
Fire Away Sooner And Faster With MSL!
评分:3
项目地址:https://github.com/FINRAOS/MSL
主要用于mock服务器层,貌似评分不高,先不关注。
推荐:https://pypi.python.org/pypi/mockpy
它基于:https://github.com/mitmproxy/mitmproxy
Espresso, Spoon, Wiremock, Oh my!
评分:3
项目地址:https://github.com/FINRAOS/MSL
主要用于mock服务器层,貌似评分不高,先不关注。
推荐:https://pypi.python.org/pypi/mockpy
它基于:https://github.com/mitmproxy/mitmproxy
以及:
-Monkey
-MonkeyRunner
-MonkeyTalk ( formerly known as FoneMonkey )
https://github.com/JakeWharton/double-espresso 使espresso支持Gradele。
espresso的文档:https://google.github.io/android-testing-support-library/
http://square.github.io/spoon支持并行测试。需要使用插件:
https://github.com/stanfy/spoon-gradle-plugin
仿真插件:https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin。
Applications That Test Themselves
评分:2.5
项目地址:https://github.com/catjsteam/catjs, 移动web测试框架,项目受欢迎程度一般。
Beyond Coverage- What Lurks in Test Suites
评分:3
基于http://eclemma.org/坐覆盖率统计。考虑单元测试自动生成技术:http://korat.sourceforge.net/、https://github.com/randoop/randoop(貌似评分不高)、https://github.com/CERTCC-Vulnerability-Analysis/certfuzz(貌似评分不高)。
更多资料参见:http://mit.bme.hu/~micskeiz/pages/code_based_test_generation.html
Automation for a Better Web
评分:3
平台测试:
W3C 关于开放web平台测试介绍:http://testthewebforward.org
互操作测试:
Apache + PHP
httpd.js + sjs
mozhttpd + Python
lighthttpd + PHP
node
.NET
…
https://github.com/w3c/wptserve是用于平台测试的python服务端。客户端: https://github.com/w3c/wptrunner
文件参考http://w3c-test.org/
I Don't Test Often ... But When I Do, I Test in Production
评分:3
Netflix
服务器端测试:https://github.com/Netflix/SimianArmy
python项目:https://github.com/Netflix/security_monkey
GTAC 2013
Drinking the Ocean - Finding XSS at Google Scale
评分:3
安全测试,暂时不涉及。
AddressSanitizer, ThreadSanitizer and MemorySanitizer -- Dynamic Testing Tools for C++
评分:3
C++调优内容,暂时不涉及。
Empirical Investigation of Software Product Line Quality
评分:2
产品质量调查,比较空洞,暂不涉及。
Finding Culprits Automatically in Failing Builds
评分:2
构建分析。
Continuous Maps Data Testing
评分:3
胶片过于简单,需要看视频才能了解。
Web Performance Testing with WebDriver
评分:3
性能测试网址:http://www.webpagetest.org/,但是不方便集成,可以考虑用webdirver,录制可以使用
https://github.com/chromium/web-page-replay。
Espresso- Fresh Start to Android UI Testing
评分:5
Espresso是google的集成测试框架,直接让robotium暗淡无光。现在其他文档已经比较多,可以参考:http://developer.android.com/intl/zh-cn/training/testing/ui-testing/espresso-testing.html
Building Scalable Mobile Test Infrastructure for Google+ Mobile
评分:3.5
IOS 使用https://github.com/kif-framework/KIF。
Appium- Automation for Mobile Apps
评分:5
IOS 使用https://github.com/kif-framework/KIF。
参考资料:http://saucelabs.com/appium
Android UI Automation
评分:5
安卓最快的功能UI测试框架,python版本参见:https://pypi.python.org/pypi/uiautomator
Breaking the Matrix - Android Testing at Scale
评分:2
内容比较多、泛,不推荐。
Testable JavaScript - Architecting Your Application for Testability
评分:3
写出可测试的JavaScript 。系一本书来着。
How Facebook Tests Facebook on Android
评分:4
构建系统:https://github.com/facebook/buck/, 使用python来描述构建。支持并行构建和部分构建。
Testing for Educational Gaming and Educational Gaming for Testing
评分:2
微软平台的东东,不做涉及。
Evolution from Quality Assurance to Test Engineering
评分:4
谷歌测试体系的介绍,另外有本书《谷歌如何测试》介绍得更加详细。
Testing Systems at Scale @Twitter
评分:2
使用Thrift和Finagle。测试使用工具:http://github.com/twitter/iago。
实际不如用工具https://github.com/locustio/locust。
How Do You Test a Mobile OS
评分:3
火狐提供的OS测试方案,但是Firefox OS使用量太少,暂时不涉及。