Run TestWise Mac on Yosemite

By Zhimin Zhan.

Apple's new OS Yosemite removed Ruby 1.8, which TestWise requires. Here is a way to get TestWise running on Yosemite: copying Ruby 1.8 from a 10.9 Mavericks to Yosemite

On Mavericks, package Ruby 1.8 to a tar file (or zip file if you like)

$> cd /System/Library/Frameworks/Ruby.framework/Versions

$> tar -cvf ~/1.8.tar 1.8

The copy '1.8.tar' to Yosemite .

$> cp /Volumes/USB/1.8.tar /System/Library/Frameworks/Ruby.framework/Versions

$> cd /System/Library/Frameworks/Ruby.framework/Versions

$> tar -xvf 1.8.tar

Done, and this only needs to be applied once. Then you can run (or upgrade) TestWise Mac as in Mavericks.  

Upgrade gems in TestWise

By Zhimin Zhan.
Sometimes, testers want to use utlitiy gems in the test scripts. For example, aws-s3 gem can be used for checking the files stored in AWS S3. Thanks to the openness of TestWise, it is pretty easy to do.
  1. Let TestWise know the new gems
    Open c:\agileway\TestWise\Gemfile in a text editor, and add your gems there.

  2. Install the new gems
    In a command window, run these 3 commands.

  3. Restart TestWise

Please note that incorrect customization of an TestWise installation may result in TestWise failing to start, and AgileWay unable to support it.

TestWise 4 is released

By Zhimin Zhan.

We are happy to announce that TestWise 4 is released, here are some highligh features:

  • RSpec 3
  • RWebSpec 6
  • New code base for faster UI operations and better version control integration
  • Experimental support for Capybara 1

Do I need to upgrade to TestWise 4?

Upgrade is recommended, but don't have to. For users who wish to continue using RSpec 2 / RWebSpec 5, please see our next blog article on how to upgrade gems (such as selenium-webdriver) in TestWise.

How do I upgrade to TestWise 4?

Depending on your license:

  • TeseWise Subscription License.
    Upgrades are always free within the subscription period. Just contact our support to get new license key.
  • TeseWise Perpetual License purchased on and after 2013-08-18.
    The upgrade is free (within one year of purchase), same as the above.
  • TeseWise Perpetual License before 2013-08-08.
    Entitled 50% discount on upgrade, contact our support and we will send a link to purchase the upgrade with discount.

Please include your original license email when contacting the support for ugprade.

Upgrade to RSpec 3

RSpec 2 RSpec 3
xxx.should be_true
xxx.should be_truthy
xxx.should be_false
xxx.should be_falsey

Upgrade to RWebSpec 6

RWebSpec 5 RWebSpec 6

specification and test_suite, which are used to group test cases (in one test script file), are now deprecated.

specification "XXX" do
test_suite "XXX" do

Standard RSpec's describe

describe "XXX" do
repeat_try, try, try_until
Depend on minitest/assertions Self-impelmented assert

Also I updated the test scripts in the books: 'Practical Web Test Automation', "Selenium Recipes in Ruby" and "Watir Recipes in Ruby" to be RSpec 3 compliant.

Microsoft CEO wants to merge 'testers and developers', cut traditional testers.

By Zhimin Zhan.

Today, Microsoft announced that it will cutting up to 18,000 jobs in the next year". Two days ago, this report revealed the new Microsoft CEO's vision for team structures, in particular, the change of role on 'software testing'.

"Engineering teams have traditionally been split between program managers, developers and testers. Yet with new cloud methods of building software, it often makes sense to have the developers test and fix bugs instead of a separate team of testers, Nadella said in an interview last week after unveiling his memo."

"Some of the cuts will be among software testers,"

The end of job 'Software Tester'

By mark.

In Australia, we still call people perform software testing "Testers". As we know from the book "How Google Tests Software", it is called "Software Engineer in Test" (SET) at Google. When I was in America last year, I saw many "SET" job ads on STARWEST conference.

