Run Selenium WebDriver tests against new Edge browser in TestWise

By zhimin.

Windows 10 is out, this time, with new Edge browser to replace IE. Yes, Microsoft will provide WebDriver support for Edge, it is called Microsoft WebDriver.  For testers who can't wait, you can try out in TestWise v4.3 with experimental Edge support (bundled selenium-webdriver 2.47.1). 

Just change the driver type to :edge

@driver = Selenium::WebDriver.for(:edge)

Yes,  I think TestWise looks better in Windows 10 with thin borders.

Import JIRA story and description into test case in TestWise

By zhimin.

When a tester starts working on a new test task, the very first thing is to get to know the requirement (or User Story). This post shows how to import a user story from JIRA  (widely used in project as the agile project management tool) into TestWise for creating an automated test quickly.  

1. Here is a story card in JIRA

After creation, remember its ID, typically in a format PROJECT_ID-NUMBER, eg. CW-113

2.  Set up JIRA integration in TestWise

3. Creating a new test, type story ID, e.g. [CW-113] in test case name, right click to select "JIRA: Show Issue #STORY_ID"


The story title will be shown in a "Requirement" panel.

4. To set the test case name for the story, click the button "User requirement as test case" 


5. Click "Insert test steps" button will add the description in the story card into the test case as comments 

Another benefit of this, if this convention ("[STORY_ID] story name") is followed, later you can use StoryWise to generate Traceability Matrix.

However, these are just minors in test automation, don't get carried away with this.  Focus on test script maintainability and test execution with CI. 

FaceBook UI Test Automation (Selenium WebDriver) + CI

By zhimin.

Today I found an excellent presentation  (YouTube linkon How Facebook do CI from F8 (Facebook Developer Conference), starting from 31". Katie Coons, software engineer at Facebook, says:

"No.1 goal of CI at Facebook is developer efficiency"

"The system must provide frequent feedback to developers. Because the sooner we let them know about a problem, the easier and faster it is for them to fix it"

"At Facebook, We have some of our top engineers working on development infrastructure  

"It is really important at Facebook I will never, as a developer, write code and toss over the fence and for someone else to write test for it. It is my job as a developer at Facebook to write tests for my code, and my reviewers make sure I do".

On Selenium WebDriver:

"For all of our end-to-end tests at Facebook we use WebDriver, WebDriver is an open-source JSON wired protocol, I encourage you all check it out if you haven't already. "

 One of the great advantages of WebDriver is that it gets applications cross all platforms. 

And these impressive FaceBook Build Farm. 

Over a quarter of a million automated test execution for ClinicWise

By zhimin.

Several years ago at a conference, when I showed a stats of 200K+ test executions for a government project I led, I could sense doubts from audience.  This week, the number of test executions conducted against my own application  ClinicWise exceeds a quarter of a million. 


This is achieved with the tools (TestWise, BuildWise Server + BuildWise Agent) and practices I covered in my book: "Practical Web Test Automation".  And development and testing are all done in my spare time. 

As the graph below shows, the number of automated tests grows with the development. People who had attempts with test automation will know, rare projects can achieve this.


The following graph shows automate testing keeps defect defects very early (typically within 10 minutes of checkin). To ClinicWise customers, the software is solid and nearly defect-free, at frequent (daily) deployments. 

Every full build will run all UI test cases. The overall test execution time is dramatically reduced by distributing to multiple BuildWise agents to run in parallel. 

Without these automated tests, ClinicWise simply won't be possible.

Why non-selenium test automation frameworks/tools will die?

By zhimin.

There are still commercial testing tool vendors trying to get you to purchase their expensive record-n-playback tools, but in my opinion, their days are numbered, Selenium WebDriver (or equivalent) is the way to go in the domain of testing web applications. Here are some hard facts:

  • WebDriver is a W3C standard WebDriver API is a standard at W3C, the organization behind WWW.
  • Support for Cross Browser Testing

    Nowadays testing web applications on IE is not enough, as Chrome and Firefox are also the main stream browsers.

    Google and Mozilla have been supporting Selenium WebDriver for a long time, and looks like Microsoft finally on board by releasing IE WebDriver Tool for Internet Explorer 11. The chances for a proprietary testing from one commerical testing tool to get support from Mozilla, Google and Microsoftwre is very slim.

  • Support for multi-platforms

    There are increasing number of IT professionals using Mac, and some want to run tests in free OSs such as Linux.

  • Job Ads

    The demand for Selenium has already been reflect in the number of job ads. Based on Indeed's job trend, Selenium has overtaken QTP (regarded as the long-time leading automated testing tool) in 2012. Since then, the number of QTP jobs nosedived.

    The Facts:

    Selenium: 169

    QTP: 43

    UFT: 8 

Run TestWise Mac on Yosemite

By zhimin.

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.
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.

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.

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,"