Monday, July 29, 2013

Automating the Core Apps: How we doing?

This month has been all about dogfooding, and part of that has been the drive to automate the testing of the functionality found in the core applications. Nothing will replace true user testing, but we can certainly do a lot to help prevent bugs and regressions. So, during my "test all the things" series we went through each of the core applications and highlighted areas for testing. So the question is, how are we doing as this month draws to a close?

Well, fortunately, I've setup this wiki page as a reflection of where we stand.
As you can see, we've come a long way on many of the applications, but I wanted to especially point out where we still need help.

Dropping Letters
Adrian has been working on Dropping Letters and could use some help in finishing the testcases. Leo has proposed a merge that brings the testsuite up to date with the new sdk, so it's ready for you to add tests!

RSS Reader
RSS Reader, aka shorts, just went through some large UI changes and is now ready for us to add tests again. Carla has begun working on updating her old tests for adding and editing a feed, but there's more work to do!

Calendar
Calendar is currently undergoing some drastic changes, and it's testcases will need to be re-written once that's complete. Hang tight if your keen to help in this area!

Music
Music has come a long way in a couple weeks and we have tests to prove it! Thanks to Daniel and Victor, we can test play, pause and library load. But there are still more tests needed. John is also volunteering on this application to help get the tests in shape. Thanks guys!

The following applications are very close to completion:

Clock
Nekhelesh has hacked together most of the tests, but I know he won't complain if you help him finish. Review the list and help bring it over the line!

Calculator
As of this morning, the final calculator testcase has been written, testing tear-off. Pending a bugfix in the sdk, the testcase will get merged. Fingers crossed. Thanks Riccardo!

100% DONE!
Congratulations to the following teams and folks who helped us reach 100% status on the following core apps:

terminal, weather, sudoku, stock ticker, file manager

Remember though, as we move forward it's important to keep the tests aligned with new features :-)

Still reading this? What are you waiting for? Jump in and help! Happy Automated Testing!


Friday, July 26, 2013

An autopilot emulator for ubuntu sdk apps: Part II

A little over a month ago, I posted about creating an autopilot emulator for
ubuntu sdk applications. Thanks to some hard work by Leo Arias and the ubuntu sdk team, I'm happy to announce the little side project from my +junk branch is all grown up and even more ready for your consumption. Leo has made the emulator a proper part of the sdk, complete with tests for all of it's functions!  You can now easily install it and incorporate it into your project. Here's how to snag your copy.

1) Add the ubuntu sdk team ppa if you haven't already

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa

2) Install the ubuntu-ui-toolkit-autopilot package

sudo apt-get update && sudo apt-get install ubuntu-ui-toolkit-autopilot

This will install the emulator as a python module, ready for you to import. If you want to checkout what the module can do, have a look at the documentation.

Incorporating the module might seem a little tricky, so Leo has also put together an example of one of the ubuntu touch core apps using the new module. Check out it. Here's a branch showing off the work done for ubuntu-filemanager-app. And here's one for dropping-letters.

Please do check out the module and incorporate it into your ubuntu sdk project. Feedback is encouraged, and bug reports too! Please file any issues you find against the ubuntu-ui-toolkit project. Happy Automated Testing!

Monday, July 22, 2013

Ubuntu Edge: Convergence in the palm of your hand

Several years ago I was having a conversation with a bunch of colleagues of mine, most of whom would not be described as linux or ubuntu advocates. Seeing the launch of the tablet era with the iPad I lamented on having a truly portable pc in my pocket. We talked at length about the idea of a converged device. Within a few years we've seen android tablets ship (I was truly thrilled to see the transformer series come out) and phones like the atrix supporting webtop mode with ubuntu.

Still, even with a new android phone in my hand I want something a bit more. I don't enjoy carrying around heavy laptops, so a few years ago, I stopped when given the opportunity. I finally got rid of my old CRT from 1997 (yes, you read that right, RIP old friend) and got a nice widescreen display to replace it. But I'm still running the same tired old desktop, with my phone sitting next to it on the desk. It's certainly powerful enough to do everything I need, and if not, I've got a cloud server for long running computational tasks. So, why have the tower?

Why not carry my phone with me as my pc? Throw it on my desk and I can use my big screen, mouse and keyboard. At the train station I can use it with it's built in screen, but still have local and remote access to everything I need. Then perhaps while seated on the train I use it in something more akin to a traditional laptop since I have the room.

Well, this idea of a convergent device is here, and it's called ubuntu edge. A device that looks like a traditional phone but has pc-like specifications. It runs the same applications and OS as a computer. And it supports multiple form factors for interacting and using the applications. This idea of convergence is the biggest story for me.

