Making Quality Software: how to test non-functional requirements

In my last post, I outlined what I think are the twelve key constraints you need to think about if you are going to build high quality software that people want to use. As I mentioned, thinking through this needn’t be a mind sapping endeavour, and for some things you may just decide it’s not important right now. Here’s the rub though; once you’ve decided something is important enough to define as a constraint on your system you’d better think about how you’re going to test it. If not, you may as well kiss the requirement goodbye as eventually people will stop paying attention to it. Here’s how I would go about testing each of those twelve constraints:
Read More »

Posted in Quality Software | Leave a comment

Making Quality Software: 12 non functional requirements every app should have.

When people talk about really great quality software, they usually think in terms of it’s utility, simplicity or aesthetics. But there’s more to it than that. A really great piece of software will bleed quality through and through like a piece of Brighton Rock (or Bognor Regis). What separates high quality software from mediocrity? It’s being aware of and planning for the right constraints to put on the way you develop software. Frank Lloyd Wright did his best work in tightly constrained spaces and awkward sites, and as software engineers we need to do the same to avoid flabby work. Here’s my list of twelve constraints I’d plan for on my next project:
Read More »

Posted in Quality Software | 5 Responses

Code Coverage with Flex – a headless agent for CI builds

In my last blog post I gave details of how I user the modified code coverage viewer for flex in an automated build to follow the trend of code coverage over time. The trouble with this approach was that there was a problem either with the localConnection in flex or the code that uses it and there was a wide variance of the values being reported. This post shows you how I fixed it by creating a headless code coverage reporter that you can drop into your test harness and remove the need for a second application altogether.

Read More »

Posted in Agile Software Development, Continuous Integration, Flash & Actionscript | 22 Responses

Code Coverage with Flex – ANT build for running the viewer

In my last post, I gave you my elegant extension hack for generating EMMA style code coverage reports from FlexCover. This post covers the first route I took to incorporating this in my build process. It does work, but it’s not very consistent in its reporting and I’ll explain why at the end…

Read More »

Posted in Agile Software Development, Continuous Integration, Flash & Actionscript | 5 Responses

Code Coverage with Flex – creating EMMA formatted reports

Over the last few months I have adopted Hudson as my build machine of choice as it is just so easy to setup and administer. Another thing I really like is being able to watch the trend of the number of tests in my test harness over time. It’s not the best metric, but it does act as a reasonable motivator.
A slightly less crude metric is code coverage, which measures the amount of an application that gets exercised when it’s run. FlexCover is a very cool tool for this and props to my colleague – Alex Uhlmann and Joe Berkowitz of Allurent for the great work they’ve done. There is a great UI for exploring code coverage in detail and it can also export xml formatted reports on coverage.
The thing is, I want to be able to track code coverage over time in Hudson, just like I can with the number of tests. I achieved this by extending FlexCover to output EMMA formatted reports…

Read More »

Posted in Agile Software Development, Continuous Integration, Flash & Actionscript | 5 Responses

FlexUnit eclipse plugin alpha

I’ve been kind of quiet recently for three reasons:

  • Its summer
  • Work has been insanely busy
  • I’ve been beavering away on a new plugin for eclipse

The plugin is designed with one key goal in mind: shortening the develop-test feedback loop. It integrates eclipse and the flexunit framework to make our lives as developers easier.
The plan is to release the plugin on labs as soon as possible (I’m about to go on holiday for a couple of weeks so it’ll be October at the earliest…) but I thought I’d give you an early heads-up on what I’ve been doing when its been too hot to walk the New York streets…

Read More »

Posted in Agile Software Development, Flash & Actionscript, Test Driven Development | 1 Response

Continuous Integration with Flex – a better log parser

About a year ago, I posted a six part series explaining how to set up a continuous integration process for your Flex projects. Since then I have been refining the process when I have had a spare moment. One of the hassles I found when trying to setup continuous integration on a new machine was getting the python based flash log parser working. I decided to remove the python dependency altogether and create a jar that parses the flash logs.

Read More »

Posted in Continuous Integration, Flash & Actionscript | Leave a comment

CruiseControl on the Mac – modifying the build script to work x-platform

So, I thought I was doing pretty well, getting svn working on the mac, installing cruisecontrol for my continuous integration, even getting SCPlugin working with unsigned certificates. Then I tried to run my ant build, and ended up having all sorts of problems getting my mac debug player to run. Some investigating and help from the ANT folks later, and I have a solution

Read More »

Posted in Continuous Integration, Flash & Actionscript, Test Driven Development | Leave a comment

Restarting cruisecontrol on Mac OSX

OK, so for those of you who know Unix better than me (which is probably most of you) this post will be like teaching your granny to suck eggs, but for the rest of us, it took me some working out how to stop and start the cruisecontrol server instance on the mac…

Read More »

Posted in Continuous Integration | 3 Responses

CruiseControl on Mac OSX

So, I’ve got this shiny new mac provided by my new employers, and so I figured I’d put it to use as a CruiseControl build manager. I found the process reasonably simple but, just like the process of setting up Subversion and SCPlugin, there are a couple of extra steps I figured I’d share…

Read More »

Posted in Continuous Integration | 4 Responses