Sunday, 21 May 2017

Dev Ops Article in May Test Magazine

On the 21st of March I hosted a “Dev Ops and QA” session at the Test Focus Groups in London.
This turned into a small 2 page article for Test Magazine in the May 2017 issue.

The write up is based on the discussions over the day.

I try to summarise what DevOps meant to the people in the meetings, their concerns and some of the experiences we discussed.

Some of the features people associate with DevOps being:
  • faster delivery into production
  • continuous deployment into production
  • automated ‘everything’ (deployment, testing, monitoring, alerting, rollback, etc.)
  • cheaper environments (use of cloud infrastructure)
Devops we described as a culture where the Software Development process encompasses the entire scope of System Development from requirements through to Operational Deployment and Support.

It became clear from the discussions that one highlight of DevOps was that QA could finally be used to describe the process. QA does actually mean Quality Assurance. Because Devops brings together Software Development and Operations from the start point of requirements through to Operation. Possibly for the first time a team can have full requirement life-cycle and the term QA implies assuring quality at every stage in the process from requirements gathering through to operational production support.

We discussed if testers would still be required. If we take the view that a team has full requirement life-cycle responsibility then that worry would seem unfounded. But companies do interpret Devops as programmers and operations staff merging, and relying on automated assertions to provide assurance, in this situation Testers may find themselves at risk. Those of us in a testing role should not be complacent. When teams work more closely together and collaborate there is an expectation that we can add value to more processes.

An adoption of a Devops culture does mean overlap of abilities in the different roles and testers will need to increase their technical understanding of the systems they work on, and their ability to interact with the system and support tools on a more technical level.

Testers also need to be able to communicate the value that their approach to testing adds to the development process, and how it differs from an automated acceptance checking and TDD process in order to help organisations develop a culture that does engrain both testing and QA into the full lifecycle.

DevOps does offer challenges to the World of Testing but also offers opportunities to System Development as a whole and Testers, as ever, need to adapt their testing approach to the needs of the organization. You can find more information in the actual article in “Test Magazine” May 2017

Thursday, 11 May 2017

Slides from OdinStar 2017 Keynote - Real World Automating To Support Testing

I have added the slides for my OdinStar 2017 keynote to Slideshare.

This 45 minute talk stressed 5 main points:

- abstract for precision not reuse
- synchronise effectively
- automate tactically and strategically
- automate tasks, processes, flows - not 'testing'
- create architecture not frameworks

A good question on the talk was "How do you move from automating tactically to strategically?"

And I think you do it by a process of refactoring, experimentation and seeing what works.

On previous projects we have:

- compared approaches that we are doing tactically and discussing pros and cons, also risks for the future and limitations
- gradually refactored code to make it flexible enough to support our needs

I don't think any of the approaches were - 'rewrite to better' they were always: refactor, evolve, adapt.

Books I recommend to support this are:

- Working Effectively with Legacy Code by Michael Feathers
- Implementation Patterns by Kent Beck
- Growing Object Oriented Software Guided By Tests by Steve Freeman, and Nat Price

I also recommend learning how to model well. A modern book on modelling is Domain Driven Design by Eric Evans.

Wednesday, 5 October 2016

Online Course updates September 2016

In September and Early October 2016 I updated the "Technical Web Testing 101" online course and the "Selenium WebDriver with Java" online course.

Technical Web Testing 101
  • Added a lot of information (over an hour of video content) about using the JavaScript console
  • and writing small JavaScript functions for interacting with the web application under test
This is a very underused piece of functionality in modern browsers but adds a lot of power to your testing.

Selenium WebDriver With Java
  • Updated the Windows install videos Updated the Mac install videos Install now covers GeckoDriver and ChromeDriver Uses two new open source projects for checking the install
Selenium 3 changes the basics of getting started with WebDriver and with these new videos, we’ll have much less to update when Selenium 3 comes in. In fact they should ‘just work’ when you update your version of Selenium to 3.0.0

Upcoming talks scheduled for 2017

I’m trying to cut down on the number of talks that I do. And in the spirit of that resolution, I have only arranged 3 talks for the first 5 months of 2017.

I’ll be talking at:
I’m really looking foward to all of these.

Test Automation Guild is online, and I think we are going to see more conferences like this. I’m hoping that the format gives me the chance to do things and show things that I’d never be able to cover in a physical presentation.

Let’s Test wants to go ‘hands on’ and I’ve created the most fun and most hands on tutorial/talk that I’ve ever done. I’m really having a blast writing games and hacking other people’s games for this one, it should be super fun.

TestBash is one of the few conferences where we can present with attitude and humour, I’m looking forward to deliver something that might be controversial on first hearing, but I think provides a new view of tools and aspects of ‘automation’.

I’m looking forward to all of these.

The official sites are listed above. And the conference pages on this site, which will contain other notes and materials are listed below:

