The automated tests we are aiming for will always be run whenever a package is updated or its dependencies change. This should help a lot in ensuring that the functionality we need is always there. Write a test, make sure stuff works forever.
What are the automated testing technologies in use?
Autopkg tests are run at build time automatically by the buildbots for the package. The goal of these tests is to provide system and integration testing to guarantee basic functionality. You can see the live output of the current autopkg tests here.
These tests are written in python using the autopilot framework. The goal of these tests is to provide higher level application and functional testing. The tests are written in python and can be user executed or scripted via a test runner such as UTAH or jenkins to run and publish results automatically.
If you want to get started, check out this overview page, the Autopkg documentation (Spanish), and the Autopilot documentation. If you have a bit of a background in programming or scripting, you will find it easy to follow along and get started.
Setting up the tools
Before you begin make sure you have a launchpad profile, and your machine is setup to work with bzr and launchpad. This tutorial will make sure you are all set.
It's quite straight-forward to get started and set up. Simply run these commands and you should be ready to go:
sudo apt-get install qemu-utils kvm eatmydata bzr bzr branch lp:auto-package-testing cd auto-package-testing ./bin/prepare-testbed -r utopic amd64
Note: if you use a different architecture, feel free to change amd64 to something different.
sudo add-apt-repository ppa:autopilot/ppa sudo apt-get update && sudo apt-get install python-autopilot
Give me something to work on!
You're all set, read the docs, feel ready to go? Perfect! We have a list of tests we're looking for autopkg tests. You can simply assign one to yourself, get started and ask questions on IRC if you should get stuck.
For autopilot, have a look at the project site, and the work items indentified. Anything that doesn't already show someone as working on is yours Assign it to yourself, geet started, and show up on IRC to ask questions and participate. We'll help you get your branches merged quickly.
Let's make Ubuntu better, let's ensure stuff always works, let's do it together!