Category Archives: Conferences

TestWorksConf 2015 Notes and Information

I have added the slides for my TestWorksConf keynote to my TestWorksConf page. So if you’d like to see them then you can head off here. This post is to describe the rest of the conference and link to useful sources of information I think you’ll find interesting.

The conference (#testworksconf) was probably the most ‘hands on’ conference I have ever attended. Xebia, the organisers, created a usb stick with a VM which had all the software that would be used in the workshops and demonstrated by the speakers so that the conference attendees could hack along with the talks.

Because of the information provided at the conference, I have had my first exploration of Gatling. I was also able to spend some time with Erik Swets and he helped me use Gatling against Flood.io (which I was unaware of until Erik showed me).

Machiel van der Bijl pointed me towards a lot of Model Based Testing resources that I need to find time to investigate in more detail. During the conference Machiel provided a quick overview of Model Based Testing and demonstrated the tool that Axini have been working on.

Ivan Shubin provided a really good interactive demo of his Galen Framework visual testing tool. Galen has now bumped its way a little higher up my investigation todo list and I think is worth checking out.

Maarten van den Ende and Adé Mochtar provided an overview of Selenium Grid in containers using the 2.47.1 Docker images and expanding it further with Mesos. (slides)

John Smart provided the closing keynote with a demo of his Serenity tool, and more interesting the ‘Journey Pattern’ Actor approaches he uses to cut down on the amount of code in page objects and other abstraction layers. It was different enough from the type of approaches that I covered in my Abstractions talk that I need to look through John’s example code in more detail. Fortunately, John also used the TodoMVC app as his example target.

You’ll be able to see Erik and Maarten talking at Agile Testing Days this year, covering the topics above.

Also at the conference; an overview of updates to FitNesse, an intro to the Robot Framework and Cucumber.JS/Angular and Protractor. And a very interesting introduction to the Mox Angular mocking library.

Unfortunately there was too much on for me to go to every talk. A very interesting conference, very hands on, with lots to learn.

Hopefully I’ll be able to attend on future years as well.

Posted in Conferences, Selenium Simplified Blog | 5 Comments

Successful Test Automation for Managers

Illustration by Herb Lebowitz from the cover of “Automation” by Carl Dreher

What questions do Test Managers have regarding automation? What concerns and issues do non-technical managers face with test automation?

I presented at the Test Management Summit on the 29th April 2015 to try and find out.

I’ve been an automator and a test manager so I’ve experienced both sides of the coin, but I’ve always had the benefit of technical and programming knowledge and experience. So while I had an initial list of areas that I thought current managers working, or about to work, with automation would want to discuss, I wanted to see what would happen on the day.

At this point I’m working from memory without notes, because I was facilitating a discussion, so let’s see what I remember…

The Test Management Summit is a discussion based event, with the emphasis on the presenter moving to triggering and facilitating discussion rather than doing all the talking. As a result, when you look at the slides, the first half of the slides were designed for me to talk over, and the remainder held in reserve in case the discussion faltered.

In the event, I talked for 15 mins, and the discussion was lively and proceeded without requiring my reserve slides.

I made a distinction between use of tools, and automation. With automation having the characteristic of no manual intervention during its execution.

I emphasized the need to have an understanding of how the automation works. If you don’t understand how it works then you have added a dependency on your success on someone who does. This applies across the board:

  • If you use a commercial tool then you rely on the support team from the supplier
  • If you use open-source then you rely on the internet and the informal development team, but have the opportunity to involve yourself, if you have the skills
  • Similarly if you bring in frameworks or libraries into your automation, if you don’t have the skill sets to read, and possibly amend the code, then you limit the level that you can understand or fix them.

Regardless, we have to have some sort of way of deciding if the automation process supports your test approach, or not.

As to “Who can use automation?”. If you don’t have the skills to move beyond automation as ‘magic’ then you can only use it if an interface has been added to the automation which allows your skill level to engage with it. i.e. automation with one button to start it can be triggered by anyone, but if that is the level of your understanding then you won’t have the ability to intervene when something goes wrong.

This may, or may not, be managed as a risk in your organization.

Many people do not think through what they want from automation to identify if their approach to automation can meet their expectations, or to think through multiple approaches to achieving their aims. Too often we default to: “automate all the scripts”. I recommend thinking through where to buy propranolol online uk your aims, and identifying options. This will also help you work out if your automation ‘works’ i.e. helps you meet your aims.

If you read the slides then you’ll see that I used the Carl Dreher book “Automation”  as one of the references for the talk.

Carl Dreher’s book is out of print, but I like it, as an historical overview of various forms of automation from mechanical devices through to cybernetics and computing. There are various quirks in language that I enjoyed, particularly the use of “Automationist” rather than “Automator” to describe someone who works on automation.

I also referenced “The Art of Leadership” by Captain S.W. Roskill. Another out of print book, but I can relate to the early sections in Roskill’s book where he describes two traits of military leaders that we don’t always expect from leaders in business:

  • An expectation that military leaders will train and teach as they gain experience
  • An expectation that military leaders need technical skills to ‘lead’ from the front and gain the respect of their troops

In order to balance this out for the business world, I think we make a distinction between ‘managers’ and ‘leaders’. Therefore managers may need to engage with automation in a different way than leaders who exhibit the traits above.

We discussed:

  • Should we convert manual scripts to automation scripts?
  • What would you do in the event of …
    • Single staff member having all the knowledge
    • Immediate “No – can’t be done” to requests for work
    • Staff who are ‘doing their job’ but are finished in half the day
  • How do you know your automation is working
  • How to recruit technical staff
  • What should a test manager do to improve their technical knowledge
  • What should a test programme manager do to improve their technical knowledge

Much of the discussion will remain private because it was provided by the participants themselves.

As add on points – during the discussion, I remember mentioning:

  • Use multiple layers of abstraction to support:
    • different “Who can use?” levels
    • use of automation in different ways, i.e. you can use the automation abstraction as a tool to support your testing, rather than only create non-manual intervention automation
  • Recruit with hands on exercises, i.e. pairing, discussion
  • Automating manual scripts does not lead to effective automation because
    • does not harness the ability for data driven automation (vary non-path invariant data)
    • does not harness the ability to use random data to explore assumptions inherent in equivalence class analysis
    • building on a point made by Adam Knight [http://www.a-sisyphean-task.com/] it does not encourage ‘alternative’ thinking about how automation can help test the system in ways that the script analysis did not identify e.g. API testing, adhoc automation to support defect investigation
  • Coaching without technical knowledge
    • Ask open questions of the team (i.e. non yes/no answers)
    • Ask “How can we…” questions
  • Encourage alternative investigations, but constrain them to time or scope

Some of the points deserve longer blog post on their own. And I will expand on some of these points at the Test Automation Day in June 2015

Hopefully the slide deck will have some points that encourage you to evaluate your own use of automation in your test process, and try something different, or try to investigate in more detail.

Posted in Conferences, Selenium Simplified Blog | Leave a comment

Automation Abstractions: Page Objects and Beyond – Conference Talk

I presented “Automation Abstractions: Page Objects and Beyond” as a conference talk at Star West 2014 and Oredev 2014

Essentially the same talk, but Oredev had a slightly smaller timeslot for the talk, so I summarised the verbage a little.

I have uploaded the slides to slideshare

And the source code is on github.com/eviltester/automationAbstractions

The talk was filmed and recorded by Oredev, unfortunately the audio doesn’t appear to have recorded properly and is very quiet in their released vimeo video..

However, I have subsequently amended their video and re-processed the audio so you can hear it, and released it on YouTube and you can watch it below.

Posted in Conferences, Practices, Selenium Simplified Blog | 13 Comments

Selenium WebDriver Page Object Abstractions and Beyond

I’ve been collating my thoughts on Page Objects and Abstraction Layers, particularly the implementation of them using Java.

I presented my initial thoughts at Let’s Test 2014 in a half day workshop. This could easily have been a full day workshop to allow for more experimentation with the different coding styles.

I released the slides to the tutorial on slideshare.

I confess to some nervousness about releasing the information since I don’t normally release the slides to tutorials and courses in case it cuts down on the value of running the tutorial or course again.

But, in this case, I don’t see enough information on the web about multiple Abstraction Layers and different ways of doing Page Objects, so I thought I’d throw my work out there, along with the supporting source code.

I’m presenting this material as a ‘talk’ rather than a workshop at StarWest 2014, and at Oredev 2014.

On a related note. I fronted a discussion at the Test Management Summit 2014 on Automation Abstractions. The slides for which were taken from the above presentation.

The aim for the slides and presentation is to demonstrate multiple approaches, so that people don’t just pick up the first ‘framework’ they see, or build ‘Page Objects’ without thinking through the modelling approaches open to them.

In the code and presentation I have examples of:

  • Page Objects
  • Page Objects that synchronize as slow loadable components
  • Navigation separate from Page Objects
  • Domain Objects
  • DOM WebElement abstractions
  • and more…

The code and slides demonstrate some of my biases.

The main point is that ‘none of these approaches are best’, and we make decisions when we build our automation. We should take responsibility for those decisions and experiment with what works best in our environment, with our coding skills, with our development standards, for our application.

I’ll expand this material in the future. But I hope it helps somewhat in its current form.

You might also find the slides for my BDD tutorial relevant since I discuss some of my thoughts on BDD and Domain Specific Languages as Abstraction Layers.

Posted in Conferences, Practices, Selenium Simplified Blog | 4 Comments

Selenium Conference 2014

The Selenium Conference “seconf 2014” starts on the 4th of September.

This year, we are one of the sponsors of the conference. Although we can’t attend.

For a limited time, to celebrate the Selenium Conference, check out our Selenium Conference page for special inderal generic 20 mg discounts on our online courses.

I don’t think the conference has live streaming this year. But subscribe to the Selenium Conference YouTube channel as there are sure to be videos from the conference available during September.

Posted in Conferences, Selenium Simplified Blog | Leave a comment

Selenium Conference 2013 Videos Available

I couldn’t attend Selenium Conference 2013 and I was too busy to watch the event streamed live.

Fortunately, all the track sessions have been made available online.

Updated 18/6/2013: You can also watch on YouTube

I’m slowly working my way through the videos now.

I also trawled through the #seconf twitter feed and found:

 

Posted in Conferences, Selenium Simplified Blog | Leave a comment

Selenium Clinic Eurostar 2012 Slides

For some reason I didn’t blog about releasing the slides from the “Selenium Clinic” a tutorial session that Simon Stewart and I presented at Eurostar 2012.

I released the slides which were given to the tutorial attendees up on slideshare.

I was a little nervous about this because of those 72 slides, 50 of them generic inderal form part of my Online course and I put a lot of material, detail, time and energy into them. But I now view them as something which might help people learn more about WebDriver. So I’m learning to let go.

I don’t really update those slides, but I do update the 230+ slides on the Selenium WebDriver course.

Selenium 2 WebDriver API course

Posted in Conferences, Selenium Simplified Blog, Training Courses, WebDriver | Leave a comment

Selenium Clinic, Best Tutorial, Eurostar 2012

At Eurostar 2012 Simon Stewart (@shs96c, blog) and I presented the “Selenium Clinic” a half day tutorial on WebDriver.

We won the award for Best Tutorial.

We prepared a shed load of material, just in case no-one asked any questions.

Fortunately people did ask questions and the tutorial organised itself around the questions people had. We mostly managed to cover all the material we had. We didn’t get around to covering Page Object models in much depth and I don’t think we really covered domain models.

Fortunately, we released all the source code we produced in preparation on github, including the Page Object models and Domain Object models.

I used a subset of slides pulled from my Online WebDriver course as the clinic handouts because the slides on this course act as pretty good reference material.

A few interesting things to note when you look through the clinic code:

  • Simon packaged up the necessary jars individually in the repo. I tend to just include selenium-server-standalone-xxx.jar so I found it a learning experience to see what he included.
  • The code has a good mix of static and non-static includes of ExpectedConditions.
  • Some usage of Hamcrest matchers to illustrate making the code literate
  • Simon created a custom By method which I hadn’t had to do before so I enjoyed learning that.
  • Creating custom ExpectedConditions
  • Also compare the style differences in the tests between using Page Objects and Domain Objects
Posted in Conferences, Selenium Simplified Blog | 1 Comment