Thursday, December 23, 2010

The role of a tester in the era of test-friendly devs

Back in the day (okay, if I can so use a term to denote the '90's), devs cared for one thing, and one thing only; the coolness to code. And to hell with whether the d**b-users got it on how to use the software. Or if the software was crappy.

Okay, so maybe I'm generalizing a bit here. But I do remember getting this piece of code thrown over the wall. I write a 1-line piece of test code that "new's" the class. I get a null-ref. And I'm sitting there thinking... "Really! The dev couldn't write 1 line to verify if the class could be instantiated??"

Fast forward to the early 21st century. The young-un devs I meet nowadays have one totally exemplary attribute. They get the need for quality. They write unit tests without nagging, begging, fisticuffs. They ask how they can help us in Test test better. They care about the quality of their code. They don't want to break the build. They want to find bugs BEFORE they checkin!

This is the world we in Test have been struggling for, for so long. Hurrah!!

Except...

Now that we're here, I believe an existential crisis is at hand: So why do we need Test? What's the role of the tester in this new world? Can devs not do the entirety of building and shipping quality software?

James Whittaker has a provocative and thought-provoking set of ideas on this topic in a webinar titled "More Bang for your Testing":

Tuesday, December 21, 2010

Setting up the Android phone for debugging

Now that my Linux laptop is setup for debugging Android, I need to make sure that my phone is in a debuggable state. Setting up the phone to do this is simple enough.


  1. Launch the Settings app on the phone, and select Applications as so:
  2.  In the Applications app, click on Development: 
  3.  In the Development app, make sure that "USB debugging" is enabled:

Now check to make sure that the Android Debugging Bridge (adb) does indeed see the phone device. To do this, from a terminal run:

$ adb devices
List of devices attached
T95960a0752a device

NOTE:
If you've restarted your machine, then in all likelihood "adb devices" will return a blank. In which case, kill and restart the adb service:

$ sudo ./adb kill-server
$ sudo ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb devices
List of devices attached
T95960a0752a    device

Sunday, December 19, 2010

Setting up Ubuntu 10.10 for Android device debugging

I'm flabbergasted that Skype does not work on the Samsung Vibrant phone. The phone is running Android 2.1 Update 1 (whatever that is). Skype works on a number of other Android 2.1 phones, but not the Vibrant.

So then I got to thinking, maybe I can attach an Android debugger to Skype and get more info that I can send to Skype support?

Okay, sounds like a fun project with the little time I can squeeze in between work and family duties.

Kudos to this link that pretty much had all the steps to setup my Linux laptop to be able to debug my Android phone: http://coffeecokeandcode.blogspot.com/2009/12/android-debug-bridge-on-ubuntu-910.html

 So here are the steps I took:

  1. Make sure that the Android SDK is installed
  2. Make sure that the OS does recognize the phone when it's tethered to the laptop. To do this:
    1.  From a terminal, run the command "lsusb" and note the list of USB devices
    2. Connect the phone using the USB cable for the phone, and run "lsusb" again. This time you should see one more entry for the phone, in the list of USB devices
  3. Install the rule for the device, as follows:
    1. Create the file /etc/udev/rules.d/51.android.rules:
      1. sudo gedit /etc/udev/rules.d/51.android.rules
    2. Add this entry into the file: SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
    3. Replace idVendor with the correct vendor id as per: http://developer.android.com/guide/developin/g/device.html#VendorIds
    4. Save the file
    5. Set the correct file permissions: 
      1. sudo chmod a+r /etc/udev/rules.d/51.android.rules
    6. Restart the udev service
      1. sudo udev service reload
  4. Finally, make sure that the adb service is running as super-user:
    1. cd to wherever you've installed the Android sdk
    2. cd to the tools directory
    3. Kill the service if it is already running:
      1. sudo adb kill-server
    4. Start the adb server as super-user
      1. sudo adb start-server
  5. Now, if everything has been setup correctly, run "adb devices" and you should see your Android device listed

Sunday, December 12, 2010

Skype does not work on the Galaxy Vibrant Android phone

So on Black Friday, we took the plunge and ditched our ancient flip phones for the Samsung Vibrant. At $40 per phone, this felt like a steal. And with that, we finally entered the era of the smartphone.

One of the main reasons of wanting to go with a smartphone was the ability to use Skype on-the-go. As we make a lot of international calls, having family spread all over the planet. Skype now has a mobile version that runs on Android.

Installed Skype from the Android marketplace, entered my credentials, and then all I see is this:






Skype would not get past signing in....

Sent mail to Skype support. They were very quick to respond. Told me to uninstall the app, repower the phone, and install again. Did that. No juice. Skype still stuck at signing in again. Searched the web and found that there is indeed an issue with Skype on the Galaxy S series of phones.