Thomas Sundberg is a software developer, consultant and teacher at the Royal Institute of Technology from Stockholm. He will teach a workshop on testing web applications with Selenium. I asked him a few questions about himself and the workshop. This is the full interview. Enjoy!
Q: Can you tell us a few things about yourself?
A: I am a software developer. I love automating stuff and I have been infected by the test bug. Test driven development and test automation is something I have found extremely valuable in my daily work. When I set up my first computer, a PC back in the late 1980s, I automated the boot sequence so I had a word processor up and running if I booted from the right floppy. It was kind of useless but fun.
The first time I actually wrote something similar to a unit test was in 1997. A colleague couldn’t understand why on earth I wanted to write code that tested another piece of code. But I did and I thought it was fun. This was three years before Kent Beck and Eric Gamma created JUnit.
Q: What was the most interesting challenge you had?
A: I have had many challenges. But one of the more interesting, and rewarding, was when I was teaching computer science at KTH and had to teach chemists what an object is in an object oriented language. Most students were not interested, but they had to pass this mandatory course. Getting them to understand enough to be able to write the required programs was challenging and really fun.
KTH is also known as The Royal Institute of Technology in Stockholm and is the leading technical university in Sweden.
Q: You speak a lot about test automation and clean code. Why do you think these topics are important?
A: Clean code is important because it helps me read and understand what a program is supposed to achieve. It helps me to maintain code and extend it without a lot of pain.
Test automation is equally important because it allows me to try out new ideas and implement them without risk. With test automation in place, I have confidence that the system still works after my changes.
Q: You have a course in Selenium. Can you give us more details about it?
A: Selenium is a tool for testing web applications through a browser. It actually runs a browser and uses a site as any real user would do.
Running through a real browser, compared to using a tool that simulates a browser, will allow you to know that it works as expected with a specific browser, say Firefox or Internet Explorer.
In this course we will pass through all different tools that are part of the Selenium family. We will start with the Firefox plugin to record and replay a scenario. We will then write Java code that does the same thing but allows us to use other browsers than Firefox. We will then extend this and use a pattern called page object where every web page is represented in a class that can assert all expected capabilities for a specific page. Finally we will use a Selenium grid to allow testing of our web site using different browsers and different operating systems.
The focus and goal of the entire course is to learn how to build a test automation system for a web application that is maintainable and extensible. Another goal is to discuss when the testing should be done with other tools than Selenium. Selenium isn’t a tool that solves all problems so it should not be used in every situation.
Q: What are your plans for the near future?
A: My plan for the near future is to build a deployment pipeline. I will build a web application, add load to it and update it with zero downtime. To make things more interesting, I will make sure that I have a database change that is a part of the deployment. The database change will be done on a table where I have clients that constantly perform CRUD operations. It will be fun and something I will base a course upon as well as conference presentations.