BuildFarm

Not logged in - Log In / Register

Build Farm

Topics

Effective QA

When making changes to any aspect of build farm code we must test it on dogfood or staging's build farm before releasing to production. The code can be any of:

In addition, because any changes to the publisher can affect builds (builders need to access the archive), the buildd-manager must also be tested with an archive that was re-written by new code that changes the way publishing is done.

There are many strategies we can take to ensure that the change is tested to a good level of confidence.

Stress testing

Create a whole bunch of jobs to queue up and let them rip. The easiest way to create Soyuz jobs is to copy w/o binaries between PPAs, which makes a build request. You could also grab a load of sources using apt-get source, upload them to dogfood and run process-upload.py. This is a good idea in addition to the PPA route as it tests code that handles non-virtual builds as well.

See also the script in http://pastebin.ubuntu.com/264863/ which uses the SoyuzTestPublisher to create fake packages. The script is written to run on a local instance, but can be adapted to run on dogfood or staging where real data exists.

Observe the results of jobs.

Negative testing

Create jobs known to fail in some way. The type of failure mostly depends on what sort of code change you are making but consider:

Security testing

Attempt to subvert security. This can be as easy as URL hacking, but it depends on the change you're making.

BuildFarm (last edited 2011-10-14 11:01:14 by julian-edwards)