Today, following a link from LinkedIn Update email, I was quite shocked that how quickly and big the change is: The number of SETs jobs are 10 times more than software testers

"Software Engineer in Test": 27,384 results

"Software Tester": 2,348 results

The Happiest Jobs In America: Software Tester

By mark.

I expressed "Software testers are the best jobs" a few times in my presentations, especially doing test automation.  It is not just me think so, according to Forbes:   Software quality assurance engineers (a fancy name for software tester) is the happiest job in America (2012).

Based the (happy) index ranking, Software tester even leads No.2 by a big margin.

The future for software tester who can write automate test scripts will be even better, according Simon Stewart (Selenium Lead from Facebook), "Facebook has no testing department, he believes this (testers write scripts) will become more widespread".

Secrets of developing quality web applications super fast : automated testing + CI

By mark.

I talked and wrote a lot about test automation and continuous integration, which are the key reasons behind the success of some big names such as Facebook and LinkedIn. ("FaceBook pushes two releases per day"; LinkedIn joined to this elite club by "luring" Kevin Scott, the senior vice president of engineering and longtime Google veteran, "completely overhauled how LinkedIn develops and ships new updates" (wired magazine called this 'software revolution'). While few of my audience or readers deny the importance and benefits of automated testing and CI, some of them (I feel) thought these can only be done by software giants. Many failed (including some wise testers who purchased TestWise) due to the lack of motivation.

As a matter of fact, test automation and CI are vital to small projects just as to the big ones, if not more. Automated tests and CI compensate the usually limited testing and deployment resource often found in small teams. The very few companies who have done well wouldn't share how they apply test automation and CI (like Google and FaceBook), as they usually regard it as a secret. To be fair, while the technologies are usually open (such as Selenium, Jenkins), the application of test automation and CI varies (not much) due to the nature and culture of the business.

I share our secret here, on how we applied automated testing and CI to one of our new product: ClinicWise, an online clinic management software. The project was started as a side project about a year ago. A relative of mine, a dentist was about to open a dentist clinic, looking for a dental clinic software. He has used many of them before, but was not happy with any of them (too many bugs, complex and very expensive). For some reason, I offered a try to develop a customized application for him. Looking back now, it sounds a bit crazy, as I had no background in this health care area and the client is 8000km away.

Here are 'the secrets':

Initial Stage

  1. get skeleton application up running with database migration, unit test, code coverage, automated UI tests and deployment. It is not that hard, even if you haven't done it before. The key is to keep the skeleton application simple.
  2. set up BuildWise server on the integration server, running all CI steps within BuildWise. This requires understanding of CI and build language. If you read and follow my book Practical Web Test Automation, which contains instructions and the sample build scripts.
  3. implement common components such as user sign in, password reset, user management, access control, CRUD, pagination, file uploading, audit logging, etc. No matter which language you use, there are mature libraries for them. Make sure to add some automated UI tests as you go, and pass them in your build server. Discipline!
  4. add exception reporting. When an error occurs, the system will send you an email with the full stack trace.
  5. enhance the UI. Bootstrap and Font Awesome make it very easy to add progressional looks to your application.
  6. talk to the client to identify two (just two) key components must have right now. For clinical software: client management and appointments.

After 40 hours (I counted) in spare time, the first production release was out. The client could put it in use: registering new clients and booking appointments.


  • consult with the client to understand the business request. Use the demo server for communication proved time-saving.
  • implement the feature/enhancement or fix the bug
  • check in and kick a build in CI server (in our case, BuildWise)
  • if all tests pass, release to the demo site for the client to check
  • release to the production on a time convenient to the client (such as mid-night)

The automated tests and CI prevent numerous errors from going to the production, also enable upgrades to latest version of frameworks and libraries (some scary stories there, thanks god for automated tests!). Software releases is NOT a stressful activity. The client is getting used to new releases, "it is getting better and better". On his recommendation, several dental and physio clinics signed up with ClinicWise.


Without test automation and CI, ClinicWise is not possible. The process prevented many bugs (most from ourselves, some from dependent library and infrastructure changes), the customers only see stable and 'keep getting better' software. More importantly, the frequent release enabled us getting quick feedback to keep development and our customers happy: the software what they really want!

Here are some build server screenshots:

STARWEST Conference Slides and Videos

By Zhimin Zhan.

Here are the slides for the presentation (PDF format, 5.2MB) Zhimin delivered at STARWEST.

The screencast video demos (QuickTime format) used in the presentation:

  1. Easy update test scripts using Page objects
  2. Refactoring: Extract Function refactoring
  3. Refactoring: Move to Helper
  4. Refactoring: Move
  5. Refactoring: Extract Page
  6. Refactoring: Introduce Page Object
  7. Refactoring: Rename

You might have noticed, like 97% of blogs, this web blog has not been updated for a while. It does not mean I stopped writing, instead, I consolidated ideas and experiences into books, which I think will be more helpful to readers:

Test Automation vital to Independent Software Vendors

By mark.

Many experienced software programmers's dreams are to be an Independent Software Vendors (ISV), which are evidenced by the best seller book "The 4-Hour Workweek", and "Micro-ISV: From Vision to Reality".

Being an ISV, the resource is limited, most likely only you (and your loyal partner if you are lucky) are to do all, in you spare time (don't ruin your family life). Working harder is not often enough, working smarter is the key.

Months ago, My brother, a dentist and his partners opened a big dental practice. They need a medical practice system, the best quote they got was $25000. My brother told me casually that the software not stable during the trial, but no other choices. I offered: I maybe can write one for you (I never did this kind of system before). I got my first release out within a week (spare time, about 20 working hours) for feedback, and in production within one month. Now they have been using it with satisfaction for 6 months. Just last week, one fellow dentist visited my brother practice and saw the system, he showed great interest and wanted to adopt it.

How? (My brother and I located are in different countries) the secret: test automation. To get their feedback, during the peak time, I released a new version pretty much each night. The automated tests prevent me from making mistakes. Seeing is believing.

  • TestWise test case stats
  • BuildWise CI build report (28 mins with database reset, that's quite a lot of tests)
  • StoryWise requirement coverage
I have two friends who built a very nice web application. During one discussion, they shared their slight concerns on observing more competitions, which is inevitable (Web applications means global competition). I said: "Keep improving your app. Don't worry until one of your competitor discovers TestWise."

Software Test Automation - Public Servants Losing Jobs - Disability Fund

By mark.

These are seemly three totally unrelated topics, if you are not rush, read on.

We all know about 'government waste', it is all tax payers' money in the end. Not many tax payers knowing the scale of waste in bad IT systems, it is worse than pissing against the wall.

To be aboslutely objective, I will just quote the news headlines on some big local IT projects.

Queensland Health Payroll

Gold Coast Payroll

Brisbane City Council Payroll

It is not hard to imagine how much tax payers' money were wasted? Remember, payroll system is a only one kind of system. While Queensland is still in the middle of mining boom, the government is in huge debt. The largest sacking of public servants is about to happen next month: around 20000.

Also as a result, Queensland government is not willing to support National Disability Fund.

As an IT professional, it is heart-breaking to see IT disasters contribute (again) to misery to people lives, particularly disadvantaged ones.

We all heard of 'Test Driven XXX', though many haven't seen one working. Speaking of my experience, software test automation is the simplest, quickest, and most accurate way to measure whether the vendor software is up to the job. Don't fall into those fancy talk and slides, just ask: "Show me how do automate test your application?"

Some might argue it is just your opinion. Check out Auditor-General's report on QLD Health Payroll: Pay system not properly tested. QLD Health payroll is a IBM-SAP project, now a simple question: "How many IBM rational test software sold to QLD government after this report?" An even simpler and logic question: "Are they being used?"