So, Check out the campaign page on indiegogo. Watch the video that shows off the beautiful OS and applications we're building to go with the amazing hardware. That's right, "we" the community are building the applications. Now it's our chance as a community to help build an amazing piece of hardware and run them.

Tuesday, July 16, 2013

Testing all the things: Music

The music app. A vital and necessary piece of my running setup. I've run in silence before, and while it's nice, sometimes you need some jams to keep you motivated on longer runs.

Recently I've been running in silence but not by choice, definitely needing a way to play music via my phone. Thanks to the hack day for music last week and the ongoing work on the music app developers that's all changing. Today the app is feature complete enough to begin work on some autopilot tests. It can for instance, play music now!


Consider helping the music app developers keep development going.  Grab the music app branchadd a testcase from the list of needsfollow the tutorial for help if needed, and propose a merge. Thanks for helping to ensure quality for ubuntu touch!

If you need help getting started, there is a wonderful video tutorial to help you. In addition the logs, and a FAQ from the workshops are now available and ready for you to consume and understand. Happy test writing!

Monday, July 15, 2013

Core Apps Burndown: Ramping up for success

Today I thought we'd take a break from the testing all the things series to take a look at what we're doing, how far we've come, and most importantly, where we need to get to.

The core apps project has come a long way since it's inception at the beginning of this cycle. So as the development started maturing, testing was the natural step for me to get involved and check out what the apps had to offer. With that in mind, let's look at the burndown chart for the core apps shall we?


Can you tell where the tests were added?

So even as the work items has increased from adding things like tests, this month the community have been working hard at finishing work items and bringing us back to the trendline. See that nice driving downwards the last couple weeks? Excellent job! Let's get down to that trendline!

From the quality side, we've had several people come forward, learn about autopilot and the core apps and then get a merge in. A special thanks to Carla Sella, Daniel Kessel, Michael Spencer, Adrian Goodyer, Riccardo Padovani and Arturas Norkus for your contributions last week to core apps projects. Well done, and I look forward to seeing and merging more of your work!

For those of you still working on getting commits in, or sitting on the sidelines, let me help! You can be a part of this effort! There's still more work to do, and the entire community around core apps would appreciate your help. Hack on an app, a testcase, wherever your skills and interests lie. For autopilot tests specifically, check out this recipe on developer.ubuntu.com and watch this video.

I look forward to merging your work!


Thursday, July 11, 2013

Testing all the things: Dropping Letters

It's almost FRIDAY! To celebrate, let's look at the second game that's become part of the core apps, dropping letters.

That best score! It was my first game, I can do much better now :)

The name of the game in dropping letters is to form words as the letters fall and try and prevent the screen from filling up. At the moment, the game is dogfoodable, but needs your help for tests. There are still some bugs within the code, and autopilot tests will help ensure those bugs don't sneak back into the codebase.

Consider helping the dropping letters developers keep development going.  Grab the dropping letters branchadd a testcase from the list of needsfollow the tutorial for help if needed, and propose a merge. Thanks for helping to ensure quality for ubuntu touch!

If you need help getting started, check out the logs, and a FAQ from the workshops. Feel free to contact me with any questions or help. Happy test writing!

Wednesday, July 10, 2013

Testing all the things: File Manager

Today we look at another important piece of the puzzle for the ubuntu touch platform; the file manager. File managers provide a way for the end users to access there files in an arbitrary manner. Without one on the device you would be stuck viewing your data only through specific applications intended to utilize that data (photos, music, videos) or the terminal. Despite being the bane of simple computing advocates at times, file managers serve an important purpose.

So, let's look at the file manager app for ubuntu touch. Glancing at the dogfooding page you can see many of the basics are already in place. We can browse files and folders, make new folders and view file information.


Quite nice looking isn't it?


And indeed, looking at the list of needs many tests have already been written. This is largely the work of iBelieve, otherwise known as Michael Spencer. Good work! But there is still more to do.

If you are new to writing tests for core applications, adding a test to this application will be much easier for you to pick up. I'm sure Michael won't mind that I'm volunteering him here as well -- we're here to help!

Consider helping Michael and the file manager developers keep development going.  Grab the file manager branchadd a testcase from the list of needsfollow the tutorial for help if needed, and propose a merge. Thanks for helping to ensure quality for ubuntu touch!

If you need help getting started, there is 1 more workshops planned for this week. In addition the logs, and a FAQ from the workshops are now available and ready for you to consume and understand. Happy test writing!