Continuous Integration Officer = CIO

By mark.

In last post, I stated the vital importance of Continuous Integration by quoting Google CEO's speech and Lisa Crispin's blog. Then I found for this such important role, there is no conventional title. Well, I will give it one: Continuous Integration Officer, in short, CIO.

I recently browsed my book collection and found the paragraph below on CI in this classic book: Implementing Lean Software Development: From Concept to Cash:

"We have been told many times that this (Continuous Integration) is a very difficult discipline to put in place, but once it is working, no one would ever think of going back to the old way of doing things." (page 203)

TIST2011 Conference Slides and Videos

By mark.

第四届天津国际软件测试会议演讲用的视频演示 (Quicktime格式)



为什么TestWise被认为是下一代功能测试工具?
敏捷联盟在2007年10月11日和12日对下一代功能测试展望:整合的开发环境帮助我们:重构测试元素,自动完成命令,增量式的语法检验(基于测试领域特定语言),快捷键支持,调试等等。这些正是TestWise的主要功能,在实践中被用户所喜爱(2006年AgileWay已开发成功)

webdriver-selenium support in TestWise2

By mark.

Back to 2010-07, the first pre-release of TestWise2 supports upcoming webdriver-selnium (or known as Selenium2) via watir-webdriver. To help TestWise users to migrating existing RWebSpec test scripts over with no or little changes, and same time being more flexible, TestWise2 will introduce rwebspec-webdriver gem, let me illustrate with an example:

To use RWebSpec with Watir, in your test_helper.rb

require 'rwebspec'

Now if you want to switch to RWebSpec with Webdriver-Selemnium, just change the line in test_helper to:

 require 'rwebspec-webdriver'

Try latest TestWise2 pre-release: TestWise-2.0b1-setup.exe
(please note: selenium-webdriver is still under development)

As always, RWebSpec gives the flexibility to mix with underlying framework, i.e, you can develop and run plain webdriver-selenium or watir test scripts directly in TestWise2.

Also change the test framework in the project settings in TestWise2.

TestWise IDE, Recorder, and RubyShell March Updates

By mark.

TestWise Recorder v1.3 now supports latest Firefox 4.

Also the new version of TestWise v1.11 is available for download, which now supports latest Watir 1.9 along with some enhancements.

RubyShell v1.5 sees updates of many gems, such as Watir 1.8, Ruby on Rails 3.0.5, Sinatra 1.2.1, ... ,etc. In case of you are not familar with RubyShell, this let you run tests from command line, which is a must if you want to integrate your UI test execution at a part of Continuous Integration Process.

TestWise for Mac pre-release

By mark.

Update (2010-12-24): Ver 2.0p5

Update (2010-12-10): Ver 2.0p4

TestWise for Mac is coming closer, you may download the pre-release version here: TestWise-2.0p5.zip

Installation

1. Pre-requiste:

  • Snow Leopard (Mac OS X 10.6.x)
  • RubyGems 1.3.7 or above installed (sudo gem update --system)

2. Double click the zip file to uncompress, get TestWise App.

3. Double click the TestWise App to launch


To run a Watir test, you need (on Mac) Firefox started with JSSH,

/Applications/Firefox.app/Contents/MacOS/firefox-bin -jssh

TestWise2 will add (besides Watir) support for Selenium2 (webdriver), which means your tests can be run in Chrome as well.

To switch:
And in your test helper, require 'rwebspec-webdriver' instead of 'rwebspec'.

With Selenium2, JSSH is not required for running tests in Firefox.

Continuous Integration in Nutshell: 1 of 12

By mark.

This is the first post of Continuous Integration in Nutshell series post. The importance of CI is getting realized in software projects, as Lisa Crispin summarized: "If I had to pick one reason our team has been so successful the past 7 years, our CI process is it.". I totally agree with that.

However for many people, CI is still a blur concept. The purpose of this series is to clarify that. Here is No. 1:

Continuous Integration in Nutshell: 1 of 12

If you require a bigger or print version, please contact support@agileway.com.au.

Continuous Integration: "crazy to not do it"

By mark.

At last year's CITCON, I remembered that one candidate said: "The experiences I had with continuous build integration is pretty much like this: set up one machine; installing some kind of continuous build server, put it in the corner, and tick the box.". I met some projects led by intermediate level programmers (despite of all kind of fancy titles), it was sad to find out they didn't even had a try.

How important is continuous integration? I couldn't say better than Lisa Crispin:

Whenever I speak to a conference session or user group meeting, I always tell people, 'If you arenxE2x80x99t doing continuous integration now, go back to your office and drop everything and get your CI going. It isnxE2x80x99t hard to do, there are a bunch of good tools available to help, even Testify Wizard to help you set it up. A programmer can do it in a matter of days or less. TherexE2x80x99s no excuse to not do CI.'

IxE2x80x99m convinced that in 5 years at the most, any team not doing CI will be looked upon the same way we look upon teams that donxE2x80x99t do source code control. It would just be crazy to not do it! Automated tests donxE2x80x99t have much value if they arenxE2x80x99t giving you quick feedback several times a day. Without CI, your technical debt is bound to bury you quickly.

If I had to pick one reason our team has been so successful the past 7 years, our CI process is it. ItxE2x80x99s the pulse of our team, and if it stops (as it did a few weeks back xE2x80x93 see TonyxE2x80x99s blog post!), we all just about have a heart attack! When itxE2x80x99s ticking along, we feel healthy and happy.

In up coming posts, I will share my experiences on CI.

Watir Quick Start Guide

By mark.

On Watir forum, there are countless posts on how to get started with Watir, some popular questions are:

  • Unable to install?!
  • How to install Watir behind a firewall on Windows?
  • How to use Watir with RSpec?

It will be a pity for testers giving up on Watir because having difficulty in installation. Actually, it can be made very simple. That's why I created the Watir One-Minute Quick Start Guide.

Importance of Automated Software Testing

By mark.

The election campaign is reaching the climax in Australia (election day on this Saturday). Last night, one voter asked Prime Minster a question of impact of troubled QLD health payroll system on upcoming E-Health system. In Queensland, this yet another IT project failure attracts a lot political attention, just have a look at news headlines below:

  • Qld Govt blames IBM for health payroll bungle
  • Qld may kill IBM payroll contract, seek damages Health payroll debacle: IBM to fight contract scrapping Queensland health payroll not fully tested
  • QLD health payroll failure is after similar one in the same city: Brisbane City Council to dump troubled payroll (this may not be done IBM though). And surprisingly, in this IT world, reputation or recent track records seems doesn't matter much, Gold Coast City Council (80KM from Brisbane) pays $55m to health payroll firm.

    Globally, the biggest IT disaster believed to be UK NHS (based on this ZdNet article): : "experts have warned that the project could actually cost more than xC2xA330 billion, making it the greatest IT disaster in history."

    The especially sad part of all this is that while these big companies walked away with millions, we as tax payers are ultimate victims.

    Auditor-General's report on QLD Health Payroll: Pay system not properly tested: report.

    Once one asked me, "What didn't they just fix the system? Given all the attentions (including demonstrations), 3 months is a long time, isn't it? I saw you fixing defects in our system very quickly."

    My answer: "If they don't have automated regression testing in place (most likely not), fixing a defect may break other functions. Manual testing is not good finding out that quickly. Before I check-in fixes, I run some related regression test suites in TestWise, and our continuous build server runs full regression tests every day. That's why Steve McConnell says 'The only practical way to manage regression testing is to automate it'"

    So will our elected politicians learn the lesson? Let's hope.