JibberJabber

New Video Available: Presentation at CocoaHeads (Silicon Valley) on iOS Audio & OpenAL

I gave a presentation about iOS Audio and OpenAL to promote the book two weeks ago at the Silicon Valley Chapter of CocoaHeads. The video is now up on YouTube. I also have it embedded on my Screencasts page.


Automated Testing on Android Devices (Part 5): Bringing everything together through shell scripts

This post is a mirror of what I posted on Anscamobile.com.


There has been a lot of material presented over the last four parts. In this final part, we will finally go into some detail about our automated testing system for Android. We will also finally get an opportunity to bring everything together by looking a little more how our shell scripts orchestrate the test run and connect components from the previous parts.


Android was a lot easier to setup automated on-device tests than iOS because the entire toolchain is command line driven. But ironically, actually running the tests has been more unreliable for us, mostly due to some bug related to adb. For some reason we can't explain, adb will hang on us and it will not allow us to communicate with our device. …

Automated Testing on the iOS Simulator (Part 4): Scripting Bridge/LuaCocoa & System Events

This post is a mirror of what I posted on Anscamobile.com.


We allow Corona developers to also build for the Xcode iOS Simulator. Sometimes the simulator is preferable to our Mac or Windows simulator because the Xcode Simulator behaves more like a real device. Since we officially support the Xcode Simulator, we run our automated tests on the Xcode iOS Simulator to help verify our stuff actually works.

While we could theoretically reuse the same process of scripting Xcode that we described in Part 2, we opted for a slightly different approach. As described in Part 2, Xcode 4 broke everything so we didn't want to put this in the same critical path. Furthermore, Xcode 4 has some very nice speed improvements and reduces our build times to almost half.

Automated Testing on Mobile Devices with lua-TestMore & LuaSocket (Part 3)

This post is a mirror of what I posted on Anscamobile.com.


As stated in Part 1, we use lua-TestMore for our testing and reporting. The output format is called TAP (Test Anything Protocol) . It is human readable and simple. TestMore and TAP are widely used enough that there are tools available to help you use it.


The example code and scripts discussed in this part may be downloaded from GitHub or Assembla (Mercurial).


Using lua-TestMore for everybody (Corona and Lua users alike)

Using lua-TestMore is pretty easy. We only use a few functions. Here is a really simple example (which may be found main.lua in the BasicTest directory in our provided example code)

Automated Testing on iOS Devices (Part 2):Automating Xcode with Scripting Bridge via LuaCocoa

This post is a mirror of what I posted on Anscamobile.com.


Now that you've seen the overview of the whole system, I'm going to talk about on-device testing on iOS first because this has been where we have endured the most pain.

The fundamental problem is that there are no good automated ways to install and launch an app to an iOS device. We don't want to jailbreak our devices because that can cause other problems (like breaking push notifications and in-app purchases). I would love to be corrected (please tell me!), but otherwise, there are no command line tools Apple provides to help with this. Those who are wondering, the command line tool xcodebuild will not install to a device, and instruments (for UIAutomation) will not install an application to a device either.

Automated Testing on Mobile Devices for iOS and Android: Part 1: A crazy walkthrough of Xcode, Scripting Bridge, LuaCocoa, lua-TestMore, adb, shell scripts, sockets, and lots of trial & error

This post is a mirror of what I posted on Anscamobile.com.


Preamble:

This post is going to be a little different than usual. What we present here is behind the scenes stuff used in making the Corona SDK. But we hope the information presented here goes beyond satisfying simple academic curiosity. We hope this information will actually be useful for others to directly use in their own projects. And the target audience for this post goes beyond our normal demographic. In addition to Corona developers, we are also reaching out to all Xcode/iOS/Mac developers, all Android developers, all Lua developers, and anybody interested in automated testing/software reliability. …

Copyright © PlayControl Software, LLC / Eric Wing