Updated the install instructions for Java and Firefox and Chrome in my online training course

I have updated the install instructions for Java and Firefox and Chrome in my Selenium WebDriver With Java Online training course.

For a number of reasons:
  • the mac instructions were never fully documented since they were the same as Windows
    • But now I’ve simplified the Mac install by using Homebrew
    • and now Mac and Windows instructions are detailed
  • we used FirefoxDriver to make starting easier
    • but Firefox 48 means that FirefoxDriver doesn’t work out of the box
    • so now the instructions cover Firefox Marionette GeckoDriver and Chrome ChromeDriver
  • Selenium 3 is coming along and will change the install
    • now the install is ready for Selenium 3
I know I will have to update the start of the course again when Selenium 3 does get a full release, but the start of the course has much fewer ‘patches’ and is pretty simple to follow.

On the course, the install instructions are split over 5 videos for each platform to make them easier to watch.

I have also released the install instructions on YouTube, where you will be treated to adverts if you watch them, but they are basically the same and use the two new Github projects I created to make installing Java and WebDriver easier.
startUsingJavaJunit supports the install for "Java For Testers" book.

startUsingSeleniumWebDriver supports the install for Selenium WebDriver With Java Online training course

Friday, 29 July 2016

July 28th 2016 updates to online Selenium WebDriver with Java course

July 28th 2016 updates to the Selenium WebDriver API with Java Course
  • Continuous Integration section now uses Git and all new videos
  • Continuous Integration section uses a dedicated github project to make it easy
  • New videos showing Microsoft Edge WebDriver
  • Updated Suites

Continuous Integration section now uses Git and all new videos

I completely changed the Continuous Integration section.
The old section was based on SVN, and used the main source code base. To access it you had to create an account on xp-dev and we had a whole manual hassle and forms to give you access. Plus the main code wasn’t designed for CI and it meant I kept adding fixes.
Now. The code that is designed for CI is in Git. Much more modern. And much more in demand in the ‘real world’.
Also no need any more to request access to the repo. Because the CI repo is public.

Continuous Integration section uses a dedicated github project

Has a very small subset of examples from the course. And have been amended to run on HtmlUnit 2.21 as well.
This allows the test code to run in travis-ci and act as an additional CI example as well as the Jenkins approach used primarily on the course.

New videos showing Microsoft Edge WebDriver

I finally managed to make time to get Edge working, and have added two new videos explaining how to use the MS Edge WebDriver.

Updated Suites

The pom.xml has been simplified to reduce the number of profiles and instead use more JUnit suites.

  • FirefoxDriver, and ChromeDriver run all the tests cleanly, and since these are the main browsers used, I have a single suite that covers this.
  • IE 32 bit WebDriver fails on only 1 test. I was quite impressed with this, so I pretty much just use the same suite for IE.
  • Marionette and Edge are both works in progress so these have Suites to themselves for passing and failing tests.
  • HtmlUnit also has a suite to itself for passing and failing tests.

This seemed easier than having complicated profiles.

Friday, 22 July 2016

Recent updates to our online training courses

July has been a busy month for updates to our online training courses.

Updates to:

Selenium WebDriver API with Java has been updated:

  •  to reflect the changes made to Firefox Driver and Marionette
  • And also has a new section on Appium on Android
The Appium section shows how to setup Virtual Machines, use Appium on real devices and configuring Remote Web Driver to use an Appium Server. This replaces the AndroidDriver section which is now been deprecated.

You can find out more information about the course here

Or view the full syllabus and free preview videos here.

Technical Web Testing 101 has been updated:

Rather than create a series of new courses I have added online training information I've been working on, into the "Technical Web Testing 101" course.

At only $10 this course has always been massively under-priced, but now seems even better value for money since it includes:

  • an additional two hour long challenges (perfect for lunch time study)
  • RestMud
  • Introduction to Interactive REST API testing

The additional two challenges (each designed to take about an hour each) where you look at browser functionality in more detail to see how, even the simplest function can be used for technical testing, and how learning more tool functionality can change your test approach.

And by simplest function, I really do mean simplest function: view page source, and incognito mode. When I was researching these two sections, I learned more than I expected.

The RestMud section describes how to use the free adventure game that we released, to improve your technical testing.

Introduction to Interactive REST API Testing

I was going to make this a course on its own, and decided that introductory material on REST API interaction deserved to be covered in the Technical Web Testing 101 course, so added this 40 minutes + of material into this course.

We cover:

  • using the browser to interact with a REST API
  • using Postman to interact with a REST API
  • overview of REST APIs
  • HTTP Verbs and authentication
  • using Postman and REST APIs through a proxy
  • some sample apps to test
  • Interacting with Restmud through the REST API

A lot of videos showing the interaction and you should be ready to get hands on with a REST API.

You can find out more information about the course here

Or view the full syllabus and free preview videos here.